powerpc 处理器有一个叫 boot sequencer
uboot 的start.s 文件里面的 .section .bootpg,"ax"可以查gas手册和ld手册
mpc8536手册这样说写he processor starts at 0xfffffffc and the code is first executed in the last 4K page(0xfffff000-0xffffffff) in flash/rom.
看一下u-boot里的start.S和相应的链接脚本。总之,fffffffc是上电复位的第一条代码,这里通常是一条跳转。
但是如果放第一条代码 那别的代码放哪,所有代码不应该是放在一起的吗?
0xfffffffc放一条跳转。所以说,好好看一下u-boot里的start.S,这条跳转是放在一个叫bootpg的section里的。
然后你看一下,链接脚本里,bootpg这个section放在那里,就清楚了。
在物理上用烧写器烧写的时候应该是把整个uboot.bin从某个起始地址开始烧写
uboot.bin不是要从fffffffc烧,ff800000~ffffffff这8M称为boot space,如果从local bus上的nor启动,他就被映射到local bus上的cs0选中的nor flash。你要把u-boot.bin烧到nor flash里。
那启动的时候会去fffffffc这个地址找第一条代码
第一条代码总是在fffffffc,可以变的是boot space。boot space映射到不同的设备,就可以从不同 的设备里启动
uboot里面的u-boot.lds文件里面的语法 查ld手册
lds = link script |