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.
Les 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 les ressources pour les appareils Agilex™ 7 et Agilex™ 5, SoC Stratix® 10, SoC Arria® 10, SoC Cyclone® 10 GX, SoC Cyclone® 10 LP, SoC Arria® V Cyclone® V.
Bénéficiez d’une assistance supplémentaire pour le développement logiciel Agilex™ 7 et le développement logiciel Agilex™ 5, des parcours guidés étape par étape pour les flux de développement standard faisant apparaître les ressources et la documentation critiques clés.
Pour les autres appareils, effectuez une recherche dans les collections de support des appareils et des produits.
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 pour les périphériques SDM
Pour les SoC Agilex™ 7 et Agilex™ 5, et Stratix® 10 SoC, 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.
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 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.
2. Transfert matériel
Présentation du transfert
Tous les projets de FPGA SoC commencent par un projet matériel dans lequel les divers paramètres système énumérés ci-dessous sont configurés par l’utilisateur et auront un impact sur le HPS.
- 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 exact et la famille de périphériques SoC, le transfert peut prendre différentes formes ci-dessous.
- 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 Arria 10 SoC, le transfert est contenu dans un seul fichier XML qui est converti en fichier d’arborescence de périphérique et utilisé par le chargeur de démarrage
- Pour les SoC Agilex 7, Agilex 5 et Stratix 10, 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 Agilex™ 7 et Agilex™ 5, Stratix® 10
- Pour les SoC Agilex 7 et Agilex 5, Stratix 10, les informations de transfert font partie du flux binaire de configuration FPGA.
Arria® 10 Transfert SoC
- Pour Arria 10 SoC, le transfert est contenu dans un seul fichier XML qui est converti en fichier d’arborescence de périphérique et utilisé par le chargeur de démarrage
Transfert SoC Cyclone® V et SoC Arria® V
- 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
3. Chargeur de démarrage disponible
Présentation des chargeurs de démarrage disponibles
Chargeurs de démarrage disponibles, types de licences, SoC pris en charge et disponibilité d’une prise en charge en deux étapes.
Appareil | Bootloader |
Type de licence |
Description |
---|---|---|---|
Agilex™ 7 Agilex™ 5 Stratix® 10 |
ATF | BSD | 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 du port SoC FPGA d’ATF est accessible à l’adresse https://github.com/altera-opensource/arm-trusted-firmware. |
Agilex™ 7 Agilex™ 5 Stratix® 10 Arria® 10 Arria® V Cyclone® V |
U-Boot |
GPL |
U-Boot est un chargeur de démarrage largement utilisé par l’industrie et offrant de nombreuses fonctionnalités :
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 U-Boot SoC FPGA sur le site Web GitHub. La principale page d’accueil générique de U-Boot se trouve sur Das U-Boot, la page Web Universal Boot Loader. |
5. Ressources
Type de ressource | SoC Agilex™ 7 | Agilex™ 5 | Stratix® 10 SoC | Arria® 10 et Cyclone® V |
---|---|---|---|---|
Exemples de conception | Kit de développement SoC série F | Kit de développement premium série E Kit de développement modulaire série E
|
||
Guide de l’utilisateur | Guide de l’utilisateur HPS Boot | Guide de l’utilisateur HPS Boot | ||
Code source | Altera SoC FPGA U-Boot sur GitHub |
Altera SoC FPGA U-Boot sur GitHub |
|
|
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.