Démarrage et images de boot
Suivre les étapes depuis la BootROM, construire une image BOOT.BIN et choisir le rôle du FSBL, de l'ATF, de U-Boot et du bitstream.
Du JTAG au démarrage autonome
Pendant le développement, l'ingénieur peut utiliser Vitis pour initialiser la carte et charger un fichier ELF par JTAG. Une mémoire non volatile, comme une carte SD ou une Flash QSPI, conserve au contraire les données hors tension et permet un démarrage sans poste de développement.
Le démarrage commence après le Power On Reset. Le mode de boot sélectionne la source, par exemple QSPI, carte SD, eMMC ou JTAG selon la famille et la carte.
Les étapes du démarrage
La BootROM est un petit programme gravé dans le composant. Exécutée à l'étape 0, elle initialise le minimum nécessaire, lit l'en-tête de l'image puis charge le premier chargeur dans une mémoire locale.
Sur Zynq-7000, le First Stage Boot Loader, ou FSBL, est le premier programme modifiable. Il initialise le PS à partir des données générées par Vivado, peut configurer la PL et charge les partitions suivantes.
Sur Zynq UltraScale+ MPSoC, le flot ajoute les fonctions de la Platform Management Unit et de la Configuration Security Unit. Une pile Linux utilise généralement plusieurs partitions.

| Partition | Rôle courant |
|---|---|
| FSBL | Initialisation du PS et premier chargement |
| PMU firmware | Gestion de plateforme sur ZynqMP |
| Bitstream | Configuration de la PL |
| Arm Trusted Firmware | Passage vers les niveaux d'exception adaptés |
| U-Boot | Second Stage Boot Loader et choix de la source système |
| Image Linux | Noyau, arbre de périphériques et système de fichiers |
| Application ELF | Programme standalone |
Construire BOOT.BIN
Bootgen assemble les partitions selon un fichier BIF. L'ordre doit correspondre au flot de la cible.
the_ROM_image:
{