Microsemi-LGOO

Microchip UG0881 PolarFire SoC FPGA zagon in konfiguracija

Microchip-UG0881-PolarFire-SoC-FPGA-zagonski-in-konfiguracijski-izdelek

Garancija

Microsemi ne daje nobenega jamstva, zastopanja ali jamstva v zvezi s tukaj vsebovanimi informacijami ali primernostjo svojih izdelkov in storitev za kateri koli poseben namen, niti Microsemi ne prevzema nobene odgovornosti, ki izhaja iz uporabe ali uporabe katerega koli izdelka ali vezja. Izdelki, ki se prodajajo tukaj, in vsi drugi izdelki, ki jih prodaja Microsemi, so bili predmet omejenega testiranja in se jih ne sme uporabljati v povezavi s kritično opremo ali aplikacijami. Za vse specifikacije delovanja velja, da so zanesljive, vendar niso preverjene, zato mora kupec opraviti in dokončati vsa testiranja delovanja in druga testiranja izdelkov, samih in skupaj s kakršnimi koli končnimi izdelki ali nameščenimi v njih. Kupec se ne sme zanašati na nobene podatke in specifikacije delovanja ali parametre, ki jih zagotovi Microsemi. Kupec je dolžan samostojno ugotoviti ustreznost kateregakoli izdelka ter ga preizkusiti in preveriti. Podatki, ki jih Microsemi posreduje v nadaljevanju, so na voljo »takšni, kot so, kjer so« in z vsemi napakami, celotno tveganje, povezano s takimi informacijami, pa je v celoti na strani kupca. Microsemi nobeni stranki ne podeljuje, eksplicitno ali implicitno, nobenih patentnih pravic, licenc ali drugih pravic intelektualne lastnine, bodisi v zvezi s takimi informacijami samimi ali kar koli, kar je opisano v teh informacijah. Informacije v tem dokumentu so last družbe Microsemi in Microsemi si pridržuje pravico, da kadar koli brez predhodnega obvestila spremeni informacije v tem dokumentu ali katere koli izdelke in storitve.

O Microsemiju

Microsemi, hčerinsko podjetje v XNUMX-odstotni lasti podjetja Microchip Technology Inc. (Nasdaq: MCHP), ponuja obsežen portfelj polprevodniških in sistemskih rešitev za vesoljsko in obrambo, komunikacije, podatkovne centre in industrijske trge. Izdelki vključujejo visoko zmogljiva in sevalno utrjena analogna integrirana vezja z mešanimi signali, FPGA, SoC in ASIC; izdelki za upravljanje porabe; naprave za merjenje časa in sinhronizacije ter natančne časovne rešitve, ki postavljajo svetovni standard za čas; naprave za obdelavo glasu; RF rešitve; diskretne komponente; poslovne rešitve za shranjevanje in komunikacijo, varnostne tehnologije in razširljive anti-tamper izdelki; Ethernet rešitve; Power-over-Ethernet IC in srednji razponi; kot tudi zmogljivosti in storitve oblikovanja po meri. Več o tem na www.microsemi.com.

Zagon in konfiguracija

PolarFire SoC FPGA uporablja napredno napajalno vezje za zagotavljanje zanesljivega vklopa ob vklopu in ponastavitvi. Pri vklopu in ponastavitvi zagonsko zaporedje PolarFire SoC FPGA sledi ponastavitvi ob vklopu (POR), zagonu naprave, inicializaciji načrta, predzagonu podsistema mikrokrmilnika (MSS) in uporabniškemu zagonu MSS. Ta dokument opisuje predzagon MSS in uporabniški zagon MSS. Za informacije o POR, zagonu naprave in inicializaciji načrta glejte UG0890: Uporabniški priročnik za vklop in ponastavitev PolarFire SoC FPGA.
Za več informacij o funkcijah MSS glejte UG0880: Uporabniški priročnik za PolarFire SoC MSS.

Zaporedje zagona
Zagonsko zaporedje se začne, ko se PolarFire SoC FPGA vklopi ali ponastavi. Konča se, ko je procesor pripravljen za izvajanje aplikacijskega programa. To zagonsko zaporedje teče skozi več stagpreden začne z izvajanjem programov.
Med postopkom zagona se izvaja nabor operacij, ki vključuje ponastavitev strojne opreme ob vklopu, inicializacijo perifernih naprav, inicializacijo pomnilnika in nalaganje uporabniško definirane aplikacije iz obstojnega pomnilnika v obstojni pomnilnik za izvedbo.

Naslednja slika prikazuje različne faze zagonskega zaporedja.

Slika 1  Zaporedje zagonaMicrochip-UG0881-PolarFire-SoC-FPGA-Zagon-In-Konfiguracija-slika 1

MSS pred zagonom

Po uspešnem zaključku inicializacije načrta se predzagon MSS začne z izvajanjem. MSS se sprosti iz ponastavitve po zaključku vseh običajnih postopkov zagona. Sistemski krmilnik upravlja programiranje, inicializacijo in konfiguracijo naprav. Predzagon MSS se ne izvede, če je programirana naprava konfigurirana za način mirovanja sistemskega krmilnika.
Fazo inicializacije pred zagonom MSS usklajuje vdelana programska oprema krmilnika sistema, čeprav lahko uporablja E51 v jedrnem kompleksu MSS za izvajanje določenih delov zaporedja pred zagonom.
Naslednji dogodki se zgodijo med predzagonskimi s MSStage:

  • Vklop vgrajenega trajnega pomnilnika MSS (eNVM)
  • Inicializacija popravila redundance, povezanega s predpomnilnikom MSS Core Complex L2
  • Preverjanje pristnosti uporabniške zagonske kode (če je omogočena možnost uporabniškega varnega zagona)
  • Prenos operativnega MSS na uporabniško zagonsko kodo

MSS Core Complex je mogoče zagnati v enem od štirih načinov. Naslednja tabela navaja možnosti pred zagonom MSS, ki jih je mogoče konfigurirati in programirati v sNVM. Način zagona je določen z uporabniškim parametrom U_MSS_BOOTMODE[1:0]. Dodatni podatki o konfiguraciji zagona so odvisni od načina in so definirani z uporabniškim parametrom U_MSS_BOOTCFG (glejte tabelo 3, stran 4 in tabelo 5, stran 6).

Tabela 1 • Načini zagona MSS Core Complex

U_MSS_BOOTMODE[1:0] Način Opis
0 Prazen zagon MSS Core Complex se zažene iz zagonskega ROM-a, če MSS ni konfiguriran
1 Nezaščiten zagon MSS Core Complex se zažene neposredno z naslova, ki ga določa U_MSS_BOOTADDR
2 Uporabniški varni zagon MSS Core Complex se zažene iz sNVM
3 Tovarniško varen zagon MSS Core Complex se zažene s tovarniško varnim zagonskim protokolom

Možnost zagona je izbrana kot del oblikovalskega toka Libero. Spreminjanje načina je mogoče doseči le z ustvarjanjem novega programiranja FPGA file.

Slika 2 • Potek pred zagonom MSS Microchip-UG0881-PolarFire-SoC-FPGA-Zagon-In-Konfiguracija-slika 2

Idle Boot

Če MSS ni konfiguriran (nprample, prazna naprava), nato MSS Core Complex izvede zagonski program ROM, ki drži vse procesorje v neskončni zanki, dokler se razhroščevalnik ne poveže s ciljem. Registri zagonskih vektorjev ohranjajo svojo vrednost, dokler se naprava ne ponastavi ali programira nova konfiguracija načina zagona. Za konfigurirane naprave je ta način mogoče implementirati z uporabo
U_MSS_BOOTMODE=0 možnost zagona v konfiguratorju Libero.

Opomba: V tem načinu se U_MSS_BOOTCFG ne uporablja.

Naslednja slika prikazuje potek nedejavnega zagona.
Slika 3 • Idle Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Zagon-In-Konfiguracija-slika 3

Nezaščiten zagon

V tem načinu se MSS Core Complex izvaja z določenega naslova eNVM brez preverjanja pristnosti. Zagotavlja najhitrejšo možnost zagona, vendar ni avtentikacije slike kode. Naslov je mogoče določiti z nastavitvijo U_MSS_BOOTADDR v konfiguratorju Libero. Ta način je mogoče uporabiti tudi za zagon iz katerega koli pomnilniškega vira FPGA Fabric prek FIC. Ta način se izvaja z uporabo
U_MSS_BOOTMODE=1 možnost zagona.
Jedrni kompleks MSS se sprosti iz ponastavitve z zagonskimi vektorji, definiranimi z U_MSS_BOOTCFG (kot je navedeno v naslednji tabeli).

Tabela 2 • U_MSS_BOOTCFG Uporaba v načinu nezaščitenega zagona 1

Odmik (bajti)  

Velikost (bajti)

 

Ime

 

Opis

0 4 BOOTVEC0 Zagonski vektor za E51
4 4 BOOTVEC1 Zagonski vektor za U540
8 4 BOOTVEC2 Zagonski vektor za U541
16 4 BOOTVEC3 Zagonski vektor za U542
20 4 BOOTVEC4 Zagonski vektor za U543

Naslednja slika prikazuje tok nezaščitenega zagona.
Slika 4 • Nezaščiten potek zagonaMicrochip-UG0881-PolarFire-SoC-FPGA-Zagon-In-Konfiguracija-slika 4

Uporabniški varni zagon
Ta način uporabniku omogoča implementacijo lastnega varnega zagona po meri, uporabniška koda varnega zagona pa je nameščena v sNVM. sNVM je 56 KB obstojen pomnilnik, ki ga je mogoče zaščititi z vgrajeno funkcijo Physically Unclonable (PUF). Ta način zagona velja za varnega, ker so strani sNVM, označene kot ROM, nespremenljive. Ob vklopu sistemski krmilnik prekopira uporabniško varno zagonsko kodo iz sNVM v Data Tightly Integrated Memory (DTIM) jedra monitorja E51. E51 začne izvajati uporabniško varno zagonsko kodo.
Če je velikost uporabniške varne zagonske kode večja od velikosti DTIM, mora uporabnik zagonsko kodo razdeliti na dva stages. sNVM lahko vsebuje naslednje stage uporabniškega zagonskega zaporedja, ki lahko izvede avtentikacijo naslednjih zagonskih stage z uporabo algoritma za avtentikacijo/dešifriranje uporabnika.
Če se uporabljajo overjene ali šifrirane strani, je enak ključ USK (tj.
U_MSS_BOOT_SNVM_USK) je treba uporabiti za vse overjene/šifrirane strani.
Če preverjanje pristnosti ne uspe, se lahko MSS Core Complex postavi v ponastavitev in BOOT_FAIL tampzastavo lahko dvignemo. Ta način je implementiran z možnostjo zagona U_MSS_BOOTMODE=2.

Tabela 3 •  U_MSS_BOOTCFG Uporaba pri varnem zagonu uporabnika

Odmik (bajti) Velikost (bajti) Ime Opis
0 1 U_MSS_BOOT_SNVM_PAGE Začetna stran v SNVM
1 3 REZERVIRANO Za poravnavo
4 12 U_MSS_BOOT_SNVM_USK Za overjene/šifrirane strani

Naslednja slika prikazuje potek varnega zagona uporabnika.
Slika 5 • Uporabniški varni zagonski tokMicrochip-UG0881-PolarFire-SoC-FPGA-Zagon-In-Konfiguracija-slika 5

Tovarniški varni zagon
V tem načinu sistemski krmilnik prebere potrdilo slike varnega zagona (SBIC) iz eNVM in potrdi SBIC. Po uspešni potrditvi sistemski krmilnik kopira tovarniško varno zagonsko kodo iz svojega zasebnega, varnega pomnilniškega območja in jo naloži v DTIM jedra monitorja E51. Privzeti varni zagon izvede preverjanje podpisa na sliki eNVM z uporabo SBIC, ki je shranjen v eNVM. Če ni sporočenih nobenih napak, se ponastavitev sprosti v jedrni kompleks MSS. Če so sporočene napake, se MSS Core Complex postavi v ponastavitev in BOOT_FAIL tampzastava je dvignjena. Nato se krmilnik sistema aktivira obamper zastavica, ki potrdi signal v strukturo FPGA za dejanje uporabnika. Ta način je implementiran z možnostjo zagona U_MSS_BOOTMODE=3.

SBIC vsebuje naslov, velikost, zgoščeno vrednost in podpis algoritma digitalnega podpisa eliptične krivulje (ECDSA) zaščitenega binarnega bloka. ECDSA ponuja različico algoritma digitalnega podpisa, ki uporablja kriptografijo z eliptično krivuljo. Vsebuje tudi vektor ponastavitve za vsako strojno opremo
nit/jedro/jedro procesorja (Hart) v sistemu.

Tabela 4 •  Potrdilo slike varnega zagona (SBIC)

Odmik Velikost (bajti) Vrednost Opis
0 4 IMAGEADDR Naslov UBL v pomnilniški karti MSS
4 4 IMAGELEN Velikost UBL v bajtih
8 4 BOOTVEC0 Zagonski vektor v UBL za E51
12 4 BOOTVEC1 Zagonski vektor v UBL za U540
16 4 BOOTVEC2 Zagonski vektor v UBL za U541
20 4 BOOTVEC3 Zagonski vektor v UBL za U542
24 4 BOOTVEC4 Zagonski vektor v UBL za U543
28 1 MOŽNOSTI[7:0] Možnosti SBIC
28 3 REZERVIRANO  
32 8 RAZLIČICA SBIC/slikovna različica
40 16 DSN Izbirna vezava DSN
56 48 H Razpršitev slike UBL SHA-384
104 104 CODESIG Podpis ECDSA, kodiran z DER
Skupaj 208 Bajti  

DSN
Če je polje DSN različno od nič, se primerja z lastno serijsko številko naprave. Če primerjava ne uspe, bo boot_fail tamper je zastavica nastavljena in avtentikacija je prekinjena.

RAZLIČICA
Če je preklic SBIC omogočen z U_MSS_REVOCATION_ENABLE, je SBIC zavrnjen, razen če je vrednost VERSION večja od ali enaka pragu preklica.

MOŽNOST PREKLICA SBIC
Če je preklic SBIC omogočen z U_MSS_REVOCATION_ENABLE in je OPTIONS[0] '1', so vse različice SBIC, mlajše od VERSION, preklicane po popolni avtentikaciji SBIC. Prag preklica ostane pri novi vrednosti, dokler se znova ne poveča za prihodnji SBIC z OPTIONS[0] = '1' in višjim poljem VERSION. Prag preklica se lahko poveča le s tem mehanizmom in ga je mogoče ponastaviti samo z bitnim tokom.
Ko se prag za preklic dinamično posodobi, se prag shrani z uporabo sheme redundantnega shranjevanja, ki se uporablja za gesla, tako da izpad električne energije med zagonom naprave ne povzroči neuspešnega zagona naslednje naprave. Če posodobitev praga za preklic ne uspe, je zagotovljeno, da je vrednost praga nova ali prejšnja vrednost.

Tabela 5 • U_MSS_BOOTCFG Uporaba v načinu tovarniškega zagonskega nalagalnika

Odmik (bajti)  

Velikost (bajti)

 

Ime

 

Opis

0 4 U_MSS_SBIC_ADDR Naslov SBIC v naslovnem prostoru MSS
4 4 U_MSS_REVOCATION_ENABLE Omogoči preklic SBIC, če ni nič

Naslednja slika prikazuje potek varnega tovarniškega zagona.
Slika 6 • Factory Secure Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Zagon-In-Konfiguracija-slika 6 Microchip-UG0881-PolarFire-SoC-FPGA-Zagon-In-Konfiguracija-slika 7

Uporabniški zagon MSS 

Uporabniški zagon MSS se izvede, ko je krmiljenje dano iz sistemskega krmilnika jedrnemu kompleksu MSS. Po uspešnem predzagonu MSS sistemski krmilnik sprosti ponastavitev na MSS Core Complex. MSS je mogoče zagnati na enega od naslednjih načinov:

  • Bare Metal aplikacija
  • Aplikacija Linux
  • AMP Aplikacija

Bare Metal aplikacija

Gole kovinske aplikacije za PolarFire SoC je mogoče razviti z orodjem SoftConsole. To orodje zagotavlja rezultat files v obliki .hex, ki se lahko uporabi v toku Libero za vključitev v programski bitni tok file. Isto orodje je mogoče uporabiti za odpravljanje napak v aplikacijah Bare Metal z uporabo JTAG
vmesnik.
Naslednja slika prikazuje aplikacijo SoftConsole Bare Metal, ki ima pet hartov (jeder), vključno z jedrom monitorja E51.

Slika 7 • Projekt SoftConsole Microchip-UG0881-PolarFire-SoC-FPGA-Zagon-In-Konfiguracija-slika 8

Aplikacija Linux

Ta razdelek opisuje zagonsko zaporedje za Linux, ki deluje na vseh jedrih U54.
Tipičen postopek zagona je sestavljen iz treh stages. Prvi stage-zagonski nalagalnik (FSBL) se izvede iz zagonskega bliska na čipu (eNVM). FSBL naloži drugi stage boot loader (SSBL) iz zagonske naprave v zunanji RAM ali predpomnilnik. Zagonska naprava je lahko eNVM ali vgrajeni pomnilniški mikrokrmilnik (eMMC) ali zunanji SPI Flash. SSBL naloži operacijski sistem Linux iz zagonske naprave v zunanji RAM. V tretjem stage, Linux se izvaja iz zunanjega RAM-a.

Naslednja slika prikazuje potek zagonskega procesa Linuxa.
Slika 8 • Tipičen potek zagonskega procesa LinuxaMicrochip-UG0881-PolarFire-SoC-FPGA-Zagon-In-Konfiguracija-slika 9

Podrobnosti o FSBL, drevesu naprav, Linuxu in gradnji YOCTO, o tem, kako zgraditi in konfigurirati Linux, bodo na voljo v prihodnji izdaji tega dokumenta.

AMP Aplikacija
Podroben opis konfiguratorja Libero MSS in načina odpravljanja napak v večprocesorskih aplikacijah z uporabo SoftConsole bo na voljo v prihodnji izdaji tega dokumenta.

Različni viri zagona
Bo posodobljeno v prihodnjih različicah tega dokumenta.

Konfiguracija zagona
Bo posodobljeno v prihodnjih različicah tega dokumenta.

Kratice

V tem dokumentu so uporabljeni naslednji akronimi.

Tabela 1 •  Seznam akronimov

Kratica razširjena

  • AMP Asimetrično večprocesiranje
  • DTIM Podatkovno tesno integriran pomnilnik (imenovan tudi SRAM)
  • ECDSA Algoritem digitalnega podpisa eliptične krivulje
  • eNVM vgrajen trajni pomnilnik
  • FSBL Prvi Stage zagonski nalagalnik
  • Hart Strojna nit/jedro/jedro procesorja
  • MSS Mikroprocesorski podsistem
  • POR Vklop Ponastavitev
  • PUF Fizično neklonirana funkcija
  • ROM Bralni pomnilnik
  • SCB Most sistemskega krmilnika
  • sNVM Varen obstojni pomnilnik

Zgodovina revizij

Zgodovina revizij opisuje spremembe, ki so bile izvedene v dokumentu. Spremembe so navedene po reviziji, začenši s trenutno objavo.

Revizija 2.0
Sledi povzetek sprememb v tej reviziji.

  • Informacije o Factory Secure Boot so bile posodobljene.
  • Informacije o aplikaciji Bare Metal so bile posodobljene.

Revizija 1.0
Prva objava tega dokumenta.

Sedež Microsemi
One Enterprise, Aliso Viejo,
CA 92656 ZDA
V ZDA: +1 800-713-4113
Zunaj ZDA: +1 949-380-6100
Prodaja: +1 949-380-6136
faks: +1 949-215-4996
E-pošta: sales.support@microsemi.com
www.microsemi.com

©2020 Microsemi, hčerinsko podjetje v XNUMX-odstotni lasti podjetja Microchip Technology Inc. Vse pravice pridržane. Microsemi in logotip Microsemi sta registrirani blagovni znamki podjetja Microsemi Corporation. Vse druge blagovne in storitvene znamke so last njihovih lastnikov.

Dokumenti / Viri

Microchip UG0881 PolarFire SoC FPGA zagon in konfiguracija [pdf] Uporabniški priročnik
UG0881 PolarFire SoC FPGA zagon in konfiguracija, UG0881, PolarFire SoC FPGA zagon in konfiguracija, zagon in konfiguracija

Reference

Pustite komentar

Vaš elektronski naslov ne bo objavljen. Obvezna polja so označena *