接下来可以看看arch/arm64/kernel/psci.c里面的代码,psci_ops.cpu_on 最终调用 smc call:1static int cpu_psci_cpu_boot(unsigned int cpu) 2{ 3 phys_addr_t pa_secondary_entry = __pa_symbol(function_nocfi(secondary_entry));
ARMv8产生三个软件异常:SVC、HVC和SMC,发生异常的原因是软件企图进入更高的异常等级。 SVC: Supervisor call,当用户通过系统调用陷入到内核空间的时候,就是通过SVC指令,EL0EL1。 HVC: Hypervisor call,在ARMv8架构下,EL1尝试访问EL2时,则会陷入到虚拟化层,就是通过HVC指令EL1EL2 。 SMC:Secure monitor call,...
INFO: arnoldlu enter psci_smc_handler smc_fid=0x8400000a[r1:r3]=0x840000010x000000000x00000000INFO: arnoldlu exit psci_smc_handler--psci_init_cpu_suspend()检查PSCI是否支持PSCI_0_2_FN_CPU_SUSPEND。INFO: arnoldlu enter psci_smc_handler smc_fid=0x8400000a[r1:r3]=0x8400000e0x000000000x000...
处理器复位时默认进入最高级别的exception level,例如如果处理器最高支持的EL是EL2,复位后系统将处于EL2。对于那些正常通过system call产生的异常,处理器会切换到哪一个exception level这个问题也很好回答,SVC、HVC和SMC将进入处理器设定的异常级别。 然而对于异常/中断的处理,说到底还是需要进入相应的异常/中断句柄(pr...
->__arm_smccc_smc(),定义在arch/arm64/kernel/smccc-call.S中: .macro SMCCC instr .cfi_startproc \instr #0 ldr x4, [sp] stp x0, x1, [x4, #ARM_SMCCC_RES_X0_OFFS] stp x2, x3, [x4, #ARM_SMCCC_RES_X2_OFFS] ldr x4, [sp, #8] ...
ARM 手册中使用 Secure World 和 Non-secure World来指示系统的安全状态。Non-secure World并不意味着有安全漏洞,而是指正常运行的系统,即Normal world。通常情况下,Secure World 和 Non-secure World存在着主从关系。Secure World 的代码只有操作系统通过SMC(Secure Monitor Call )指令调用才可以执行。
smc-suruma-fonts.noarch 04.2-11.el6 base # yum install oniguruma.x86_64 安装mysql service mysqld stop yum remove mysql mysql-* yum list installed | grep mysql rpm -e --nodeps `rpm -qa | grep mysql` rpm -Uvh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm ...
一般在BL32会运行OPTee OS + 安全app,它是一个可信安全的OS运行在EL1并在EL0启动可信任APP(如指纹信息,移动支付的密码等),并在Trust OS运行完成后通过SMC指令返回BL31,BL31切换到Non-Seucre World继续执行BL33。 BL32 在不同的平台有不同的实现,Intel 的叫做 Software Guard Extensions(SGX),AMD 的叫做 ...
linux时间子系统从功能上分为定时和计时,定时用于定时触发中断事件,计时则用于记录现实世界的时间线。其软件架构示意图如下: 定时部分,系统有一个全局计数器counter,每个cpu核心有一个硬件定时器timer。定时器内部有比较器,当设定值达到全局计数器值就触发中断。每cpu定时器timer在软件上被抽象成时钟事件设备(Clock even...
•SMC:Secure Monitor Call,ARM 给出的一条指令, 可以让 CPU 从 Linux(非安全)直接跳转到 Monitor(安全)模式执行。 •RPC:Remote Procedure Control Protocol。OPTEE 中, 用于操作 Linux 下资源的一种机制。比如,OPTEE 中不能读写文件, 就通过 RPC 调用 Linux 下的文件系统来完成。