从 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.