Microsemi-LGOO

Microchip UG0881 PolarFire SoC FPGA Avvio e configurazione

Prodotto Microchip-UG0881-PolarFire-SoC-FPGA-avvio-e-configurazione

Garanzia

Microsemi non fornisce alcuna garanzia, dichiarazione o garanzia in merito alle informazioni qui contenute o all'idoneità dei suoi prodotti e servizi per uno scopo particolare, né Microsemi si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi prodotto o circuito. I prodotti venduti di seguito e qualsiasi altro prodotto venduto da Microsemi sono stati soggetti a test limitati e non devono essere utilizzati insieme ad apparecchiature o applicazioni mission-critical. Tutte le specifiche prestazionali sono ritenute affidabili ma non sono verificate e l'Acquirente deve condurre e completare tutte le prestazioni e altri test dei prodotti, da soli e insieme a, o installati in, qualsiasi prodotto finale. L'Acquirente non farà affidamento su dati e specifiche di prestazione o parametri forniti da Microsemi. È responsabilità dell'Acquirente determinare autonomamente l'idoneità di qualsiasi prodotto e testarlo e verificarlo. Le informazioni fornite da Microsemi qui di seguito sono fornite "così come sono, dov'è" e con tutti i difetti, e l'intero rischio associato a tali informazioni è interamente a carico dell'Acquirente. Microsemi non concede, in modo esplicito o implicito, a nessuna parte alcun diritto di brevetto, licenza o qualsiasi altro diritto di proprietà intellettuale, sia in relazione a tali informazioni stesse che a qualsiasi cosa descritta da tali informazioni. Le informazioni fornite in questo documento sono di proprietà di Microsemi e Microsemi si riserva il diritto di apportare modifiche alle informazioni contenute in questo documento oa qualsiasi prodotto e servizio in qualsiasi momento senza preavviso.

A proposito di Microsemi

Microsemi, una consociata interamente controllata di Microchip Technology Inc. (Nasdaq: MCHP), offre un portafoglio completo di semiconduttori e soluzioni di sistema per i mercati aerospaziale e della difesa, delle comunicazioni, dei data center e dell'industria. I prodotti includono circuiti integrati analogici a segnale misto ad alte prestazioni e resistenti alle radiazioni, FPGA, SoC e ASIC; prodotti per la gestione dell'energia; dispositivi di cronometraggio e sincronizzazione e soluzioni temporali precise, definendo lo standard mondiale per il tempo; dispositivi di elaborazione vocale; soluzioni RF; componenti discreti; soluzioni di storage e comunicazione aziendale, tecnologie di sicurezza e scalabile anti-tampaltri prodotti; soluzioni Ethernet; CI Power-over-Ethernet e midspan; oltre a funzionalità e servizi di progettazione personalizzati. Ulteriori informazioni su www.microsemi.com.

Avvio e configurazione

Gli FPGA SoC PolarFire utilizzano circuiti di accensione avanzati per garantire un'accensione affidabile all'accensione e al ripristino. All'accensione e al ripristino, la sequenza di avvio dell'FPGA SoC PolarFire segue il ripristino all'accensione (POR), l'avvio del dispositivo, l'inizializzazione del progetto, il preavvio del sottosistema del microcontrollore (MSS) e l'avvio dell'utente MSS. Questo documento descrive il preavvio MSS e l'avvio utente MSS. Per informazioni su POR, avvio del dispositivo e inizializzazione del progetto, vedere UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
Per ulteriori informazioni sulle funzioni MSS, vedere UG0880: PolarFire SoC MSS User Guide.

Sequenza di avvio
La sequenza di avvio inizia quando il PolarFire SoC FPGA viene acceso o resettato. Termina quando il processore è pronto per eseguire un programma applicativo. Questa sequenza di avvio attraversa diversi stages prima che inizi l'esecuzione dei programmi.
Durante il processo di avvio viene eseguita una serie di operazioni che include il ripristino all'accensione dell'hardware, l'inizializzazione delle periferiche, l'inizializzazione della memoria e il caricamento dell'applicazione definita dall'utente dalla memoria non volatile alla memoria volatile per l'esecuzione.

La figura seguente mostra le diverse fasi della sequenza di avvio.

Figura 1  Sequenza di avvioMicrochip-UG0881-PolarFire-SoC-FPGA-avvio-e-configurazione-fig 1

Preavvio MSS

Dopo aver completato con successo l'inizializzazione del progetto, MSS Pre-boot avvia la sua esecuzione. L'MSS viene rilasciato da un ripristino dopo il completamento di tutte le normali procedure di avvio. Il controller di sistema gestisce la programmazione, l'inizializzazione e la configurazione dei dispositivi. Il preavvio MSS non si verifica se il dispositivo programmato è configurato per la modalità di sospensione del controller di sistema.
La fase di inizializzazione di pre-avvio di MSS è coordinata dal firmware del controller di sistema, sebbene possa utilizzare l'E51 in MSS Core Complex per eseguire alcune parti della sequenza di pre-avvio.
I seguenti eventi si verificano durante i pre-avvii di MSStage:

  • Accensione della memoria non volatile integrata MSS (eNVM)
  • Inizializzazione della riparazione della ridondanza associata alla cache MSS Core Complex L2
  • Autenticazione del codice di avvio dell'utente (se l'opzione di avvio sicuro dell'utente è abilitata)
  • Trasferire l'MSS operativo al codice di avvio dell'utente

L'MSS Core Complex può essere avviato in una delle quattro modalità. La tabella seguente elenca le opzioni di preavvio MSS, che possono essere configurate e programmate nella sNVM. La modalità di avvio è definita dal parametro utente U_MSS_BOOTMODE[1:0]. Ulteriori dati di configurazione di avvio dipendono dalla modalità e sono definiti dal parametro utente U_MSS_BOOTCFG (vedere Tabella 3, pagina 4 e Tabella 5, pagina 6).

Tabella 1 • Modalità di avvio complesse di MSS Core

U_MSS_BOOTMODE[1:0] Modalità Descrizione
0 Stivale inattivo MSS Core Complex si avvia dalla ROM di avvio se MSS non è configurato
1 Avvio non sicuro MSS Core Complex si avvia direttamente dall'indirizzo definito da U_MSS_BOOTADDR
2 Avvio sicuro dell'utente MSS Core Complex si avvia da sNVM
3 Avvio sicuro in fabbrica MSS Core Complex si avvia utilizzando il protocollo di avvio sicuro di fabbrica

L'opzione di avvio viene selezionata come parte del flusso di progettazione Libero. La modifica della modalità può essere ottenuta solo attraverso la generazione di una nuova programmazione FPGA file.

Figura 2 • Flusso di preavvio MSS Microchip-UG0881-PolarFire-SoC-FPGA-avvio-e-configurazione-fig 2

Avvio inattivo

Se l'MSS non è configurato (ad esample, dispositivo vuoto), quindi MSS Core Complex esegue un programma ROM di avvio che mantiene tutti i processori in un ciclo infinito fino a quando un debugger non si connette al target. I registri del vettore di avvio mantengono il proprio valore fino a quando il dispositivo non viene ripristinato o viene programmata una nuova configurazione della modalità di avvio. Per i dispositivi configurati, questa modalità può essere implementata utilizzando il file
U_MSS_BOOTMODE=0 opzione di avvio nel configuratore Libero.

Nota: In questa modalità, U_MSS_BOOTCFG non viene utilizzato.

La figura seguente mostra il flusso di avvio inattivo.
Figura 3 • Flusso di avvio inattivoMicrochip-UG0881-PolarFire-SoC-FPGA-avvio-e-configurazione-fig 3

Avvio non sicuro

In questa modalità, MSS Core Complex viene eseguito da un indirizzo eNVM specificato senza autenticazione. Fornisce l'opzione di avvio più veloce, ma non è prevista l'autenticazione dell'immagine del codice. L'indirizzo può essere specificato impostando U_MSS_BOOTADDR nel Libero Configurator. Questa modalità può essere utilizzata anche per l'avvio da qualsiasi risorsa di memoria Fabric FPGA tramite FIC. Questa modalità è implementata utilizzando il
U_MSS_BOOTMODE=1 opzione di avvio.
MSS Core Complex viene rilasciato dal ripristino con i vettori di avvio definiti da U_MSS_BOOTCFG (come elencato nella tabella seguente).

Tabella 2 • U_MSS_BOOTCFG Utilizzo in modalità di avvio non protetta 1

Offset (byte)  

Dimensioni (byte)

 

Nome

 

Descrizione

0 4 BOOTVEC0 Vettore di avvio per E51
4 4 BOOTVEC1 Vettore di avvio per U540
8 4 BOOTVEC2 Vettore di avvio per U541
16 4 BOOTVEC3 Vettore di avvio per U542
20 4 BOOTVEC4 Vettore di avvio per U543

La figura seguente mostra il flusso di avvio non protetto.
Figura 4 • Flusso di avvio non sicuroMicrochip-UG0881-PolarFire-SoC-FPGA-avvio-e-configurazione-fig 4

Avvio sicuro dell'utente
Questa modalità consente all'utente di implementare il proprio avvio sicuro personalizzato e il codice di avvio sicuro dell'utente viene inserito nella sNVM. La sNVM è una memoria non volatile da 56 KB che può essere protetta dalla funzione Physically Unclonable Function (PUF) integrata. Questo metodo di avvio è considerato protetto perché le pagine sNVM contrassegnate come ROM sono immutabili. All'accensione, il controller di sistema copia il codice di avvio sicuro dell'utente da sNVM a Data Tightly Integrated Memory (DTIM) del core del monitor E51. E51 avvia l'esecuzione del codice di avvio sicuro dell'utente.
Se la dimensione del codice di avvio sicuro dell'utente è maggiore della dimensione del DTIM, l'utente deve dividere il codice di avvio in due stages. La sNVM può contenere i successivi stage della sequenza di avvio dell'utente, che può eseguire l'autenticazione dei successivi boot stage utilizzando l'algoritmo di autenticazione/decrittografia dell'utente.
Se vengono utilizzate pagine autenticate o crittografate, la stessa chiave USK (ovvero,
U_MSS_BOOT_SNVM_USK) deve essere utilizzato per tutte le pagine autenticate/crittografate.
Se l'autenticazione fallisce, MSS Core Complex può essere posto in reset e BOOT_FAIL tampLa bandiera può essere alzata. Questa modalità viene implementata utilizzando l'opzione di avvio U_MSS_BOOTMODE=2.

Tabella 3 •  Utilizzo di U_MSS_BOOTCFG nell'avvio protetto dell'utente

Offset (byte) Dimensioni (byte) Nome Descrizione
0 1 U_MSS_BOOT_SNVM_PAGE Pagina iniziale in SNVM
1 3 PRENOTATO Per allineamento
4 12 U_MSS_BOOT_SNVM_USK Per pagine autenticate/crittografate

La figura seguente mostra il flusso di avvio sicuro dell'utente.
Figura 5 • Flusso di avvio protetto dell'utenteMicrochip-UG0881-PolarFire-SoC-FPGA-avvio-e-configurazione-fig 5

Avvio sicuro di fabbrica
In questa modalità, il controller di sistema legge il Secure Boot Image Certificate (SBIC) da eNVM e convalida l'SBIC. Al termine della convalida, System Controller copia il codice di avvio sicuro di fabbrica dalla sua area di memoria privata e sicura e lo carica nel DTIM del core del monitor E51. L'avvio protetto predefinito esegue un controllo della firma sull'immagine eNVM utilizzando SBIC archiviato in eNVM. Se non vengono segnalati errori, il ripristino viene rilasciato a MSS Core Complex. Se vengono segnalati errori, MSS Core Complex viene posto in reset e BOOT_FAIL tamper bandiera è alzata. Quindi, il controller di sistema si attiva aamper flag che asserisce un segnale al tessuto FPGA per l'azione dell'utente. Questa modalità è implementata utilizzando l'opzione di avvio U_MSS_BOOTMODE=3.

L'SBIC contiene l'indirizzo, la dimensione, l'hash e la firma dell'algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm) del BLOB binario protetto. ECDSA offre una variante dell'algoritmo di firma digitale che utilizza la crittografia a curva ellittica. Contiene anche il vettore di ripristino per ciascun Hardware
thread/core/core del processore (Hart) nel sistema.

Tabella 4 •  Certificato immagine di avvio sicuro (SBIC)

Offset Dimensioni (byte) Valore Descrizione
0 4 INDIRIZZO IMMAGINE Indirizzo di UBL nella mappa di memoria MSS
4 4 IMMAGINE Dimensione di UBL in byte
8 4 BOOTVEC0 Vettore di avvio in UBL per E51
12 4 BOOTVEC1 Vettore di avvio in UBL per U540
16 4 BOOTVEC2 Vettore di avvio in UBL per U541
20 4 BOOTVEC3 Vettore di avvio in UBL per U542
24 4 BOOTVEC4 Vettore di avvio in UBL per U543
28 1 OPZIONI[7:0] Opzioni SBIC
28 3 PRENOTATO  
32 8 VERSIONE Versione SBIC/Immagine
40 16 Servizio di sicurezza informatica Binding DSN facoltativo
56 48 H Hash SHA-384 dell'immagine UBL
104 104 CODICE SIG Firma ECDSA con codifica DER
Totale 208 Byte  

Servizio di sicurezza informatica
Se il campo DSN è diverso da zero, viene confrontato con il numero di serie del dispositivo. Se il confronto fallisce, il boot_fail tamper flag è impostato e l'autenticazione è interrotta.

VERSIONE
Se la revoca SBIC è abilitata da U_MSS_REVOCATION_ENABLE, SBIC viene rifiutato a meno che il valore di VERSION non sia maggiore o uguale alla soglia di revoca.

OPZIONE DI REVOCA SBIC
Se la revoca SBIC è abilitata da U_MSS_REVOCATION_ENABLE e OPTIONS[0] è '1', tutte le versioni SBIC precedenti a VERSION vengono revocate dopo l'autenticazione completa di SBIC. La soglia di revoca rimane al nuovo valore fino a quando non viene nuovamente incrementata di un futuro SBIC con OPTIONS[0] = '1' e un campo VERSION superiore. La soglia di revoca può essere incrementata solo utilizzando questo meccanismo e può essere ripristinata solo da un flusso di bit.
Quando la soglia di revoca viene aggiornata dinamicamente, la soglia viene memorizzata utilizzando lo schema di archiviazione ridondante utilizzato per i passcode in modo tale che un'interruzione dell'alimentazione durante l'avvio del dispositivo non provochi il fallimento di un successivo avvio del dispositivo. Se l'aggiornamento della soglia di revoca fallisce, è garantito che il valore della soglia sia il nuovo valore o quello precedente.

Tabella 5 • U_MSS_BOOTCFG Utilizzo in modalità caricatore di avvio di fabbrica

Offset (byte)  

Dimensioni (byte)

 

Nome

 

Descrizione

0 4 U_MSS_SBIC_ADDR Indirizzo di SBIC nello spazio degli indirizzi MSS
4 4 U_MSS_REVOCATION_ENABLE Abilita revoca SBIC se diverso da zero

La figura seguente mostra il flusso di avvio protetto in fabbrica.
Figura 6 • Flusso di avvio protetto in fabbricaMicrochip-UG0881-PolarFire-SoC-FPGA-avvio-e-configurazione-fig 6 Microchip-UG0881-PolarFire-SoC-FPGA-avvio-e-configurazione-fig 7

Avvio utente MSS 

L'avvio dell'utente MSS avviene quando il controllo viene assegnato dal controller di sistema a MSS Core Complex. Dopo aver eseguito correttamente il preavvio di MSS, il controller di sistema rilascia il ripristino a MSS Core Complex. MSS può essere avviato in uno dei seguenti modi:

  • Applicazione in metallo nudo
  • Applicazione Linux
  • AMP Applicazione

Applicazione in metallo nudo

Le applicazioni bare metal per il SoC PolarFire possono essere sviluppate utilizzando lo strumento SoftConsole. Questo strumento fornisce l'output files sotto forma di .hex che può essere utilizzato nel flusso Libero da includere nel bitstream di programmazione file. Lo stesso strumento può essere utilizzato per eseguire il debug delle applicazioni Bare Metal utilizzando JTAG
interfaccia.
La figura seguente mostra l'applicazione SoftConsole Bare Metal che dispone di cinque hart (core) incluso il core del monitor E51.

Figura 7 • Progetto SoftConsole Microchip-UG0881-PolarFire-SoC-FPGA-avvio-e-configurazione-fig 8

Applicazione Linux

Questa sezione descrive la sequenza di avvio per Linux in esecuzione su tutti i core U54.
Un tipico processo di avvio consiste in tre stages. Il primo stagIl boot loader (FSBL) viene eseguito dal flash di avvio on-chip (eNVM). Il FSBL carica i seconditage boot loader (SSBL) da un dispositivo di avvio alla RAM esterna o alla cache. Il dispositivo di avvio può essere un eNVM o un microcontrollore di memoria incorporato (eMMC) o un flash SPI esterno. SSBL carica il sistema operativo Linux dal dispositivo di avvio alla RAM esterna. Nel terzo stage, Linux viene eseguito dalla RAM esterna.

La figura seguente mostra il flusso del processo di avvio di Linux.
Figura 8 • Flusso tipico del processo di avvio di LinuxMicrochip-UG0881-PolarFire-SoC-FPGA-avvio-e-configurazione-fig 9

I dettagli su FSBL, Device tree, Linux e YOCTO build, come compilare e configurare Linux verranno forniti nella versione futura di questo documento.

AMP Applicazione
Una descrizione dettagliata di Libero MSS Configurator e di come eseguire il debug di applicazioni multiprocessore utilizzando SoftConsole verrà fornita nella versione futura di questo documento.

Diverse fonti di avvio
Da aggiornare nelle versioni future di questo documento.

Configurazione di avvio
Da aggiornare nelle versioni future di questo documento.

Acronimi

In questo documento vengono utilizzati i seguenti acronimi.

Tabella 1 •  Elenco degli acronimi

Acronimo espanso

  • AMP Elaborazione multipla asimmetrica
  • DTIM Dati Memoria strettamente integrata (chiamata anche SRAM)
  • ECDSA Algoritmo di firma digitale della curva ellittica
  • eNVM memoria non volatile incorporata
  • FSBL Prima Stage Caricatore di avvio
  • Cervo Thread hardware/core/core del processore
  • MSS Sottosistema a microprocessore
  • PERO Accensione Reset
  • PUF Funzione fisicamente non clonabile
  • ROM Memoria di sola lettura
  • SCB Ponte del controller di sistema
  • sNVM Memoria non volatile sicura

Cronologia delle revisioni

La cronologia delle revisioni descrive le modifiche che sono state implementate nel documento. Le modifiche sono elencate per revisione, a partire dalla pubblicazione corrente.

Revisione 2.0
Di seguito è riportato un riepilogo delle modifiche apportate in questa revisione.

  • Le informazioni su Factory Secure Boot sono state aggiornate.
  • Le informazioni sull'applicazione Bare Metal sono state aggiornate.

Revisione 1.0
La prima pubblicazione di questo documento.

Sede Microsemi
Un'impresa, Aliso Viejo,
CA 92656 Stati Uniti
All'interno degli USA: +1 Numero di telefono: 800-713-4113
Fuori dagli USA: +1 Numero di telefono: 949-380-6100
Saldi: +1 Numero di telefono: 949-380-6136
Fax: +1 Numero di telefono: 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com

©2020 Microsemi, una consociata interamente controllata di Microchip Technology Inc. Tutti i diritti riservati. Microsemi e il logo Microsemi sono marchi registrati di Microsemi Corporation. Tutti gli altri marchi e marchi di servizio sono di proprietà dei rispettivi proprietari.

Documenti / Risorse

Microchip UG0881 PolarFire SoC FPGA Avvio e configurazione [pdf] Guida utente
UG0881 Avvio e configurazione FPGA SoC PolarFire, UG0881, Avvio e configurazione FPGA SoC PolarFire, Avvio e configurazione

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *