Centre de développement de SoC FPGA Bootloader
Le centre de développement des chargeurs de démarrage SoC FPGA fournit aux chargeurs de démarrage SoC disponibles les caractéristiques principales, comment démarrer et des ressources supplémentaires.
Intel® SoC FPGAs utiliser 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 exécuté pour la première fois. Pour plusieurs raisons, la ROM d’amorçage a les fonctionnalités limitées suivantes :
- Il doit tenir dans 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 afficher
L’application de l’utilisateur final, en revanche, est généralement volumineuse et nécessite que le système soit configuré selon les souhaits de l’utilisateur final avant de pouvoir s’exécuter.
Le travail du chargeur de démarrage consiste à combler l’écart entre la ROM d’amorçage et l’application utilisateur final.
Chargeur de démarrage à une étape
Tâches typiques du chargeur de démarrage
- Configuration du multiplexage des broches et des paramètres de broches, tels que la vitesse de balayage, la tension et la traction/traction/descente
- Configuration des horloges dans l’arborescence des horloges
- Mise en place et étalonnage de la SDRAM
- Initialisation de la mémoire flash
- Configuration de l’infrastructure FPGA
- Chargement de l’application finale à partir de la mémoire flash
- Transmission 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 :
- Un accès réseau qui fait entrer l’application de l’utilisateur final depuis le 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 un framework qui peut permettre aux applications simples de l’utilisateur final d’être chargées et exécutées jusqu’au bout 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 à plusieurs étapes
Parfois, le processus de chargement de démarrage peut être divisé en plusieurs étapes, généralement deux.
Pour les SoC Cyclone® V, la ROM d’amorçage ne peut charger qu’un chargeur de démarrage d’une taille maximale de 64 Ko, car la SDRAM n’est pas encore mise en place à ce stade. De même, pour Intel® Arria® 10 SoC, la ROM d’amorçage ne peut charger qu’un chargeur de démarrage d’une taille maximale de 256 Ko. En raison de ces limitations 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, les SoC Arria® V et les SoC Arria® 10.
Chargeurs de démarrage pour les périphériques SDM
Pour les 10 SoC Intel® Stratix®, SoC Intel Agilex® 7 et Intel® Agilex® 5, un chargeur de démarrage à deux étages est généralement utilisé. La première petite étape de chargeur de démarrage fait partie du flux binaire de configuration FPGA et est chargée par le gestionnaire de périphériques sécurisés (SDM) dans la RAM sur puce HPS, tandis que la deuxième étape de chargeur de démarrage plus grande doit être stockée dans un emplacement accessible par le HPS.
2. Transfert matériel
Présentation du transfert
Tous Intel SoC FPGA projets commencent par un projet matériel dans lequel divers paramètres système ayant un impact sur le HPS sont saisis par l’utilisateur. Caractéristiques principales de ces commandes :
- Multiplexage des broches
- Paramètres des broches
- Paramètres SDRAM
- Paramètres de l’horloge
C’est le travail du chargeur de démarrage d’appliquer ces paramètres et le processus par lequel le chargeur de démarrage reçoit ces paramètres est appelé le transfert matériel-logiciel.
Selon le chargeur de démarrage et la famille de périphériques SoC, le transfert peut prendre différentes formes. Généralement:
- 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 chargeur de démarrage
- Pour Intel Arria 10 SoC, le transfert est contenu dans un seul fichier XML qui est converti en fichier d’arborescence de périphériques et utilisé par le chargeur de démarrage
- Pour les 10 SoC, SoC Intel Agilex 7 et SoC Intel Agilex 5 Intel Stratix, les informations de transfert font partie du flux binaire de configuration FPGA
La principale méthode pour saisir ou modifier les informations de transfert consiste à les modifier dans Quartus Platform Designer.
Outre les informations de transfert, les chargeurs de démarrage disposent également de divers paramètres qui peuvent être sélectionnés par l’utilisateur à l’aide des méthodes suivantes :
- Modifier le 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 utilisée
Transfert SoC Cyclone V et SoC Arria V
Transfert du SoC Intel Arria 10
Intel Stratix 10 SoC, SoC Intel Agilex 7 et Intel Agilex 5 SoC Handoff
3. Chargeur de démarrage disponible
Présentation 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 |
SoC Cyclone V, |
Intel Arria 10 SoC |
Intel Stratix 10 SoC, SoC Intel Agilex 7, SoC Intel Agilex 5 |
---|---|---|---|---|
U-Boot |
GPL |
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 disposant d’une quantité limitée de RAM sur puce (par exemple, SoC Cyclone V et SoC Arria V)
- 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 publique générale (GPL), de sorte que toute contribution apportée à un produit qui est livré au public doit également être rendue publique.
Le code source de U-Boot est disponible sur la page FPGA du SoC U-Boot sur le site Web de GitHub.
La principale page d’accueil générique de U-Boot se trouve sur Das U-Boot, la page Web Universal Boot Loader.
ATF
L’ARM Trusted Firmware (ATF) est une implémentation de référence du logiciel Secure World pour ARMv8-a, implémentant diverses normes d’interface ARM, telles que Trusted Board Boot Requirements (TBBR) et SMC (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.
Le code source de Intel SoC FPGA port ATF est accessible à https://github.com/altera-opensource/arm-trusted-firmware.
5. Ressources
Guides de l’utilisateur
Les guides de l’utilisateur suivants sont disponibles :
- Construction d’un chargeur de démarrage pour SoC Cyclone V et Arria 10
- Création d’un chargeur de démarrage pour le SoC Stratix 10
- Construction d’un chargeur de démarrage pour SoC Agilex 7
- Construction d’un chargeur de démarrage pour SoC Agilex 5
- Guide de l’utilisateur du démarrage HPS Stratix 10 SoC
- Guide de l’utilisateur du démarrage HPS SoC Agilex 7
Source Code
Le code source peut être obtenu à partir des sites Web suivants :
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.