2017-09-15 13 views
0

Je vais avoir un SAMA5D26C avec un LPDDR2 EDB1332BDBH-1. Le processeur démarre avec succès ROMBOOT et est capable de charger at91bootstrap à partir de la mémoire QSPI. Je reçois la sortie de débogage de at91bootstrap, mais je n'arrive pas à charger linux. En étudiant cela, je me rends compte que l'initialisation de la RAM fonctionne bien, mais que la CPU se bloque en essayant de charger l'arborescence des périphériques de la mémoire flash dans la mémoire RAM.Démarrer sama5d2 avec lpddr2

J'ajoute donc cette boucle:

volatile char * ptr = (char *)0x20000000; 
while(1) { 
    dbg_info("ptr: %x value: %c\n", ptr, *ptr); 
    ptr += 1; 
} 

Cela me donne une sortie comme prévu:

ptr: 0x20000000 value: U 
ptr: 0x20000001 value: U 
... 

Jusqu'à:

... 
ptr: 0x203ffffe value: U 
ptr: 0x203fffff value: 
ptr: 0x203fffff value: 
ptr: 0x203fffff value: 
ptr: 0x203fffff value: 
ptr: 0x203fffff value: 
ptr: 0x203fffff value: 

Il semble que je ne peux pas accéder à la mémoire au-dessus de 4 Mo même si ma taille de RAM est de 128 Mo. J'ai vérifié que je peux écrire et lire la valeur écrite de RAM pour une valeur inférieure à 4 Mo.

Pourquoi toute la mémoire physique n'est-elle pas accessible et pourquoi ptr n'est pas augmenté après 0x203ffffff?

Répondre

0

Il s'avère que le TrustZone a été désactivé.