Centro de desarrolladores de SoC FPGA Bootloader
El Centro de desarrolladores de SoC FPGA Bootloader proporciona los cargadores de arranque de SoC disponibles con características principales, cómo comenzar y recursos adicionales.
El SoC Intel® FPGAs usar un cargador de arranque para cargar y ejecutar la aplicación del usuario final en el sistema de procesador físico (HPS). La aplicación de usuario final puede ser una simple aplicación completa o un sistema operativo complejo como el sistema operativo Linux*.
Esta página describe qué es un gestor de arranque, enumera los cargadores de arranque disponibles y sus características principales, describe cómo comenzar con los cargadores de arranque y enumera recursos adicionales.
1. ¿Qué es un Bootloader?
Definición del cargador de arranque
Cuando se inicia un dispositivo SoC, primero se ejecuta una pieza de software llamada BootROM. Por varias razones, BootROM tiene la siguiente funcionalidad limitada:
- Debe caber en la ROM en chip, por lo que debe ser pequeña.
- Es muy caro de cambiar por lo que tiene que ser muy robusto, lo que implica menos características
- No sabe cómo se configuró el sistema, por lo que no puede abrir todo
La aplicación de usuario final, por otro lado, suele ser grande y requiere que el sistema se configure según lo desee el usuario final antes de que pueda ejecutarse.
El trabajo del gestor de arranque es cerrar la brecha entre el BootROM y la aplicación del usuario final.
Cargador de arranque de una sola etapa
Tareas típicas del cargador de arranque
- Configuración del multiplexado de pines y los ajustes de pin, como la tasa de giro, el voltaje y la extracción o desconexión
- Configuración de los relojes en el árbol del reloj
- Abrir y calibrar la SDRAM
- Inicializando la memoria flash
- Configuración de la estructura de FPGA
- Carga de la aplicación final desde la memoria flash
- Pasar el control a la aplicación final
Además de las características mencionadas anteriormente, los cargadores de arranque también ofrecen las siguientes características avanzadas que pueden permitir una implementación más compleja y un desarrollo más conveniente:
- Acceso de red que trae la aplicación del usuario final desde la nube.
- Herramientas de depuración que permiten un diagnóstico más cómodo de los problemas.
- Interfaz de línea de comandos para comandos interactivos.
- Aplicación que ejecuta un marco que puede permitir que el cargador de arranque cargue aplicaciones simples de usuario final y las ejecute hasta su finalización. Una vez completada la aplicación, el control se devuelve al cargador de inicio.
Cargadores de arranque de varias etapas
A veces, el proceso del cargador de arranque se puede dividir en varias etapas, normalmente dos.
Para los SoC Cyclone® V, el BootROM solo puede cargar un cargador de arranque de hasta 64 KB de tamaño porque la SDRAM aún no se ha abierto en esa etapa. Del mismo modo, para Intel® Arria® 10 SoC, el BootROM solo puede cargar un gestor de arranque de hasta 256 KB de tamaño. Debido a estas limitaciones de tamaño, no se pueden lograr características avanzadas como redes o acceso a sistemas de archivos complejos. Si se desean tales características, la primera etapa del gestor de arranque abre la SDRAM y luego carga una segunda etapa con más funcionalidad. Un cargador de arranque de dos etapas es la opción predeterminada para los sistemas integrados en chip Cyclone V, los sistemas integrados en chip Arria® V y los sistemas integrados en chip Arria® 10.
Cargadores de arranque para dispositivos basados en SDM
Para Intel® Stratix® 10 SoCs, los SoCs Intel Agilex 7 y los SoCs Intel® Agilex® 5 se utiliza un gestor de arranque de dos etapas. La primera etapa del cargador de arranque pequeño forma parte de la secuencia de bits de configuración de FPGA y el administrador de dispositivos seguros (SDM) la carga en la RAM en chip del HPS, mientras que la segunda etapa del cargador de arranque más grande debe almacenarse en una ubicación a la que el HPS pueda acceder.
2. Transferencia de hardware
Descripción general de Handoff
Todos Intel SoC FPGA proyectos comienzan con un proyecto de hardware en el que el usuario introduce varias configuraciones del sistema que afectan al HPS. Estos incluyen:
- Multiplexación de pines
- Configuración de pines
- Configuración de SDRAM
- Configuración del reloj
El trabajo del cargador de arranque es aplicar estas configuraciones y el proceso de que el cargador de arranque reciba estas configuraciones se denomina transferencia de hardware a software.
Dependiendo del cargador de arranque exacto y de la familia de dispositivos de sistema integrado en chip, la transferencia puede tomar varias formas. Típicamente:
- Para los sistemas integrados en chip Cyclone V y Arria V, la transferencia es una combinación de archivos XML, archivos binarios y archivos de código fuente, que se convierten en código fuente y luego se compilan en el gestor de arranque
- Para Intel Arria 10 dispositivo de sistema integrado en chip, el traspaso se encuentra en un único archivo XML que se convierte en un archivo de árbol de dispositivos y es utilizado por el cargador de arranque
- Para Intel Stratix 10 SoCs, Intel Agilex 7 SoCs y Intel Agilex 5 SoCs, la información de transferencia forma parte de la secuencia de bits de configuración de FPGA
El método principal para ingresar o cambiar la información de transferencia es editarla en Quartus Platform Designer.
Además de la información de transferencia, los cargadores de arranque también tienen varias configuraciones que el usuario puede seleccionar a través de los siguientes métodos:
- Edición del código fuente del cargador de arranque
- Edición del árbol de dispositivos del cargador de arranque cuando se utiliza un árbol de dispositivos
Transferencia de Cyclone V SoC y Arria V SoC
Transferencia de Intel Arria 10 SoC
Entrega de Intel Stratix 10 SoC, Intel Agilex 7 SoC y Intel Agilex 5 SoC
3. Cargadores de arranque disponibles
Descripción general de los cargadores de arranque disponibles
En la tabla siguiente se enumeran los cargadores de arranque disponibles, los tipos de licencias, los SoC compatibles y la disponibilidad de compatibilidad en dos etapas:
Bootloader |
Tipo de licencia |
SoC Cyclone V, |
Sistema integrado en chip Intel Arria 10 |
Intel Stratix 10 SoC, Intel Agilex 7 SoC Intel Agilex 5 SoC |
---|---|---|---|---|
Arranque en U |
GPL |
Sí |
Sí |
Sí |
ATF |
BSD |
- |
- |
Sí |
Arranque en U
U-Boot es un gestor de arranque ampliamente utilizado por la industria y ofrece numerosas capacidades:
- Primera etapa opcional llamada "SPL" para sistemas con RAM limitada en chip (por ejemplo, SoC Cyclone V y SoC Arria V)
- Capacidad de red
- Compatibilidad con memoria flash
- Interfaz de línea de comandos
- Scripting
- Aplicaciones personalizadas U-Boot
U-Boot se desarrolla bajo una licencia pública general (GPL), por lo que cualquier contribución que se haga a un producto que se entregue al público también debe hacerse pública.
El código fuente de U-Boot está disponible en la página de FPGA de U-Boot SoC en el sitio web de GitHub.
La página de inicio principal genérica de U-Boot se encuentra en Das U-Boot, la página web de Universal Boot Loader.
ATF
ARM Trusted Firmware (ATF) es una implementación de referencia de software de mundo seguro para ARMv8-a, implementando varios estándares de interfaz ARM, como Trusted Board Boot Requirements (TBBR) y Secure Monitor Call (SMC).
El ATF se desarrolla en colaboración bajo una licencia BSD, lo que permite un desarrollo e implementación convenientes.
Se puede acceder al código fuente de Intel SoC FPGA puerto de ATF en https://github.com/altera-opensource/arm-trusted-firmware.
5. Recursos
Guías del usuario
Están disponibles las siguientes guías de usuario:
- Creación de un cargador de arranque para sistemas integrados en chip Cyclone V y Arria 10
- Creación de un cargador de arranque para el sistema integrado en chip Stratix 10
- Creación de un cargador de arranque para el sistema integrado en chip Agilex 7
- Creación de un cargador de arranque para el sistema integrado en chip Agilex 5
- Guía de usuario del arranque HPS del sistema integrado en chip Stratix 10
- Guía del usuario de arranque HPS del sistema integrado en chip Agilex 7
Código fuente
El código fuente se puede obtener en los siguientes sitios web:
El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.