Chargeur de démarrage SoC
Les FPGA SoC ® Intel utilisent un chargeur de démarrage pour charger et exécuter l’application de l’utilisateur final sur le système de processeur dur (HPS). L’application de l’utilisateur final peut être une simple application bare-metal ou un système d’exploitation complexe comme le système d’exploitation Linux*.
Cette page décrit ce qu’est un chargeur de démarrage, répertorie les chargeurs de démarrage disponibles et leurs principales caractéristiques, décrit comment démarrer avec les chargeurs de démarrage et répertorie des ressources supplémentaires.
1. Qu’est-ce qu’un chargeur de démarrage
Définition du chargeur de démarrage
Lorsqu’un périphérique SoC démarre, un logiciel appelé BootROM est d’abord exécuté. Pour plusieurs raisons, la BootROM dispose des fonctionnalités limitées suivantes :
- Il doit s’adapter à la ROM sur puce, il doit donc être petit
- Il est très coûteux à changer, il doit donc être très robuste, ce qui implique moins de fonctionnalités
- Il ne sait pas comment le système a été configuré, il ne peut donc pas tout faire apparaître
D’autre part, l’application de l’utilisateur final est généralement volumineuse et nécessite que le système soit configuré comme souhaité par l’utilisateur final avant de pouvoir s’exécuter.
Le travail du chargeur de démarrage consiste à combler le fossé entre la BootROM et l’application de l’utilisateur final.
Les tâches typiques du chargeur de démarrage sont les suivantes :
- Configuration du multiplexage des broches et des paramètres des broches, tels que la vitesse de balayage, la tension et le pull-up/pull-down
- Configuration des horloges dans l’arborescence des horloges
- Mise en place et étalonnage de la SDRAM
- Initialisation de la mémoire flash
- Chargement de l’application finale à partir de la mémoire flash
- Passage du contrôle à l’application finale
Outre les fonctionnalités énumérées ci-dessus, les chargeurs de démarrage offrent également les fonctionnalités avancées suivantes qui peuvent permettre un déploiement plus complexe et un développement plus pratique:
- Accès réseau qui amène l’application de l’utilisateur final à partir du cloud.
- Outils de débogage qui permettent un diagnostic plus pratique des problèmes.
- Interface de ligne de commande pour les commandes interactives.
- Application exécutant une infrastructure qui peut permettre aux applications simples de l’utilisateur final d’être chargées et exécutées jusqu’à leur achèvement par le chargeur de démarrage. Une fois l’application terminée, le contrôle est renvoyé au chargeur de démarrage.
Chargeurs de démarrage multi-étapes
Parfois, le processus du chargeur de démarrage peut être divisé en plusieurs étapes, généralement deux.
Pour les SoC Cyclone® V, la BootROM ne peut charger qu’un chargeur de démarrage d’une taille maximale de 64 Ko, car la SDRAM n’est pas encore activée à ce stade. En raison de la limitation de taille, les fonctionnalités avancées telles que la mise en réseau ou l’accès complexe au système de fichiers ne peuvent pas être réalisées. Si de telles fonctionnalités sont souhaitées, la première étape du chargeur de démarrage fait apparaître la SDRAM, puis charge une deuxième étape avec plus de fonctionnalités. Un chargeur de démarrage à deux étages est l’option par défaut pour les SoC Cyclone V et les SoC Arria® V.
Intel® Arria® 10 SoC ont une plus grande taille de RAM. Avec 256 Ko de RAM sur puce, le premier étage du chargeur de démarrage peut avoir plus de fonctionnalités que les SoC Cyclone V et Arria V. Pour cette raison, une seule étape est généralement nécessaire. Cependant, pour des cas encore plus complexes, tels que l’accès à plusieurs types de flash, de systèmes de fichiers complexes et de mise en réseau, l’utilisateur est libre d’utiliser une étape de chargeur de démarrage supplémentaire.
Pour les SoC Intel® Stratix® 10, un chargeur de démarrage à deux étages est généralement utilisé. La première petite étape du chargeur de démarrage fait partie du flux de configuration FPGA et est chargée par un gestionnaire de périphériques sécurisé (SDM) dans la RAM sur puce HPS, tandis que la deuxième étape plus grande du chargeur de démarrage peut être stockée partout où le HPS a accès.
2. Transfert de matériel
Vue d’ensemble du transfert
Tous les projets Intel SoC FPGA commencent par un projet matériel dans lequel divers paramètres système ayant un impact sur le HPS sont saisis par l’utilisateur. Il s’agit notamment des éléments suivants :
- Multiplexage des broches
- Paramètres d’épingle
- Paramètres SDRAM
- Paramètres d’horloge
C’est le travail du chargeur de démarrage d’appliquer ces paramètres et le processus de réception de ces paramètres par le chargeur de démarrage s’appelle le transfert matériel-logiciel.
Selon le chargeur de démarrage exact et la famille de périphériques SoC, le transfert peut prendre différentes formes. Typiquement:
- Pour les SoC Cyclone V et Arria V, le transfert est une combinaison de fichiers XML, de fichiers binaires et de fichiers de code source, qui sont convertis en code source, puis compilés dans le préchargeur
- Pour les SoC Intel Arria 10, le transfert est contenu dans un seul fichier XML converti en fichier d’arborescence de périphérique et utilisé par le chargeur de démarrage
- Pour les SoC Intel Stratix 10, les informations de transfert font partie du flux binaire de configuration FPGA
La principale méthode de saisie ou de modification des informations de transfert consiste à les modifier dans Qsys.
En plus des informations de transfert, les chargeurs de démarrage ont également divers paramètres qui peuvent être sélectionnés par l’utilisateur via les méthodes suivantes:
- Modification des paramètres dans l’éditeur BSP
- Modification du code source du chargeur de démarrage
- Modification de l’arborescence des périphériques du chargeur de démarrage lorsqu’une arborescence de périphériques est en cours d’utilisation
Transfert de Soc Cyclone V et SoC Arria V

Transfert de SoC Intel Arria 10

Transfert de SoC Intel Stratix 10

3. Chargeurs de démarrage disponibles
Vue d’ensemble des chargeurs de démarrage disponibles
Le tableau suivant répertorie les chargeurs de démarrage disponibles, les types de licences, les SoC pris en charge et la disponibilité de la prise en charge en deux étapes :
Bootloader |
Type de licence |
Cyclone V SoC |
Arria V SoC |
Intel Arria 10 SoC |
Intel Stratix 10 SoC |
Prise en charge en deux étapes |
---|---|---|---|---|---|---|
U-Boot |
GPL |
Oui |
Oui |
Oui |
Oui |
Oui |
MPL |
BSD |
Oui |
Oui |
Oui |
- |
- |
UEFI |
BSD |
- |
- |
Oui |
Oui |
Oui |
ATF |
BSD |
- |
- |
- |
Oui |
- |
U-Boot
U-Boot est un chargeur de démarrage largement utilisé par l’industrie et offrant de nombreuses fonctionnalités:
- Premier étage optionnel appelé « SPL » pour les systèmes avec une RAM sur puce limitée (par exemple, Cyclone V SoC et Arria V SoC)
- Capacité de mise en réseau
- Prise en charge de la mémoire flash
- Interface de ligne de commande
- Script
- Applications personnalisées U-Boot
U-Boot est développé sous une licence grand public (GPL), de sorte que toutes les contributions apportées à un produit qui est livré au public doivent également être rendues publiques.
Le code source U-Boot est disponible sur la page FPGA U-Boot SoC sur le site Web GitHub.
Pour le SoC Intel Arria 10, le SoC Arria V et le SoC Cyclone V, le code source U-Boot est inclus avec la suite de développement embarqué Intel SoC FPGA (SoC EDS), ce qui facilite un processus de développement simple et pratique.
Notez que la prise en charge des SoC Cyclone V et Arria V a été intégrée dans l’arborescence git officielle U-Boot sur le site Web GitHub. Des travaux sont en cours pour prendre également en charge la ligne principale des SoC Intel Arria 10.
La page d’accueil générique principale de U-Boot se trouve sur la page Web Das U-Boot - le chargeur de démarrage universel.
MPL
Le Minimal Preloader (MPL) est un chargeur de démarrage développé à l’aide des bibliothèques d’abstraction matérielle Bare-metal (HWLIB) Intel SoC FPGA. Il s’agit d’un chargeur de démarrage à un étage conçu pour un encombrement minimal.
Le MPL est disponible pour les appareils suivants :
- Cyclone V SoC
- Arria V SoC
- Intel Arria 10 SoC
Le MPL est proposé avec une licence Berkeley Software Distribution (BSD), ce qui permet un développement et un déploiement plus pratiques.
Le MPL est fourni dans le cadre du SoC EDS et est une archive de projet dans ledossier d’installation < SoC EDS>/embedded/examples/software/Intel® fichier FPGA-SoCFPGA-HardwareLib-MPL.tar.gz. L’archive contient un fichier nommé README.txt, qui contient des descriptions MPL détaillées et des informations d’utilisation.
UEFI
L’interface UEFI (Unified Extensible Firmware Interface) est une spécification de microprogramme normalisée qui simplifie l’initialisation de la plate-forme et l’amorçage du microprogramme.
Le chargeur de démarrage UEFI est disponible pour les périphériques suivants :
- Intel Arria 10 SoC
- Intel Stratix 10 SoC
Parce que l’UEFI est très bien spécifié et utilisé par des centaines d’entreprises technologiques, une grande partie du code peut être réutilisée, ce qui permet des cycles de développement plus rapides.
L’UEFI tel qu’implémenté sur les FPGA SoC Intel comprend deux étapes différentes :
- Phase d’initialisation pré-Efi (PEI). Cette étape configure la plate-forme et charge l’application utilisateur final ou DXE.
- Pilote eXecution Environment (DXE). Cette étape charge des pilotes UEFI supplémentaires et permet des fonctionnalités plus étendues, telles que la mise en réseau et l’interface de ligne de commande.
Le chargeur de démarrage UEFI offre également la possibilité d’exécuter des applications spéciales qui ciblent l’environnement DXE. De telles applications peuvent être exécutées, puis lorsque le contrôle de sortie retourne au DXE.
UEFI est proposé avec une licence BSD, ce qui permet un développement et un déploiement plus pratiques.
Le code source UEFI est disponible sur la page UEFI SoC FPGA sur le site Web GitHub.
Pour les SoC Intel Arria 10, l’UEFI est également livré avec SoC EDS permettant le même flux de développement que U-Boot.
ATF
L’ARM Trusted Firmware (ATF) est une implémentation de référence du logiciel secure world pour ARMv8-a, mettant en œuvre diverses normes d’interface ARM, telles que Trusted Board Boot Requirements (TBBR) et Secure Monitor call.
L’ATF est développé en collaboration sous une licence BSD, ce qui permet un développement et un déploiement pratiques.
L’ATF a un faible encombrement et est conçu comme un chargeur de démarrage de première étape (FSBL). Il est utilisé avec UEFI pour charger le PXE puis le DXE, mais il peut aussi par exemple être utilisé pour charger une simple application bare-metal.
Le code source du port Intel SoC FPGA d’ATF est accessible à https://github.com/Intel FPGA-opensource/arm-trusted-firmware.
4. Mise en route
Mise en route de U-Boot
Les ressources suivantes sont disponibles pour vous permettre de démarrer avec U-Boot :
- Génération et compilation du préchargeur Cyclone V
- Génération et compilation d’Arria 10 U-Boot
Mise en route de MPL
Le MPL est fourni dans le cadre du SoC EDS et est une archive de projet dans le fichier <SoC EDS Installation Folder>/embedded/examples/software/Intel FPGA-SoCFPGA-HardwareLib-MPL.tar.gz. L’archive contient un fichier nommé README.txt avec des informations d’utilisation détaillées pour les SoC Intel Arria 10, les SoC Arria V et les SoC Cyclone V.
Mise en route de l’UEFI
Les ressources suivantes sont disponibles pour vous permettre de démarrer avec UEFI :
- Intel Arria 10 SoC UEFI Mise en route
- Intel Arria 10 SoC UEFI Boot Loader Guide de l’utilisateur
- Intel Stratix 10 SoC UEFI Boot Loader Guide de l’utilisateur
5. Ressources
Guides de l’utilisateur
Les guides d’utilisation suivants sont disponibles :
Code source
Le code source peut être obtenu à partir des sites Web suivants :
- Intel SoC FPGA U-Boot sur GitHub
- Code source officiel de Denx U-Boot
- Intel SoC FPGA UEFI sur GitHub
- Firmware de confiance ARM sur GitHub
- SoC EDS pour le code source U-Boot cyclone V, Arrial V et Arria 10 et le code source UEFI Arria 10. Le code source est généré en exécutant l’outil bsp-editor. Pour plus de détails, consultez le Guide de l’utilisateur de SoC EDS,chapitre « Guide de l’utilisateur des outils de démarrage ».
- Code source SoC EDS pour SoC SoC U-Boot S10, dans < Dossier d’installation EDSoC>/embedded/host_tools/Intel FPGA/bootloaders/stratix10/u-boot/uboot-socfpga.tar.gz fichier.
- Code source SoC EDS pour MPL, situé dans le fichier <SoC EDS Installation Folder>/embedded/examples/software/Intel FPGA-SoCFPGA-HardwareLib-MPL.tar.gz.
Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.