64 位平台的机器通常烧写Image,由U-Boot 加载到目标运行地址。但是 RK平台的 U-Boot 还可支持
对64位 LZ4格式的压缩内核进行解压。但是用户必须使能:
CONFIG_LZ4=y
64位LZ4压缩内核的解压前、后地址必须定义在各平台的 rkxxx_common.h 文件中
#define ENV_MEM_LAYOUT_SETTINGS \
"scriptaddr=0x00500000\0" \
"pxefile_addr_r=0x00600000\0" \
"fdt_addr_r=0x01f00000\0" \
"kernel_addr_no_bl32_r=0x00280000\0" \
"kernel_addr_r=0x00680000\0" \ // LZ4解压内核的地址
"kernel_addr_c=0x02480000\0" \ // LZ4压缩内核的地址
"ramdisk_addr_r=0x04000000\0"
32 位平台的机器通常烧写zImage,由U-Boot加载到 kernel_addr_r 地址上,再由内核完成自解
压。但是RK平台的U-Boot还可支持Image格式,由U-Boot加载到目标运行地址。
目前各平台的 rkxxx_common.h 文件只定义了 kernel_addr_r 而没有定义 kernel_addr_c 地
址。但是用户不需要更改配置,U-Boot会判断当前是zImage还是Image,动态处理这2个地址。但是
用户必须关闭:
CONFIG_SKIP_RELOCATE_UBOOT
32位内核的加载地址定义:
#define ENV_MEM_LAYOUT_SETTINGS \
"scriptaddr=0x60000000\0" \
"pxefile_addr_r=0x60100000\0" \
"fdt_addr_r=0x68300000\0" \
"kernel_addr_r=0x62008000\0" \ // zImage压缩内核的地址
"ramdisk_addr_r=0x6a200000\0"