当设置cpu从flash读取控制字时, flash开始地址存放该控制字, 可以通过u-boot设置该段值 这就要求u-boot的启动地址要设为BMS = 0, 如果设置BMS = 1, 需要管理flash的两部分,.极为不便. 但是设置BMS = 0虽然可以方便管理flash空间, 但是地址0x0000 0000 在u-boot初始化内存时会默认作为内存的地址, 这就要求u-boot在启动后先将flash空间进行重映射, 以便后边初始化内存使用.
我对这段话一直不是太理解,直到看了一篇博客文章才恍然大悟
当BMS =1 时,Boot memory space is 8 Mbytes at 0xff800000 to 0xffffffff.
the core begins fetching boot code from address 0xfff00100 and exceptions are vectored to the physical address of 0xfffn_nnnn
当小nor flash启动时u-boot 先从小nor flash起始地址0xfff00000读取硬件复位字,然后从boot code from address 0xfff00100
正好nor flash的硬件复位字和u-boot的内容重叠
可是大nor flash就不一样了,先从大nor flash起始地址0xff000000读取硬件复位字,然后从boot code from address 0xfff00100。
所以需要烧写两个地址