吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SMP多核啟動cpu操作函數

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-12-05 16:04 ? 次閱讀

cpu操作函數

cpu_ops函數由bringup_cpu調用,以觸發secondary cpu啟動。它是根據設備樹中解析出的enable-method屬性確定的。

int __init init_cpu_ops(int cpu)
{
	const char *enable_method = cpu_read_enable_method(cpu);   (1)
			…
	cpu_ops[cpu] = cpu_get_ops(enable_method);                 (2)
		…
}

(1)獲取該cpu enable-method屬性的值

(2)根據其enable-method獲取其對應的cpu_ops回調

其中spin-table啟動方式的回調如下:

const struct cpu_operations smp_spin_table_ops = {
	.name		= "spin-table",
	.cpu_init	= smp_spin_table_cpu_init,
	.cpu_prepare	= smp_spin_table_cpu_prepare,
	.cpu_boot	= smp_spin_table_cpu_boot,
}

觸發secondary cpu啟動

以上流程都準備完成后,觸發secondary cpu啟動就非常簡單了。只需調用其cpu_ops回調函數,向其對應的spin_table_cpu_release_addr位置寫入secondary cpu入口地址即可。以下為其調用流程:

圖片

其中smp_spin_table_cpu_boot的實現如下:

static int smp_spin_table_cpu_boot(unsigned int cpu)
{
	write_pen_release(cpu_logical_map(cpu));    (1sev();                                      (2return 0;
}

(1)向給定地址寫入內核entry

(2)通過sev指令喚醒secondary cpu啟動

此后,該線程將等待cpu啟動完成,并在完成后將其設置為online狀態

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10902

    瀏覽量

    213002
  • SMP
    SMP
    +關注

    關注

    0

    文章

    76

    瀏覽量

    19746
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62968
  • 設備樹
    +關注

    關注

    0

    文章

    39

    瀏覽量

    3161
收藏 人收藏

    評論

    相關推薦

    AliOS Things SMP系統及其在esp32上實現示例

    對應CPUSMP功能:2.1 核啟動加載目前的啟動順序是,系統默認開始啟動0核,在0核的主任務入口內
    發表于 05-15 12:45

    記錄學習ARM Linux的多核啟動過程

    CONFIG_HOTPLUG_CPU.cpu_die = vexpress_cpu_die,#endif};2.2.多核啟動多核
    發表于 05-25 10:43

    ARM64 SMP多核啟動相關資料推薦(下)

    處理器的啟動,僅此而已,所以,現在社區幾乎很少使用spin-table這種方式,取而代之的是psci,他不僅可以啟動從處理器,還可以關閉,掛起等其他核操作,現在基本上arm64平臺上使用多核
    發表于 06-06 17:11

    介紹在ARM64架構下啟動多核的兩種方式

    1、ARM64的多核啟動流程分析工作中遇到的多核 ARM CPU 越來越多,總結分享一些多核啟動
    發表于 06-13 18:23

    基于raspi 3b上的SMP設計實現

    本帖主要描述raspi 3b上SMP實現,該實現主要基于現有raspi2 bsp代碼基礎上添加相關SMP支持,所需支持的功能主要包括:多核啟動多核
    發表于 12-05 13:56

    RT-Thread SMP和AMP初體驗簡介

    ,所有CPU共享系統內存和外設資源。嵌入式領域除 SMP 外還有一種支持多核處理器芯片的操作系統體系結構,即 AMP。AMP(Asymmetric Multi-processing)
    發表于 02-03 14:33

    RT-Thread框架下的SMP支持

    支持 SMP,在對稱多核上可以通過使能 RT_USING_SMP 來開啟。系統上電后,各 CPU啟動流程如下圖所示:每個次級
    發表于 02-13 15:02

    Linux在SMP系統上的移植研究

    基于自主開發以雙核嵌入式CPU EM8301為處理核心的嵌入式應用的目的,針對雙核CPU芯片的系統結構和Linux內核的特性,通過研究嵌入式Linux操作系統在SMP系統上的移植,探討
    發表于 11-14 16:09 ?11次下載
    Linux在<b class='flag-5'>SMP</b>系統上的移植研究

    ARM64 SMP多核啟動(上)—spin-table

    一般嵌入式系統使用的都是對稱多處理器(Symmetric Multi-Processor, SMP)系統,包含了多個cpu, 這幾個cpu都是相同的處理器,如4核Contex-A53。
    發表于 06-09 14:28 ?1059次閱讀
    ARM64 <b class='flag-5'>SMP</b><b class='flag-5'>多核</b><b class='flag-5'>啟動</b>(上)—spin-table

    ARM64 SMP多核啟動(下)—PSCI

    上面說了pin-table的多核啟動方式,看似很繁瑣,實際上并不復雜,無外乎主處理器喚醒從處理器到指定地址上去執行指令
    發表于 06-09 14:31 ?798次閱讀
    ARM64 <b class='flag-5'>SMP</b><b class='flag-5'>多核</b><b class='flag-5'>啟動</b>(下)—PSCI

    多核CPU啟動方式

    工作中遇到的多核 ARM CPU 越來越多,總結分享一些多核啟動的知識,希望能幫助更多小伙伴。 在 ARM64 架構下如果想要啟動
    的頭像 發表于 06-22 10:04 ?2322次閱讀

    SMP是什么?多核芯片(SMP)的啟動方法

    SMP 英文為Symmetric Multi-Processing ,是對稱多處理結構的簡稱,是指在一個計算機上匯集了一組處理器(多CPU),各CPU之間共享內存子系統以及總線結構,一個服務器系統可以同時運行多個處理器,并共享內
    的頭像 發表于 07-26 09:26 ?1.9w次閱讀
    <b class='flag-5'>SMP</b>是什么?<b class='flag-5'>多核</b>芯片(<b class='flag-5'>SMP</b>)的<b class='flag-5'>啟動</b>方法

    SMP是什么 啟動方式介紹

    ,一個服務器系統可以同時運行多個處理器,并共享內存和其他的主機資源。 CMP 英文為Chip multiprocessors,指的是單芯片多處理器,也指多核心。其思想是將大規模并行處理器中的SMP集成到同一芯片內,各個處理器并行執行不同的進程。 (1)
    的頭像 發表于 12-05 15:23 ?1949次閱讀

    SMP多核secondary cpu啟動流程

    secondary cpu啟動 由于psci方式啟動secondary cpu的流程,除了其所執行的cpu_ops不同之外,其它流程與spi
    的頭像 發表于 12-05 17:41 ?963次閱讀
    <b class='flag-5'>SMP</b><b class='flag-5'>多核</b>secondary <b class='flag-5'>cpu</b><b class='flag-5'>啟動</b>流程

    SMP多核啟動PSCI代碼示例

    //lib/psci/psci_setup.c - >plat_setup_psci_ops //設置平臺的psci操作 調用平臺的plat_setup_psci_ops函數去設置psci操作 eg
    的頭像 發表于 12-05 17:45 ?763次閱讀
    百家乐官网筹码| 二八杠规则| 百家乐官网透视牌靴| 百家乐网址| 威尼斯人娱乐城求助| 百家乐破解方法技巧| 百家乐神仙道礼包| 南宁百家乐官网的玩法技巧和规则| 广东百家乐官网扫描分析仪 | 金利娱乐城代理| 大发888casino下载| 大发888易付168| 百家乐试玩| 威尼斯人娱乐网代理| 威尼斯人娱乐项目| 博彩百家乐字谜总汇二丹东| 至尊百家乐娱乐网| 百家乐庄闲和的概率| 最新百家乐的玩法技巧和规则 | 玩百家乐怎么能赢吗| 百家乐等投注网改单| 风水做生意店铺的门| 百家乐单注技巧| 百家乐游戏算牌| 百家乐2棋牌作弊软件| 百家乐赌场大全| 免水百家乐的玩法技巧和规则| 任我赢百家乐软件| 千亿娱百家乐的玩法技巧和规则| 综合百家乐博彩论坛| 大发888 注册账号| 大发888官网用户登录| 富贵乐园棋牌游戏| 大发线上娱乐| 百家乐官网赌场国际| 百家乐官网游戏全讯网2| 真人百家乐官网澳门娱乐城| 百家乐官网必胜法技巧| 百家乐官网路珠多少钱| 百家乐视频交流| A8百家乐娱乐|