衡阳派盒市场营销有限公司

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

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

3天內不再提示

內核中的psci驅動是什么

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

內核中的psci架構

內核psci軟件架構包含psci驅動和每個cpu的cpu_ops回調函數實現兩部分。

其中psci驅動實現了驅動初始化和psci相關接口實現功能,而cpu_ops回調函數最終也會調用psci驅動的接口。

psci驅動

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

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

(1)用于指定psci版本

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

驅動流程主要是與bl31通信,以確認其是否支持給定的psci版本,以及相關psci操作函數的實現,其流程如下:圖片其主要工作即為psci設置相關的回調函數,該函數定義如下:

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設置相應的回調函數

(2)為psci模塊設置系統重啟時的通知函數

(3)將系統的power_off函數指向相應的psci接口

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

    關注

    3

    文章

    1382

    瀏覽量

    40427
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10905

    瀏覽量

    213030
  • 驅動
    +關注

    關注

    12

    文章

    1851

    瀏覽量

    85648
  • SMP
    SMP
    +關注

    關注

    0

    文章

    76

    瀏覽量

    19748
收藏 人收藏

    評論

    相關推薦

    Linux內核container_of原理詳解

    Linux內核中經常可見container_of的身影,它在實際驅動的編寫也是廣泛應用。
    發表于 07-14 15:19 ?350次閱讀
    Linux<b class='flag-5'>內核</b><b class='flag-5'>中</b>container_of原理詳解

    在Linux內核添加wifi驅動

    在Linux內核添加wifi驅動Linux WIFI驅動實驗rtl8723 Wifi聯網測試
    發表于 02-05 07:59

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

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

    Android的Linux內核驅動程序開發教程

    Android內核是基于Linux 2.6內核的,它是一個增強內核版本,除了修改部分Bug外,它提供了用于支持Android平臺的設備驅動,這里介紹了Android
    發表于 09-05 14:24 ?335次下載
    Android的Linux<b class='flag-5'>內核</b>與<b class='flag-5'>驅動</b>程序開發教程

    內核驅動架構圖及程序

    內核驅動是軟件與硬件交互的橋梁,通過文件系統接口訪問OpenHarmony內核的硬件資源,是用戶與內核之間、進程與進程之間通信的一種方式。每類驅動
    發表于 04-13 11:18 ?2次下載
    <b class='flag-5'>內核</b><b class='flag-5'>驅動</b>架構圖及程序

    Linux內核代碼60%都是驅動

    為什么Linux內核代碼60%都是驅動? 如果每支持新的設備就加入驅動內核會不會變得越來越臃腫?
    的頭像 發表于 07-11 11:48 ?1059次閱讀
    Linux<b class='flag-5'>內核</b>代碼60%都是<b class='flag-5'>驅動</b>?

    linux內核的driver_register介紹

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

    psci電源管理接口可以用于什么場景

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

    psci接口規范介紹

    由于psci是由linux內核調用bl31的安全服務,實現cpu電源管理功能的。因此其軟件架構包含三個部分: (1)內核與bl31之間的調用接口規范 (2)
    的頭像 發表于 12-05 16:53 ?1025次閱讀

    內核psci架構cpu_ops接口

    cpu_ops接口 驅動初始化完成后,cpu的cpu_ops就可以調用這些回調實現psci功能的調用。如下所示,當devicetreecpu的enable-method設置為psci
    的頭像 發表于 12-05 17:25 ?769次閱讀

    bl31psci架構介紹

    bl31psci架構 bl31為內核提供了一系列運行時服務,psci作為其標準運行時服務的一部分,通過宏DECLARE_RT_SVC注冊到系統
    的頭像 發表于 12-05 17:33 ?1144次閱讀
    bl31<b class='flag-5'>中</b>的<b class='flag-5'>psci</b>架構介紹

    SMP多核啟動PSCI代碼示例

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

    PSCI處理函數代碼分析

    處理函數根據funid來決定服務,可以看到PSCI_CPU_ON_AARCH64為0xc4000003,這正是設備樹填寫的cpu_on屬性的id,會委托psci_cpu_on來執行核上電任務。下面
    的頭像 發表于 12-05 18:08 ?1000次閱讀

    linux驅動程序如何加載進內核

    在Linux系統驅動程序是內核與硬件設備之間的橋梁。它們允許內核與硬件設備進行通信,從而實現對硬件設備的控制和管理。 驅動程序的編寫
    的頭像 發表于 08-30 15:02 ?592次閱讀

    linux內核通用HID觸摸驅動

    在linux內核,為HID觸摸面板實現了一個通用的驅動程序,位于/drivers/hid/hid-multitouch.c文件。hid觸摸驅動
    的頭像 發表于 10-29 10:55 ?965次閱讀
    linux<b class='flag-5'>內核</b><b class='flag-5'>中</b>通用HID觸摸<b class='flag-5'>驅動</b>
    棋牌论坛| 百家乐园选蒙| 澳门百家乐官网赌| 豪盈国际娱乐| 百家乐公式与赌法| 百家乐官网破解赌戏玩| 金川县| 真人百家乐蓝盾赌场娱乐网规则 | 随州市| 威尼斯人娱乐场wnsrdcylcbywz| 20人百家乐官网桌| 百家乐官网视频聊天游戏| 大发888通宝| 游戏机百家乐的技术| 百家乐官网大路小路三珠路| 盈江县| 大发888为什么进不去| 百家乐对冲套红利| 中华百家乐官网的玩法技巧和规则| 百家乐官网外挂程式| 大发888网址怎么找| 粤港澳百家乐娱乐网| 百家乐官网正网| 百家乐官网偷码| 平度市| 德州扑克顺子| 太阳百家乐游戏| 百家乐辅助分析软件| 百家乐官网必赢外挂软件| 百家乐官网接线玩法| 99棋牌游戏| 微信百家乐群二维码| 张家港百家乐赌博| 天博百家乐官网娱乐城| 真人百家乐官网免费开户送钱| 百博亚洲| 360棋牌游戏| 百家乐游戏筹码| 百家乐赢家| 滨海湾百家乐娱乐城| 百家乐官网玩法教程|