Mikrosiru UG0881 PolarFire SoC FPGA käynnistys ja konfigurointi
Takuu
Microsemi ei anna mitään takuita, esityksiä tai takuita tämän julkaisun sisältämistä tiedoista tai tuotteidensa ja palveluidensa soveltuvuudesta mihinkään tiettyyn tarkoitukseen, eikä Microsemi ota minkäänlaista vastuuta minkään tuotteen tai piirin soveltamisesta tai käytöstä. Tässä myydyt tuotteet ja kaikki muut Microsemin myymät tuotteet on testattu rajoitetusti, eikä niitä tule käyttää yhdessä kriittisten laitteiden tai sovellusten kanssa. Kaikkien suorituskykyeritelmien uskotaan olevan luotettavia, mutta niitä ei ole varmennettu, ja Ostajan on suoritettava ja suoritettava kaikki tuotteiden suorituskyky- ja muut testaukset yksin ja yhdessä minkä tahansa lopputuotteen kanssa tai asennettuna niihin. Ostaja ei saa luottaa Microsemin toimittamiin tietoihin ja suorituskykyspesifikaatioihin tai parametreihin. Ostajan vastuulla on itsenäisesti määrittää minkä tahansa tuotteen sopivuus sekä testata ja todentaa se. Microsemin tässä antamat tiedot toimitetaan "sellaisenaan, missä on" ja kaikkiin virheisiin, ja koko tällaisiin tietoihin liittyvä riski on täysin ostajalla. Microsemi ei myönnä nimenomaisesti tai implisiittisesti millekään osapuolelle patenttioikeuksia, lisenssejä tai muita immateriaalioikeuksia, koskien kyseistä tietoa itseään tai mitään näissä tiedoissa kuvattua. Tässä asiakirjassa annetut tiedot ovat Microsemin omaisuutta, ja Microsemi pidättää oikeuden tehdä muutoksia tämän asiakirjan tietoihin tai mihin tahansa tuotteisiin ja palveluihin milloin tahansa ilman erillistä ilmoitusta.
Tietoja Microsemista
Microsemi, Microchip Technology Inc:n (Nasdaq: MCHP) kokonaan omistama tytäryhtiö, tarjoaa kattavan valikoiman puolijohde- ja järjestelmäratkaisuja ilmailu- ja puolustusteollisuuteen, viestintään, datakeskusten ja teollisuusmarkkinoille. Tuotteisiin kuuluvat korkean suorituskyvyn ja säteilyä kestävät analogiset sekasignaaliintegroidut piirit, FPGA:t, SoC:t ja ASIC:t; virranhallinnan tuotteet; ajoitus- ja synkronointilaitteet ja tarkat aikaratkaisut, jotka asettavat ajan mittaan maailman standardin; äänenkäsittelylaitteet; RF-ratkaisut; erilliset komponentit; yritysten tallennus- ja viestintäratkaisut, tietoturvateknologiat ja skaalautuva anti-tamper tuotteet; Ethernet-ratkaisut; Power-over-Ethernet-IC:t ja keskivälit; sekä mukautettuja suunnitteluominaisuuksia ja palveluita. Lisätietoja osoitteessa www.microsemi.com.
Käynnistys ja konfigurointi
PolarFire SoC FPGA:t käyttävät kehittyneitä käynnistyspiirejä varmistaakseen luotettavan virran käynnistyksen ja nollauksen yhteydessä. Käynnistyksen ja nollauksen yhteydessä PolarFire SoC FPGA -käynnistysjärjestys seuraa käynnistyksen nollausta (POR), laitteen käynnistystä, suunnittelun alustusta, mikrokontrollerialijärjestelmän (MSS) esikäynnistystä ja MSS-käyttäjän käynnistystä. Tässä asiakirjassa kuvataan MSS-pre-boot ja MSS User Boot. Lisätietoja POR:sta, laitteen käynnistyksestä ja suunnittelun alustamisesta on kohdassa UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
Lisätietoja MSS-ominaisuuksista on kohdassa UG0880: PolarFire SoC MSS User Guide.
Käynnistysjärjestys
Käynnistysjakso alkaa, kun PolarFire SoC FPGA käynnistetään tai nollataan. Se päättyy, kun prosessori on valmis suorittamaan sovellusohjelman. Tämä käynnistyssarja kulkee useiden s-jaksojen läpitages ennen kuin se aloittaa ohjelmien suorittamisen.
Käynnistysprosessin aikana suoritetaan joukko toimintoja, jotka sisältävät laitteiston käynnistyksen nollauksen, oheislaitteiden alustuksen, muistin alustuksen ja käyttäjän määrittämän sovelluksen lataamisen haihtumattomasta muistista haihtuvaan muistiin suorittamista varten.
Seuraava kuva näyttää käynnistysjakson eri vaiheet.
Kuva 1 Käynnistysjärjestys
MSS Pre-Boot
Kun suunnittelun alustus on suoritettu onnistuneesti, MSS Pre-boot aloittaa sen suorittamisen. MSS vapautetaan nollauksesta, kun kaikki normaalit käynnistystoimenpiteet on suoritettu. Järjestelmäohjain hallitsee laitteiden ohjelmointia, alustusta ja konfigurointia. MSS Pre-boot ei tapahdu, jos ohjelmoitu laite on määritetty järjestelmän ohjaimen keskeytystilaan.
MSS:n käynnistystä edeltävää alustuksen vaihetta koordinoi järjestelmäohjaimen laiteohjelmisto, vaikka se voi käyttää MSS Core Complexin E51:tä suorittaakseen tiettyjä osia käynnistystä edeltävästä sekvenssistä.
Seuraavat tapahtumat tapahtuvat MSS:n esikäynnistyksen aikanatage:
- MSS:n sulautetun haihtumattoman muistin (eNVM) käynnistys
- MSS Core Complex L2 -välimuistiin liittyvän redundanssin korjauksen alustaminen
- Käyttäjän käynnistyskoodin todennus (jos User Secure -käynnistysvaihtoehto on käytössä)
- Siirrä toimiva MSS käyttäjän käynnistyskoodille
MSS Core Complex voidaan käynnistää yhdellä neljästä tilasta. Seuraavassa taulukossa luetellaan MSS-käynnistystä edeltävät vaihtoehdot, jotka voidaan määrittää ja ohjelmoida sNVM:ään. Käynnistystila määritellään käyttäjäparametrilla U_MSS_BOOTMODE[1:0]. Lisäkäynnistysmääritystiedot ovat tilariippuvaisia, ja ne määritellään käyttäjäparametrilla U_MSS_BOOTCFG (katso Taulukko 3, sivu 4 ja Taulukko 5, sivu 6).
Taulukko 1 • MSS Core -monimutkaiset käynnistystilat
U_MSS_BOOTMODE[1:0] | tila | Kuvaus |
0 | Tyhjäkäynnistys | MSS Core Complex käynnistyy käynnistysROM-muistista, jos MSS:ää ei ole määritetty |
1 | Ei-turvallinen käynnistys | MSS Core Complex käynnistyy suoraan U_MSS_BOOTADDR:n määrittämästä osoitteesta |
2 | Käyttäjän suojattu käynnistys | MSS Core Complex -saappaat sNVM:ltä |
3 | Tehdasturvallinen käynnistys | MSS Core Complex käynnistyy käyttämällä tehtaan suojattua käynnistysprotokollaa |
Käynnistysvaihtoehto valitaan osaksi Libero-suunnitteluprosessia. Tilan vaihtaminen voidaan saavuttaa vain luomalla uusi FPGA-ohjelmointi file.
Kuva 2 • MSS Pre-boot Flow
Idle Boot
Jos MSS:ää ei ole määritetty (esimample, tyhjä laite), sitten MSS Core Complex suorittaa käynnistysROM-ohjelman, joka pitää kaikki prosessorit äärettömässä silmukassa, kunnes debuggeri muodostaa yhteyden kohteeseen. Käynnistysvektorirekisterit säilyttävät arvonsa, kunnes laite nollataan tai uusi käynnistystilan konfiguraatio ohjelmoidaan. Konfiguroiduille laitteille tämä tila voidaan toteuttaa käyttämällä
U_MSS_BOOTMODE=0 käynnistysvaihtoehto Libero-konfiguraattorissa.
Huomautus: Tässä tilassa U_MSS_BOOTCFG ei ole käytössä.
Seuraavassa kuvassa näkyy tyhjäkäynnistysvirta.
Kuvio 3 • Idle Boot Flow
Ei-suojattu käynnistys
Tässä tilassa MSS Core Complex suorittaa määritetystä eNVM-osoitteesta ilman todennusta. Se tarjoaa nopeimman käynnistysvaihtoehdon, mutta koodikuvan todennusta ei ole. Osoite voidaan määrittää asettamalla Libero Configuratorissa U_MSS_BOOTADDR. Tätä tilaa voidaan käyttää myös käynnistämiseen mistä tahansa FPGA Fabric -muistiresurssista FIC:n kautta. Tämä tila toteutetaan käyttämällä
U_MSS_BOOTMODE=1 käynnistysvaihtoehto.
MSS Core Complex vapautetaan nollauksesta U_MSS_BOOTCFG:n määrittämillä käynnistysvektoreilla (kuten luetellaan seuraavassa taulukossa).
Taulukko 2 • U_MSS_BOOTCFG Käyttö ei-suojatussa käynnistystilassa 1
Offset (tavua) |
Koko (tavua) |
Nimi |
Kuvaus |
0 | 4 | BOOTVEC0 | Käynnistysvektori E51:lle |
4 | 4 | BOOTVEC1 | Käynnistysvektori U540:lle |
8 | 4 | BOOTVEC2 | Käynnistysvektori U541:lle |
16 | 4 | BOOTVEC3 | Käynnistysvektori U542:lle |
20 | 4 | BOOTVEC4 | Käynnistysvektori U543:lle |
Seuraavassa kuvassa näkyy Ei-suojattu käynnistyskulku.
Kuvio 4 • Ei-suojattu käynnistysvirta
Käyttäjän suojattu käynnistys
Tämän tilan avulla käyttäjä voi toteuttaa oman mukautetun suojatun käynnistyksen, ja käyttäjän suojattu käynnistyskoodi sijoitetaan sNVM:ään. sNVM on 56 kt:n haihtumaton muisti, joka voidaan suojata sisäänrakennetulla PUF-funktiolla (Physically Unclonable Function). Tätä käynnistystapaa pidetään suojattuna, koska ROMiksi merkityt sNVM-sivut ovat muuttumattomia. Kun järjestelmä käynnistetään, järjestelmäohjain kopioi käyttäjän suojatun käynnistyskoodin sNVM:stä E51 Monitor -ytimen Data Tightly Integrated Memory (DTIM) -muistiin. E51 aloittaa käyttäjän suojatun käynnistyskoodin suorittamisen.
Jos käyttäjän suojatun käynnistyskoodin koko on suurempi kuin DTIM:n koko, käyttäjän on jaettava käynnistyskoodi kahteen stages. sNVM voi sisältää seuraavat stage käyttäjän käynnistyssekvenssistä, joka voi suorittaa seuraavan käynnistyksen todennuksentage käyttämällä käyttäjän todennus-/salauksenpurkualgoritmia.
Jos käytetään todennettuja tai salattuja sivuja, sama USK-avain (eli
U_MSS_BOOT_SNVM_USK) on käytettävä kaikille todennetuille/salatuille sivuille.
Jos todennus epäonnistuu, MSS Core Complex voidaan asettaa nollaukseen ja BOOT_FAIL tamper lippu voidaan nostaa. Tämä tila toteutetaan U_MSS_BOOTMODE=2 käynnistysvaihtoehdolla.
Taulukko 3 • U_MSS_BOOTCFG Käyttö käyttäjän suojatussa käynnistyksessä
Offset (tavua) | Koko (tavua) | Nimi | Kuvaus |
0 | 1 | U_MSS_BOOT_SNVM_PAGE | Aloitussivu SNVM:ssä |
1 | 3 | VARATTU | Tasoitusta varten |
4 | 12 | U_MSS_BOOT_SNVM_USK | Todennetuille/salatuille sivuille |
Seuraava kuva näyttää käyttäjän suojatun käynnistyksen.
Kuvio 5 • Käyttäjän suojattu käynnistysvirta
Tehdasturvallinen käynnistys
Tässä tilassa järjestelmän ohjain lukee Secure Boot Image Certificate (SBIC) -varmenteen eNVM:stä ja vahvistaa SBIC:n. Onnistuneen tarkistuksen jälkeen System Controller kopioi tehdassuojatun käynnistyskoodin yksityiseltä suojatusta muistialueestaan ja lataa sen E51 Monitor -ytimen DTIM-muistiin. Oletussuojattu käynnistys suorittaa allekirjoituksen tarkistuksen eNVM-kuvalle käyttämällä SBIC-koodia, joka on tallennettu eNVM:ään. Jos virheitä ei raportoida, nollaus vapautetaan MSS Core Complexille. Jos virheitä ilmoitetaan, MSS Core Complex asetetaan nollaukseen ja BOOT_FAIL tamper lippu nostetaan. Sitten järjestelmän ohjain aktivoituu kloamper-lippu, joka antaa signaalin FPGA-kankaalle käyttäjän toimia varten. Tämä tila toteutetaan U_MSS_BOOTMODE=3 käynnistysvaihtoehdolla.
SBIC sisältää suojatun binääriblobin osoitteen, koon, tiivisteen ja ECDSA (Elliptic Curve Digital Signature Algorithm) -allekirjoituksen. ECDSA tarjoaa muunnelman Digital Signature Algorithm -algoritmista, joka käyttää elliptisen käyrän salausta. Se sisältää myös kunkin laitteiston nollausvektorin
lanka/ydin/prosessoriydin (Hart) järjestelmässä.
Taulukko 4 • Secure Boot Image Certificate (SBIC)
Offset | Koko (tavua) | Arvo | Kuvaus |
0 | 4 | IMAGEADDR | UBL:n osoite MSS-muistikartassa |
4 | 4 | IMAGELEN | UBL:n koko tavuina |
8 | 4 | BOOTVEC0 | Käynnistysvektori UBL:ssä E51:lle |
12 | 4 | BOOTVEC1 | Käynnistysvektori UBL:ssä U540:lle |
16 | 4 | BOOTVEC2 | Käynnistysvektori UBL:ssä U541:lle |
20 | 4 | BOOTVEC3 | Käynnistysvektori UBL:ssä U542:lle |
24 | 4 | BOOTVEC4 | Käynnistysvektori UBL:ssä U543:lle |
28 | 1 | VAIHTOEHDOT[7:0] | SBIC-vaihtoehdot |
28 | 3 | VARATTU | |
32 | 8 | VERSIO | SBIC/Image-versio |
40 | 16 | DSN | Valinnainen DSN-sidonta |
56 | 48 | H | UBL-kuva SHA-384 hash |
104 | 104 | CODESIG | DER-koodattu ECDSA-allekirjoitus |
Kokonais | 208 | tavua |
DSN
Jos DSN-kenttä on muu kuin nolla, sitä verrataan laitteen omaan sarjanumeroon. Jos vertailu epäonnistuu, boot_fail tamper-lippu asetetaan ja todennus keskeytetään.
VERSIO
Jos U_MSS_REVOCATION_ENABLE ottaa käyttöön SBIC:n kumoamisen, SBIC hylätään, ellei VERSION arvo ole suurempi tai yhtä suuri kuin peruuttamiskynnys.
SBIC-KULUVAIHTOEHTO
Jos U_MSS_REVOCATION_ENABLE ottaa käyttöön SBIC:n kumoamisen ja OPTIONS[0] on '1', kaikki SBIC-versiot, jotka ovat alle VERSION, kumotaan SBIC:n täydellisen todennuksen jälkeen. Peruuttamiskynnys pysyy uudessa arvossa, kunnes se kasvaa jälleen tulevalla SBIC:llä, jossa on OPTIONS[0] = '1' ja korkeampi VERSIO-kenttä. Peruutuskynnystä voidaan lisätä vain tällä mekanismilla, ja se voidaan nollata vain bittivirralla.
Kun peruuttamiskynnys päivitetään dynaamisesti, kynnys tallennetaan käyttämällä salasanalle käytettyä redundanttia tallennusmenetelmää siten, että virtakatkos laitteen käynnistyksen aikana ei aiheuta seuraavan laitteen käynnistyksen epäonnistumista. Jos peruutuskynnyksen päivitys epäonnistuu, kynnysarvon taataan olevan joko uusi tai edellinen.
Taulukko 5 • U_MSS_BOOTCFG Käyttö tehdaskäynnistystilassa
Offset (tavua) |
Koko (tavua) |
Nimi |
Kuvaus |
0 | 4 | U_MSS_SBIC_ADDR | SBIC:n osoite MSS-osoiteavaruudessa |
4 | 4 | U_MSS_REVOCATION_ENABLE | Ota SBIC-sulku käyttöön, jos se ei ole nolla |
Seuraavassa kuvassa näkyy tehtaan suojattu käynnistysvirta.
Kuvio 6 • Factory Secure Boot Flow
MSS-käyttäjän käynnistys
MSS-käyttäjän käynnistys tapahtuu, kun ohjaus annetaan System Controllerista MSS Core Complexille. Onnistuneen MSS-esikäynnistyksen jälkeen järjestelmän ohjain vapauttaa nollauksen MSS Core Complexiin. MSS voidaan käynnistää jollakin seuraavista tavoista:
- Paljas metallisovellus
- Linux-sovellus
- AMP Sovellus
Paljas metallisovellus
PolarFire SoC:n paljasmetallisovellukset voidaan kehittää SoftConsole-työkalulla. Tämä työkalu tarjoaa tulosteen files muodossa .hex, jota voidaan käyttää Libero-vuon sisällyttämiseen ohjelmoinnin bittivirtaan file. Samaa työkalua voidaan käyttää Bare Metal -sovellusten virheenkorjaukseen JTAG
käyttöliittymä.
Seuraavassa kuvassa on SoftConsole Bare Metal -sovellus, jossa on viisi hartia (ydintä), mukaan lukien E51-monitoriydin.
Kuvio 7 • SoftConsole-projekti
Linux-sovellus
Tässä osassa kuvataan käynnistysjärjestys Linuxille, joka toimii kaikissa U54-ytimissä.
Tyypillinen käynnistysprosessi koostuu kolmesta s:stätages. Ensimmäiset stagKäynnistyslatain (FSBL) suoritetaan sirulla olevasta Boot Flashista (eNVM). FSBL lataa toisen s:ntage boot loader (SSBL) käynnistyslaitteesta ulkoiseen RAM-muistiin tai välimuistiin. Käynnistyslaite voi olla eNVM tai sulautetun muistin mikrokontrolleri (eMMC) tai ulkoinen SPI Flash. SSBL lataa Linux-käyttöjärjestelmän käynnistyslaitteesta ulkoiseen RAM-muistiin. Kolmannessa stage, Linux suoritetaan ulkoisesta RAM-muistista.
Seuraava kuva näyttää Linuxin käynnistysprosessin.
Kuvio 8 • Tyypillinen Linuxin käynnistysprosessin kulku
Yksityiskohdat FSBL:stä, laitepuusta, Linuxista ja YOCTOsta sekä Linuxin rakentamisesta ja määrittämisestä annetaan tämän asiakirjan tulevassa julkaisussa.
AMP Sovellus
Yksityiskohtainen kuvaus Libero MSS Configuratorista ja moniprosessorisovellusten virheenkorjauksesta SoftConsolea käyttämällä annetaan tämän asiakirjan tulevassa julkaisussa.
Erilaiset käynnistyslähteet
Päivitetään tämän asiakirjan tulevissa versioissa.
Käynnistysasetukset
Päivitetään tämän asiakirjan tulevissa versioissa.
Lyhenteet
Tässä asiakirjassa käytetään seuraavia lyhenteitä.
Taulukko 1 • Luettelo lyhenteistä
Lyhenne laajennettu
- AMP Epäsymmetrinen monikäsittely
- DTIM Data Tightly Integrated Muisti (kutsutaan myös nimellä SRAM)
- ECDSA Elliptisen käyrän digitaalinen allekirjoitusalgoritmi
- eNVM sulautettu haihtumaton muisti
- FSBL Ensimmäinen Stage Käynnistyslatain
- Hart Laitteistolanka/ydin/prosessorin ydin
- MSS Mikroprosessori-alijärjestelmä
- POR Virta päälle Reset
- PÖH Fyysisesti kloonaamaton toiminto
- ROM Lukumuisti
- SCB System Controller Bridge
- sNVM Suojattu haihtumaton muisti
Versiohistoria
Versiohistoria kuvaa asiakirjaan tehdyt muutokset. Muutokset on listattu versioittain nykyisestä julkaisusta alkaen.
Versio 2.0
Seuraavassa on yhteenveto tässä versiossa tehdyistä muutoksista.
- Tietoja Factory Secure Bootista päivitettiin.
- Bare Metal Application -sovelluksen tiedot päivitettiin.
Versio 1.0
Tämän asiakirjan ensimmäinen julkaisu.
Microsemin päämaja
One Enterprise, Aliso Viejo,
CA 92656 USA
USA:n sisällä: +1 800-713-4113
USA:n ulkopuolella: +1 949-380-6100
Myynti: +1 949-380-6136
Faksi: +1 949-215-4996
Sähköposti: sales.support@microsemi.com
www.microsemi.com
©2020 Microsemi, Microchip Technology Inc:n kokonaan omistama tytäryhtiö. Kaikki oikeudet pidätetään. Microsemi ja Microsemi-logo ovat Microsemi Corporationin rekisteröityjä tavaramerkkejä. Kaikki muut tavaramerkit ja palvelumerkit ovat omistajiensa omaisuutta.
Asiakirjat / Resurssit
![]() |
Mikrosiru UG0881 PolarFire SoC FPGA käynnistys ja konfigurointi [pdfKäyttöopas UG0881 PolarFire SoC FPGA käynnistys ja konfigurointi, UG0881, PolarFire SoC FPGA käynnistys ja konfigurointi, käynnistys ja konfigurointi |