国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

psci

2019-11-09 14:38:34
字體:
來源:轉載
供稿:網友
在setup_arch 中會啟動psci的init    if (acpi_disabled)        psci_dt_init();    else        psci_acpi_init();可見dtb和acpi分別調用不同的函數初始,以acpi為例int __init psci_acpi_init(void){    if (!acpi_psci_PResent()) {        pr_info("is not implemented in ACPI./n");        return -EOPNOTSUPP;    }    pr_info("probing for conduit method from ACPI./n");    if (acpi_psci_use_hvc())        invoke_psci_fn = __invoke_psci_fn_hvc;    else        invoke_psci_fn = __invoke_psci_fn_smc;    return psci_probe();}其中psci和atf有兩種方式,一種是hvc,一種是smc,主流是smc,具體是通過acpi_psci_use_hvc來判斷。bool __init acpi_psci_use_hvc(void){    return acpi_gbl_FADT.arm_boot_flags & ACPI_FADT_PSCI_USE_HVC;}可見是通過FADT表中的flag決定得。最后調用psci_probestatic int __init psci_probe(void){    u32 ver = psci_get_version();    psci_0_2_set_functions();    return 0;}在psci_probe 中調用psci_0_2_set_functions來設定psci執行函數static void __init psci_0_2_set_functions(void){    pr_info("Using standard PSCI v0.2 function IDs/n");    psci_function_id[PSCI_FN_CPU_SUSPEND] =                    PSCI_FN_NATIVE(0_2, CPU_SUSPEND);    psci_ops.cpu_suspend = psci_cpu_suspend;    psci_function_id[PSCI_FN_CPU_OFF] = PSCI_0_2_FN_CPU_OFF;    psci_ops.cpu_off = psci_cpu_off;    psci_function_id[PSCI_FN_CPU_ON] = PSCI_FN_NATIVE(0_2, CPU_ON);    psci_ops.cpu_on = psci_cpu_on;    psci_function_id[PSCI_FN_MIGRATE] = PSCI_FN_NATIVE(0_2, MIGRATE);    psci_ops.migrate = psci_migrate;    psci_ops.affinity_info = psci_affinity_info;    psci_ops.migrate_info_type = psci_migrate_info_type;    arm_pm_restart = psci_sys_reset;    pm_power_off = psci_sys_poweroff;}主要是填充psci_ops這個結構體。后續就可以直接調用psci_ops來處理問題static int cpu_psci_cpu_boot(unsigned int cpu){    int err = psci_ops.cpu_on(cpu_logical_map(cpu), __pa(secondary_entry));    if (err)        pr_err("failed to boot CPU%d (%d)/n", cpu, err);    return err;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁陵县| 锡林浩特市| 泉州市| 福鼎市| 沂源县| 阿拉尔市| 龙海市| 河北区| 三门峡市| 犍为县| 桑植县| 富顺县| 苍溪县| 明光市| 海宁市| 库伦旗| 云南省| 称多县| 耒阳市| 大石桥市| 台湾省| 临湘市| 卢氏县| 宝鸡市| 台北县| 两当县| 烟台市| 新余市| 辽宁省| 盐城市| 古田县| 马边| 金平| 公安县| 合水县| 郸城县| 盐源县| 垫江县| 西乡县| 新安县| 抚松县|