Microchip UG0881 PolarFire SoC FPGA Booting And Configuration
Garanzia
Microsemi ùn dà alcuna garanzia, rapprisentazione, o guaranzia in quantu à l'infurmazioni cuntenute quì o l'adattabilità di i so prudutti è servizii per un scopu particulari, nè Microsemi assume alcuna responsabilità chì deriva da l'applicazione o l'usu di qualsiasi pruduttu o circuitu. I prudutti venduti quì sottu è qualsiasi altri prudutti venduti da Microsemi sò stati sottumessi à una prova limitata è ùn deve micca esse aduprati in cunjunzione cù l'equipaggiu o l'applicazioni critichi per a missione. Ogni specificazione di prestazione hè ritenuta affidabile ma ùn hè micca verificata, è u Cumpratore deve fà è compie tutte e prestazioni è altre teste di i prudutti, solu è inseme cù, o installati in qualsiasi prudutti finali. L'Acquirente ùn deve micca affidatu à qualsiasi dati è specificazioni di prestazione o parametri furniti da Microsemi. Hè a rispunsabilità di u Cumparatore di determinà indipindentamente l'adattabilità di qualsiasi pruduttu è di pruvà è verificà u listessu. L'infurmazioni furnite da Microsemi quì sottu sò furnite "cum'è, induve hè" è cù tutti i difetti, è u risicu tutale assuciatu cù tali informazioni hè interamente cù u Cumpratore. Microsemi ùn cuncede, esplicitamente o implicitamente, à alcuna parte alcunu diritti di patenti, licenze, o qualsiasi altri diritti IP, sia in quantu à tali informazioni stessu o qualcosa descritta da tali informazioni. L'infurmazione furnita in stu documentu hè di proprietà di Microsemi, è Microsemi si riserva u dirittu di fà qualsiasi cambiamenti à l'infurmazioni in stu documentu o à qualsiasi prudutti è servizii in ogni mumentu senza avvisu.
À propositu di Microsemi
Microsemi, una filiale di Microchip Technology Inc. (Nasdaq: MCHP), offre una cartera cumpleta di soluzioni di semiconductor è sistemi per l'aerospaziale è di difesa, cumunicazioni, data center è mercati industriali. I prudutti includenu circuiti integrati di signali mixti analogici d'alta prestazione è di radiazione, FPGA, SoC è ASIC; prudutti di gestione di energia; i dispusitivi di timing è di sincronizazione è suluzione di u tempu precisu, chì stabiliscenu u standard mundiale per u tempu; dispusitivi di trasfurmazioni di voce; suluzione RF; cumpunenti discreti; suluzioni di almacenamento è cumunicazione impresa, tecnulugia di sicurità è scalabile anti-tampi prudutti; suluzioni Ethernet; Power-over-Ethernet IC è midspans; cume capacità di cuncepimentu persunalizatu è servizii. Sapete più à www.microsemi.com.
Booting è cunfigurazione
I FPGA PolarFire SoC utilizanu circuiti di accensione avanzati per assicurà una putenza affidabile à l'accensione è a reset. À l'accensione è u resettore, a sequenza di avviu di PolarFire SoC FPGA seguita u reset di l'alimentazione (POR), l'inizializazione di u dispositivu, l'inizializazione di u disignu, u pre-boot di u Microcontroller Subsystem (MSS) è l'avviamentu di l'utilizatore MSS. Stu documentu descrive MSS pre-boot è MSS User Boot. Per infurmazione nantu à POR, Device Boot and Design initialization, vede UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
Per più infurmazione nantu à e funzioni MSS, vede UG0880: PolarFire SoC MSS User Guide.
Sequenza di Boot-up
A sequenza di boot-up principia quandu u PolarFire SoC FPGA hè alimentatu o resettatu. Finisce quandu u processatore hè prontu à eseguisce un prugramma di applicazione. Questa sequenza di booting passa per parechji stages prima di principià l'esekzione di prugrammi.
Un inseme di operazioni sò eseguite durante u prucessu di Boot-up chì include u reset di l'hardware, l'inizializazione periferica, l'inizializazione di memoria, è a carica di l'applicazione definita da l'utilizatore da a memoria non volatile à a memoria volatile per l'esekzione.
A figura seguente mostra diverse fasi di a sequenza di Boot-up.
Figura 1 Sequenza di Boot-up
MSS Pre-Boot
Dopu à u successu di l'inizializazione di u disignu, MSS Pre-boot principia a so esecuzione. U MSS hè liberatu da un reset dopu à a fine di tutte e prucedure di startup normale. U cuntrollu di u sistema gestisce a prugrammazione, l'inizializazione è a cunfigurazione di i dispositi. MSS Pre-boot ùn accade micca se u dispositivu programatu hè cunfiguratu per u modalità di sospensione di u controller di sistema.
A fase di pre-boot MSS di l'inizializazione hè coordinata da u firmware di u controller di u sistema, ancu s'ellu pò aduprà l'E51 in u MSS Core Complex per realizà certe parti di a sequenza di pre-boot.
I seguenti avvenimenti si verificanu durante u MSS pre-boot stage:
- Accensione di a Memoria Non Volatile integrata MSS (eNVM)
- Inizializazione di a riparazione di redundanza assuciata cù a cache MSS Core Complex L2
- Autentificazione di u codice di boot d'Usuariu (se l'opzione di avviu Secure d'Usuariu hè attivata)
- Trasmette MSS operativa à u codice di Boot d'Usuariu
U MSS Core Complex pò esse lanciatu in unu di quattru modi. A tavula seguente lista l'opzioni di pre-boot MSS, chì ponu esse cunfigurati è programati in sNVM. U modu di boot hè definitu da u paràmetru d'utilizatore U_MSS_BOOTMODE[1:0]. I dati di cunfigurazione di l'avvio supplementari sò dipendenti da u modu è sò definiti da u paràmetru d'utilizatore U_MSS_BOOTCFG (vede a Tabella 3, pagina 4 è a Tabella 5, pagina 6).
Tabella 1 • MSS Core Complex Modi di Boot
U_MSS_BOOTMODE[1:0] | Modu | Descrizzione |
0 | Stivale inattivu | MSS Core Complex si avvia da a ROM di boot se MSS ùn hè micca cunfiguratu |
1 | Boot non sicura | MSS Core Complex si avvia direttamente da l'indirizzu definitu da U_MSS_BOOTADDR |
2 | Boot sicuru d'utilizatore | Stivali MSS Core Complex da sNVM |
3 | Boot sicura di fabbrica | Stivali MSS Core Complex chì utilizanu u protokollu di boot sicuru di fabbrica |
L'opzione di boot hè sceltu cum'è parte di u flussu di disignu Libero. U cambiamentu di u modu pò esse ottenutu solu per mezu di a generazione di una nova prugrammazione FPGA file.
Figura 2 • MSS Pre-boot Flow
Idle Boot
Se u MSS ùn hè micca cunfiguratu (per esample, dispositivu in biancu), allora u MSS Core Complex eseguisce un prugramma ROM di boot chì cuntene tutti i prucessori in un ciclu infinitu finu à chì un debugger si cunnetta à u mira. I registri di vettori di boot mantene u so valore finu à chì u dispusitivu hè resettatu o una nova cunfigurazione di u modu di boot hè programata. Per i dispositi cunfigurati, stu modu pò esse implementatu cù u
U_MSS_BOOTMODE=0 opzione di boot in u configuratore Libero.
Nota: In questu modu, U_MSS_BOOTCFG ùn hè micca usatu.
A figura seguente mostra u flussu di l'iniziu Idle.
Figura 3 • Idle Boot Flow
Boot micca sicuru
In questu modu, u MSS Core Complex eseguisce da un indirizzu eNVM specificatu senza autentificazione. Fornisce l'opzione di boot più veloce, ma ùn ci hè micca autentificazione di l'imagine di codice. L'indirizzu pò esse specificatu da u set U_MSS_BOOTADDR in u Configuratore Libero. Stu modu pò ancu esse usatu per boot da qualsiasi risorse di memoria FPGA Fabric attraversu FIC. Stu modu hè implementatu cù u
U_MSS_BOOTMODE=1 opzione di avvio.
U MSS Core Complex hè liberatu da u reset cù i vettori di boot definiti da U_MSS_BOOTCFG (cum'è elencatu in a tavula seguente).
Tabella 2 • U_MSS_BOOTCFG Utilizazione in Modu di Boot Non-Secure 1
Offset (byte) |
Dimensione (bytes) |
Nome |
Descrizzione |
0 | 4 | BOOTVEC0 | Vettore di boot per E51 |
4 | 4 | BOOTVEC1 | Vettore di boot per U540 |
8 | 4 | BOOTVEC2 | Vettore di boot per U541 |
16 | 4 | BOOTVEC3 | Vettore di boot per U542 |
20 | 4 | BOOTVEC4 | Vettore di boot per U543 |
A figura seguente mostra u flussu di boot Non-secure.
Figura 4 • Flussu di boot micca sicuru
User Secure Boot
Stu modu permette à l'utilizatori di implementà u so propiu boot sicuru persunalizatu è u codice di boot sicuru d'utilizatore hè piazzatu in u sNVM. L'sNVM hè una memoria non volatile di 56 KB chì pò esse prutetta da a Funzione Physically Unclonable (PUF) integrata. Stu metudu di boot hè cunsideratu assicuratu perchè e pagine sNVM marcate cum'è ROM sò immutable. À l'accensione, u cuntrollu di u sistema copia u codice di avviu sicuru d'utilizatore da sNVM à a Memoria strettamente integrata di dati (DTIM) di u core E51 Monitor. E51 cumencia à eseguisce u codice di boot sicuru d'utilizatore.
Se a dimensione di u codice di boot sicuru d'utilizatore hè più di a dimensione di u DTIM, allora l'utente hà bisognu di sparte u codice di boot in dui s.tages. U sNVM pò cuntene u prossimu stage di a sequenza di boot d'utilizatore, chì pò realizà l'autentificazione di u prossimu boot stage utilizendu l'algoritmu di autentificazione / decrittografia di l'utilizatori.
Se pagine autentificate o criptate sò aduprate allora a stessa chjave USK (vale à dì,
U_MSS_BOOT_SNVM_USK) deve esse usatu per tutte e pagine autentificate / criptate.
Se l'autentificazione falla, u MSS Core Complex pò esse piazzatu in reset è u BOOT_FAIL tampa bandiera pò esse alzata. Stu modu hè implementatu cù l'opzione di boot U_MSS_BOOTMODE=2.
Tabella 3 • U_MSS_BOOTCFG Usage in User Secure Boot
Offset (byte) | Dimensione (bytes) | Nome | Descrizzione |
0 | 1 | U_MSS_BOOT_SNVM_PAGE | Pagina iniziale in SNVM |
1 | 3 | RISERVATA | Per l'allineamentu |
4 | 12 | U_MSS_BOOT_SNVM_USK | Per e pagine autentificate / criptate |
A figura seguente mostra u flussu di boot sicuru d'utilizatore.
Figura 5 • User Secure Boot Flow
Factory Secure Boot
In questu modu, u cuntrollu di u sistema leghje u Secure Boot Image Certificate (SBIC) da eNVM è valida u SBIC. In una validazione riescita, u Controller di Sistema copia u codice di boot di fabbrica sicura da a so zona di memoria privata è sicura è u carica in u DTIM di u core E51 Monitor. U boot sicuru predeterminatu esegue una verificazione di a firma nantu à l'imagine eNVM utilizendu SBIC chì hè almacenatu in eNVM. Se ùn ci sò micca signalati errori, u reset hè liberatu à u MSS Core Complex. Se l'errori sò signalati, u MSS Core Complex hè piazzatu in reset è u BOOT_FAIL tampa bandiera hè alzata. Allora, u cuntrollu di u sistema si attiva àamper flag chì affirmeghja un signalu à u tissu FPGA per l'azzione di l'utilizatori. Stu modu hè implementatu cù l'opzione di boot U_MSS_BOOTMODE=3.
U SBIC cuntene l'indirizzu, a dimensione, l'hash, è a firma di l'Algoritmu di Signatura Digitale di Curva Ellittica (ECDSA) di u blob binariu prutettu. ECDSA offre una variante di l'algoritmu di firma digitale chì usa a criptografia di curva ellittica. Contene ancu u vettore reset per ogni Hardware
thread/core/processor core (Hart) in u sistema.
Tabella 4 • Secure Boot Image Certificate (SBIC)
Offset | Dimensione (bytes) | Valore | Descrizzione |
0 | 4 | IMAGEADDR | Indirizzu di UBL in a mappa di memoria MSS |
4 | 4 | IMAGELEN | Dimensione di UBL in byte |
8 | 4 | BOOTVEC0 | Vettore di boot 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 | RISERVATA | |
32 | 8 | VERSIONE | Versione SBIC/Image |
40 | 16 | DSN | Legatura DSN opzionale |
56 | 48 | H | UBL image SHA-384 hash |
104 | 104 | CODESIG | Signatura ECDSA codificata DER |
Totale | 208 | Bytes |
DSN
Se u campu DSN ùn hè micca zero, hè paragunatu cù u numeru di serie di u dispusitivu. Se a comparazione falla, u boot_fail tamper flag hè stallatu è l'autentificazione hè abortita.
VERSIONE
Se a revocazione SBIC hè attivata da U_MSS_REVOCATION_ENABLE, u SBIC hè rifiutatu salvu chì u valore di VERSION hè più grande o uguale à u limitu di revocazione.
OPZIONE DI REVOCAZIONE SBIC
Se a revocazione SBIC hè attivata da U_MSS_REVOCATION_ENABLE è OPTIONS[0] hè "1", tutte e versioni SBIC menu di VERSION sò revocate dopu l'autentificazione cumpleta di u SBIC. U limitu di revocazione resta à u novu valore finu à ch'ellu aumenta di novu da un futuru SBIC cù OPTIONS [0] = '1' è un campu VERSIONE più altu. U limitu di revocazione pò esse aumentatu solu cù stu mecanismu è pò esse resettatu solu da un flussu di bit.
Quandu u limitu di revocazione hè aghjurnatu dinamicamente, u limitu hè almacenatu utilizendu u schema di almacenamento redundante utilizatu per i passcodes in modu chì un fallimentu di energia durante l'avviamentu di u dispositivu ùn pruvucarà micca un fallimentu di l'avviamentu di u dispositivu sussegwenti. Se l'aghjurnamentu di u limitu di revoca falla, hè garantitu chì u valore di u limitu hè u novu valore o u precedente.
Tabella 5 • U_MSS_BOOTCFG Usage in Factory Boot Loader Mode
Offset (byte) |
Dimensione (bytes) |
Nome |
Descrizzione |
0 | 4 | U_MSS_SBIC_ADDR | Indirizzu di SBIC in u spaziu di indirizzu MSS |
4 | 4 | U_MSS_REVOCATION_ENABLE | Abilita a revocazione SBIC se micca zero |
A figura seguente mostra u flussu di boot sicuru di fabbrica.
Figura 6 • Factory Secure Boot Flow
MSS User Boot
L'avviamentu di l'utilizatore MSS si faci quandu u cuntrollu hè datu da u Controller di Sistema à u MSS Core Complex. Dopu avè successu MSS pre-boot, u controller di u sistema libera u reset à u MSS Core Complex. MSS pò esse avviatu in unu di i seguenti modi:
- Applicazione Bare Metal
- Applicazione Linux
- AMP Applicazione
Applicazione Bare Metal
L'applicazioni bare metal per u SoC PolarFire ponu esse sviluppate cù l'uttellu SoftConsole. Stu strumentu furnisce l'output files in a forma di .hex chì pò esse usatu in u flussu di Libero per include in u bitstream di prugrammazione file. U listessu strumentu pò esse usatu per debug l'applicazioni Bare Metal cù JTAG
interfaccia.
A figura seguente mostra l'applicazione SoftConsole Bare Metal chì hà cinque harts (Core) cumprese u core E51 Monitor.
Figura 7 • Prughjettu SoftConsole
Applicazione Linux
Questa sezione descrive a sequenza di boot per Linux in esecuzione in tutti i core U54.
Un prucessu di boot tipicu hè custituitu di trè stages. U primu stage boot loader (FSBL) hè eseguitu da u flash di boot in chip (eNVM). L'FSBL carica a seconda stage boot loader (SSBL) da un dispositivu di boot à RAM esterna o Cache. U dispusitivu di boot pò esse eNVM o microcontroller di memoria integrata (eMMC) o SPI Flash esternu. U SSBL carica u sistema operatore Linux da u dispositivu di boot à a RAM esterna. In u terzu stage, Linux hè eseguitu da a RAM esterna.
A figura seguente mostra u flussu di u Processu di Boot Linux.
Figura 8 • Flussu tipicu di prucessu di boot di Linux
I dettagli di FSBL, Device tree, Linux è YOCTO build, cumu custruisce è cunfigurà Linux seranu furniti in a futura versione di stu documentu.
AMP Applicazione
Una descrizione dettagliata di Libero MSS Configurator è cumu debug l'applicazioni multi-processore cù SoftConsole serà furnita in a futura versione di stu documentu.
Diverse Fonti di Booting
Per esse aghjurnatu in e versioni future di stu documentu.
Configurazione di Boot
Per esse aghjurnatu in e versioni future di stu documentu.
Acronimi
I seguenti acronimi sò usati in stu documentu.
Tabella 1 • Lista di acronimi
Acronym Expanded
- AMP Multi-processamentu asimmetricu
- DTIM Memoria strettamente integrata di dati (chjamata ancu SRAM)
- ECDSA Algoritmu di firma digitale di curva ellittica
- eNVM Memoria Non-Volatile integrata
- FSBL Prima Stage Boot Loader
- Hart Hardware thread/core/processor core
- MSS Subsistema di microprocessori
- POR Power on Reset
- PUF Funzione Fisicamente Unclonable
- ROM Memoria di sola lettura
- SCB Ponte di cuntrollu di u sistema
- sNVM Memoria non volatile sicura
Storia di rivisione
A storia di rivisione descrive i cambiamenti chì sò stati implementati in u documentu. I cambiamenti sò listati per rivisione, cuminciendu cù a publicazione attuale.
Revisione 2.0
Eccu un riassuntu di i cambiamenti fatti in sta rivisione.
- L'infurmazione nantu à Factory Secure Boot hè stata aghjurnata.
- L'infurmazione nantu à l'applicazione Bare Metal hè stata aghjurnata.
Revisione 1.0
A prima publicazione di stu documentu.
Sede Microsemi
One Enterprise, Aliso Viejo,
CA 92656 USA
Dentru i Stati Uniti: +1 800-713-4113
Fora di i Stati Uniti: +1 949-380-6100
Vendite: +1 949-380-6136
Fax: +1 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com
© 2020 Microsemi, una subsidiaria interamente di Microchip Technology Inc. Tutti i diritti riservati. Microsemi è u logo Microsemi sò marchi registrati di Microsemi Corporation. Tutti l'altri marchi è marchi di serviziu sò a pruprietà di i so rispettivi pruprietarii.
Documenti / Risorse
![]() |
Microchip UG0881 PolarFire SoC FPGA Booting And Configuration [pdfGuida di l'utente UG0881 PolarFire SoC FPGA Booting And Configuration, UG0881, PolarFire SoC FPGA Booting And Configuration, Booting And Configuration |