从 U-boot 移动到内核时的 ARM R0 寄存器值
ARM R0 register value while moving from U-boot to Kernel
在了解Kernel的设备树(ARM特有)的过程中,我了解到设备树前后的区别。
在设备树之前:
R1 寄存器包含机器类型
R2 寄存器包含指向 ATAGS
的指针
使用设备树:
无需检查R1寄存器
R2 寄存器包含指向 dtb 文件的指针。
我的疑问是 R0 在设备树之前究竟包含什么以及 R0 寄存器使用与设备树的任何变化。
来自arch/arm/kernel/head.S
/*
* Kernel startup entry point.
* ---------------------------
*
* This is normally called from the decompressor code. The requirements
* are: MMU = off, D-cache = off, I-cache = dont care, r0 = 0,
* r1 = machine nr, r2 = atags or dtb pointer.
在了解Kernel的设备树(ARM特有)的过程中,我了解到设备树前后的区别。
在设备树之前: R1 寄存器包含机器类型 R2 寄存器包含指向 ATAGS
的指针使用设备树: 无需检查R1寄存器 R2 寄存器包含指向 dtb 文件的指针。
我的疑问是 R0 在设备树之前究竟包含什么以及 R0 寄存器使用与设备树的任何变化。
来自arch/arm/kernel/head.S
/*
* Kernel startup entry point.
* ---------------------------
*
* This is normally called from the decompressor code. The requirements
* are: MMU = off, D-cache = off, I-cache = dont care, r0 = 0,
* r1 = machine nr, r2 = atags or dtb pointer.