Microsemi-LGOO

Microchip UG0881 PolarFire SoC FPGA booting en konfiguraasje

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

Garânsje

Microsemi jout gjin garânsje, fertsjintwurdiging of garânsje oangeande de ynformaasje befette hjiryn of de geskiktheid fan har produkten en tsjinsten foar in bepaald doel, en Microsemi nimt ek gjin oanspraaklikens oan dy't fuortkomme út 'e tapassing of gebrûk fan elk produkt of circuit. De produkten ferkocht hjirûnder en alle oare produkten ferkocht troch Microsemi binne ûnderwurpen oan beheinde testen en moatte net brûkt wurde yn kombinaasje mei missy-krityske apparatuer of applikaasjes. Alle prestaasjesspesifikaasjes wurde leaud betrouber te wêzen, mar wurde net ferifiearre, en Keaper moat alle prestaasjes en oare testen fan 'e produkten útfiere en foltôgje, allinich en tegearre mei, of ynstalleare yn, alle einprodukten. Keaper sil net fertrouwe op gegevens en prestaasjesspesifikaasjes of parameters levere troch Microsemi. It is de ferantwurdlikens fan 'e keaper om selsstannich de geskiktheid fan alle produkten te bepalen en itselde te testen en te ferifiearjen. De ynformaasje levere troch Microsemi hjirûnder wurdt levere "as is, wêr is" en mei alle fouten, en it folsleine risiko ferbûn mei sokke ynformaasje is folslein by de keaper. Microsemi jout net, eksplisyt of ymplisyt, oan ien partij gjin oktroairjochten, lisinsjes, of hokker oare IP-rjochten, itsij oangeande sokke ynformaasje sels as alles beskreaun troch sokke ynformaasje. Ynformaasje jûn yn dit dokumint is eigendom fan Microsemi, en Microsemi behâldt it rjocht foar om alle feroarings oan de ynformaasje yn dit dokumint of oan alle produkten en tsjinsten op elts momint sûnder notice.

Oer Microsemi

Microsemi, in folslein eigendom dochterûndernimming fan Microchip Technology Inc. (Nasdaq: MCHP), biedt in wiidweidige portefúlje fan semiconductor- en systeemoplossingen foar loftfeart en definsje, kommunikaasje, datasintrum en yndustriële merken. Produkten befetsje hege-optreden en stralingsferhurde analoge mingd-sinjaal yntegrearre circuits, FPGAs, SoCs en ASICs; produkten foar enerzjybehear; timing- en syngronisaasjeapparaten en krekte tiidoplossingen, it ynstellen fan 'e wrâldstandert foar tiid; stimferwurkingsapparaten; RF oplossings; diskrete komponinten; enterprise opslach- en kommunikaasje oplossings, feiligens technologyen en scalable anty-tamper produkten; Ethernet oplossings; Power-over-Ethernet IC's en midspans; lykas oanpaste ûntwerpmooglikheden en tsjinsten. Learje mear op www.microsemi.com.

Booting en konfiguraasje

PolarFire SoC FPGA's brûke avansearre power-up circuits om betroubere stroom te garandearjen by power-up en reset. By opstarten en reset folget PolarFire SoC FPGA-opstartsekwinsje Power-on-reset (POR), Device-boot, Untwerpinitialisearring, Microcontroller Subsystem (MSS) pre-boot, en MSS-brûkersboot. Dit dokumint beskriuwt MSS pre-boot en MSS User Boot. Foar ynformaasje oer POR, Device Boot and Design inisjalisaasje, sjoch UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
Foar mear ynformaasje oer MSS-funksjes, sjoch UG0880: PolarFire SoC MSS User Guide.

Boot-up Sequence
De opstartsekwinsje begjint as de PolarFire SoC FPGA wurdt oandreaun of reset. It einiget as de prosessor klear is om in applikaasjeprogramma út te fieren. Dizze opstartsekwinsje rint troch ferskate stages foardat it begjint mei de útfiering fan programma's.
In set fan operaasjes wurde útfierd tidens de Boot-up proses dat omfiemet power-on reset fan de hardware, perifeare inisjalisaasje, ûnthâld inisjalisaasje, en it laden fan de brûker-definiearre applikaasje fan net-flechtich ûnthâld nei it flechtich ûnthâld foar útfiering.

De folgjende figuer toant ferskate fazen fan de Boot-up folchoarder.

figuer 1  Boot-up SequenceMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 1

MSS Pre-Boot

Nei suksesfolle foltôging fan ûntwerpinitialisaasje, begjint MSS Pre-boot syn útfiering. De MSS wurdt frijlitten fan in reset nei it foltôgjen fan alle normale opstartprosedueres. De systeemkontrôler beheart de programmearring, inisjalisaasje en konfiguraasje fan 'e apparaten. MSS Pre-boot komt net foar as de programmearre apparaat is konfigurearre foar systeem controller suspend modus.
De MSS pre-boot faze fan inisjalisaasje wurdt koördinearre troch systeem controller firmware, hoewol't it kin gebrûk meitsje fan de E51 yn de MSS Core Complex te fieren bepaalde dielen fan de pre-boot folchoarder.
De folgjende eveneminten komme foar tidens de MSS pre-boot stage:

  • Power-up fan it MSS ynbêde Non-Volatile Memory (eNVM)
  • Inisjalisaasje fan de redundansreparaasje ferbûn mei de MSS Core Complex L2-cache
  • Autentikaasje fan brûker bootkoade (as User Secure boot-opsje ynskeakele is)
  • Oerdracht operasjonele MSS nei User Boot koade

It MSS Core Complex kin opstart wurde yn ien fan fjouwer modi. De folgjende tabel jout de MSS pre-boot opsjes, dy't kinne wurde konfigurearre en programmearre yn de sNVM. De opstartmodus wurdt definiearre troch de brûkersparameter U_MSS_BOOTMODE[1:0]. Oanfoljende boot konfiguraasje gegevens is modus-ôfhinklik en wurdt definiearre troch de brûker parameter U_MSS_BOOTCFG (sjoch tabel 3, side 4 en tabel 5, side 6).

Tabel 1 • MSS Core Complex Boot Modes

U_MSS_BOOTMODE[1:0] Wize Beskriuwing
0 Idle boot MSS Core Complex boots fan boot ROM as MSS net is ynsteld
1 Net-feilige boot MSS Core Complex boots direkt fan adres definieare troch de U_MSS_BOOTADDR
2 Meidogger feilige boot MSS Core Complex laarzen fan sNVM
3 Fabriek feilige boot MSS Core Complex laarzen mei help fan it fabryk feilige boot protokol

De bootopsje is selektearre as ûnderdiel fan 'e Libero-ûntwerpstream. It feroarjen fan de modus kin allinich berikt wurde troch de generaasje fan in nije FPGA-programmearring file.

figuer 2 • MSS Pre-boot Flow Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 2

Idle Boot

As de MSS net is ynsteld (bglample, lege apparaat), dan fiert it MSS Core Complex in boot ROM-programma út dat alle prosessoren yn in ûneinige lus hâldt oant in debugger ferbynt mei it doel. De bootvektorregisters behâldt har wearde oant it apparaat weromset wurdt of in nije bootmoduskonfiguraasje wurdt programmearre. Foar konfigurearre apparaten, dizze modus kin wurde útfierd mei help fan de
U_MSS_BOOTMODE=0 opstartopsje yn de Libero-konfigurator.

Noat: Yn dizze modus wurdt U_MSS_BOOTCFG net brûkt.

De folgjende figuer toant de Idle boot flow.
figuer 3 • Idle Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 3

Net-feilige Boot

Yn dizze modus wurdt it MSS Core Complex útfierd fanút in spesifisearre eNVM-adres sûnder autentikaasje. It jout de fluchste boot opsje, mar der is gjin autentikaasje fan de koade ôfbylding. It adres kin wurde opjûn troch U_MSS_BOOTADDR yn te stellen yn 'e Libero Configurator. Dizze modus kin ek brûkt wurde om te booten fan elke FPGA Fabric-ûnthâldboarne fia FIC. Dizze modus wurdt útfierd mei help fan de
U_MSS_BOOTMODE=1 opstartopsje.
It MSS Core Complex wurdt frijjûn fan reset mei bootvektoren definieare troch U_MSS_BOOTCFG (lykas neamd yn 'e folgjende tabel).

Tabel 2 • U_MSS_BOOTCFG Gebrûk yn net-feilige opstartmodus 1

Offset (bytes)  

Grutte (bytes)

 

Namme

 

Beskriuwing

0 4 BOOTVEC0 Boot vector foar E51
4 4 BOOTVEC1 Boot vector foar U540
8 4 BOOTVEC2 Boot vector foar U541
16 4 BOOTVEC3 Boot vector foar U542
20 4 BOOTVEC4 Boot vector foar U543

De folgjende figuer lit de Net-feilige bootstream sjen.
figuer 4 • Net-feilige Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 4

Meidogger Secure Boot
Dizze modus lit de brûker har eigen oanpaste feilige boot ymplementearje en de brûker feilige bootkoade wurdt pleatst yn 'e sNVM. De sNVM is in 56 KB net-flechtich ûnthâld dat kin wurde beskerme troch de ynboude Physically Unclonable Function (PUF). Dizze bootmetoade wurdt beskôge as befeilige om't sNVM-siden markearre as ROM ûnferoarlik binne. By it opstarten kopiearret de systeemcontroller de feilige bootkoade fan 'e brûker fan sNVM nei Data Tightly Integrated Memory (DTIM) fan' e E51 Monitor-kearn. E51 begjint de brûker feilige bootkoade út te fieren.
As de grutte fan 'e brûker feilige opstartkoade mear is dan de grutte fan' e DTIM, dan moat de brûker de opstartkoade yn twa s splitsetages. De sNVM kin de folgjende s befetsjetage fan de brûker boot folchoarder, dat kin útfiere autentikaasje fan de folgjende boot stage mei help fan it brûker autentikaasje / dekodearring algoritme.
As authentisearre of fersifere siden wurde brûkt, dan is deselde USK-kaai (dat is,
U_MSS_BOOT_SNVM_USK) moat brûkt wurde foar alle authentisearre/fersifere siden.
As autentikaasje mislearret, kin it MSS Core Complex yn reset wurde pleatst en de BOOT_FAIL tamper flagge kin opheft wurde. Dizze modus wurdt ymplementearre mei de bootopsje U_MSS_BOOTMODE=2.

Tabel 3 •  U_MSS_BOOTCFG Gebrûk yn brûkersfeilige boot

Offset (bytes) Grutte (bytes) Namme Beskriuwing
0 1 U_MSS_BOOT_SNVM_PAGE Startside yn SNVM
1 3 RESERVEERD Foar ôfstimming
4 12 U_MSS_BOOT_SNVM_USK Foar autentike / fersifere siden

De folgjende figuer lit de brûker feilige bootstream sjen.
figuer 5 • Meidogger Secure Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 5

Factory Secure Boot
Yn dizze modus lêst de systeemkontrôler it Secure Boot Image Certificate (SBIC) fan eNVM en validearret de SBIC. By suksesfolle falidaasje kopiearret Systeem Controller de fabryk befeilige bootkoade fan syn privee, feilige ûnthâldgebiet en laadt it yn 'e DTIM fan' e E51 Monitor-kearn. De standert feilige boot fiert in hantekeningkontrôle op 'e eNVM-ôfbylding mei SBIC dy't opslein is yn eNVM. As der gjin flaters wurde rapportearre, wurdt reset frijjûn nei it MSS Core Complex. As flaters wurde rapportearre, wurdt it MSS Core Complex yn reset pleatst en de BOOT_FAIL tamper flagge wurdt ferhege. Dan, de systeem controller aktivearret byamper flagge dy't beweart in sinjaal oan de FPGA stof foar brûker aksje. Dizze modus wurdt ymplementearre mei de bootopsje U_MSS_BOOTMODE=3.

De SBIC befettet it adres, grutte, hash, en elliptic Curve Digital Signature Algorithm (ECDSA) hântekening fan de beskerme binêre blob. ECDSA biedt in fariant fan it Digital Signature Algorithm dy't elliptyske kromme kryptografy brûkt. It befettet ek de reset vector foar eltse Hardware
thread / kearn / prosessor kearn (Hart) yn it systeem.

Tabel 4 •  Secure Boot Image Certificate (SBIC)

Offset Grutte (bytes) Wearde Beskriuwing
0 4 IMAGEADDR Adres fan UBL yn MSS ûnthâld kaart
4 4 IMAGELEN Grutte fan UBL yn bytes
8 4 BOOTVEC0 Bootvektor yn UBL foar E51
12 4 BOOTVEC1 Bootvektor yn UBL foar U540
16 4 BOOTVEC2 Bootvektor yn UBL foar U541
20 4 BOOTVEC3 Bootvektor yn UBL foar U542
24 4 BOOTVEC4 Bootvektor yn UBL foar U543
28 1 OPSJES[7:0] SBIC opsjes
28 3 RESERVEERD  
32 8 FERZJE SBIC / Image ferzje
40 16 DSN Opsjoneel DSN binding
56 48 H UBL ôfbylding SHA-384 hash
104 104 CODESIG DER-kodearre ECDSA hantekening
Totaal 208 Bytes  

DSN
As it DSN-fjild net nul is, wurdt it fergelike mei it eigen serialnûmer fan it apparaat. As de fergeliking mislearret, dan is de boot_fail tamper flagge wurdt ynsteld en autentikaasje wurdt ôfbrutsen.

FERZJE
As SBIC-herroeping ynskeakele is troch U_MSS_REVOCATION_ENABLE, wurdt de SBIC ôfwiisd, útsein as de wearde fan VERSION grutter is as of lyk oan de ynlûkingsdrompel.

SBIC REVOCATION OPSJE
As SBIC-herroeping ynskeakele is troch U_MSS_REVOCATION_ENABLE en OPTIONS[0] is '1', wurde alle SBIC-ferzjes minder as VERSION ynlutsen by folsleine autentikaasje fan 'e SBIC. De werhellingsdrompel bliuwt op de nije wearde oant it opnij ferheget mei in takomstige SBIC mei OPTIONS[0] = '1' en in heger VERSJON-fjild. De ynlûkingsdrompel kin allinich ferhege wurde mei dit meganisme en kin allinich weromset wurde troch in bitstream.
As de ynlûkingsdrompel dynamysk bywurke wurdt, wurdt de drompel opslein mei it oerstallige opslachskema dat brûkt wurdt foar passcodes, sadat in stroomûnderbrekking by it opstarten fan it apparaat net feroarsaket dat in folgjende apparaatstart mislearret. As de fernijing fan ynlûkingsdrompel mislearret, wurdt garandearre dat de drompelwearde de nije wearde of de foarige is.

Tabel 5 • U_MSS_BOOTCFG Gebrûk yn Factory Boot Loader Mode

Offset (bytes)  

Grutte (bytes)

 

Namme

 

Beskriuwing

0 4 U_MSS_SBIC_ADDR Adres fan SBIC yn MSS adresromte
4 4 U_MSS_REVOCATION_ENABLE Ynskeakelje SBIC ynlûken as net-nul

De folgjende figuer toant de fabryk feilige boot flow.
figuer 6 • Factory Secure Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 6 Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 7

MSS User Boot 

MSS brûkersboot fynt plak as de kontrôle wurdt jûn fan System Controller nei MSS Core Complex. Nei suksesfolle MSS pre-boot, jout systeemcontroller de reset frij nei it MSS Core Complex. MSS kin op ien fan 'e folgjende manieren opstart wurde:

  • Bare Metal Applikaasje
  • Linux Applikaasje
  • AMP Oanfraach

Bare Metal Applikaasje

De bleate metalen applikaasjes foar de PolarFire SoC kinne wurde ûntwikkele mei SoftConsole-ark. Dit ark leveret de útfier files yn 'e foarm fan .hex dy't kin wurde brûkt yn' e Libero-stream om op te nimmen yn 'e programmearbitstream file. Itselde ark kin brûkt wurde om de Bare Metal-applikaasjes te debuggen mei JTAG
ynterface.
De folgjende figuer toant de SoftConsole Bare Metal-applikaasje dy't fiif harts (Cores) hat ynklusyf E51 Monitor-kearn.

figuer 7 • SoftConsole Project Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 8

Linux Applikaasje

Dizze seksje beskriuwt de bootsekwinsje foar Linux dy't rint op alle U54-kearnen.
In typysk bootproses bestiet út trije stages. De earste stage boot loader (FSBL) wurdt útfierd út de on-chip Boot flash (eNVM). De FSBL laadt de twadde stage bootlader (SSBL) fan in bootapparaat nei eksterne RAM of Cache. It bootapparaat kin eNVM wêze as ynbêde ûnthâldmikrocontroller (eMMC) as eksterne SPI Flash. De SSBL laadt it Linux-bestjoeringssysteem fan bootapparaat nei eksterne RAM. Yn de tredde stage, Linux wurdt útfierd fanút de eksterne RAM.

De folgjende figuer lit de stream fan Linux Boot Process sjen.
figuer 8 • Typyske Linux Boot Process FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 9

Details fan FSBL, Device tree, Linux, en YOCTO build, hoe't jo Linux bouwe en konfigurearje sille wurde levere yn 'e takomstige release fan dit dokumint.

AMP Oanfraach
Detaillearre beskriuwing fan Libero MSS Configurator en hoe't jo multi-prosessor applikaasjes debuggen mei SoftConsole sille wurde levere yn 'e takomstige release fan dit dokumint.

Ferskillende boarnen fan booting
Bywurke wurde yn takomstige ferzjes fan dit dokumint.

Boot Konfiguraasje
Bywurke wurde yn takomstige ferzjes fan dit dokumint.

Acronyms

De folgjende akronyms wurde brûkt yn dit dokumint.

Tabel 1 •  List fan Acronyms

Acronym útwreide

  • AMP Asymmetrysk Multi-ferwurking
  • DTIM Data Tightly Integrated Memory (ek wol SRAM neamd)
  • ECDSA Elliptic Curve Digital Signature Algoritme
  • enNVM ynbêde net-flechtich ûnthâld
  • FSBL Earste Stage Bootloader
  • Hart Hardware thread / kearn / prosessor kearn
  • MSS Microprocessor Subsystem
  • POR Power on Reset
  • PUF Fysike Unclonable Funksje
  • ROM Allinnich lêzen Unthâld
  • SCB Systeem Controller Bridge
  • sNVM Feilich Net-flechtich ûnthâld

Revision Skiednis

De revyzjeskiednis beskriuwt de wizigingen dy't yn it dokumint binne ymplementearre. De wizigingen wurde fermeld per revyzje, te begjinnen mei de aktuele publikaasje.

Ferzje 2.0
It folgjende is in gearfetting fan de feroarings makke yn dizze revyzje.

  • Ynformaasje oer Factory Secure Boot waard bywurke.
  • Ynformaasje oer Bare Metal Application waard bywurke.

Ferzje 1.0
De earste publikaasje fan dit dokumint.

Microsemi haadkantoar
One Enterprise, Aliso Viejo,
CA 92656 Feriene Steaten
Binnen de FS: +1 800-713-4113
Bûten de FS: +1 949-380-6100
Ferkeap: +1 949-380-6136
Fax: +1 949-215-4996
E-post: sales.support@microsemi.com
www.microsemi.com

©2020 Microsemi, in folslein eigendom dochterûndernimming fan Microchip Technology Inc. Alle rjochten foarbehâlden. Microsemi en it Microsemi-logo binne registrearre hannelsmerken fan Microsemi Corporation. Alle oare hannelsmerken en tsjinstmerken binne it eigendom fan har respektive eigners.

Dokuminten / Resources

Microchip UG0881 PolarFire SoC FPGA booting en konfiguraasje [pdf] Brûkersgids
UG0881 PolarFire SoC FPGA booting en konfiguraasje, UG0881, PolarFire SoC FPGA booting en konfiguraasje, booting en konfiguraasje

Referinsjes

Lit in reaksje efter

Jo e-mailadres sil net publisearre wurde. Ferplichte fjilden binne markearre *