Microsemi-LGOO

Mikrosiru UG0881 PolarFire SoC FPGA käynnistys ja konfigurointi

Mikrosiru-UG0881-PolarFire-SoC-FPGA-Booting-and-Configuration-tuote

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ärjestysMikrosiru-UG0881-PolarFire-SoC-FPGA-Booting-and-Configuration-kuva 1

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 Mikrosiru-UG0881-PolarFire-SoC-FPGA-Booting-and-Configuration-kuva 2

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 FlowMikrosiru-UG0881-PolarFire-SoC-FPGA-Booting-and-Configuration-kuva 3

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äynnistysvirtaMikrosiru-UG0881-PolarFire-SoC-FPGA-Booting-and-Configuration-kuva 4

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äynnistysvirtaMikrosiru-UG0881-PolarFire-SoC-FPGA-Booting-and-Configuration-kuva 5

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 FlowMikrosiru-UG0881-PolarFire-SoC-FPGA-Booting-and-Configuration-kuva 6 Mikrosiru-UG0881-PolarFire-SoC-FPGA-Booting-and-Configuration-kuva 7

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 Mikrosiru-UG0881-PolarFire-SoC-FPGA-Booting-and-Configuration-kuva 8

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 kulkuMikrosiru-UG0881-PolarFire-SoC-FPGA-Booting-and-Configuration-kuva 9

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

Viitteet

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *