Mikrosemi-LGOO

Mikroskyfie UG0881 PolarFire SoC FPGA selflaai en konfigurasie

Mikroskyfie-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-product

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-volgordeMikroskyfie-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 1

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 Mikroskyfie-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 2

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 FlowMikroskyfie-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 3

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 selflaaivloeiMikroskyfie-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 4

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 opstartvloeiMikroskyfie-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 5

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 selflaaivloeiMikroskyfie-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 6 Mikroskyfie-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 7

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 Mikroskyfie-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 8

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-opstartprosesvloeiMikroskyfie-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 9

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

Verwysings

Los 'n opmerking

Jou e-posadres sal nie gepubliseer word nie. Vereiste velde is gemerk *