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 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 los recursos para dispositivos Agilex™ 7 y Agilex™ 5, Stratix® 10 SoC, Arria® 10 SoC, Cyclone® 10 GX, Cyclone® 10 LP SoC, Arria® V SoC Cyclone® V.
Obtenga soporte adicional para el desarrollo de software Agilex™ 7 y el desarrollo de software Agilex™ 5, recorridos guiados paso a paso para flujos de desarrollo estándar que muestran los recursos y la documentación críticos clave.
Para otros dispositivos, busque en las Colecciones de asistencia de dispositivos y productos.
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 para dispositivos basados en SDM
Para los sistemas integrados en chip Agilex™ 7, los sistemas integrados en chip Agilex™ 5 y los sistemas integrados en chip Stratix® 10, normalmente se utiliza un cargador 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.
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 Arria® 10 SoCs, 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.
2. Transferencia de hardware
Descripción general de Handoff
Todos los proyectos de SoC FPGA comienzan con un proyecto de hardware en el que el usuario configura varias configuraciones del sistema que se enumeran a continuación que afectarán al HPS.
- 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.
Según el cargador de arranque exacto y la familia de dispositivos de sistema integrado en chip, la transferencia puede tomar varias formas a continuación.
- 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 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
- En el caso de los sistemas integrados en chip Agilex 7, los sistemas integrados en chip Agilex 5 y los sistemas integrados en chip Stratix 10, la información de transferencia forma parte del flujo de bits de configuración del 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 sistema integrado en chip Agilex™ 7 y Agilex™ 5 Stratix® 10
- Para el sistema integrado en chip Agilex 7 y Agilex 5 Stratix 10, la información de transferencia forma parte del flujo de bits de configuración de FPGA.
Transferencia de Arria® 10 SoC
- Para 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
Transferencia de sistema integrado en chip Cyclone® V y sistema integrado en chip Arria® V
- 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
3. Cargadores de arranque disponibles
Descripción general de los cargadores de arranque disponibles
Cargadores de arranque disponibles, tipos de licencias, SoC compatibles y disponibilidad de soporte en dos etapas.
Dispositivo | Bootloader |
Tipo de licencia |
Descripción |
---|---|---|---|
Agilex™ 7 Agilex™ 5 Stratix® 10 |
ATF | BSD | 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 del SoC FPGA puerto de ATF en https://github.com/altera-opensource/arm-trusted-firmware. |
Agilex™ 7 Agilex™ 5 Stratix® 10 Arria® 10 Arria® V Cyclone® V |
Arranque en U |
GPL |
U-Boot es un gestor de arranque ampliamente utilizado por la industria y ofrece numerosas capacidades:
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. |
5. Recursos
Tipo de recurso | Agilex™ 7 | Agilex™ 5 | Stratix® 10 | Arria® 10 y Cyclone® V |
---|---|---|---|---|
Ejemplos de diseño | Kit de desarrollo de SoC serie F | Kit de desarrollo premium serie E Kit de desarrollo modular serie E
|
||
Guía del usuario | Guía del usuario de HPS Boot | Guía del usuario de HPS Boot | ||
Código fuente | Altera SoC FPGA U-Boot en GitHub |
Altera SoC FPGA U-Boot en GitHub |
|
|
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.