2017-09-15 8 views
0

나는 LPDDR2 EDB1332BDBH-1이있는 SAMA5D26C를 사용하고 있습니다. CPU가 ROMBOOT를 성공적으로 부팅하고 QSPI 메모리에서 at91bootstrap을로드 할 수 있습니다. at91bootstrap에서 디버그 출력을 얻지 만 리눅스를로드하지 못합니다.lpddr2로 부팅 sama5d2

이 조사를 통해 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 크기가 128MB인데도 4MB 이상입니다. 필자는 RAM에서 값을 4MB 미만으로 쓰고 읽을 수 있음을 확인했습니다.

0x203ffffff 이후에 모든 물리적 메모리에 액세스 할 수없고 ptr이 증가하지 않는 이유는 무엇입니까?

답변

0

TrustZone이 비활성화 되었음이 나타납니다.