几周来,我一直致力于在64位RPi4上实现u引导。我最后一个错误是,在boot.cmd ->中引导内核时,我使用的是变量fdt_addr_r,而不是fdt_addr。
有人知道fdt_addr和fdt_addr_r变量之间的区别吗?为什么在加载dtb时我们使用fdt_addr_r?为什么我们在引导内核时使用fdt_addr?
谢谢
发布于 2022-01-06 16:02:32
fdt_addr_r给出fdt在内存中的位置,图像将被加载到内存中,fdt_addr给出fdt在Flash中的地址。
The following image location variables contain the location of images
used in booting. The "Image" column gives the role of the image and is
not an environment variable name. The other columns are environment
variable names. "File Name" gives the name of the file on a TFTP
server, "RAM Address" gives the location in RAM the image will be
loaded to, and "Flash Location" gives the image's address in NOR
flash or offset in NAND flash.
*Note* - these variables don't have to be defined for all boards, some
boards currently use other variables for these purposes, and some
boards use these variables for other purposes.
Image File Name RAM Address Flash Location
----- --------- ----------- --------------
u-boot u-boot u-boot_addr_r u-boot_addr
Linux kernel bootfile kernel_addr_r kernel_addr
device tree blob fdtfile fdt_addr_r fdt_addr
ramdisk ramdiskfile ramdisk_addr_r ramdisk_addr
来源:https://source.denx.de/u-boot/u-boot/-/blob/master/README#L3211
FDT是由RPi第一阶段引导加载器编写的。此FDT的地址存储在变量${fdt_addr}中。
https://stackoverflow.com/questions/70446412
复制相似问题