Nous avons vu qu'il existait certaines contraintes sur l'architecture du système vis à vis de ce portage du noyau Linux :
- la RAM doit débuter à l'adresse
0x00000000
puisque l'amorce du noyau est relative à cette dernière. - le contrôleur d'interruptions externes doit être sur bus OPB puisque les adresses des registres sont dépendantes de ce bus. Si on souhaite utiliser le bus DCR, il suffit simplement de changer l'adresse de ces registres. Je n'ai pas réalisé un pilote complètement générique pour ne pas rendre trop complexe l'explication de ce travail. Autre contrainte ; le contrôleur d'interruptions externes doit posséder les registres SIE, CIE et IVR. Enfin le pilote ne gère que trente-deux lignes d'interruptions, il faut donc le modifier en conséquences s'il y a plus de périphériques.
- le contrôleur réseau Xilinx doit avoir son paramètre
C_MII_EXIST
à zéro lors de la synthèse. - Pour que le système puisse redémarrer, il ne faut surtout pas oublier de connecter un
block_rst
au processeur. - historiquement les périphériques utilisés pendant l'amorce du système sont mappés à partir de l'adresse
0x80000000
jusqu'à0xBFFFFFFF
. Il est préférable de respecter cette tradition si on ne souhaite pas avoir de mauvaises surprises avec la mémoire virtuelle ou les caches.