我正在学习u-boot。使用 qemu 模型,我可以(使用 qemu)将映像加载到我想要的内存位置,并且可以使用booti addr
命令运行内核引导。正如你所知,在arm64中,没有uImage。
那么,在为arm(32位)构建linux内核时,是什么make LOADADDR=0x20008000 uImage
意思呢?无论如何,我们可以使用 u-boot shell 将 uImage 加载(从 SD 卡或网络)到任何我们想要的地方。那么,这是否意味着当我们运行bootm
命令时,u-boot程序将uImage中的内核映像重新定位到0x20008000?很难找到这些信息。
答案1
该LOADADDR
参数是 uImage 有效负载本身在内存中的放置位置。然后,包裹在其中的 zImage(通常)将根据需要重新定位自身。