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 nue 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 commencer avec les chargeurs de démarrage et répertorie les 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, le BootROM a les 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é, de sorte qu’il ne peut pas tout faire apparaître
L’application d’utilisateur final d’autre part est typiquement grande et exige que le système soit configuré comme désiré par l’utilisateur final avant qu’il puisse exécuter.
Le travail du chargeur de démarrage consiste à combler le fossé entre le BootROM et l’application de l’utilisateur final.
Les tâches de chargeur de démarrage typiques incluent :
- Configuration du multiplexage de la broche et des paramètres de broche, tels que le taux de slew, la tension et le pull-up / pull-down
- Configurer les horloges dans l’arborescence d’horloge
- Mise en place et étalonnage du SDRAM
- Initialisation de la mémoire flash
- Chargement de l’application d’extrémité à partir de la mémoire flash
- Passage du contrôle à l’application finale
Outre les fonctionnalités répertorié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 apporte l’application de l’utilisateur final à partir du cloud.
- Des 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 un framework qui peut permettre de charger et d’exécuter des applications utilisateur finales simples à compléter 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 de chargeur de démarrage peut être divisé en plusieurs étapes, généralement deux.
Pour cyclone® V SoCs, le BootROM peut seulement charger un chargeur de démarrage de jusqu’à 64 Ko dans la taille parce que le SDRAM n’est pas encore soulevé à 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 caractéristiques sont désirées, la première étape du chargeur de démarrage soulève le SDRAM et puis charge une deuxième étape avec plus de fonctionnalité. 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, généralement une seule étape est 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 Intel® Stratix® 10 SoC, un chargeur de démarrage à deux étages est généralement utilisé. Le premier petit étage de chargeur de démarrage fait partie du flux de configuration FPGA et est chargé par un gestionnaire de périphériques sécurisé (SDM) dans la RAM sur puce HPS, tandis que le deuxième étage de chargeur de démarrage plus grand peut être stocké 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 où divers paramètres système qui ont un impact sur le HPS sont entrés par l’utilisateur. Il s’agit notamment des éléments suivants :
- Multiplexage de broches
- Paramètres de broche
- Paramètres SDRAM
- Paramètres d’horloge
C’est le travail du chargeur de démarrage d’appliquer ces paramètres et le processus du chargeur de démarrage recevant ces paramètres s’appelle le transfert de matériel à logiciel.
Selon le chargeur de démarrage exact et la famille de périphériques SoC, le transfert peut prendre diverses formes. En règle générale :
- 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ériques 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 les 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 à l’aide des 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 du Cyclone V Soc et de l’Arria V SoC

Transfert d’Intel Arria 10 SoC

Intel Stratix 10 SoC Handoff

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 :
Chargeur de démarrage |
Type de licence |
Cyclone V SoC |
Arria V SoC |
Intel Arria 10 SoC |
Intel Stratix 10 SoC |
Support 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 qui est largement utilisé par l’industrie et offre de nombreuses fonctionnalités:
- Premier étage en option appelé « SPL » pour les systèmes avec une RAM limitée sur puce (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 toute contribution qui est faite à un produit qui est livré au public doit également être rendue publique.
Le code source U-Boot est disponible sur la page U-Boot SoC FPGA 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 l’Intel SoC FPGA Embedded Development Suite (SoC EDS), facilitant ainsi 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 à l’arborescence git officielle de U-Boot sur le site Web GitHub. Des travaux sont en cours pour également prendre en charge la ligne principale des SoC Intel Arria 10.
La page d’accueil principale de U-Boot générique se trouve sur le Das U-Boot - la page Web du chargeur de démarrage universel.
MPL
Le préchargeur minimal (MPL) est un chargeur de démarrage développé à l’aide des bibliothèques d’abstraction matérielle nue (HWLIBs) Intel SoC FPGA. Il s’agit d’un chargeur de démarrage à une seule étape conçu pour une empreinte minimale.
Le MPL est disponible pour les périphériques suivants :
- Cyclone V SoC
- Arria V SoC
- Intel Arria 10 SoC
Le MPL est offert avec une licence Berkeley Software Distribution (BSD), qui permet un développement et un déploiement plus pratiques.
Le MPL est livré 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 le bootstrap de micrologiciel.
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, permettant des cycles de développement plus rapides.
L’UEFI tel qu’il est implémenté sur les FPGA SoC Intel comprend deux étapes différentes :
- Phase d’initialisation pré-Efi (Î.-P.-É.). Cette étape configure la plate-forme et charge l’application de l’utilisateur final ou DXE.
- Environnement DXE (Driver eXecution Environment). 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. Ces applications peuvent être exécutées ensuite lorsque le contrôle de sortie revient 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
Le micrologiciel de confiance ARM (ATF) est une implémentation de référence du logiciel mondial sécurisé pour ARMv8-a, mettant en œuvre diverses normes d’interface ARM, telles que les exigences de démarrage de carte de confiance (TBBR) et l’appel de moniteur sécurisé.
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 également par exemple être utilisé pour charger une simple application nue.
Le code source du port Intel SoC FPGA d’ATF est accessible à https://github.com/Intel FPGA-opensource/arm-trusted-firmware.
4. Pour commencer
Mise en route de U-Boot
Les ressources suivantes sont disponibles pour vous permettre de commencer avec U-Boot :
- Génération et compilation du préchargeur Cyclone V
- Génération et compilation d’Arria 10 U-Boot
MPL Mise en route
Le MPL est livré dans le cadre du SoC EDS et est une archive de projet dans le dossier d’installation <SoC EDS>/embedded/examples/software/Intel FPGA-SoCFPGA-HardwareLib-MPL.tar.gz fichier. L’archive contient un fichier nommé README.txt avec des informations d’utilisation détaillées pour les SoC Intel Arria 10, Arria V SoC et Cyclone V SoC.
Mise en route de l’UEFI
Les ressources suivantes sont disponibles pour vous permettre de commencer avec UEFI :
- Intel Arria 10 SoC UEFI Mise en route
- Guide de l’utilisateur du chargeur de démarrage Intel Arria 10 SoC UEFI
- Guide de l’utilisateur du chargeur de démarrage Intel Stratix 10 SoC UEFI
5. Ressources
Guides de l’utilisateur
Les guides d’utilisation suivants sont disponibles :
- Guide de l’utilisateur d’Intel SoC FPGA Embedded Development Suite
- HPS SoC Boot Guide—Cyclone V SoC Development Kit
- Guide de l’utilisateur du démarrage Du SoC Arria 10
- Guide de l’utilisateur du chargeur de démarrage Intel Arria 10 SoC UEFI
- Guide de l’utilisateur du chargeur de démarrage Intel Stratix 10 SoC UEFI
Source Code
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
- Arm Trusted Firmware sur GitHub
- SoC EDS pour Cyclone V, Arrial V et Arria 10 U-Boot code source et Arria 10 UEFI code source. Le code source est généré en exécutant l’outil bsp-editor. Voir plus de détails dans SoC EDS Guide de l’utilisateur,« Guide de l’utilisateur des outils de démarrage » chapitre.
- SoC EDS pour S10 SoC U-Boot code source, dans <SoC EDS Dossier d’installation>/embedded/host_tools/Intel FPGA/bootloaders/stratix10/u-boot/uboot-socfpga.tar.gz fichier.
- SoC EDS pour le code source MPL, situé dans le dossier d’installation <SoC EDS>/embedded/examples/software/Intel FPGA-SoCFPGA-HardwareLib-MPL.tar.gz fichier.
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.