uboot阶段armv8处理器多核启动

需求

为了提升uboot阶段并行化效率,希望在uboot中使用另外一个CPU CORE执行函数,加快系统启动时间。
只要core0和core1两个CPU并发起来,暂时不考虑CPU之间的同步与竞争。

背景知识(可直接跳过)

ARMv8寄存器

通用寄存器

uboot阶段armv8处理器多核启动_第1张图片1. X0~X7参数和结果寄存器,用于参数传递、返回结果,也可用作临时寄存器或调用者保护的寄存器。
2. X9~X15调用者保护寄存器:如果函数调用者用到了这些寄存器,在调用函数之前,需要将这些寄存器压栈,函数返回后再从栈中恢复。
3. X19~X28:被调用者保护寄存。
4. 具有特殊用途的寄存器

  • X8间接结果寄存器:用于传递间接结果的地址,例如,函数返回大型结构,大小超过X0-X7,当然对于这种情况,一般推荐返回是指针,而不是结构体
  • 内部调用临时寄存器X16-X17
  • X18临时寄存器,uboot的全局变量gd地址就存在X18(后面为从核配置gd要用到)
  • X29:栈帧寄存器
  • X30:链接寄存器

你可能感兴趣的:(linux)