Microsemi-LGOO

Microchip UG0881 PolarFire SoC FPGA bootovanie a konfigurácia

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

Záruka

Microsemi neposkytuje žiadnu záruku, zastúpenie ani záruku týkajúcu sa informácií uvedených v tomto dokumente alebo vhodnosti svojich produktov a služieb na akýkoľvek konkrétny účel, ani nepreberá žiadnu zodpovednosť, ktorá by mohla vyplynúť z aplikácie alebo používania akéhokoľvek produktu alebo okruhu. Produkty predávané nižšie a akékoľvek iné produkty predávané spoločnosťou Microsemi boli predmetom obmedzeného testovania a nemali by sa používať v spojení s kritickými zariadeniami alebo aplikáciami. Akékoľvek výkonnostné špecifikácie sa považujú za spoľahlivé, ale nie sú overené, a Kupujúci musí vykonať a dokončiť všetky výkonnostné a iné testovanie produktov, a to samostatne a spolu s akýmikoľvek koncovými produktmi alebo v nich nainštalovaných. Kupujúci sa nebude spoliehať na žiadne údaje a výkonové špecifikácie alebo parametre poskytnuté Microsemi. Je zodpovednosťou kupujúceho, aby nezávisle určil vhodnosť akýchkoľvek produktov a otestoval ich a overil. Informácie poskytované spoločnosťou Microsemi nižšie sú poskytované „tak, ako sú, kde sú“ a so všetkými chybami a celé riziko spojené s týmito informáciami znáša výlučne Kupujúci. Microsemi neudeľuje, explicitne ani implicitne, žiadnej strane žiadne patentové práva, licencie ani žiadne iné práva duševného vlastníctva, či už ide o takéto informácie samotné alebo čokoľvek opísané v takýchto informáciách. Informácie uvedené v tomto dokumente sú majetkom spoločnosti Microsemi a spoločnosť Microsemi si vyhradzuje právo kedykoľvek bez upozornenia vykonať akékoľvek zmeny informácií v tomto dokumente alebo akýchkoľvek produktov a služieb.

O Microsemi

Microsemi, XNUMX% dcérska spoločnosť Microchip Technology Inc. (Nasdaq: MCHP), ponúka komplexné portfólio polovodičových a systémových riešení pre letectvo a obranu, komunikáciu, dátové centrá a priemyselné trhy. Produkty zahŕňajú vysokovýkonné a radiáciou zosilnené analógové integrované obvody so zmiešaným signálom, FPGA, SoC a ASIC; produkty na správu napájania; časovacie a synchronizačné zariadenia a presné časové riešenia, ktoré stanovujú svetový štandard pre čas; Zariadenia na spracovanie hlasu; RF riešenia; diskrétne komponenty; podnikové úložné a komunikačné riešenia, bezpečnostné technológie a škálovateľný anti-tamper produkty; Ethernetové riešenia; Integrované obvody Power-over-Ethernet a stredné rozpätia; ako aj možnosti a služby vlastného dizajnu. Viac sa dozviete na www.microsemi.com.

Bootovanie a konfigurácia

PolarFire SoC FPGA využívajú pokročilé napájacie obvody na zaistenie spoľahlivého zapnutia pri zapnutí a resete. Pri zapnutí a resete nasleduje spúšťacia sekvencia PolarFire SoC FPGA po reštarte pri zapnutí (POR), zavedení zariadenia, inicializácii návrhu, pred spustením mikrokontroléra (MSS) a zavedení používateľa MSS. Tento dokument popisuje MSS pre-boot a MSS User Boot. Informácie o POR, zavádzaní zariadenia a inicializácii návrhu nájdete v používateľskej príručke UG0890: PolarFire SoC FPGA Power-Up and Resets.
Ďalšie informácie o funkciách MSS nájdete v UG0880: PolarFire SoC MSS Užívateľská príručka.

Spúšťacia sekvencia
Sekvencia spúšťania sa spustí, keď sa PolarFire SoC FPGA zapne alebo resetuje. Končí, keď je procesor pripravený na spustenie aplikačného programu. Táto bootovacia sekvencia prebieha cez niekoľko stages pred začatím vykonávania programov.
Počas procesu zavádzania sa vykonáva súbor operácií, ktoré zahŕňajú reštartovanie hardvéru pri zapnutí, inicializáciu periférnych zariadení, inicializáciu pamäte a načítanie používateľom definovanej aplikácie z energeticky nezávislej pamäte na spustenie.

Nasledujúci obrázok zobrazuje rôzne fázy spúšťacej sekvencie.

Obrázok 1  Spúšťacia sekvenciaMicrochip-UG0881-PolarFire-SoC-FPGA-Bootovanie-A-Konfigurácia-obr 1

Pred spustením MSS

Po úspešnom dokončení inicializácie návrhu sa spustí MSS Pre-boot. MSS sa uvoľní z resetu po dokončení všetkých bežných postupov spustenia. Systémový ovládač riadi programovanie, inicializáciu a konfiguráciu zariadení. MSS Pre-boot sa nevyskytne, ak je naprogramované zariadenie nakonfigurované na režim pozastavenia ovládača systému.
Fáza inicializácie MSS pred spustením je koordinovaná firmvérom ovládača systému, hoci na vykonanie určitých častí sekvencie pred spustením môže použiť E51 v komplexe MSS Core Complex.
Nasledujúce udalosti sa vyskytujú počas MSS pred spustením systémutage:

  • Zapnutie vstavanej non-Volatile Memory (eNVM) zabudovanej MSS
  • Inicializácia opravy redundancie súvisiacej s vyrovnávacou pamäťou MSS Core Complex L2
  • Overenie zavádzacieho kódu používateľa (ak je povolená možnosť User Secure boot)
  • Odovzdajte funkčný kód MSS používateľovi

MSS Core Complex je možné spustiť v jednom zo štyroch režimov. V nasledujúcej tabuľke sú uvedené možnosti MSS pred spustením, ktoré je možné nakonfigurovať a naprogramovať do sNVM. Režim bootovania je definovaný užívateľským parametrom U_MSS_BOOTMODE[1:0]. Ďalšie konfiguračné údaje zavádzania závisia od režimu a sú definované užívateľským parametrom U_MSS_BOOTCFG (pozri Tabuľka 3, strana 4 a Tabuľka 5, strana 6).

Tabuľka 1 • Režimy komplexného zavádzania MSS Core

U_MSS_BOOTMODE[1:0] Režim Popis
0 Nečinná topánka MSS Core Complex sa zavádza z boot ROM, ak MSS nie je nakonfigurovaná
1 Nezabezpečené spustenie MSS Core Complex sa spúšťa priamo z adresy definovanej v U_MSS_BOOTADDR
2 Používateľom zabezpečené spustenie Topánky MSS Core Complex od sNVM
3 Továrensky bezpečný štart MSS Core Complex sa spúšťa pomocou továrenského zabezpečeného zavádzacieho protokolu

Voľba topánok je vybraná ako súčasť dizajnu Libero. Zmenu režimu je možné dosiahnuť iba vytvorením nového programovania FPGA file.

Obrázok 2 • Priebeh MSS pred spustením Microchip-UG0881-PolarFire-SoC-FPGA-Bootovanie-A-Konfigurácia-obr 2

Idle Boot

Ak MSS nie je nakonfigurovaný (naprample, prázdne zariadenie), potom MSS Core Complex spustí boot ROM program, ktorý drží všetky procesory v nekonečnej slučke, kým sa debugger nepripojí k cieľu. Registre zavádzacieho vektora si zachovávajú svoju hodnotu, kým sa zariadenie neresetuje alebo kým sa nenaprogramuje nová konfigurácia režimu zavádzania. Pre nakonfigurované zariadenia je možné tento režim implementovať pomocou
U_MSS_BOOTMODE=0 možnosť zavádzania v konfigurátore Libero.

Poznámka: V tomto režime sa nepoužíva U_MSS_BOOTCFG.

Nasledujúci obrázok zobrazuje priebeh zavádzania pri nečinnosti.
Obrázok 3 • Idle Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Bootovanie-A-Konfigurácia-obr 3

Nezabezpečené spustenie

V tomto režime sa MSS Core Complex vykonáva zo špecifikovanej adresy eNVM bez autentifikácie. Poskytuje najrýchlejšiu možnosť spustenia, ale nedochádza k overeniu obrazu kódu. Adresu je možné špecifikovať nastavením U_MSS_BOOTADDR v konfigurátore Libero. Tento režim možno použiť aj na zavedenie z ľubovoľného pamäťového prostriedku FPGA Fabric cez FIC. Tento režim je implementovaný pomocou
U_MSS_BOOTMODE=1 možnosť zavádzania.
MSS Core Complex sa uvoľní z resetovania pomocou zavádzacích vektorov definovaných U_MSS_BOOTCFG (ako je uvedené v nasledujúcej tabuľke).

Tabuľka 2 • Použitie U_MSS_BOOTCFG v režime nezabezpečeného spustenia 1

Offset (bajty)  

Veľkosť (bajty)

 

Meno

 

Popis

0 4 BOOTVEC0 Bootovací vektor pre E51
4 4 BOOTVEC1 Bootovací vektor pre U540
8 4 BOOTVEC2 Bootovací vektor pre U541
16 4 BOOTVEC3 Bootovací vektor pre U542
20 4 BOOTVEC4 Bootovací vektor pre U543

Nasledujúci obrázok zobrazuje nezabezpečený tok zavádzania.
Obrázok 4 • Nezabezpečený bootovací tokMicrochip-UG0881-PolarFire-SoC-FPGA-Bootovanie-A-Konfigurácia-obr 4

Používateľom zabezpečené spustenie
Tento režim umožňuje používateľovi implementovať svoje vlastné bezpečné spustenie a kód bezpečného spustenia používateľa sa umiestni do sNVM. sNVM je 56 KB energeticky nezávislá pamäť, ktorá môže byť chránená vstavanou fyzikálne neklonovateľnou funkciou (PUF). Táto metóda zavádzania sa považuje za zabezpečenú, pretože stránky sNVM označené ako ROM sú nemenné. Po zapnutí ovládač systému skopíruje bezpečný spúšťací kód používateľa z sNVM do Data Tightly Integrated Memory (DTIM) jadra monitora E51. E51 spustí spúšťací kód používateľa.
Ak je veľkosť bezpečnostného spúšťacieho kódu používateľa väčšia ako veľkosť DTIM, používateľ musí spúšťací kód rozdeliť na dve častitages. sNVM môže obsahovať nasledujúce stage sekvencie zavádzania používateľa, ktorá môže vykonať autentifikáciu nasledujúceho zavádzania stage pomocou algoritmu overenia/dešifrovania používateľa.
Ak sa používajú overené alebo šifrované stránky, potom rovnaký kľúč USK (t. j.
U_MSS_BOOT_SNVM_USK) sa musí použiť pre všetky overené/šifrované stránky.
Ak autentifikácia zlyhá, MSS Core Complex môže byť resetovaný a BOOT_FAIL tampmôže byť vztýčená vlajka. Tento režim je implementovaný pomocou možnosti zavádzania U_MSS_BOOTMODE=2.

Tabuľka 3 •  U_MSS_BOOTCFG Použitie v zabezpečenom spustení používateľa

Offset (bajty) Veľkosť (bajty) Meno Popis
0 1 U_MSS_BOOT_SNVM_PAGE Úvodná stránka v SNVM
1 3 REZERVOVANÉ Na zarovnanie
4 12 U_MSS_BOOT_SNVM_USK Pre overené/šifrované stránky

Nasledujúci obrázok zobrazuje tok bezpečného zavádzania používateľa.
Obrázok 5 • Používateľský bezpečný tok spusteniaMicrochip-UG0881-PolarFire-SoC-FPGA-Bootovanie-A-Konfigurácia-obr 5

Továrenské bezpečné spustenie
V tomto režime ovládač systému načíta certifikát Secure Boot Image Certificate (SBIC) z eNVM a overí SBIC. Po úspešnom overení systémový ovládač skopíruje bezpečný spúšťací kód z výroby zo svojej súkromnej, zabezpečenej oblasti pamäte a načíta ho do DTIM jadra monitora E51. Predvolené zabezpečené spustenie vykonáva kontrolu podpisu na obrázku eNVM pomocou SBIC, ktorý je uložený v eNVM. Ak nie sú hlásené žiadne chyby, reset sa uvoľní do komplexu MSS Core Complex. Ak sú hlásené chyby, MSS Core Complex sa resetuje a BOOT_FAIL tampje vztýčená vlajka. Potom sa ovládač systému aktivuje priamper príznak, ktorý presadzuje signál do štruktúry FPGA pre akciu používateľa. Tento režim je implementovaný pomocou možnosti zavádzania U_MSS_BOOTMODE=3.

SBIC obsahuje adresu, veľkosť, hash a podpis algoritmu digitálneho podpisu eliptickej krivky (ECDSA) chráneného binárneho blobu. ECDSA ponúka variant algoritmu Digital Signature Algorithm, ktorý využíva kryptografiu eliptickej krivky. Obsahuje tiež vektor resetovania pre každý hardvér
vlákno/jadro/jadro procesora (Hart) v systéme.

Tabuľka 4 •  Secure Boot Image Certificate (SBIC)

Offset Veľkosť (bajty) Hodnota Popis
0 4 IMAGEADDR Adresa UBL v pamäťovej mape MSS
4 4 IMAGELEN Veľkosť UBL v bajtoch
8 4 BOOTVEC0 Zavádzací vektor v UBL pre E51
12 4 BOOTVEC1 Bootovací vektor v UBL pre U540
16 4 BOOTVEC2 Bootovací vektor v UBL pre U541
20 4 BOOTVEC3 Bootovací vektor v UBL pre U542
24 4 BOOTVEC4 Bootovací vektor v UBL pre U543
28 1 MOŽNOSTI[7:0] Možnosti SBIC
28 3 REZERVOVANÉ  
32 8 VERZIA Verzia SBIC/obrázku
40 16 DSN Voliteľná väzba DSN
56 48 H Obrázok UBL SHA-384 hash
104 104 CODESIG Podpis ECDSA s kódovaním DER
Celkom 208 bajtov  

DSN
Ak je pole DSN nenulové, porovná sa s vlastným sériovým číslom zariadenia. Ak porovnanie zlyhá, potom boot_fail tampje nastavený príznak a autentifikácia sa preruší.

VERZIA
Ak je odvolanie SBIC povolené pomocou U_MSS_REVOCATION_ENABLE, SBIC sa zamietne, pokiaľ hodnota VERSION nie je väčšia alebo rovná prahu odvolania.

MOŽNOSŤ ZRUŠENIA SBIC
Ak je zrušenie SBIC povolené pomocou U_MSS_REVOCATION_ENABLE a OPTIONS[0] je '1', všetky verzie SBIC menšie ako VERSION sa odvolajú po kompletnej autentifikácii SBIC. Prah zrušenia zostáva na novej hodnote, kým sa znova nezvýši o budúci SBIC s ​​OPTIONS[0] = '1' a vyšším poľom VERSION. Prahová hodnota zrušenia môže byť zvýšená iba pomocou tohto mechanizmu a môže byť resetovaná iba bitovým tokom.
Keď sa prah odvolania dynamicky aktualizuje, prah sa uloží pomocou schémy redundantného úložiska používanej pre prístupové kódy, takže výpadok napájania počas zavádzania zariadenia nespôsobí zlyhanie následného zavádzania zariadenia. Ak aktualizácia prahu zrušenia zlyhá, je zaručené, že prahová hodnota je buď nová, alebo predchádzajúca hodnota.

Tabuľka 5 • U_MSS_BOOTCFG Použitie v režime Factory Boot Loader

Offset (bajty)  

Veľkosť (bajty)

 

Meno

 

Popis

0 4 U_MSS_SBIC_ADDR Adresa SBIC v adresnom priestore MSS
4 4 U_MSS_REVOCATION_ENABLE Povoliť zrušenie SBIC, ak nie je nulové

Nasledujúci obrázok zobrazuje tok zabezpečeného zavádzania z výroby.
Obrázok 6 • Továrenský bezpečný tok spúšťaniaMicrochip-UG0881-PolarFire-SoC-FPGA-Bootovanie-A-Konfigurácia-obr 6 Microchip-UG0881-PolarFire-SoC-FPGA-Bootovanie-A-Konfigurácia-obr 7

Zavádzanie používateľa MSS 

Zavedenie používateľa MSS sa uskutoční vtedy, keď je ovládanie odovzdané z ovládača systému na MSS Core Complex. Po úspešnom predbootovaní MSS systémový radič uvoľní reset na MSS Core Complex. MSS je možné spustiť jedným z nasledujúcich spôsobov:

  • Aplikácia Holého kovu
  • Aplikácia pre Linux
  • AMP Aplikácia

Aplikácia Holého kovu

Holé kovové aplikácie pre PolarFire SoC môžu byť vyvinuté pomocou nástroja SoftConsole. Tento nástroj poskytuje výstup files vo forme .hex, ktoré možno použiť v toku Libero na zahrnutie do programovacieho bitového toku file. Rovnaký nástroj možno použiť na ladenie aplikácií Bare Metal pomocou JTAG
rozhranie.
Nasledujúci obrázok zobrazuje aplikáciu SoftConsole Bare Metal, ktorá má päť jadier (jadier) vrátane jadra monitora E51.

Obrázok 7 • Projekt SoftConsole Microchip-UG0881-PolarFire-SoC-FPGA-Bootovanie-A-Konfigurácia-obr 8

Aplikácia pre Linux

Táto časť popisuje postupnosť zavádzania pre Linux bežiaci na všetkých jadrách U54.
Typický bootovací proces pozostáva z troch stages. Prvé stagBootloader (FSBL) sa spúšťa z flash pamäte na čipe (eNVM). FSBL načíta druhú stage zavádzač (SSBL) zo zavádzacieho zariadenia do externej pamäte RAM alebo vyrovnávacej pamäte. Zavádzacie zariadenie môže byť eNVM alebo vstavaný pamäťový mikrokontrolér (eMMC) alebo externý SPI Flash. SSBL načíta operačný systém Linux zo zavádzacieho zariadenia do externej pamäte RAM. V tretej stage, Linux sa spúšťa z externej pamäte RAM.

Nasledujúci obrázok zobrazuje tok procesu zavádzania systému Linux.
Obrázok 8 • Typický tok procesu zavádzania systému LinuxMicrochip-UG0881-PolarFire-SoC-FPGA-Bootovanie-A-Konfigurácia-obr 9

Podrobnosti o FSBL, strome zariadení, zostave Linuxu a YOCTO, ako zostaviť a nakonfigurovať Linux, budú uvedené v budúcom vydaní tohto dokumentu.

AMP Aplikácia
Podrobný popis programu Libero MSS Configurator a spôsobu ladenia viacprocesorových aplikácií pomocou softvéru SoftConsole bude uvedený v budúcom vydaní tohto dokumentu.

Rôzne zdroje zavádzania
Bude aktualizované v budúcich verziách tohto dokumentu.

Konfigurácia zavádzania
Bude aktualizované v budúcich verziách tohto dokumentu.

Skratky

V tomto dokumente sa používajú nasledujúce skratky.

Tabuľka 1 •  Zoznam akronymov

Skratka Expanded

  • AMP Asymetrické viacnásobné spracovanie
  • DTIM Data tesne integrovaná pamäť (nazývaná aj ako SRAM)
  • ECDSA Algoritmus digitálneho podpisu eliptickej krivky
  • eNVM vstavaná energeticky nezávislá pamäť
  • FSBL Najprv Stage Boot Loader
  • Hart Hardvérové ​​vlákno/jadro/jadro procesora
  • MSS Mikroprocesorový subsystém
  • POR Zapnutie Resetovať
  • PUF Fyzicky neklonovateľná funkcia
  • ROM Pamäť iba na čítanie
  • SCB Most ovládača systému
  • sNVM Bezpečná energeticky nezávislá pamäť

História revízií

História revízií popisuje zmeny, ktoré boli implementované v dokumente. Zmeny sú uvedené podľa revízií, počnúc aktuálnou publikáciou.

Revízia 2.0
Nasleduje súhrn zmien vykonaných v tejto revízii.

  • Informácie o Factory Secure Boot boli aktualizované.
  • Informácie o aplikácii Bare Metal boli aktualizované.

Revízia 1.0
Prvá publikácia tohto dokumentu.

Ústredie Microsemi
Jeden podnik, Aliso Viejo,
CA 92656 USA
V rámci USA: +1 800-713-4113
Mimo USA: +1 949-380-6100
Predaj: +1 949-380-6136
Fax: +1 949-215-4996
Email: sales.support@microsemi.com
www.microsemi.com

©2020 Microsemi, dcérska spoločnosť v úplnom vlastníctve spoločnosti Microchip Technology Inc. Všetky práva vyhradené. Microsemi a logo Microsemi sú registrované ochranné známky spoločnosti Microsemi Corporation. Všetky ostatné ochranné známky a servisné známky sú majetkom ich príslušných vlastníkov.

Dokumenty / zdroje

Microchip UG0881 PolarFire SoC FPGA bootovanie a konfigurácia [pdf] Používateľská príručka
UG0881 Zavedenie a konfigurácia FPGA PolarFire SoC, UG0881, Zavedenie a konfigurácia PolarFire SoC FPGA, spustenie a konfigurácia

Referencie

Zanechajte komentár

Vaša emailová adresa nebude zverejnená. Povinné polia sú označené *