Linux et PetaLinux sur Zynq
Comprendre le noyau, l'espace utilisateur, l'arbre de périphériques et les chemins sûrs pour accéder au matériel de la PL.
Pourquoi ajouter un système d'exploitation
Une application standalone s'exécute directement sur le processeur, sans système d'exploitation complet. Linux ajoute des processus isolés, des threads, un ordonnanceur, une mémoire virtuelle, des systèmes de fichiers, une pile réseau et un modèle de pilotes.
Ce service a un coût. Les changements de contexte, les interruptions et la gestion mémoire ajoutent de la latence. Linux convient aux interfaces riches, au réseau, au stockage et aux applications complexes. Une boucle de contrôle très déterministe peut rester sur le RPU ou dans la PL.
Espace utilisateur et noyau
Un programme en espace utilisateur ne doit pas accéder librement à tous les registres physiques. Il demande un service au noyau avec un appel système. Le noyau est la partie centrale de Linux. Il vérifie les droits, gère les ressources et délègue l'accès matériel au pilote.
| Niveau | Responsabilité |
|---|---|
| Application | Algorithme, interface et traitement métier |
| Bibliothèque | API stable utilisée par l'application |
| Noyau | Processus, mémoire, interruptions et sécurité |
| Pilote | Traduction entre l'API noyau et le périphérique |
| Matériel | Registres, DMA, interruptions et flux |
Cette séparation évite qu'une erreur dans une application corrompe directement le système.

Le rôle de PetaLinux
PetaLinux regroupe les outils AMD destinés à construire un système Linux pour les FPGA SoC. Il s'appuie sur Yocto, les outils de compilation croisée et la description matérielle exportée.
Le flot général reste simple.
- Créer le projet PetaLinux.
- Importer la description du matériel.
- Configurer le noyau, le rootfs et les périphériques.
- Construire les images.
- Packager le démarrage.
- Déployer sur carte et lire la console série.
Le matériel et le logiciel doivent rester synchronisés. Une nouvelle adresse AXI ou une nouvelle interruption impose une mise à jour de l'arbre de périphériques et parfois du pilote.
L'arbre de périphériques
Le Device Tree, ou arbre de périphériques, est une description de la carte lue au démarrage par le noyau. Il renseigne le matériel qui ne peut pas être découvert automatiquement. Un nœud d'IP AXI peut contenir son adresse, sa taille, son interruption, ses horloges et une chaîne .