我想知道的是他们从哪个数据表/UM/RM或任何文档中获得了数字:bs=512 seek=2,-a 0x81000000(加载地址),-e 0x81000000(入口点)。
bs=512 seek=2
规范应该来自SoC的NXP/Freescale参考手册(例如“系统启动”章节的“扩展设备:SD、eSD和SDXC”部分)。
当配置为从SD卡引导时,SoC的ROM引导程序将在字节偏移量0x400(或2 * 512 = 1024,第三个512字节扇区)处查找程序映像(例如U-Boot)。
第一个扇区被认为是MBR,第二个扇区保留用于可选的Secondary Image Table(使用NXP文档的术语)。
Allwinner SoCs使用类似的启动方案来启动SD卡(即U-Boot映像位于原始扇区的固定位置,不是分区的一部分),但该映像从第17个扇区开始。
某些SoC(例如Atmel)不加载原始扇区,而是从FAT分区加载文件来引导SD卡。
请解释一下Load address/entry point address是什么意思?
这些值由mkimage实用程序指定,以便它们可以安装在uImage头中。当uImage被加载和解压缩时,U-Boot将使用这些值。
"load address"指定给U-Boot所需的内存地址来定位映像。映像被复制到该内存地址。
"entry point"指定给U-Boot要跳转/分支到的内存地址,以执行映像。该值通常与“load address”相同。
对于ARM Linux内核,根据(Vincent Sanders')
Booting ARM Linux,推荐的加载和入口地址是从物理内存开始的0x8000。
有关更多详细信息,请参见
使用LOADADDR构建内核uImage。