Mikroskyfie UG0881 PolarFire SoC FPGA selflaai en konfigurasie
Waarborg
Microsemi gee geen waarborg, voorstelling of waarborg aangaande die inligting hierin vervat of die geskiktheid van sy produkte en dienste vir enige spesifieke doel nie, en Microsemi aanvaar ook geen aanspreeklikheid hoegenaamd wat voortspruit uit die toepassing of gebruik van enige produk of stroombaan nie. Die produkte wat hieronder verkoop word en enige ander produkte wat deur Microsemi verkoop word, is onderhewig aan beperkte toetsing en moet nie saam met missiekritieke toerusting of toepassings gebruik word nie. Enige prestasiespesifikasies word geglo betroubaar te wees, maar is nie geverifieer nie, en Koper moet alle prestasie- en ander toetse van die produkte uitvoer en voltooi, alleen en saam met, of geïnstalleer in, enige eindprodukte. Koper sal nie staatmaak op enige data en prestasiespesifikasies of parameters wat deur Microsemi verskaf word nie. Dit is die Koper se verantwoordelikheid om onafhanklik die geskiktheid van enige produkte te bepaal en dit te toets en te verifieer. Die inligting wat hieronder deur Microsemi verskaf word, word verskaf "soos dit is, waar is" en met alle foute, en die hele risiko verbonde aan sodanige inligting is geheel en al by die Koper. Microsemi verleen nie, uitdruklik of implisiet, aan enige party enige patentregte, lisensies of enige ander IP-regte nie, hetsy met betrekking tot sodanige inligting self of enigiets wat deur sodanige inligting beskryf word. Inligting wat in hierdie dokument verskaf word, is die eiendom van Microsemi, en Microsemi behou die reg voor om enige veranderinge aan die inligting in hierdie dokument of aan enige produkte en dienste te eniger tyd sonder kennisgewing aan te bring.
Oor Microsemi
Microsemi, 'n volfiliaal van Microchip Technology Inc. (Nasdaq: MCHP), bied 'n omvattende portefeulje van halfgeleier- en stelseloplossings vir lugvaart en verdediging, kommunikasie, datasentrums en industriële markte. Produkte sluit in hoëwerkverrigting en straling-geharde analoog gemengde-sein geïntegreerde stroombane, FPGA's, SoC's en ASIC's; kragbestuurprodukte; tydsberekening en sinchronisasie toestelle en presiese tyd oplossings, stel die wêreld se standaard vir tyd; stemverwerkingstoestelle; RF oplossings; diskrete komponente; onderneming berging en kommunikasie oplossings, sekuriteit tegnologie en skaalbare anti-tamper produkte; Ethernet-oplossings; Power-over-Ethernet IC's en midspans; sowel as persoonlike ontwerp vermoëns en dienste. Kom meer te wete by www.microsemi.com.
Opstart en konfigurasie
PolarFire SoC FPGA's gebruik gevorderde opstartkringe om betroubare krag aan te verseker by aanskakeling en terugstelling. By aanskakeling en terugstelling volg PolarFire SoC FPGA-selflaai-volgorde aanskakel-terugstelling (POR), Toestellaai, Ontwerpinitialisasie, Mikrobeheerder-substelsel (MSS) voorlaai en MSS-gebruikerselflaai. Hierdie dokument beskryf MSS pre-boot en MSS User Boot. Vir inligting oor POR, Device Boot and Design initialization, sien UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
Vir meer inligting oor MSS-kenmerke, sien UG0880: PolarFire SoC MSS-gebruikersgids.
Opstart-volgorde
Die opstartvolgorde begin wanneer die PolarFire SoC FPGA aangeskakel of teruggestel word. Dit eindig wanneer die verwerker gereed is om 'n toepassingsprogram uit te voer. Hierdie opstartvolgorde loop deur verskeie stages voordat dit begin met die uitvoering van programme.
'n Stel bewerkings word tydens die opstartproses uitgevoer wat aanskakel-terugstelling van die hardeware, perifere inisialisering, geheue-inisialisering en die laai van die gebruikergedefinieerde toepassing van nie-vlugtige geheue na die vlugtige geheue vir uitvoering insluit.
Die volgende figuur toon verskillende fases van die opstartvolgorde.
Figuur 1 Opstart-volgorde
MSS Vooraflaai
Na suksesvolle voltooiing van Ontwerpinitialisasie, begin MSS Pre-boot die uitvoering daarvan. Die MSS word vrygestel van 'n terugstelling na voltooiing van alle normale opstartprosedures. Die stelselbeheerder bestuur die programmering, inisialisering en konfigurasie van die toestelle. MSS Pre-boot vind nie plaas as die geprogrammeerde toestel vir stelselbeheerder-opskortmodus opgestel is nie.
Die MSS-voorlaaifase van inisialisering word gekoördineer deur stelselbeheerder-firmware, alhoewel dit van die E51 in die MSS Core Complex gebruik kan maak om sekere dele van die voor-selflaai-volgorde uit te voer.
Die volgende gebeure vind plaas tydens die MSS pre-boot stage:
- Opstart van die MSS ingebedde nie-vlugtige geheue (eNVM)
- Inisialisering van die oortolligheidherstel wat met die MSS Core Complex L2-kas geassosieer word
- Bekragtiging van gebruikerslaaikode (indien gebruikerveilige opstartopsie geaktiveer is)
- Oorhandig operasionele MSS aan User Boot kode
Die MSS Core Complex kan in een van vier modusse begin word. Die volgende tabel lys die MSS-voorlaai-opsies, wat in die sNVM gekonfigureer en geprogrammeer kan word. Die selflaaimodus word gedefinieer deur die gebruikerparameter U_MSS_BOOTMODE[1:0]. Bykomende selflaaikonfigurasiedata is modusafhanklik en word gedefinieer deur die gebruikerparameter U_MSS_BOOTCFG (sien Tabel 3, bladsy 4 en Tabel 5, bladsy 6).
Tabel 1 • MSS Core Complex Boot Modes
U_MSS_BOOTMODE[1:0] | Modus | Beskrywing |
0 | Idle boot | MSS Core Complex begin vanaf selflaai-ROM as MSS nie opgestel is nie |
1 | Nie-veilige selflaai | MSS Core Complex stewels direk vanaf adres gedefinieer deur die U_MSS_BOOTADDR |
2 | Gebruiker veilige selflaai | MSS Core Complex stewels van sNVM |
3 | Fabrieksveilige laaier | MSS Core Complex stewels met behulp van die fabriek veilige selflaai protokol |
Die laairuim-opsie word gekies as deel van die Libero-ontwerpvloei. Die verandering van die modus kan slegs bereik word deur die generering van 'n nuwe FPGA-programmering file.
Figuur 2 • MSS Pre-boot Flow
Idle Boot
As die MSS nie opgestel is nie (bvample, leë toestel), voer die MSS Core Complex 'n opstart-ROM-program uit wat al die verwerkers in 'n oneindige lus hou totdat 'n ontfouter aan die teiken koppel. Die selflaaivektorregisters behou hul waarde totdat die toestel teruggestel word of 'n nuwe selflaaimoduskonfigurasie geprogrammeer word. Vir gekonfigureerde toestelle kan hierdie modus geïmplementeer word met behulp van die
U_MSS_BOOTMODE=0 selflaai-opsie in die Libero-konfigureerder.
Let wel: In hierdie modus word U_MSS_BOOTCFG nie gebruik nie.
Die volgende figuur toon die Idle boot flow.
Figuur 3 • Idle Boot Flow
Nie-veilige selflaai
In hierdie modus word die MSS Core Complex uitgevoer vanaf 'n gespesifiseerde eNVM-adres sonder verifikasie. Dit bied die vinnigste selflaai-opsie, maar daar is geen verifikasie van die kodebeeld nie. Die adres kan gespesifiseer word deur U_MSS_BOOTADDR in die Libero Configurator te stel. Hierdie modus kan ook gebruik word om vanaf enige FPGA Fabric-geheuehulpbron deur FIC te begin. Hierdie modus word geïmplementeer met behulp van die
U_MSS_BOOTMODE=1 selflaai opsie.
Die MSS Core Complex word vrygestel van herstel met selflaaivektore wat deur U_MSS_BOOTCFG gedefinieer word (soos in die volgende tabel gelys).
Tabel 2 • U_MSS_BOOTCFG Gebruik in nie-veilige selflaaimodus 1
Offset (grepe) |
Grootte (grepe) |
Naam |
Beskrywing |
0 | 4 | BOOTVEC0 | Selflaai vektor vir E51 |
4 | 4 | BOOTVEC1 | Boot vektor vir U540 |
8 | 4 | BOOTVEC2 | Boot vektor vir U541 |
16 | 4 | BOOTVEC3 | Boot vektor vir U542 |
20 | 4 | BOOTVEC4 | Boot vektor vir U543 |
Die volgende figuur toon die nie-veilige selflaaivloei.
Figuur 4 • Nie-veilige selflaaivloei
Gebruiker veilige selflaai
Hierdie modus laat gebruiker toe om hul eie persoonlike veilige selflaai te implementeer en die gebruiker se veilige selflaaikode word in die sNVM geplaas. Die sNVM is 'n 56 KB nie-vlugtige geheue wat beskerm kan word deur die ingeboude Fisies Onkloonbare Funksie (PUF). Hierdie selflaaimetode word as veilig beskou omdat sNVM-bladsye wat as ROM gemerk is, onveranderlik is. By aanskakel kopieer die stelselbeheerder die gebruiker se veilige selflaaikode van sNVM na Data Tightly Integrated Memory (DTIM) van die E51 Monitor-kern. E51 begin om die gebruiker se veilige selflaaikode uit te voer.
As die grootte van die gebruiker se veilige selflaaikode meer is as die grootte van die DTIM, moet die gebruiker die selflaaikode in twee s verdeeltages. Die sNVM kan die volgende s bevattage van die gebruiker selflaai volgorde, wat verifikasie van die volgende selflaai s kan uitvoertage gebruik van die gebruikersverifikasie/dekripsiealgoritme.
As geverifieerde of geënkripteerde bladsye gebruik word, dan is dieselfde USK-sleutel (dit is,
U_MSS_BOOT_SNVM_USK) moet vir alle geverifieerde/geënkripteerde bladsye gebruik word.
As verifikasie misluk, kan die MSS Core Complex in reset geplaas word en die BOOT_FAIL tamper vlag gehys kan word. Hierdie modus word geïmplementeer deur die U_MSS_BOOTMODE=2-opstartopsie te gebruik.
Tabel 3 • U_MSS_BOOTCFG Gebruik in User Secure Boot
Offset (grepe) | Grootte (grepe) | Naam | Beskrywing |
0 | 1 | U_MSS_BOOT_SNVM_PAGE | Beginblad in SNVM |
1 | 3 | GERESERVEERD | Vir belyning |
4 | 12 | U_MSS_BOOT_SNVM_USK | Vir geverifieerde/geïnkripteer bladsye |
Die volgende figuur toon die gebruiker se veilige selflaaivloei.
Figuur 5 • Gebruikersveilige opstartvloei
Factory Veilige Boot
In hierdie modus lees die stelselbeheerder die Secure Boot Image Certificate (SBIC) vanaf eNVM en valideer die SBIC. By suksesvolle validering kopieer Stelselbeheerder die fabrieksveilige selflaaikode van sy private, veilige geheuearea af en laai dit in die DTIM van die E51 Monitor-kern. Die verstek veilige selflaai voer 'n handtekeningkontrole uit op die eNVM-beeld met SBIC wat in eNVM gestoor word. As geen foute gerapporteer word nie, word terugstelling na die MSS Core Complex vrygestel. As foute aangemeld word, word die MSS Core Complex in reset geplaas en die BOOT_FAIL tampdaar word vlag gehys. Dan aktiveer die stelselbeheerder byamper vlag wat 'n sein aan die FPGA-stof bevestig vir gebruikersaksie. Hierdie modus word geïmplementeer met behulp van die U_MSS_BOOTMODE=3 selflaai opsie.
Die SBIC bevat die adres, grootte, hash en Elliptic Curve Digital Signature Algorithm (ECDSA) handtekening van die beskermde binêre blob. ECDSA bied 'n variant van die Digital Signature Algorithm wat elliptiese kromme kriptografie gebruik. Dit bevat ook die terugstelvektor vir elke hardeware
draad/kern/verwerkerkern (Hart) in die stelsel.
Tabel 4 • Secure Boot Image Certificate (SBIC)
Offset | Grootte (grepe) | Waarde | Beskrywing |
0 | 4 | IMAGEADDR | Adres van UBL in MSS geheue kaart |
4 | 4 | IMAGELEN | Grootte van UBL in grepe |
8 | 4 | BOOTVEC0 | Selflaai vektor in UBL vir E51 |
12 | 4 | BOOTVEC1 | Selflaai vektor in UBL vir U540 |
16 | 4 | BOOTVEC2 | Selflaai vektor in UBL vir U541 |
20 | 4 | BOOTVEC3 | Selflaai vektor in UBL vir U542 |
24 | 4 | BOOTVEC4 | Selflaai vektor in UBL vir U543 |
28 | 1 | OPSIES[7:0] | SBIC opsies |
28 | 3 | GERESERVEERD | |
32 | 8 | WEERGAWE | SBIC/Beeld weergawe |
40 | 16 | DSN | Opsionele DSN-binding |
56 | 48 | H | UBL beeld SHA-384 hash |
104 | 104 | KODESIG | DER-gekodeerde ECDSA handtekening |
Totaal | 208 | Bytes |
DSN
As die DSN-veld nie-nul is nie, word dit vergelyk met die toestel se eie reeksnommer. As die vergelyking misluk, dan is die boot_fail tamper vlag is gestel en stawing word afgelas.
WEERGAWE
As SBIC-herroeping geaktiveer word deur U_MSS_REVOCATION_ENABLE, word die SBIC verwerp tensy die waarde van VERSION groter as of gelyk aan die herroepingsdrempel is.
SBIC HERROEPINGSOPSIE
As SBIC-herroeping geaktiveer word deur U_MSS_REVOCATION_ENABLE en OPTIONS[0] is '1', word al die SBIC-weergawes minder as VERSION herroep met volledige verifikasie van die SBIC. Die herroepingsdrempel bly by die nuwe waarde totdat dit weer met 'n toekomstige SBIC met OPTIONS[0] = '1' en 'n hoër VERSIE veld toeneem. Die herroepingsdrempel mag slegs met hierdie meganisme verhoog word en kan slegs deur 'n bisstroom teruggestel word.
Wanneer die herroepingsdrempel dinamies opgedateer word, word die drempel gestoor deur gebruik te maak van die oortollige bergingskema wat vir wagkodes gebruik word, sodat 'n kragonderbreking tydens toestelselflaai nie veroorsaak dat 'n daaropvolgende toestelselflaai misluk nie. As die opdatering van herroepingsdrempel misluk, is dit gewaarborg dat die drempelwaarde óf die nuwe waarde óf die vorige een is.
Tabel 5 • U_MSS_BOOTCFG Gebruik in Factory Boot Loader-modus
Offset (grepe) |
Grootte (grepe) |
Naam |
Beskrywing |
0 | 4 | U_MSS_SBIC_ADDR | Adres van SBIC in MSS-adresspasie |
4 | 4 | U_MSS_REVOCATION_ENABLE | Aktiveer SBIC-herroeping indien nie-nul nie |
Die volgende figuur toon die fabrieksveilige selflaaivloei.
Figuur 6 • Fabrieksveilige selflaaivloei
MSS User Boot
MSS gebruiker selflaai vind plaas wanneer die beheer gegee word vanaf Stelselbeheerder na MSS Core Complex. By suksesvolle MSS-voorlaai stel die stelselbeheerder die terugstelling na die MSS Core Complex vry. MSS kan op een van die volgende maniere opgelaai word:
- Kaalmetaaltoepassing
- Linux Aansoek
- AMP Toepassing
Kaalmetaaltoepassing
Die kaalmetaaltoepassings vir die PolarFire SoC kan ontwikkel word met behulp van SoftConsole-instrument. Hierdie instrument verskaf die uitset files in die vorm van .hex wat in die Libero-vloei gebruik kan word om in die programmeringsbitstroom in te sluit file. Dieselfde instrument kan gebruik word om die Bare Metal-toepassings te ontfout deur JTAG
koppelvlak.
Die volgende figuur toon die SoftConsole Bare Metal-toepassing wat vyf harte (kerns) het, insluitend E51 Monitor-kern.
Figuur 7 • Sagtekonsole-projek
Linux Aansoek
Hierdie afdeling beskryf die opstartvolgorde vir Linux wat op alle U54-kerne loop.
'n Tipiese selflaaiproses bestaan uit drie stages. Die eerste stagDie selflaailaaier (FSBL) word uitgevoer vanaf die on-chip Boot flash (eNVM). Die FSBL laai die tweede stage selflaailaaier (SSBL) van 'n selflaaitoestel na eksterne RAM of Cache. Die selflaaitoestel kan eNVM of ingeboude geheue mikrobeheerder (eMMC) of eksterne SPI Flash wees. Die SSBL laai die Linux-bedryfstelsel van selflaaitoestel na eksterne RAM. In die derde atage, Linux word vanaf die eksterne RAM uitgevoer.
Die volgende figuur toon die Linux-opstartprosesvloei.
Figuur 8 • Tipiese Linux-opstartprosesvloei
Besonderhede van FSBL, Device tree, Linux en YOCTO bou, hoe om Linux te bou en op te stel, sal in die toekomstige vrystelling van hierdie dokument verskaf word.
AMP Toepassing
Gedetailleerde beskrywing van Libero MSS Configurator en hoe om multi-verwerker toepassings te ontfout met behulp van SoftConsole sal verskaf word in die toekomstige vrystelling van hierdie dokument.
Verskillende bronne van selflaai
Om bygewerk te word in toekomstige weergawes van hierdie dokument.
Selflaai konfigurasie
Om bygewerk te word in toekomstige weergawes van hierdie dokument.
Akronieme
Die volgende akronieme word in hierdie dokument gebruik.
Tabel 1 • Lys van akronieme
Akroniem uitgebrei
- AMP Asimmetriese multi-verwerking
- DTIM Data styf geïntegreerde geheue (ook genoem as SRAM)
- ECDSA Elliptiese Kromme Digitale Handtekening Algoritme
- eNVM ingebedde nie-vlugtige geheue
- FSBL Eerste Stage Selflaailaaier
- Hart Hardeware draad/kern/verwerker kern
- MSS Mikroverwerker substelsel
- POR Krag aan Herstel
- PUF Fisies onkloonbare funksie
- ROM Leesalleen-geheue
- SCB Stelselbeheerderbrug
- sNVM Veilige nie-vlugtige geheue
Hersieningsgeskiedenis
Die hersieningsgeskiedenis beskryf die veranderinge wat in die dokument geïmplementeer is. Die veranderinge word gelys volgens hersiening, wat begin met die huidige publikasie.
Hersiening 2.0
Die volgende is 'n opsomming van die veranderinge wat in hierdie hersiening gemaak is.
- Inligting oor Factory Secure Boot is opgedateer.
- Inligting oor Bare Metal Application is opgedateer.
Hersiening 1.0
Die eerste publikasie van hierdie dokument.
Mikrosemi Hoofkwartier
One Enterprise, Aliso Viejo,
CA 92656 VSA
Binne die VSA: +1 800-713-4113
Buite die VSA: +1 949-380-6100
Verkope: +1 949-380-6136
Faks: +1 949-215-4996
E-pos: sales.support@microsemi.com
www.microsemi.com
©2020 Microsemi, 'n volfiliaal van Microchip Technology Inc. Alle regte voorbehou. Microsemi en die Microsemi-logo is geregistreerde handelsmerke van Microsemi Corporation. Alle ander handelsmerke en diensmerke is die eiendom van hul onderskeie eienaars.
Dokumente / Hulpbronne
![]() |
Mikroskyfie UG0881 PolarFire SoC FPGA selflaai en konfigurasie [pdf] Gebruikersgids UG0881 PolarFire SoC FPGA selflaai en konfigurasie, UG0881, PolarFire SoC FPGA selflaai en konfigurasie, selflaai en konfigurasie |