传递引导参数给内核¶
引导参数表示为内存中的 TLV 列表。请参阅 arch/xtensa/include/asm/bootparam.h 以获取 bp_tag 结构和标签值常量的定义。列表中的第一个条目必须具有类型 BP_TAG_FIRST,最后一个条目必须具有类型 BP_TAG_LAST。第一个列表条目的地址在寄存器 a2 中传递给内核。地址类型取决于 MMU 类型
对于没有 MMU、具有区域保护或具有 MPU 的配置,该地址必须是物理地址。
对于具有区域转换 MMU 或具有 MMUv3 并且 CONFIG_MMU=n 的配置,该地址必须是当前映射中的有效地址。内核不会自行更改映射。
对于具有 MMUv2 的配置,该地址必须是默认虚拟映射(0xd0000000..0xffffffff)中的虚拟地址。
对于具有 MMUv3 并且 CONFIG_MMU=y 的配置,该地址可以是虚拟地址或物理地址。无论哪种情况,它都必须在默认虚拟映射中。如果它在默认 KSEG 映射覆盖的物理地址范围内(XCHAL_KSEG_PADDR.. XCHAL_KSEG_PADDR + XCHAL_KSEG_SIZE),则认为它是物理地址,否则认为是虚拟地址。