Logiciels Libres et Systèmes Embarqués


5.4. Amorce du noyau Linux

En ce qui concerne l'amorce du noyau Linux, je vais prendre le cas du chargeur U-Boot, puisque c'est celui-ci qui est utilisé. Dans un premier temps, U-Boot décompresse le noyau Linux et remplit la structure bd_t contenant la configuration de la carte (fréquence des différents bus, l'adresse MAC de l'interface réseau,...). Cette structure est déclarée dans le fichier include/asm-ppc/ppcboot.h, et le noyau Linux peut y accéder à travers l'adresse stockée dans le registre R3 lors de son démarrage. Puis U-Boot stocke dans les registres R4 et R5 respectivement l'adresse de début et l'adresse de fin du RAMDisk d'initialisation (voir section 6.4). Enfin, il fait de même avec les registres R6 et R7 pour la ligne de commande. Finalement U-Boot se branche à l'adresse 0x00000000 qui n'est autre que le point d'entrée du noyau Linux.