Table des matières
- 5.1. Introduction
- 5.2. Evaluation des travaux disponibles
- 5.3. Mise en place
- 5.4. Amorce du noyau Linux
- 5.5. Configuration du processeur
- 5.6. Initialisation du noyau Linux
- 5.7. Pilote du contrôleur d'interruptions
- 5.8. Pilote du contrôleur série
- 5.9. Pilote de l'interface réseau XEmac
- 5.10. Pilote de l'interface CompactFlash
- 5.11. Pilote de l'interface Flash
- 5.12. Contraintes sur l'architecture
- 5.13. Débogage
- 5.14. Conclusion et résultats
Linux est un noyau, c'est à dire un logiciel communiquant directement avec le matériel et qui fournit une couche d'abstraction aux programmes. Prenons un exemple d'abstraction : les fichiers. Un programme va écrire dans un fichier, mais c'est en fait le noyau qui va envoyer les bonnes commandes au disque dur pour écrire les octets au bon endroit. Il en va de même pour tout ce qui est du réseau ou des périphériques. Linux est aujourd'hui l'un des noyaux les plus utilisés dans le domaine de l'embarqué et l'un des plus stables, ce qui le rend idéal pour un environnement de production.
Le travail que j'ai réalisé pour adapter le noyau Linux [13] au PowerPC 405 présent dans les Virtex-II Pro et Virtex-4 FX va être présenté dans ce chapitre. Pour cela, je me suis basé sur un noyau officiel, ou plus exactement sur un noyau Linux issu de la branche de développement linuxPPC 2.4, disponible sur PenguinPPC.org. Le fait d'étudier et de détailler le portage[16] de Linux pour Virtex-II Pro permet d'assurer, entre autre, l'indépendance vis-à-vis d'un fournisseur, garantissant ainsi la pérennité des logiciels SMP. L'objectif principal de ce travail est de connaître exactement les contraintes que Linux impose à l'architecture présente dans le FPGA. En effet, Linux a été conçu bien avant les Virtex, ce qui signifie qu'il existe des contraintes dans le noyau qui doivent absolument être prises en compte lors de la conception d'une architecture. Aucune des entreprises qui ont porté le noyau Linux pour Virtex-II Pro ne fournissent de telles informations.
Tout d'abord, je vais présenter les différents ports du noyau Linux pour les FPGA Xilinx et je vais détailler la mise en place avant de commencer ce travail. Les modifications à effectuer seront ensuite décrites, puis j'aborderai l'installation des différents pilotes [14]. Enfin, je récapitulerai les contraintes qu'impose le noyau Linux sur l'architecture et les techniques de débogage.