在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SMP多核啟動(dòng)cpu操作函數(shù)

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

cpu操作函數(shù)

cpu_ops函數(shù)由bringup_cpu調(diào)用,以觸發(fā)secondary cpu啟動(dòng)。它是根據(jù)設(shè)備樹中解析出的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)根據(jù)其enable-method獲取其對應(yīng)的cpu_ops回調(diào)

其中spin-table啟動(dòng)方式的回調(diào)如下:

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,
}

觸發(fā)secondary cpu啟動(dòng)

以上流程都準(zhǔn)備完成后,觸發(fā)secondary cpu啟動(dòng)就非常簡單了。只需調(diào)用其cpu_ops回調(diào)函數(shù),向其對應(yīng)的spin_table_cpu_release_addr位置寫入secondary cpu入口地址即可。以下為其調(diào)用流程:

圖片

其中smp_spin_table_cpu_boot的實(shí)現(xiàn)如下:

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

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

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

此后,該線程將等待cpu啟動(dòng)完成,并在完成后將其設(shè)置為online狀態(tài)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10904

    瀏覽量

    213020
  • SMP
    SMP
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    19747
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62973
  • 設(shè)備樹
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    3162
收藏 人收藏

    評論

    相關(guān)推薦

    AliOS Things SMP系統(tǒng)及其在esp32上實(shí)現(xiàn)示例

    對應(yīng)CPUSMP功能:2.1 核啟動(dòng)加載目前的啟動(dòng)順序是,系統(tǒng)默認(rèn)開始啟動(dòng)0核,在0核的主任務(wù)入口內(nèi)
    發(fā)表于 05-15 12:45

    記錄學(xué)習(xí)ARM Linux的多核啟動(dòng)過程

    CONFIG_HOTPLUG_CPU.cpu_die = vexpress_cpu_die,#endif};2.2.多核啟動(dòng)多核
    發(fā)表于 05-25 10:43

    ARM64 SMP多核啟動(dòng)相關(guān)資料推薦(下)

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

    介紹在ARM64架構(gòu)下啟動(dòng)多核的兩種方式

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

    基于raspi 3b上的SMP設(shè)計(jì)實(shí)現(xiàn)

    本帖主要描述raspi 3b上SMP實(shí)現(xiàn),該實(shí)現(xiàn)主要基于現(xiàn)有raspi2 bsp代碼基礎(chǔ)上添加相關(guān)SMP支持,所需支持的功能主要包括:多核啟動(dòng)多核
    發(fā)表于 12-05 13:56

    RT-Thread SMP和AMP初體驗(yàn)簡介

    ,所有CPU共享系統(tǒng)內(nèi)存和外設(shè)資源。嵌入式領(lǐng)域除 SMP 外還有一種支持多核處理器芯片的操作系統(tǒng)體系結(jié)構(gòu),即 AMP。AMP(Asymmetric Multi-processing)
    發(fā)表于 02-03 14:33

    RT-Thread框架下的SMP支持

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

    Linux在SMP系統(tǒng)上的移植研究

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

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

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

    ARM64 SMP多核啟動(dòng)(下)—PSCI

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

    多核CPU啟動(dòng)方式

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

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

    SMP 英文為Symmetric Multi-Processing ,是對稱多處理結(jié)構(gòu)的簡稱,是指在一個(gè)計(jì)算機(jī)上匯集了一組處理器(多CPU),各CPU之間共享內(nèi)存子系統(tǒng)以及總線結(jié)構(gòu),一個(gè)服務(wù)器系統(tǒng)可以同時(shí)運(yùn)行多個(gè)處理器,并共享內(nèi)
    的頭像 發(fā)表于 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'>啟動(dòng)</b>方法

    SMP是什么 啟動(dòng)方式介紹

    ,一個(gè)服務(wù)器系統(tǒng)可以同時(shí)運(yùn)行多個(gè)處理器,并共享內(nèi)存和其他的主機(jī)資源。 CMP 英文為Chip multiprocessors,指的是單芯片多處理器,也指多核心。其思想是將大規(guī)模并行處理器中的SMP集成到同一芯片內(nèi),各個(gè)處理器并行執(zhí)行不同的進(jìn)程。 (1)
    的頭像 發(fā)表于 12-05 15:23 ?1951次閱讀

    SMP多核secondary cpu啟動(dòng)流程

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

    SMP多核啟動(dòng)PSCI代碼示例

    //lib/psci/psci_setup.c - >plat_setup_psci_ops //設(shè)置平臺的psci操作 調(diào)用平臺的plat_setup_psci_ops函數(shù)去設(shè)置psci操作 eg
    的頭像 發(fā)表于 12-05 17:45 ?764次閱讀
    主站蜘蛛池模板: 韩国床戏合集三小时hd中字 | 国产免费小视频 | 加勒比精品久久一区二区三区 | 91成人免费视频 | 22222se男人的天堂 | 亚洲第七页 | 午夜日 | 天天插天天操天天干 | 2017亚洲男人天堂 | ww欧洲ww在线视频看 | 在线免费视频网站 | 天天操狠狠 | 免费看国产精品久久久久 | 婷婷中文字幕 | 午夜精品久视频在线观看 | 国产精品李雅在线观看 | 亚洲天天做日日做天天看2018 | 失禁h啪肉尿出来高h健身房 | 亚洲一区免费在线 | 亚洲黄页网站 | 久草免费新视频 | 日本高清视频成人网www | 国产成人午夜片在线观看 | 午夜影院在线观看 | 亚洲丁香婷婷 | 网站在线你懂的 | 天天色成人 | 天天躁夜夜躁狠狠躁2021 | 美女和美女 | 久久综合九色欧美综合狠狠 | 中文字幕精品一区影音先锋 | 国产资源在线播放 | 激情亚洲婷婷 | 四虎看片 | 久久久久国产一级毛片高清版 | 日本经典在线三级视频 | 午夜影院免费观看视频 | 亚洲电影在线看 | 国模爱爱 | 午夜视频网站在线观看 | 国产papa|