Mikrokiip UG0881 PolarFire SoC FPGA alglaadimine ja konfigureerimine
Garantii
Microsemi ei anna garantiid, esindusi ega garantiisid seoses siin sisalduva teabega ega oma toodete ja teenuste sobivusega mingil konkreetsel eesmärgil, samuti ei võta Microsemi endale mingit vastutust, mis tuleneb mis tahes toote või vooluringi rakendamisest või kasutamisest. Siin müüdavaid tooteid ja kõiki teisi Microsemi müüdavaid tooteid on testitud piiratud määral ja neid ei tohiks kasutada koos missioonikriitiliste seadmete või rakendustega. Kõiki toimivusspetsifikatsioone peetakse usaldusväärseteks, kuid neid ei kontrollita, ning ostja peab läbi viima ja lõpetama kõik toodete toimivus- ja muud testid nii üksi kui ka koos lõpptoodetega või nendesse installitud. Ostja ei tohi tugineda Microsemi esitatud andmetele ja jõudlusspetsifikatsioonidele või parameetritele. Ostja kohustus on iseseisvalt kindlaks teha mis tahes toodete sobivus ning seda testida ja kontrollida. Alljärgnevalt Microsemi esitatud teave esitatakse "nagu on, kus on" ja kõigi vigadega ning kogu sellise teabega seotud risk on täielikult ostja kanda. Microsemi ei anna otseselt ega kaudselt ühelegi osapoolele patendiõigusi, litsentse ega muid intellektuaalomandi õigusi, olenemata sellest, kas see puudutab sellist teavet ega midagi, mida sellises teabes kirjeldatakse. Selles dokumendis esitatud teave kuulub ettevõttele Microsemi ja Microsemi jätab endale õiguse teha mis tahes muudatusi selles dokumendis sisalduvas teabes või mis tahes toodetes ja teenustes igal ajal ilma ette teatamata.
Microsemi kohta
Microsemi, Microchip Technology Inc. (Nasdaq: MCHP) XNUMX% omanduses olev tütarettevõte, pakub laiaulatuslikku pooljuhtide ja süsteemilahenduste portfelli kosmose- ja kaitse-, side-, andmekeskuste- ja tööstusturgudel. Toodete hulka kuuluvad suure jõudlusega ja kiirguskindlad analoog-segasignaaliga integraallülitused, FPGA-d, SoC-d ja ASIC-id; toitehaldustooted; ajastus- ja sünkroniseerimisseadmed ning täpsed ajalahendused, mis seavad maailma ajastandardi; hääletöötlusseadmed; RF-lahendused; diskreetsed komponendid; ettevõtete salvestus- ja sidelahendused, turvatehnoloogiad ja skaleeritav anti-tamper tooted; Etherneti lahendused; Power-over-Ethernet IC-d ja keskmised vahemikud; samuti kohandatud disainivõimalused ja -teenused. Lisateavet leiate aadressilt www.microsemi.com.
Käivitamine ja konfigureerimine
PolarFire SoC FPGA-d kasutavad täiustatud toitelülitust, et tagada sisselülitamisel ja lähtestamisel usaldusväärne toide. Sisselülitamisel ja lähtestamisel järgib PolarFire SoC FPGA algkäivitusjada sisselülitamise lähtestamist (POR), seadme alglaadimist, disaini lähtestamist, mikrokontrolleri alamsüsteemi (MSS) eelkäivitamist ja MSS-i kasutaja alglaadimist. See dokument kirjeldab MSS-i eelkäivitamist ja MSS-i kasutaja alglaadimist. POR-i, seadme alglaadimise ja disaini lähtestamise kohta teabe saamiseks vaadake UG0890: PolarFire SoC FPGA sisselülitamise ja lähtestamise kasutusjuhend.
MSS-i funktsioonide kohta lisateabe saamiseks vaadake UG0880: PolarFire SoC MSS-i kasutusjuhend.
Käivitamise järjestus
Käivitusjada algab siis, kui PolarFire SoC FPGA sisse lülitatakse või lähtestatakse. See lõpeb, kui protsessor on rakendusprogrammi käivitamiseks valmis. See käivitusjada läbib mitu stages enne programmide käivitamist.
Käivitusprotsessi käigus tehakse toimingute komplekt, mis hõlmab riistvara sisselülitamist, välisseadmete lähtestamist, mälu lähtestamist ja kasutaja määratud rakenduse laadimist püsimälust lenduvasse mällu täitmiseks.
Järgmine joonis näitab algkäivitusjärjestuse erinevaid faase.
Joonis 1 Käivitamise järjestus
MSS-i eelkäivitus
Disaini initsialiseerimise edukal lõpetamisel alustab MSS Pre-boot selle täitmist. MSS vabastatakse lähtestamisest pärast kõigi tavaliste käivitusprotseduuride lõpetamist. Süsteemikontroller haldab seadmete programmeerimist, lähtestamist ja konfigureerimist. MSS-i eelkäivitust ei toimu, kui programmeeritud seade on konfigureeritud süsteemikontrolleri peatamisrežiimile.
MSS-i algkäivituseelset lähtestamisetappi koordineerib süsteemikontrolleri püsivara, kuigi see võib alglaadimiseelse järjestuse teatud osade täitmiseks kasutada MSS Core Complexi E51.
Järgmised sündmused toimuvad MSS-i eelkäivitamise ajaltage:
- MSS-i sisseehitatud püsimälu (eNVM) sisselülitamine
- MSS Core Complex L2 vahemäluga seotud koondamisremondi lähtestamine
- Kasutaja alglaadimiskoodi autentimine (kui kasutaja turvalise alglaadimise valik on lubatud)
- Töötav MSS-i üleandmine kasutaja alglaadimiskoodile
MSS Core Complexi saab käivitada ühes neljast režiimist. Järgmises tabelis on loetletud MSS-i eelkäivitussuvandid, mida saab konfigureerida ja sNVM-i programmeerida. Alglaadimisrežiim on määratletud kasutaja parameetriga U_MSS_BOOTMODE[1:0]. Täiendavad alglaadimiskonfiguratsiooniandmed sõltuvad režiimist ja on määratletud kasutajaparameetriga U_MSS_BOOTCFG (vt tabel 3, leht 4 ja tabel 5, leht 6).
Tabel 1 • MSS Core Complex Boot Modes
U_MSS_BOOTMODE[1:0] | Režiim | Kirjeldus |
0 | Tühikäigukast | MSS Core Complex käivitub alglaadimis-ROM-ilt, kui MSS pole konfigureeritud |
1 | Mitteturvaline alglaadimine | MSS Core Complex käivitub otse U_MSS_BOOTADDR-iga määratud aadressilt |
2 | Kasutaja turvaline alglaadimine | MSS Core Complexi saapad sNVM-ilt |
3 | Tehase turvaline boot | MSS Core Complex käivitub tehase turvalise alglaadimisprotokolli abil |
Alglaadimisvalik valitakse Libero disainivoo osana. Režiimi muutmine on võimalik ainult uue FPGA programmeerimise loomisega file.
Joonis 2 • MSS-i alglaadimiseelne voog
Idle Boot
Kui MSS pole konfigureeritud (ntample, tühi seade), siis MSS Core Complex käivitab alglaadimis-ROM-programmi, mis hoiab kõiki protsessoreid lõpmatus tsüklis, kuni silur loob ühenduse sihtmärgiga. Alglaadimisvektori registrid säilitavad oma väärtuse, kuni seade lähtestatakse või programmeeritakse uus alglaadimisrežiimi konfiguratsioon. Konfigureeritud seadmete puhul saab seda režiimi rakendada kasutades
U_MSS_BOOTMODE=0 alglaadimisvalik Libero konfiguraatoris.
Märkus. Selles režiimis U_MSS_BOOTCFG ei kasutata.
Järgmine joonis näitab tühikäigu alglaadimise voogu.
Joonis 3 • Idle Boot Flow
Mitteturvaline alglaadimine
Selles režiimis käivitub MSS Core Complex määratud eNVM-aadressilt ilma autentimiseta. See pakub kiireimat alglaadimisvalikut, kuid koodipildi autentimist pole. Aadressi saab määrata, määrates Libero Configuratoris U_MSS_BOOTADDR. Seda režiimi saab kasutada ka FIC-i kaudu käivitamiseks mis tahes FPGA Fabric mäluressursist. Seda režiimi rakendatakse kasutades
U_MSS_BOOTMODE=1 alglaadimisvalik.
MSS Core Complex vabastatakse lähtestusest alglaadimisvektoritega, mis on määratletud U_MSS_BOOTCFG-ga (nagu on loetletud järgmises tabelis).
Tabel 2 • U_MSS_BOOTCFG kasutamine mitteturvalises alglaadimisrežiimis 1
Nihe (baitides) |
Suurus (baiti) |
Nimi |
Kirjeldus |
0 | 4 | BOOTVEC0 | Alglaadimise vektor E51 jaoks |
4 | 4 | BOOTVEC1 | Alglaadimise vektor U540 jaoks |
8 | 4 | BOOTVEC2 | Alglaadimise vektor U541 jaoks |
16 | 4 | BOOTVEC3 | Alglaadimise vektor U542 jaoks |
20 | 4 | BOOTVEC4 | Alglaadimise vektor U543 jaoks |
Järgmine joonis näitab mitteturvalist alglaadimisvoogu.
Joonis 4 • Mitteturvaline alglaadimisvoog
Kasutaja turvaline alglaadimine
See režiim võimaldab kasutajal rakendada oma kohandatud turvalist alglaadimist ja kasutaja turvaline alglaadimiskood paigutatakse sNVM-i. sNVM on 56 KB püsimälu, mida saab kaitsta sisseehitatud füüsiliselt klooneerimata funktsiooniga (PUF). Seda alglaadimismeetodit peetakse turvaliseks, kuna ROM-ina märgitud sNVM-lehed on muutumatud. Sisselülitamisel kopeerib süsteemikontroller kasutaja turvalise alglaadimiskoodi sNVM-ist E51 monitori südamiku Data Tightly Integrated Memory (DTIM) mällu. E51 alustab kasutaja turvalise alglaadimiskoodi täitmist.
Kui kasutaja turvalise alglaadimiskoodi suurus on suurem kui DTIM-i suurus, peab kasutaja alglaadimiskoodi kaheks sekundiks jagamatages. sNVM võib sisaldada järgmisi stage kasutaja alglaadimisjärjestuses, mis võib teostada järgmise alglaadimise autentimisetage kasutades kasutaja autentimise/dekrüpteerimise algoritmi.
Kui kasutatakse autentitud või krüptitud lehti, siis sama USK-võti (st
U_MSS_BOOT_SNVM_USK) tuleb kasutada kõigi autentitud/krüptitud lehtede puhul.
Kui autentimine ebaõnnestub, saab MSS Core Complexi lähtestada ja BOOT_FAIL tamplipu saab heisata. Seda režiimi rakendatakse alglaadimisvaliku U_MSS_BOOTMODE=2 abil.
Tabel 3 • U_MSS_BOOTCFG kasutamine kasutaja turvalises alglaadimises
Nihe (baitides) | Suurus (baiti) | Nimi | Kirjeldus |
0 | 1 | U_MSS_BOOT_SNVM_PAGE | Avaleht SNVM-is |
1 | 3 | RESERVEERITUD | Joondamiseks |
4 | 12 | U_MSS_BOOT_SNVM_USK | Autentitud/krüptitud lehtede jaoks |
Järgmine joonis näitab kasutaja turvalist alglaadimisvoogu.
Joonis 5 • Kasutaja turvaline alglaadimise voog
Tehasepoolne turvaline alglaadimine
Selles režiimis loeb süsteemikontroller eNVM-ist turvalise alglaadimiskujutise sertifikaati (SBIC) ja kinnitab SBIC-i. Eduka valideerimise korral kopeerib System Controller tehase turvalise alglaadimiskoodi oma privaatsest turvalisest mälualast ja laadib selle E51 monitori tuuma DTIM-i. Vaikimisi turvaline alglaadimine kontrollib eNVM-pildi allkirja, kasutades eNVM-i salvestatud SBIC-i. Kui vigadest ei teatata, lähtestatakse MSS Core Complex. Kui teatatakse vigadest, lähtestatakse MSS Core Complex ja BOOT_FAIL tampheisatakse lipp. Seejärel aktiveerub süsteemikontroller kellamper lipp, mis annab signaali FPGA kangale kasutaja tegevuseks. Seda režiimi rakendatakse alglaadimisvaliku U_MSS_BOOTMODE=3 abil.
SBIC sisaldab kaitstud kahendploki aadressi, suurust, räsi ja elliptilise kõvera digitaalallkirja algoritmi (ECDSA) allkirja. ECDSA pakub digitaalallkirja algoritmi varianti, mis kasutab elliptilise kõvera krüptograafiat. See sisaldab ka iga riistvara lähtestamisvektorit
niit/tuum/protsessori tuum (Hart) süsteemis.
Tabel 4 • Secure Boot Image Certificate (SBIC)
Offset | Suurus (baiti) | Väärtus | Kirjeldus |
0 | 4 | IMAGEADDR | UBL-i aadress MSS-i mälukaardil |
4 | 4 | IMAGELEN | UBL-i suurus baitides |
8 | 4 | BOOTVEC0 | Alglaadimisvektor UBL-is E51 jaoks |
12 | 4 | BOOTVEC1 | Alglaadimisvektor UBL-is U540 jaoks |
16 | 4 | BOOTVEC2 | Alglaadimisvektor UBL-is U541 jaoks |
20 | 4 | BOOTVEC3 | Alglaadimisvektor UBL-is U542 jaoks |
24 | 4 | BOOTVEC4 | Alglaadimisvektor UBL-is U543 jaoks |
28 | 1 | VALIKUD[7:0] | SBIC valikud |
28 | 3 | RESERVEERITUD | |
32 | 8 | VERSION | SBIC/Image versioon |
40 | 16 | DSN | Valikuline DSN-i sidumine |
56 | 48 | H | UBL-kujutis SHA-384 räsi |
104 | 104 | KOOD | DER-kodeeritud ECDSA allkiri |
Kokku | 208 | Baitid |
DSN
Kui DSN-väli on nullist erinev, võrreldakse seda seadme enda seerianumbriga. Kui võrdlus ebaõnnestub, siis alglaadimise_tõrge tamper lipp on seatud ja autentimine katkestatakse.
VERSION
Kui U_MSS_REVOCATION_ENABLE lubab SBIC-i tühistamise, lükatakse SBIC tagasi, välja arvatud juhul, kui VERSION-i väärtus on tühistamislävest suurem või sellega võrdne.
SBIC TÜHISTAMISE VALIK
Kui U_MSS_REVOCATION_ENABLE lubab SBIC-i tühistamise ja OPTIONS[0] on '1', tühistatakse kõik SBIC-i versioonid, mis on väiksemad kui VERSION, pärast SBIC-i täielikku autentimist. Tühistamise lävi jääb uuele väärtusele, kuni see suureneb uuesti tulevase SBIC-i võrra, mille OPTIONS[0] = '1' ja kõrgem VERSION väli. Tühistamisläve saab suurendada ainult selle mehhanismi abil ja lähtestada ainult bitivoo abil.
Kui tühistamisläve värskendatakse dünaamiliselt, salvestatakse lävi pääsukoodide jaoks kasutatava üleliigse salvestusskeemi abil, nii et voolukatkestus seadme alglaadimise ajal ei põhjustaks seadme järgnevat alglaadimise ebaõnnestumist. Kui tühistamisläve värskendamine ebaõnnestub, on tagatud, et läviväärtus on kas uus või eelmine väärtus.
Tabel 5 • U_MSS_BOOTCFG kasutamine tehase alglaadija režiimis
Nihe (baitides) |
Suurus (baiti) |
Nimi |
Kirjeldus |
0 | 4 | U_MSS_SBIC_ADDR | SBIC-i aadress MSS-i aadressiruumis |
4 | 4 | U_MSS_REVOCATION_ENABLE | Lubage SBIC-i tühistamine, kui see ei ole null |
Järgmine joonis näitab tehase turvalist alglaadimisvoogu.
Joonis 6 • Tehase turvaline alglaadimisvoog
MSS-i kasutaja alglaadimine
MSS-i kasutaja alglaadimine toimub siis, kui juhtimine antakse süsteemikontrollerilt MSS Core Complexile. Eduka MSS-i eelkäivituse korral vabastab süsteemikontroller lähtestamise MSS-i põhikompleksile. MSS-i saab käivitada ühel järgmistest viisidest:
- Paljast metallist pealekandmine
- Linuxi rakendus
- AMP Rakendus
Paljast metallist pealekandmine
PolarFire SoC paljast metallist rakendusi saab arendada SoftConsole tööriista abil. See tööriist annab väljundi files kujul .hex, mida saab kasutada Libero voos, et lisada programmeerimise bitivoogu file. Sama tööriista saab kasutada Bare Metali rakenduste silumiseks, kasutades JTAG
liides.
Järgmisel joonisel on kujutatud SoftConsole Bare Metal rakendust, millel on viis harti (südamikku), sealhulgas E51 monitori südamik.
Joonis 7 • SoftConsole projekt
Linuxi rakendus
Selles jaotises kirjeldatakse kõigis U54 tuumades töötava Linuxi alglaadimisjärjestust.
Tüüpiline alglaadimisprotsess koosneb kolmest s-sttages. Esimesed stagAlglaadur (FSBL) käivitatakse kiibil olevast alglaadimisvälgust (eNVM). FSBL laadib teise stage alglaadur (SSBL) alglaadimisseadmest välisele RAM-ile või vahemällu. Alglaadimisseade võib olla eNVM või sisseehitatud mälu mikrokontroller (eMMC) või väline SPI Flash. SSBL laadib Linuxi operatsioonisüsteemi alglaadimisseadmest välisesse RAM-i. Kolmandas stage, Linux käivitatakse välisest RAM-ist.
Järgmine joonis näitab Linuxi alglaadimisprotsessi voogu.
Joonis 8 • Tüüpiline Linuxi alglaadimisprotsessi voog
Üksikasjad FSBL-i, seadmepuu, Linuxi ja YOCTO ehituse kohta ning Linuxi loomise ja konfigureerimise kohta esitatakse selle dokumendi tulevases väljaandes.
AMP Rakendus
Libero MSS Configuratori üksikasjalik kirjeldus ja mitme protsessoriga rakenduste silumine SoftConsole'i abil esitatakse selle dokumendi tulevases väljaandes.
Erinevad alglaadimise allikad
Värskendatakse selle dokumendi tulevastes versioonides.
Alglaadimise konfiguratsioon
Värskendatakse selle dokumendi tulevastes versioonides.
Akronüümid
Selles dokumendis kasutatakse järgmisi akronüüme.
Tabel 1 • Akronüümide loend
Akronüüm laiendatud
- AMP Asümmeetriline mitmekordne töötlemine
- DTIM Andmed tihedalt integreeritud mälu (nimetatakse ka SRAM-iks)
- ECDSA Elliptilise kõvera digitaalallkirja algoritm
- eNVM sisseehitatud püsimälu
- FSBL Esimene Stage Alglaadur
- Hart Riistvara niit/tuum/protsessori tuum
- MSS Mikroprotsessori alamsüsteem
- POR Toide sisse Lähtesta
- PUF Füüsiliselt kloonimatu funktsioon
- ROM Kirjutuskaitstud mälu
- SCB Süsteemi kontrolleri sild
- sNVM Turvaline püsimälu
Läbivaatamise ajalugu
Redaktsiooniajalugu kirjeldab dokumendis rakendatud muudatusi. Muudatused on loetletud redaktsioonide kaupa, alustades praegusest väljaandest.
Läbivaatamine 2.0
Järgmine on kokkuvõte selles versioonis tehtud muudatustest.
- Teavet Factory Secure Booti kohta värskendati.
- Teavet Bare Metal Applicationi kohta uuendati.
Läbivaatamine 1.0
Selle dokumendi esimene avaldamine.
Microsemi peakorter
One Enterprise, Aliso Viejo,
CA 92656 USA
USA piires: +1 800-713-4113
Väljaspool USA-d: +1 949-380-6100
Müük: +1 949-380-6136
Faks: +1 949-215-4996
E-post: sales.support@microsemi.com
www.microsemi.com
©2020 Microsemi, Microchip Technology Inc. täielikult kuuluv tütarettevõte. Kõik õigused kaitstud. Microsemi ja Microsemi logo on Microsemi Corporationi registreeritud kaubamärgid. Kõik muud kaubamärgid ja teenindusmärgid on nende vastavate omanike omand.
Dokumendid / Ressursid
![]() |
Mikrokiip UG0881 PolarFire SoC FPGA alglaadimine ja konfigureerimine [pdfKasutusjuhend UG0881 PolarFire SoC FPGA alglaadimine ja konfigureerimine, UG0881, PolarFire SoC FPGA alglaadimine ja konfigureerimine, käivitamine ja konfigureerimine |