我正在使用带有LPDDR2 EDB1332BDBH-1的SAMA5D26C。 CPU成功引导ROMBOOT并能够从QSPI内存加载at91bootstrap。我从at91bootstrap获得调试输出,但是我无法加载linux。
调查这一点进一步向我展示了RAM初始化工作正常但在尝试将设备树从闪存加载到RAM时CPU挂起。
所以我添加了这个循环:
volatile char * ptr = (char *)0x20000000;
while(1) {
dbg_info("ptr: %x value: %c\n", ptr, *ptr);
ptr += 1;
}
这给了我预期的输出:
ptr: 0x20000000 value: U
ptr: 0x20000001 value: U
...
直到:
...
ptr: 0x203ffffe value: U
ptr: 0x203fffff value:
ptr: 0x203fffff value:
ptr: 0x203fffff value:
ptr: 0x203fffff value:
ptr: 0x203fffff value:
ptr: 0x203fffff value:
即使我的RAM大小为128 MB,我也无法访问4MB以上的内存。我已经验证我可以从RAM写入和读取写入的值,其值低于4MB。
为什么不能访问所有物理内存,以及在0x203ffffff之后ptr如何不增加?
答案 0 :(得分:0)
原来,TrustZone已被禁用。