Microchip UG0881 PolarFire SoC FPGA Arranque e configuración
Garantía
Microsemi non fai ningunha garantía, representación ou garantía sobre a información contida aquí ou a idoneidade dos seus produtos e servizos para ningún propósito particular, nin asume ningunha responsabilidade derivada da aplicación ou uso de ningún produto ou circuíto. Os produtos que se venden a continuación e calquera outro produto vendido por Microsemi foron sometidos a probas limitadas e non deben usarse xunto con equipos ou aplicacións de misión crítica. Crese que todas as especificacións de rendemento son fiables, pero non se verifican, e o comprador debe realizar e completar todas as probas de rendemento e outras probas dos produtos, só e xunto con calquera produto final ou instalado en calquera. O comprador non se basará en ningún dato e especificacións de rendemento ou parámetros proporcionados por Microsemi. É responsabilidade do comprador determinar de forma independente a idoneidade de calquera produto e probalo e verificalo. A información proporcionada por Microsemi a continuación ofrécese "tal e como está, onde está" e con todas as fallas, e todo o risco asociado a esa información correspóndelle enteiramente ao comprador. Microsemi non concede, de forma explícita ou implícita, a ningunha parte ningún dereito de patente, licenza ou calquera outro dereito de PI, xa sexa con respecto a dita información en si ou a calquera cousa descrita por dita información. A información proporcionada neste documento é propiedade de Microsemi, e Microsemi resérvase o dereito de facer calquera cambio na información deste documento ou en calquera produto e servizo en calquera momento sen previo aviso.
Sobre Microsemi
Microsemi, unha subsidiaria de propiedade total de Microchip Technology Inc. (Nasdaq: MCHP), ofrece unha carteira completa de solucións de sistemas e semicondutores para a industria aeroespacial e de defensa, comunicacións, centros de datos e mercados industriais. Os produtos inclúen circuítos integrados de sinais mixtos analóxicos de alto rendemento e endurecidos pola radiación, FPGA, SoC e ASIC; produtos de xestión de enerxía; dispositivos de temporización e sincronización e solucións horarias precisas, establecendo o estándar mundial para o tempo; dispositivos de procesamento de voz; solucións de RF; compoñentes discretos; solucións de almacenamento e comunicación empresarial, tecnoloxías de seguridade e anti-t escalablesamper produtos; solucións Ethernet; Circuitos integrados de alimentación a través de Ethernet e intervalos medios; así como capacidades e servizos de deseño personalizado. Máis información en www.microsemi.com.
Arranque e configuración
Os FPGA PolarFire SoC usan circuítos de encendido avanzados para garantir unha alimentación fiable ao acender e reiniciar. Ao acender e reiniciar, a secuencia de arranque do PolarFire SoC FPGA segue o reinicio de encendido (POR), o arranque do dispositivo, a inicialización do deseño, o prearranque do subsistema de microcontroladores (MSS) e o arranque do usuario de MSS. Este documento describe o prearranque de MSS e o arranque de usuario de MSS. Para obter información sobre o POR, o arranque do dispositivo e a inicialización do deseño, consulte UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
Para obter máis información sobre as funcións de MSS, consulte UG0880: PolarFire SoC MSS User Guide.
Secuencia de arranque
A secuencia de inicio comeza cando o PolarFire SoC FPGA se acende ou se restablece. Remata cando o procesador está preparado para executar un programa de aplicación. Esta secuencia de inicio percorre varios stagé antes de que comece a execución dos programas.
Durante o proceso de arranque realízanse un conxunto de operacións que inclúen o reinicio do hardware, a inicialización do periférico, a inicialización da memoria e a carga da aplicación definida polo usuario desde a memoria non volátil á memoria volátil para a súa execución.
A seguinte figura mostra as diferentes fases da secuencia de arranque.
Figura 1 Secuencia de arranque
MSS pre-arranque
Despois de completar con éxito a Inicialización do deseño, MSS Pre-arranque comeza a súa execución. O MSS liberarase dun restablecemento despois de completar todos os procedementos normais de inicio. O controlador do sistema xestiona a programación, inicialización e configuración dos dispositivos. O prearranque de MSS non se produce se o dispositivo programado está configurado para o modo de suspensión do controlador do sistema.
A fase de inicialización previa ao arranque de MSS está coordinada polo firmware do controlador do sistema, aínda que pode facer uso do E51 no MSS Core Complex para realizar certas partes da secuencia de prearranque.
Os seguintes eventos ocorren durante os prearranques de MSStage:
- Encendido da memoria non volátil integrada de MSS (eNVM)
- Inicialización da reparación de redundancia asociada á caché MSS Core Complex L2
- Autenticación do código de inicio do usuario (se a opción de inicio seguro do usuario está activada)
- Entrega MSS operativo ao código de arranque do usuario
O MSS Core Complex pódese iniciar nun dos catro modos. A seguinte táboa enumera as opcións de prearranque de MSS, que se poden configurar e programar no sNVM. O modo de arranque está definido polo parámetro de usuario U_MSS_BOOTMODE[1:0]. Os datos adicionais de configuración de arranque dependen do modo e están definidos polo parámetro de usuario U_MSS_BOOTCFG (consulte a táboa 3, páxina 4 e a táboa 5, páxina 6).
Táboa 1 • Modos de arranque complexos MSS Core
U_MSS_BOOTMODE[1:0] | Modo | Descrición |
0 | Arranque inactivo | MSS Core Complex arranca desde a ROM de arranque se MSS non está configurado |
1 | Arranque non seguro | MSS Core Complex arranca directamente desde o enderezo definido polo U_MSS_BOOTADDR |
2 | Arranque seguro do usuario | Botas MSS Core Complex de sNVM |
3 | Arranque seguro de fábrica | MSS Core Complex arranca utilizando o protocolo de arranque seguro de fábrica |
A opción de arranque está seleccionada como parte do fluxo de deseño de Libero. O cambio de modo só se pode conseguir mediante a xeración dunha nova programación FPGA file.
Figura 2 • Fluxo de prearranque de MSS
Arranque inactivo
Se o MSS non está configurado (por exemploample, dispositivo en branco), entón o MSS Core Complex executa un programa ROM de arranque que mantén todos os procesadores nun bucle infinito ata que un depurador se conecta ao destino. Os rexistros do vector de arranque mantén o seu valor ata que se restableza o dispositivo ou se programa unha nova configuración do modo de arranque. Para dispositivos configurados, este modo pódese implementar usando o
U_MSS_BOOTMODE=0 opción de inicio no configurador de Libero.
Nota: Neste modo, non se utiliza U_MSS_BOOTCFG.
A seguinte figura mostra o fluxo de arranque inactivo.
Figura 3 • Fluxo de arranque inactivo
Arranque non seguro
Neste modo, o MSS Core Complex execútase desde un enderezo eNVM especificado sen autenticación. Ofrece a opción de arranque máis rápida, pero non hai autenticación da imaxe de código. O enderezo pódese especificar configurando U_MSS_BOOTADDR no Configurador de Libero. Este modo tamén se pode usar para arrincar desde calquera recurso de memoria FPGA Fabric a través de FIC. Este modo implícase usando o
U_MSS_BOOTMODE=1 opción de inicio.
O MSS Core Complex é liberado do restablecemento cos vectores de arranque definidos por U_MSS_BOOTCFG (como se indica na seguinte táboa).
Táboa 2 • Uso de U_MSS_BOOTCFG no modo de arranque non seguro 1
Desfase (bytes) |
Tamaño (bytes) |
Nome |
Descrición |
0 | 4 | BOOTVEC0 | Vector de arranque para E51 |
4 | 4 | BOOTVEC1 | Vector de arranque para U540 |
8 | 4 | BOOTVEC2 | Vector de arranque para U541 |
16 | 4 | BOOTVEC3 | Vector de arranque para U542 |
20 | 4 | BOOTVEC4 | Vector de arranque para U543 |
A seguinte figura mostra o fluxo de arranque non seguro.
Figura 4 • Fluxo de arranque non seguro
Arranque seguro de usuario
Este modo permite ao usuario implementar o seu propio arranque seguro personalizado e o código de inicio seguro do usuario colócase no sNVM. O sNVM é unha memoria non volátil de 56 KB que se pode protexer mediante a función Physically Unclonable (PUF) integrada. Este método de arranque considérase seguro porque as páxinas sNVM marcadas como ROM son inmutables. Ao encenderse, o controlador do sistema copia o código de inicio seguro do usuario de sNVM á memoria de datos estreitamente integrada (DTIM) do núcleo do monitor E51. E51 comeza a executar o código de inicio seguro do usuario.
Se o tamaño do código de inicio seguro do usuario é superior ao tamaño do DTIM, entón o usuario debe dividir o código de inicio en dous segundos.tages. O sNVM pode conter os seguintes stage da secuencia de inicio do usuario, que pode realizar a autenticación dos seguintes arranquestage usando o algoritmo de autenticación/descifrado do usuario.
Se se usan páxinas autenticadas ou cifradas, entón a mesma clave USK (é dicir,
U_MSS_BOOT_SNVM_USK) debe utilizarse para todas as páxinas autenticadas/cifradas.
Se a autenticación falla, o MSS Core Complex pódese restablecer e o BOOT_FAIL tampa bandeira pódese erguer. Este modo implícase mediante a opción de arranque U_MSS_BOOTMODE=2.
Táboa 3 • Uso de U_MSS_BOOTCFG no arranque seguro do usuario
Desfase (bytes) | Tamaño (bytes) | Nome | Descrición |
0 | 1 | U_MSS_BOOT_SNVM_PAGE | Páxina de inicio en SNVM |
1 | 3 | RESERVADOS | Para o aliñamento |
4 | 12 | U_MSS_BOOT_SNVM_USK | Para páxinas autenticadas/cifradas |
A seguinte figura mostra o fluxo de arranque seguro do usuario.
Figura 5 • Fluxo de arranque seguro do usuario
Arranque seguro de fábrica
Neste modo, o controlador do sistema le o certificado de imaxe de arranque seguro (SBIC) de eNVM e valida o SBIC. Tras a validación exitosa, o controlador do sistema copia o código de inicio seguro de fábrica da súa área de memoria privada e segura e cárgao no DTIM do núcleo do monitor E51. O arranque seguro predeterminado realiza unha comprobación de sinatura na imaxe de eNVM mediante SBIC que se almacena en eNVM. Se non se informa de erros, o reinicio é liberado para o MSS Core Complex. Se se informan de erros, o MSS Core Complex colócase en reinicio e o BOOT_FAIL tampergue a bandeira. Entón, o controlador do sistema actívase ásamper bandeira que afirma un sinal ao tecido FPGA para a acción do usuario. Este modo implícase mediante a opción de inicio U_MSS_BOOTMODE=3.
O SBIC contén o enderezo, o tamaño, o hash e a sinatura do algoritmo de sinatura dixital de curva elíptica (ECDSA) do blob binario protexido. ECDSA ofrece unha variante do algoritmo de sinatura dixital que usa criptografía de curva elíptica. Tamén contén o vector de reinicio para cada hardware
thread/core/núcleo de procesador (Hart) no sistema.
Táboa 4 • Certificado de imaxe de arranque seguro (SBIC)
Offset | Tamaño (bytes) | Valor | Descrición |
0 | 4 | IMAXEADDR | Enderezo de UBL no mapa de memoria MSS |
4 | 4 | IMAXELEN | Tamaño de UBL en bytes |
8 | 4 | BOOTVEC0 | Vector de arranque en UBL para E51 |
12 | 4 | BOOTVEC1 | Vector de arranque en UBL para U540 |
16 | 4 | BOOTVEC2 | Vector de arranque en UBL para U541 |
20 | 4 | BOOTVEC3 | Vector de arranque en UBL para U542 |
24 | 4 | BOOTVEC4 | Vector de arranque en UBL para U543 |
28 | 1 | OPCIÓNS[7:0] | Opcións SBIC |
28 | 3 | RESERVADOS | |
32 | 8 | VERSIÓN | Versión SBIC/Imaxe |
40 | 16 | DSN | Vinculación DSN opcional |
56 | 48 | H | Hash SHA-384 da imaxe UBL |
104 | 104 | CÓDIGOSIG | Sinatura ECDSA codificada por DER |
Total | 208 | Bytes |
DSN
Se o campo DSN é distinto de cero, compárase co propio número de serie do dispositivo. Se a comparación falla, entón o boot_fail tampEstablécese a bandeira e cancelouse a autenticación.
VERSIÓN
Se a revogación SBIC está activada por U_MSS_REVOCATION_ENABLE, o SBIC rexéitase a menos que o valor de VERSION sexa maior ou igual ao limiar de revogación.
OPCIÓN DE REVOCACIÓN SBIC
Se a revogación SBIC está activada por U_MSS_REVOCATION_ENABLE e OPTIONS[0] é '1', todas as versións SBIC inferiores a VERSION son revogadas tras a autenticación completa do SBIC. O limiar de revogación permanece no novo valor ata que se incrementa de novo nun SBIC futuro con OPTIONS[0] = '1' e un campo VERSION superior. O limiar de revogación só se pode incrementar mediante este mecanismo e só se pode restablecer mediante un fluxo de bits.
Cando o limiar de revogación se actualiza de forma dinámica, gárdase mediante o esquema de almacenamento redundante usado para contrasinais de xeito que un fallo de alimentación durante o arranque do dispositivo non faga que falle o arranque posterior do dispositivo. Se falla a actualización do limiar de revogación, garántese que o valor límite sexa o valor novo ou o anterior.
Táboa 5 • Uso de U_MSS_BOOTCFG no modo de cargador de arranque de fábrica
Desfase (bytes) |
Tamaño (bytes) |
Nome |
Descrición |
0 | 4 | U_MSS_SBIC_ADDR | Enderezo de SBIC no espazo de enderezos MSS |
4 | 4 | U_MSS_REVOCATION_ENABLE | Activa a revogación SBIC se non é cero |
A seguinte figura mostra o fluxo de arranque seguro de fábrica.
Figura 6 • Fluxo de arranque seguro de fábrica
Arranque de usuario de MSS
O arranque do usuario de MSS ten lugar cando o control se dá desde o controlador do sistema ao complexo principal de MSS. Tras o arranque previo exitoso de MSS, o controlador do sistema libera o reinicio do MSS Core Complex. MSS pódese iniciar dunha das seguintes formas:
- Aplicación Bare Metal
- Aplicación Linux
- AMP Aplicación
Aplicación Bare Metal
As aplicacións simples para o SoC PolarFire pódense desenvolver coa ferramenta SoftConsole. Esta ferramenta proporciona a saída files en forma de .hex que se pode usar no fluxo Libero para incluír no fluxo de bits de programación file. A mesma ferramenta pódese usar para depurar as aplicacións Bare Metal usando JTAG
interface.
A seguinte figura mostra a aplicación SoftConsole Bare Metal que ten cinco núcleos (cores) incluíndo o núcleo do monitor E51.
Figura 7 • Proxecto SoftConsole
Aplicación Linux
Esta sección describe a secuencia de inicio para Linux que se executa en todos os núcleos U54.
Un proceso de arranque típico consta de tres stages. O primeiro stagO cargador de arranque (FSBL) execútase desde o flash de arranque no chip (eNVM). O FSBL carga o segundo stage cargador de arranque (SSBL) desde un dispositivo de arranque a memoria RAM externa ou caché. O dispositivo de arranque pode ser eNVM ou microcontrolador de memoria incorporada (eMMC) ou SPI Flash externo. O SSBL carga o sistema operativo Linux desde o dispositivo de arranque á memoria RAM externa. No terceiro stage, Linux execútase desde a memoria RAM externa.
A seguinte figura mostra o fluxo do proceso de arranque de Linux.
Figura 8 • Fluxo típico do proceso de arranque de Linux
Os detalles de FSBL, árbore de dispositivos, Linux e compilación YOCTO, como construír e configurar Linux proporcionaranse na futura versión deste documento.
AMP Aplicación
Na futura versión deste documento ofrecerase unha descrición detallada de Libero MSS Configurator e como depurar aplicacións multiprocesador mediante SoftConsole.
Diferentes fontes de arranque
Para ser actualizado en futuras versións deste documento.
Configuración de arranque
Para ser actualizado en futuras versións deste documento.
Acrónimos
Neste documento utilízanse as seguintes siglas.
Táboa 1 • Lista de acrónimos
Acrónimo ampliado
- AMP Multiprocesamento asimétrico
- DTIM Memoria de datos fortemente integrada (tamén chamada SRAM)
- ECDSA Algoritmo de sinatura dixital de curva elíptica
- eNVM Memoria non volátil incorporada
- FSBL Primeiro Stage Cargador de arranque
- Hart Fío de hardware/núcleo/núcleo do procesador
- MSS Subsistema de microprocesador
- POR Reiniciar
- PUF Función físicamente non clonable
- ROM Memoria de só lectura
- SCB Ponte do controlador do sistema
- sNVM Memoria non volátil segura
Historial de revisións
O historial de revisións describe os cambios que se implementaron no documento. Os cambios están listados por revisión, comezando pola publicación actual.
Revisión 2.0
O seguinte é un resumo dos cambios realizados nesta revisión.
- Actualizouse a información sobre Factory Secure Boot.
- Actualizouse a información sobre a aplicación Bare Metal.
Revisión 1.0
A primeira publicación deste documento.
Sede Microsemi
One Enterprise, Aliso Viejo,
CA 92656 EUA
Dentro dos EUA: +1 800-713-4113
Fóra dos EUA: +1 949-380-6100
Vendas: +1 949-380-6136
Fax: +1 949-215-4996
Correo electrónico: sales.support@microsemi.com
www.microsemi.com
©2020 Microsemi, unha subsidiaria totalmente propiedade de Microchip Technology Inc. Todos os dereitos reservados. Microsemi e o logotipo de Microsemi son marcas rexistradas de Microsemi Corporation. Todas as outras marcas comerciais e marcas de servizo son propiedade dos seus respectivos propietarios.
Documentos/Recursos
![]() |
Microchip UG0881 PolarFire SoC FPGA Arranque e configuración [pdfGuía do usuario UG0881 PolarFire SoC FPGA Arranque e configuración, UG0881, PolarFire SoC FPGA Arranque e configuración, arranque e configuración |