Logiciels Libres et Systèmes Embarqués


5.12. Contraintes sur l'architecture

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.