1、先看看SAMA5D3X系列的结构框图
可以看到链接A5内核和Internal ROM、Internal RAM、外部DDRAM以及Nandflash的是中间的系统总线:Multi-Layer Matric。由此可想到,CPU访问内存时发出的地址线要经过这个系统总线Multi-Layer Matric处理,总线Multi-Layer Matric可以实现地址重映射。
2、在SAMA5D3X系列芯片中,有一个名为AXI_REMAP的寄存器控制着Multi-Layer Matric总线的地址映射行为,AXI_REMAP定义如下:
实际上,SAMA53DX系列芯片一共有3种映射情况,分别是:无映射、重映射0、重映射1,下面给出3种映射下的内存地址分配图:
1)无映射(复位值)
2)重映射0
3)重映射1
其中ahbslave是AHB总线的SLAVE接口,即被访问的接口。
4、重点:地址0x0映射到
1)在复位时,即无重映射,0x0被映射到Internal ROM(或者Internal ROM映射到0x0地址上),此时即是板级内部BootROM被首先执行;
2)若是重映射0,则0x0映射到Internal RAM(或者Iternal RAM映射到0x0地址上);
3)若是重映射1,则0x0映射到EBI(Enternal Bus Interface)上,此时由EBI控制器再将地址解码,访问实际的CS0~CS3不同的存储器(猜测的结果)。
总结:SAMA5D3X系列芯片在复位时,地址0x0总是映射到Internal ROM上,即BootROM被执行,由BootROM将二级引导代码复制到Internal RAM,然后重映射0,跳转执行二级引导,图示: