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.