Comprendre l'adresse de chargement Linux pour le processus U-Boot
J'essaie de comprendre Linux embarqué principes et ne peut pas trouver les adresses à l'u-boot de sortie.
Par exemple, j'ai UDOO conseil d'administration sur je.MX6 processeur quad et j'ai eu suite à la sortie de l'U-Boot:
U-Boot 2013.10-rc3 (Jan 20 2014 - 13:33:34)
CPU: Freescale i.MX6Q rev1.2 at 792 MHz
Reset cause: POR
Board: UDOO
DRAM: 1 GiB
MMC: FSL_SDHC: 0
No panel detected: default to LDB-WVGA
Display: LDB-WVGA (800x480)
In: serial
Out: serial
Err: serial
Net: using phy at 6
FEC [PRIME]
Warning: FEC MAC addresses don't match:
Address in SROM is 00:c0:08:88:a5:e6
Address in environment is 00:c0:08:88:9c:ce
Hit any key to stop autoboot: 0
Booting from mmc ...
4788388 bytes read in 303 ms (15.1 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-3.0.35
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4788324 Bytes = 4.6 MiB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
Starting kernel ...
Je ne comprends pas la valeur de l'adresse de Chargement de 0x10008000. Conformément à la documentation pour ce processeur particulier, à l'adresse zone 0x10000000 - 0xffffffff est mappé en mémoire principale. Mais qu'est-ce que 0x8000 décalage? Je ne peux pas comprendre la raison de cette valeur.
Aussi, je ne comprends pas l'adresse 0x12000000, où l'image du noyau est chargé de. Est-il de la mémoire mappée région pour carte SD?
S'il vous plaît, pouvez-vous me donner quelques explications pour ces adresses, ou encore mieux, quelques références à des ressources sur ce sujet. Mon objectif est d'apprendre à port u-boot et le noyau Linux à un autre des conseils.
Merci!
source d'informationauteur Ivo Slanina
Vous devez vous connecter pour publier un commentaire.
Si vous vérifiez les variables d'environnement de l'u-boot, vous constaterez que l'image du noyau est copié à partir de périphériques d'amorçage pour la RAM emplacement(Ici,
12000000
) au travers de la commande commefatload
.Maintenant, Ce n'est pas le
LOADADDRESS
. Vous donnezLOADADDRESS
pour la ligne de commande lors de la compilation du noyau, Cette adresse est la plupart du temps à 32K décalage à partir du début de la RAM Physique de l'espace d'adressage du processeur.Votre RAM est mappé à
10000000
et noyauLOADADDRESS
est10008000
(32K offset).bootm
commande décompresser l'image du noyau à partir de12000000
à10008000
adresse et appelle ensuite lakernel entry point
.découvrez include/dossier configs. Il contient tous les conseil définitions
j'.MX uboot include/configs
De port uboot à un autre port, base sur un très semblables conseil et de la modifier à partir de là.