国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

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

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

3天內不再提示

SMP多核啟動向內核傳遞參數(shù)信息

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-12-05 15:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

spin_table_cpu_release_addr的傳遞

由于在armv8架構下, uboot只能通過devicetree向內核傳遞參數(shù)信息 ,因此當其開啟了CONFIG_ARMV8_SPIN_TABLE配置選項后,就需要在適當?shù)臅r候將該值寫入devicetree中。

我們知道uboot一般通過bootm命令啟動操作系統(tǒng)(aarch64支持的booti命令,其底層實現(xiàn)與bootm相同),因此在bootm中會執(zhí)行一系列啟動前的準備工作,其中就包括將spin-table地寫入devicetree的工作。以下其執(zhí)行流程圖:

圖片
spin_table_update_dt的代碼實現(xiàn)如下:

int spin_table_update_dt(void *fdt)
{
	…
	unsigned long rsv_addr = (unsigned long)&spin_table_reserve_begin;   
	unsigned long rsv_size = &spin_table_reserve_end -
						&spin_table_reserve_begin;                 (1)

	cpus_offset = fdt_path_offset(fdt, "/cpus");                                       (2if (cpus_offset < 0)
		return -ENODEV;

	for (offset = fdt_first_subnode(fdt, cpus_offset);                    
	     offset >= 0;
	     offset = fdt_next_subnode(fdt, offset)) {
		prop = fdt_getprop(fdt, offset, "device_type", NULL);
		if (!prop || strcmp(prop, "cpu"))
			continue;
		prop = fdt_getprop(fdt, offset, "enable-method", NULL);                    (3if (!prop || strcmp(prop, "spin-table"))
			return 0;
	}

	for (offset = fdt_first_subnode(fdt, cpus_offset);
	     offset >= 0;
	     offset = fdt_next_subnode(fdt, offset)) {
		prop = fdt_getprop(fdt, offset, "device_type", NULL);
		if (!prop || strcmp(prop, "cpu"))
			continue;

		ret = fdt_setprop_u64(fdt, offset, "cpu-release-addr",
				(unsigned long)&spin_table_cpu_release_addr);              (4if (ret)
			return -ENOSPC;
	}

	ret = fdt_add_mem_rsv(fdt, rsv_addr, rsv_size);                                    (5)
	…
}

(1)獲取其起始地址和長度

(2)從devicetree中獲取cpus節(jié)點

(3)遍歷該節(jié)點的所有cpu子節(jié)點,并校驗其enable-method是否為spin-table。若不是所有cpu的都該類型,則不設置

(4)若所有cpu的enable-method都為spin-table,則將該參數(shù)設置到cpu-release-addr屬性中

(5)由于這段地址有特殊用途,內核的內存管理系統(tǒng)不能將其分配給其它模塊。因此,需要將其添加到保留內存中

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

    關注

    3

    文章

    1416

    瀏覽量

    41436
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11080

    瀏覽量

    217090
  • 多核
    +關注

    關注

    0

    文章

    43

    瀏覽量

    12535
  • SMP
    SMP
    +關注

    關注

    0

    文章

    78

    瀏覽量

    20282
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

    對應CPU的SMP功能:2.1 核啟動加載目前的啟動順序是,系統(tǒng)默認開始啟動0核,在0核的主任務入口內啟動其他核的加載,使其都進入任務調度,
    發(fā)表于 05-15 12:45

    典型的支持多核處理器的RTOS功能解析

    運行中更換或重新啟動幾乎所有的模塊,甚至是設備驅動程序。QNX對多核處理器的支持基于其微內核結構,通信被集成到QNX消息傳遞原語,本地的IPC和遠端節(jié)點間的IPC一樣。在單CPU上運行
    發(fā)表于 06-29 08:30

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

    ddr某個地址,為內核傳遞參數(shù)之后,然后bootloader就完成了它的使命,跳轉到內核,就進入了操作系統(tǒng)內核的世界。4)linux
    發(fā)表于 06-06 17:05

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

    psci。下面我們來揭開他神秘的面紗,其實理解了spin-table的啟動方式,psci并不難(說白了也是需要主處理器給從處理器一個啟動地址,然后從處理器從這個地址執(zhí)行指令,實際上比這要復雜的多)。下面給出psci方式多核
    發(fā)表于 06-06 17:11

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

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

    Linux內核源碼分析--內核啟動命令行的傳遞過程

    內核啟動參數(shù)其實不僅僅包含在了cmdline中,cmdline不過是bootloader傳遞內核
    發(fā)表于 05-05 15:28 ?1813次閱讀

    用戶與內核空間數(shù)據(jù)交換的方式之一:內核啟動參數(shù)

    Linux 提供了一種通過 bootloader 向其傳輸啟動參數(shù)的功能,內核開發(fā)者可以通過這種方式來向內核傳輸數(shù)據(jù),從而控制內核
    發(fā)表于 05-14 15:42 ?605次閱讀

    BootLoader與Linux內核參數(shù)傳遞

    。5. 參數(shù)傳遞的驗證和測試參數(shù)傳遞的結果可以通過內核啟動的打印
    發(fā)表于 04-02 14:31 ?486次閱讀

    BootLoader與Linux內核參數(shù)傳遞詳細資料說明

    在嵌入式系統(tǒng)中, Bootloader是用來初始化硬件,加載內核,傳遞參數(shù)。因為嵌入式系統(tǒng)的硬件環(huán)境各不相同,所以嵌入式系統(tǒng)的 Bootloader也各不相同,其中比較通用的是U-Boot,它支持
    發(fā)表于 03-16 10:39 ?13次下載
    BootLoader與Linux<b class='flag-5'>內核</b>的<b class='flag-5'>參數(shù)</b><b class='flag-5'>傳遞</b>詳細資料說明

    如何解讀內核的oops

    96000045表示錯誤碼。后面[]內的數(shù)值是與頁面有關的oops信息被顯示的次數(shù)。之后顯示內核的重要特性SMP和PREEMPT被顯示的配置情況。這條信息所在的
    的頭像 發(fā)表于 10-21 12:39 ?2179次閱讀

    Linux內核模塊參數(shù)傳遞與sysfs文件系統(tǒng)

    Linux應用開發(fā)中,為使應用程序更加靈活地執(zhí)行用戶的預期功能,我們有時候會通過命令行傳遞一些參數(shù)到main函數(shù)中,使得代碼邏輯可以依據(jù)參數(shù)執(zhí)行不同的任務。同樣,Linux內核也提供了
    發(fā)表于 06-07 16:23 ?2507次閱讀

    ARM64 SMP多核啟動(下)—PSCI

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

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

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

    SMP是什么 啟動方式介紹

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

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

    其中spin-table啟動方式的回調如下: const struct cpu_operations smp_spin_table_ops = {.name= "spin-table
    的頭像 發(fā)表于 12-05 16:04 ?1254次閱讀
    <b class='flag-5'>SMP</b><b class='flag-5'>多核</b><b class='flag-5'>啟動</b>cpu操作函數(shù)