99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

內(nèi)核中的psci驅(qū)動(dòng)是什么

麥辣雞腿堡 ? 來(lái)源:TrustZone ? 作者:Hcoco ? 2023-12-05 16:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

內(nèi)核中的psci架構(gòu)

內(nèi)核psci軟件架構(gòu)包含psci驅(qū)動(dòng)和每個(gè)cpu的cpu_ops回調(diào)函數(shù)實(shí)現(xiàn)兩部分。

其中psci驅(qū)動(dòng)實(shí)現(xiàn)了驅(qū)動(dòng)初始化和psci相關(guān)接口實(shí)現(xiàn)功能,而cpu_ops回調(diào)函數(shù)最終也會(huì)調(diào)用psci驅(qū)動(dòng)的接口。

psci驅(qū)動(dòng)

首先我們看一下devicetree中的配置:

psci {
		compatible = "arm,psci-0.2";  (1method = "smc";               (2)
     }

(1)用于指定psci版本

(2)根據(jù)該psci由bl31處理還是hypervisor處理,可以指定其對(duì)應(yīng)的陷入方式。若由bl31處理為smc,若由hypervisor處理則為hvc

驅(qū)動(dòng)流程主要是與bl31通信,以確認(rèn)其是否支持給定的psci版本,以及相關(guān)psci操作函數(shù)的實(shí)現(xiàn),其流程如下:圖片其主要工作即為psci設(shè)置相關(guān)的回調(diào)函數(shù),該函數(shù)定義如下:

static void __init psci_0_2_set_functions(void)
{
	…
	psci_ops = (struct psci_operations){
		.get_version = psci_0_2_get_version,
		.cpu_suspend = psci_0_2_cpu_suspend,
		.cpu_off = psci_0_2_cpu_off,
		.cpu_on = psci_0_2_cpu_on,
		.migrate = psci_0_2_migrate,
		.affinity_info = psci_affinity_info,
		.migrate_info_type = psci_migrate_info_type,
	};                                                   (1)

	register_restart_handler(&psci_sys_reset_nb);        (2)
	pm_power_off = psci_sys_poweroff;                    (3)
}

(1)為psci_ops設(shè)置相應(yīng)的回調(diào)函數(shù)

(2)為psci模塊設(shè)置系統(tǒng)重啟時(shí)的通知函數(shù)

(3)將系統(tǒng)的power_off函數(shù)指向相應(yīng)的psci接口

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

    關(guān)注

    3

    文章

    1416

    瀏覽量

    41421
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11077

    瀏覽量

    217030
  • 驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    12

    文章

    1916

    瀏覽量

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

    關(guān)注

    0

    文章

    78

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux內(nèi)核container_of原理詳解

    Linux內(nèi)核中經(jīng)常可見(jiàn)container_of的身影,它在實(shí)際驅(qū)動(dòng)的編寫(xiě)也是廣泛應(yīng)用。
    發(fā)表于 07-14 15:19 ?524次閱讀
    Linux<b class='flag-5'>內(nèi)核</b><b class='flag-5'>中</b>container_of原理詳解

    在Linux內(nèi)核添加wifi驅(qū)動(dòng)

    在Linux內(nèi)核添加wifi驅(qū)動(dòng)Linux WIFI驅(qū)動(dòng)實(shí)驗(yàn)rtl8723 Wifi聯(lián)網(wǎng)測(cè)試
    發(fā)表于 02-05 07:59

    ARM電源管理PSCI是什么意思呢

    今天來(lái)看一個(gè)電源功耗相關(guān)的東西,PSCI(Power State Coordination Interface),翻譯一下就是“電源狀態(tài)協(xié)作接口”。從名字就能直觀看出來(lái),PSCI是一套電源管理
    發(fā)表于 04-02 09:45

    如何配置WindowsCE內(nèi)核及加載自己的驅(qū)動(dòng)

    如何配置WindowsCE內(nèi)核及加載自己的驅(qū)動(dòng)
    發(fā)表于 04-10 10:10 ?10次下載

    內(nèi)核驅(qū)動(dòng)架構(gòu)圖及程序

    內(nèi)核驅(qū)動(dòng)是軟件與硬件交互的橋梁,通過(guò)文件系統(tǒng)接口訪問(wèn)OpenHarmony內(nèi)核的硬件資源,是用戶與內(nèi)核之間、進(jìn)程與進(jìn)程之間通信的一種方式。每類驅(qū)動(dòng)
    發(fā)表于 04-13 11:18 ?2次下載
    <b class='flag-5'>內(nèi)核</b><b class='flag-5'>驅(qū)動(dòng)</b>架構(gòu)圖及程序

    Linux內(nèi)核代碼60%都是驅(qū)動(dòng)?

    為什么Linux內(nèi)核代碼60%都是驅(qū)動(dòng)? 如果每支持新的設(shè)備就加入驅(qū)動(dòng)內(nèi)核會(huì)不會(huì)變得越來(lái)越臃腫?
    的頭像 發(fā)表于 07-11 11:48 ?1346次閱讀
    Linux<b class='flag-5'>內(nèi)核</b>代碼60%都是<b class='flag-5'>驅(qū)動(dòng)</b>?

    linux內(nèi)核的driver_register介紹

    向linux內(nèi)核注冊(cè)驅(qū)動(dòng)由driver_register()完成。它將驅(qū)動(dòng)程序的信息添加到內(nèi)核驅(qū)動(dòng)程序列表
    的頭像 發(fā)表于 07-14 09:17 ?3711次閱讀
    linux<b class='flag-5'>內(nèi)核</b><b class='flag-5'>中</b>的driver_register介紹

    psci電源管理接口可以用于什么場(chǎng)景

    psci是arm提供的一套電源管理接口,當(dāng)前一共包含0.1、0.2和1.0三個(gè)版本。它可被用于以下場(chǎng)景:(1)cpu的idle管理 (2)cpu hotplug以及secondary cpu啟動(dòng)
    的頭像 發(fā)表于 12-05 16:28 ?867次閱讀

    psci接口規(guī)范介紹

    由于psci是由linux內(nèi)核調(diào)用bl31的安全服務(wù),實(shí)現(xiàn)cpu電源管理功能的。因此其軟件架構(gòu)包含三個(gè)部分: (1)內(nèi)核與bl31之間的調(diào)用接口規(guī)范 (2)
    的頭像 發(fā)表于 12-05 16:53 ?1466次閱讀

    內(nèi)核psci架構(gòu)cpu_ops接口

    cpu_ops接口 驅(qū)動(dòng)初始化完成后,cpu的cpu_ops就可以調(diào)用這些回調(diào)實(shí)現(xiàn)psci功能的調(diào)用。如下所示,當(dāng)devicetreecpu的enable-method設(shè)置為psci
    的頭像 發(fā)表于 12-05 17:25 ?1046次閱讀

    bl31psci架構(gòu)介紹

    bl31psci架構(gòu) bl31為內(nèi)核提供了一系列運(yùn)行時(shí)服務(wù),psci作為其標(biāo)準(zhǔn)運(yùn)行時(shí)服務(wù)的一部分,通過(guò)宏DECLARE_RT_SVC注冊(cè)到系統(tǒng)
    的頭像 發(fā)表于 12-05 17:33 ?1528次閱讀
    bl31<b class='flag-5'>中</b>的<b class='flag-5'>psci</b>架構(gòu)介紹

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

    1、std_svc_setup (主要關(guān)注設(shè)置psci操作集)--有服務(wù) std_svc_setup //services/std_svc/std_svc_setup.c - >psci
    的頭像 發(fā)表于 12-05 17:45 ?1000次閱讀

    PSCI處理函數(shù)代碼分析

    處理函數(shù)根據(jù)funid來(lái)決定服務(wù),可以看到PSCI_CPU_ON_AARCH64為0xc4000003,這正是設(shè)備樹(shù)填寫(xiě)的cpu_on屬性的id,會(huì)委托psci_cpu_on來(lái)執(zhí)行核上電任務(wù)。下面
    的頭像 發(fā)表于 12-05 18:08 ?1239次閱讀

    linux驅(qū)動(dòng)程序如何加載進(jìn)內(nèi)核

    在Linux系統(tǒng),驅(qū)動(dòng)程序是內(nèi)核與硬件設(shè)備之間的橋梁。它們?cè)试S內(nèi)核與硬件設(shè)備進(jìn)行通信,從而實(shí)現(xiàn)對(duì)硬件設(shè)備的控制和管理。 驅(qū)動(dòng)程序的編寫(xiě)
    的頭像 發(fā)表于 08-30 15:02 ?1098次閱讀

    linux內(nèi)核通用HID觸摸驅(qū)動(dòng)

    在linux內(nèi)核,為HID觸摸面板實(shí)現(xiàn)了一個(gè)通用的驅(qū)動(dòng)程序,位于/drivers/hid/hid-multitouch.c文件。hid觸摸驅(qū)動(dòng)
    的頭像 發(fā)表于 10-29 10:55 ?2315次閱讀
    linux<b class='flag-5'>內(nèi)核</b><b class='flag-5'>中</b>通用HID觸摸<b class='flag-5'>驅(qū)動(dòng)</b>