Mikroschema UG0881 PolarFire SoC FPGA įkrova ir konfigūracija
Garantija
„Microsemi“ nesuteikia jokių garantijų, pareiškimų ar garantijų dėl čia pateiktos informacijos arba savo produktų ir paslaugų tinkamumo jokiam konkrečiam tikslui, taip pat „Microsemi“ neprisiima jokios atsakomybės, kylančios dėl bet kokio gaminio ar grandinės taikymo ar naudojimo. Pagal šį dokumentą parduodami produktai ir visi kiti „Microsemi“ parduodami produktai buvo išbandyti ribotai ir neturėtų būti naudojami kartu su svarbia įranga ar programomis. Manoma, kad bet kokios veikimo specifikacijos yra patikimos, tačiau nėra patikrintos, todėl Pirkėjas turi atlikti ir užbaigti visus gaminių veikimo ir kitus bandymus atskirai ir kartu su bet kokiais galutiniais produktais arba juose sumontuotais. Pirkėjas negali pasikliauti jokiais Microsemi pateiktais duomenimis ir veikimo specifikacijomis ar parametrais. Pirkėjas privalo savarankiškai nustatyti bet kokių gaminių tinkamumą ir juos išbandyti bei patikrinti. „Microsemi“ toliau pateikta informacija pateikiama „tokia, kokia yra, kur yra“ ir su visais trūkumais, o visa su tokia informacija susijusi rizika tenka Pirkėjui. „Microsemi“ nei tiesiogiai, nei netiesiogiai nesuteikia jokiai šaliai jokių patentų teisių, licencijų ar bet kokių kitų intelektinės nuosavybės teisių, nesvarbu, ar tai susiję su tokia informacija, ar bet kuo, kas aprašyta toje informacijoje. Šiame dokumente pateikta informacija priklauso „Microsemi“, todėl „Microsemi“ pasilieka teisę bet kuriuo metu be įspėjimo keisti šiame dokumente pateiktą informaciją arba bet kokius produktus ir paslaugas.
Apie Microsemi
Microsemi, visiškai priklausanti Microchip Technology Inc. (Nasdaq: MCHP) dukterinė įmonė, siūlo platų puslaidininkių ir sistemų sprendimų portfelį aviacijos ir gynybos, ryšių, duomenų centrų ir pramonės rinkoms. Produktai apima didelio našumo ir spinduliuotei atsparius analoginius mišraus signalo integrinius grandynus, FPGA, SoC ir ASIC; galios valdymo produktai; laiko matavimo ir sinchronizavimo įrenginiai bei tikslūs laiko sprendimai, nustatantys pasaulio laiko standartą; balso apdorojimo įrenginiai; RF sprendimai; atskiri komponentai; įmonės saugojimo ir ryšių sprendimai, saugos technologijos ir keičiamo dydžio anti-tamper produktai; Ethernet sprendimai; Power-over-Ethernet IC ir midspans; taip pat pasirinktinio dizaino galimybes ir paslaugas. Sužinokite daugiau adresu www.microsemi.com.
Įkrovimas ir konfigūravimas
„PolarFire SoC“ FPGA naudoja pažangią maitinimo grandinę, kad būtų užtikrintas patikimas maitinimas įjungiant ir atkuriant. Įjungus ir iš naujo nustatant, „PolarFire SoC FPGA“ įkrovos seka seka įjungimo iš naujo (POR), įrenginio įkrovimo, dizaino inicijavimo, mikrovaldiklio posistemio (MSS) išankstinio įkrovimo ir MSS vartotojo įkrovos. Šiame dokumente aprašomas MSS išankstinis įkrovimas ir MSS vartotojo įkrovimas. Norėdami gauti informacijos apie POR, įrenginio įkrovą ir dizaino inicijavimą, žr. UG0890: „PolarFire SoC FPGA Power-Up and Resets User Guide“.
Daugiau informacijos apie MSS funkcijas rasite UG0880: PolarFire SoC MSS vartotojo vadovas.
Įkrovos seka
Įkrovimo seka prasideda, kai įjungiamas arba iš naujo nustatomas PolarFire SoC FPGA. Jis baigiasi, kai procesorius yra pasirengęs vykdyti taikomąją programą. Ši paleidimo seka trunka keletą stages prieš jam pradedant vykdyti programas.
Įkrovos proceso metu atliekamas operacijų rinkinys, apimantis aparatinės įrangos įjungimą iš naujo, periferinės įrangos inicijavimą, atminties inicijavimą ir vartotojo nustatytos programos įkėlimą iš pastovios atminties į nepastoviąją atmintį vykdymui.
Toliau pateiktame paveikslėlyje parodytos skirtingos įkrovos sekos fazės.
1 pav Įkrovos seka
MSS išankstinis įkrovimas
Sėkmingai užbaigus dizaino inicijavimą, MSS Pre-boot pradeda vykdyti. Atlikus visas įprastas paleidimo procedūras, MSS atleidžiamas nuo nustatymo iš naujo. Sistemos valdiklis valdo įrenginių programavimą, inicijavimą ir konfigūravimą. MSS išankstinis paleidimas nevyksta, jei užprogramuotas įrenginys sukonfigūruotas sistemos valdiklio sustabdymo režimui.
MSS išankstinio įkrovos inicijavimo fazę koordinuoja sistemos valdiklio programinė įranga, nors ji gali naudoti E51 MSS pagrindiniame komplekse, kad atliktų tam tikras išankstinės įkrovos sekos dalis.
MSS išankstinio įkrovimo metu įvyksta šie įvykiaitage:
- MSS įterptosios nuolatinės atminties (eNVM) įjungimas
- Atleidimo ištaisymo, susijusio su MSS Core Complex L2 talpykla, inicijavimas
- Vartotojo įkrovos kodo autentifikavimas (jei įjungta User Secure įkrovos parinktis)
- Operatyvinio MSS perdavimas vartotojo įkrovos kodui
MSS Core Complex galima paleisti vienu iš keturių režimų. Šioje lentelėje pateikiamos MSS išankstinės įkrovos parinktys, kurias galima konfigūruoti ir užprogramuoti sNVM. Įkrovos režimas apibrėžiamas vartotojo parametru U_MSS_BOOTMODE[1:0]. Papildomi įkrovos konfigūracijos duomenys priklauso nuo režimo ir yra apibrėžiami vartotojo parametru U_MSS_BOOTCFG (žr. 3 lentelę, 4 psl. ir 5 lentelę, 6 psl.).
1 lentelė • MSS Core sudėtingi įkrovos režimai
U_MSS_BOOTMODE[1:0] | Režimas | Aprašymas |
0 | Tuščiosios eigos įkrova | MSS Core Complex paleidžiamas iš įkrovos ROM, jei MSS nesukonfigūruotas |
1 | Nesaugi įkrova | MSS Core Complex paleidžiama tiesiai iš adreso, apibrėžto U_MSS_BOOTADDR |
2 | Vartotojo saugus paleidimas | MSS Core Complex batai iš sNVM |
3 | Saugi gamyklinė bagažinė | MSS Core Complex paleidžiamas naudojant gamyklinį saugaus įkrovos protokolą |
Įkrovos parinktis pasirenkama kaip Libero dizaino srauto dalis. Režimą galima pakeisti tik sugeneravus naują FPGA programavimą file.
2 pav. • MSS prieš įkrovą srautas
Tuščiosios eigos įkrova
Jei MSS nesukonfigūruotas (pvzample, tuščias įrenginys), tada MSS Core Complex vykdo įkrovos ROM programą, kuri sulaiko visus procesorius begalinėje kilpoje, kol derinimo priemonė prisijungs prie tikslo. Įkrovos vektorių registrai išlaiko savo vertę tol, kol įrenginys atstatomas arba užprogramuojama nauja įkrovos režimo konfigūracija. Sukonfigūruotuose įrenginiuose šis režimas gali būti įdiegtas naudojant
U_MSS_BOOTMODE=0 įkrovos parinktis Libero konfigūratoriuje.
Pastaba: Šiuo režimu U_MSS_BOOTCFG nenaudojamas.
Toliau pateiktame paveikslėlyje parodytas tuščiosios eigos įkrovos srautas.
Figūra 3 • Tuščiosios eigos įkrovos srautas
Nesaugi įkrova
Šiuo režimu MSS Core Complex vykdomas iš nurodyto eNVM adreso be autentifikavimo. Tai suteikia greičiausią įkrovos parinktį, tačiau nėra kodo vaizdo autentifikavimo. Adresą galima nurodyti Libero Configurator nustačius U_MSS_BOOTADDR. Šis režimas taip pat gali būti naudojamas paleisti iš bet kurio FPGA Fabric atminties šaltinio per FIC. Šis režimas įgyvendinamas naudojant
U_MSS_BOOTMODE=1 įkrovos parinktis.
MSS Core Complex atleidžiamas nuo nustatymo iš naujo naudojant įkrovos vektorius, apibrėžtus U_MSS_BOOTCFG (kaip nurodyta šioje lentelėje).
2 lentelė • U_MSS_BOOTCFG Naudojimas nesaugiu įkrovos režimu 1
Poslinkis (baitai) |
Dydis (baitai) |
Vardas |
Aprašymas |
0 | 4 | BOOTVEC0 | E51 įkrovos vektorius |
4 | 4 | BOOTVEC1 | U540 įkrovos vektorius |
8 | 4 | BOOTVEC2 | U541 įkrovos vektorius |
16 | 4 | BOOTVEC3 | U542 įkrovos vektorius |
20 | 4 | BOOTVEC4 | U543 įkrovos vektorius |
Toliau pateiktame paveikslėlyje parodytas nesaugios įkrovos srautas.
Figūra 4 • Nesaugus įkrovos srautas
Vartotojo saugus įkrovimas
Šis režimas leidžia vartotojui įdiegti savo pasirinktinį saugų įkrovimą, o vartotojo saugaus įkrovos kodas įdedamas į sNVM. sNVM yra 56 KB nekintanti atmintis, kurią gali apsaugoti įtaisyta fiziškai neklonuojama funkcija (PUF). Šis įkrovos metodas laikomas saugiu, nes sNVM puslapiai, pažymėti kaip ROM, yra nekeičiami. Įjungus maitinimą, sistemos valdiklis nukopijuoja vartotojo saugaus įkrovos kodą iš sNVM į E51 monitoriaus branduolio duomenų sandariai integruotą atmintį (DTIM). E51 pradeda vykdyti vartotojo saugaus įkrovos kodą.
Jei vartotojo saugaus įkrovos kodo dydis yra didesnis nei DTIM dydis, vartotojas turi padalyti įkrovos kodą į dvi sekundestages. sNVM gali būti kitos stage vartotojo įkrovos sekos, kuri gali atlikti kitos įkrovos autentifikavimątage naudojant vartotojo autentifikavimo / iššifravimo algoritmą.
Jei naudojami autentifikuoti arba užšifruoti puslapiai, tada tas pats USK raktas (ty
U_MSS_BOOT_SNVM_USK) turi būti naudojamas visiems autentifikuotiems / užšifruotiems puslapiams.
Jei autentifikavimas nepavyksta, MSS Core Complex gali būti nustatytas iš naujo ir BOOT_FAIL tampgali būti iškelta vėliava. Šis režimas įgyvendinamas naudojant U_MSS_BOOTMODE=2 įkrovos parinktį.
3 lentelė • U_MSS_BOOTCFG naudojimas naudojant saugią naudotojo įkrovą
Poslinkis (baitai) | Dydis (baitai) | Vardas | Aprašymas |
0 | 1 | U_MSS_BOOT_SNVM_PAGE | Pradinis puslapis SNVM |
1 | 3 | REZERVUOTA | Dėl lygiavimo |
4 | 12 | U_MSS_BOOT_SNVM_USK | Autentifikuotiems / užšifruotiems puslapiams |
Toliau pateiktame paveikslėlyje parodytas saugus vartotojo įkrovos srautas.
Figūra 5 • Vartotojo saugus įkrovos srautas
Saugi gamyklinė įkrova
Šiuo režimu sistemos valdiklis nuskaito saugaus įkrovos vaizdo sertifikatą (SBIC) iš eNVM ir patvirtina SBIC. Sėkmingai patvirtinus, sistemos valdiklis nukopijuoja gamyklinį saugų įkrovos kodą iš savo privačios, saugios atminties srities ir įkelia jį į E51 monitoriaus branduolio DTIM. Numatytasis saugus įkrovimas atlieka eNVM vaizdo parašo patikrinimą naudodamas SBIC, kuris saugomas eNVM. Jei nepranešama apie klaidas, MSS Core Complex atleidžiamas iš naujo. Jei pranešama apie klaidas, MSS Core Complex nustatomas iš naujo ir BOOT_FAIL tampiškeliama vėliava. Tada sistemos valdiklis suaktyvinamasamper vėliavėlė, kuri suteikia signalą FPGA audiniui, kad naudotojas veiktų. Šis režimas įgyvendinamas naudojant U_MSS_BOOTMODE=3 įkrovos parinktį.
SBIC yra apsaugoto dvejetainio bloko adresas, dydis, maiša ir elipsinės kreivės skaitmeninio parašo algoritmo (ECDSA) parašas. ECDSA siūlo skaitmeninio parašo algoritmo variantą, kuriame naudojama elipsinės kreivės kriptografija. Jame taip pat yra kiekvienos aparatinės įrangos atstatymo vektorius
sriegis / šerdis / procesoriaus šerdis (Hart) sistemoje.
4 lentelė • Saugaus įkrovos vaizdo sertifikatas (SBIC)
Užskaita | Dydis (baitai) | Vertė | Aprašymas |
0 | 4 | IMAGEADDR | UBL adresas MSS atminties žemėlapyje |
4 | 4 | IMAGELEN | UBL dydis baitais |
8 | 4 | BOOTVEC0 | Įkrovos vektorius UBL, skirtas E51 |
12 | 4 | BOOTVEC1 | U540 UBL įkrovos vektorius |
16 | 4 | BOOTVEC2 | U541 UBL įkrovos vektorius |
20 | 4 | BOOTVEC3 | U542 UBL įkrovos vektorius |
24 | 4 | BOOTVEC4 | U543 UBL įkrovos vektorius |
28 | 1 | PARINKTYS[7:0] | SBIC parinktys |
28 | 3 | REZERVUOTA | |
32 | 8 | VERSIJA | SBIC / vaizdo versija |
40 | 16 | DSN | Pasirenkamas DSN įrišimas |
56 | 48 | H | UBL vaizdo SHA-384 maiša |
104 | 104 | KODAVIMAS | DER koduotas ECDSA parašas |
Iš viso | 208 | Baitai |
DSN
Jei DSN laukas nėra nulis, jis lyginamas su paties įrenginio serijos numeriu. Jei palyginimas nepavyksta, tada įkrovos_nepavyksta tamper vėliavėlė nustatyta ir autentifikavimas nutraukiamas.
VERSIJA
Jei U_MSS_REVOCATION_ENABLE įgalino SBIC atšaukimą, SBIC atmetamas, nebent VERSION reikšmė yra didesnė už atšaukimo slenkstį arba jai lygi.
SBIC ATŠAUKIMO GALIMYBĖ
Jei U_MSS_REVOCATION_ENABLE įgalino SBIC atšaukimą, o OPTIONS[0] yra „1“, visos SBIC versijos, mažesnės nei VERSION, atšaukiamos visiškai patvirtinus SBIC. Atšaukimo slenkstis išlieka naujos vertės, kol ji vėl padidės būsimu SBIC su OPTIONS[0] = '1' ir didesniu lauku VERSIJA. Atšaukimo slenkstis gali būti padidintas tik naudojant šį mechanizmą ir gali būti iš naujo nustatytas tik naudojant bitų srautą.
Kai atšaukimo slenkstis atnaujinamas dinamiškai, slenkstis išsaugomas naudojant perteklinę saugojimo schemą, naudojamą slaptažodžiams, kad maitinimo sutrikimas įrenginio įkrovos metu nesukeltų tolesnio įrenginio įkrovos gedimo. Jei atšaukimo slenksčio atnaujinti nepavyksta, garantuojama, kad slenksčio reikšmė yra arba nauja, arba ankstesnė.
5 lentelė • U_MSS_BOOTCFG naudojimas gamyklinio įkrovos režimu
Poslinkis (baitai) |
Dydis (baitai) |
Vardas |
Aprašymas |
0 | 4 | U_MSS_SBIC_ADDR | SBIC adresas MSS adresų erdvėje |
4 | 4 | U_MSS_REVOCATION_ENABLE | Įgalinti SBIC atšaukimą, jei jis nėra nulis |
Toliau pateiktame paveikslėlyje parodytas gamyklinis saugus įkrovos srautas.
Figūra 6 • Gamyklinis saugus įkrovos srautas
MSS vartotojo paleidimas
MSS naudotojas įkeliamas, kai valdymas perduodamas iš sistemos valdiklio į MSS Core Complex. Sėkmingai paleidus MSS, sistemos valdiklis iš naujo nustato MSS pagrindinį kompleksą. MSS galima paleisti vienu iš šių būdų:
- Pliko metalo pritaikymas
- Linux programa
- AMP Taikymas
Pliko metalo pritaikymas
Pliko metalo PolarFire SoC programas galima sukurti naudojant SoftConsole įrankį. Šis įrankis suteikia išvestį files formos .hex, kuri gali būti naudojama Libero sraute, įtraukiant į programavimo bitų srautą file. Tą patį įrankį galima naudoti „Bare Metal“ programų derinimui naudojant JTAG
sąsaja.
Toliau pateiktame paveikslėlyje parodyta „SoftConsole Bare Metal“ programa, kurią sudaro penki šerdys (šerdys), įskaitant E51 monitoriaus šerdį.
Figūra 7 • SoftConsole projektas
Linux programa
Šiame skyriuje aprašoma visuose U54 branduoliuose veikiančios Linux įkrovos seka.
Įprastas įkrovos procesas susideda iš trijų stages. Pirmieji stagĮkrovos įkroviklis (FSBL) paleidžiamas iš lustinės įkrovos blykstės (eNVM). FSBL įkelia antrą stage boot loader (SSBL) iš įkrovos įrenginio į išorinę RAM arba talpyklą. Įkrovos įrenginys gali būti eNVM arba įterptosios atminties mikrovaldiklis (eMMC) arba išorinis SPI Flash. SSBL įkelia Linux operacinę sistemą iš įkrovos įrenginio į išorinę RAM. Trečiajame stage, Linux vykdomas iš išorinės RAM.
Toliau pateiktame paveikslėlyje parodyta „Linux“ įkrovos proceso eiga.
Figūra 8 • Tipiškas Linux įkrovos proceso srautas
Išsami informacija apie FSBL, įrenginių medį, Linux ir YOCTO kūrimą, kaip sukurti ir konfigūruoti Linux, bus pateikta būsimame šio dokumento leidime.
AMP Taikymas
Išsamus Libero MSS Configurator aprašymas ir kelių procesorių programų derinimo naudojant SoftConsole aprašymas bus pateiktas būsimame šio dokumento leidime.
Įvairūs paleidimo šaltiniai
Bus atnaujinta būsimose šio dokumento versijose.
Įkrovos konfigūracija
Bus atnaujinta būsimose šio dokumento versijose.
Akronimai
Šiame dokumente naudojami šie akronimai.
1 lentelė • Akronimų sąrašas
Akronimas išplėstas
- AMP Asimetrinis daugiafunkcis apdorojimas
- DTIM Duomenų tvirtai integruota atmintis (taip pat vadinama SRAM)
- ECDSA Elipsinės kreivės skaitmeninio parašo algoritmas
- eNVM įterptoji nekintamoji atmintis
- FSBL Pirmasis Stage įkrovos įkroviklis
- Hartas Aparatinės įrangos gija / šerdis / procesoriaus šerdis
- MSS Mikroprocesorių posistemis
- POR Įjunkite iš naujo
- PUF Fiziškai neklonuojama funkcija
- ROM Tik skaitymo atmintis
- SCB Sistemos valdiklio tiltas
- sNVM Saugi nepastovi atmintis
Revizijos istorija
Taisymų istorija aprašo pakeitimus, kurie buvo įgyvendinti dokumente. Pakeitimai pateikiami pagal peržiūrą, pradedant dabartiniu leidiniu.
2.0 peržiūra
Toliau pateikiama šioje peržiūroje atliktų pakeitimų santrauka.
- Informacija apie Factory Secure Boot buvo atnaujinta.
- Informacija apie Bare Metal Application buvo atnaujinta.
1.0 peržiūra
Pirmoji šio dokumento publikacija.
„Microsemi“ būstinė
„One Enterprise“, Aliso Viejo,
CA 92656 JAV
JAV viduje: +1 800-713-4113
Už JAV ribų: +1 949-380-6100
Pardavimai: +1 949-380-6136
Faksas: +1 949-215-4996
El. paštas: sales.support@microsemi.com
www.microsemi.com
©2020 Microsemi, visiškai priklausanti Microchip Technology Inc. dukterinė įmonė. Visos teisės saugomos. Microsemi ir Microsemi logotipas yra registruotieji Microsemi Corporation prekių ženklai. Visi kiti prekių ir paslaugų ženklai yra atitinkamų jų savininkų nuosavybė.
Dokumentai / Ištekliai
![]() |
Mikroschema UG0881 PolarFire SoC FPGA įkrova ir konfigūracija [pdfVartotojo vadovas UG0881 PolarFire SoC FPGA paleidimas ir konfigūravimas, UG0881, PolarFire SoC FPGA paleidimas ir konfigūravimas, paleidimas ir konfigūravimas |