Mikrobrikke UG0881 PolarFire SoC FPGA oppstart og konfigurasjon
Garanti
Microsemi gir ingen garantier, representasjoner eller garantier angående informasjonen i dette dokumentet eller egnetheten til produktene og tjenestene for noe bestemt formål, og Microsemi påtar seg heller ikke noe ansvar som oppstår som følge av bruken eller bruken av et produkt eller en krets. Produktene som selges nedenfor og andre produkter som selges av Microsemi har vært gjenstand for begrenset testing og skal ikke brukes sammen med virksomhetskritisk utstyr eller applikasjoner. Eventuelle ytelsesspesifikasjoner antas å være pålitelige, men er ikke verifisert, og kjøper må gjennomføre og fullføre all ytelse og annen testing av produktene, alene og sammen med, eller installert i, eventuelle sluttprodukter. Kjøper skal ikke stole på data og ytelsesspesifikasjoner eller parametere levert av Microsemi. Det er kjøperens ansvar å uavhengig avgjøre egnetheten til ethvert produkt og å teste og verifisere det samme. Informasjonen gitt av Microsemi nedenfor er gitt "som den er, hvor den er" og med alle feil, og hele risikoen forbundet med slik informasjon er utelukkende hos kjøperen. Microsemi gir ikke, eksplisitt eller implisitt, til noen part noen patentrettigheter, lisenser eller andre IP-rettigheter, enten det gjelder slik informasjon i seg selv eller noe som er beskrevet av slik informasjon. Informasjonen gitt i dette dokumentet tilhører Microsemi, og Microsemi forbeholder seg retten til å gjøre endringer i informasjonen i dette dokumentet eller til produkter og tjenester når som helst uten varsel.
Om Microsemi
Microsemi, et heleid datterselskap av Microchip Technology Inc. (Nasdaq: MCHP), tilbyr en omfattende portefølje av halvleder- og systemløsninger for luftfart og forsvar, kommunikasjon, datasenter og industrielle markeder. Produktene inkluderer høyytelses og strålingsherdede analoge integrerte kretser med blandede signaler, FPGA-er, SoC-er og ASIC-er; strømstyring produkter; timing- og synkroniseringsenheter og presise tidsløsninger, setter verdens standard for tid; stemmebehandling enheter; RF-løsninger; diskrete komponenter; bedriftslagrings- og kommunikasjonsløsninger, sikkerhetsteknologier og skalerbar anti-tamper produkter; Ethernet-løsninger; Power-over-Ethernet ICer og midspans; samt tilpassede designfunksjoner og tjenester. Lær mer på www.microsemi.com.
Oppstart og konfigurering
PolarFire SoC FPGA-er bruker avanserte oppstartskretser for å sikre pålitelig strøm på ved oppstart og tilbakestilling. Ved oppstart og tilbakestilling følger PolarFire SoC FPGA-oppstartssekvensen ved tilbakestilling ved oppstart (POR), enhetsoppstart, designinitialisering, forhåndsoppstart av mikrokontrollerundersystem (MSS) og brukeroppstart av MSS. Dette dokumentet beskriver MSS pre-boot og MSS User Boot. For informasjon om POR, Device Boot and Design initialization, se UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
For mer informasjon om MSS-funksjoner, se UG0880: PolarFire SoC MSS User Guide.
Oppstartssekvens
Oppstartssekvensen starter når PolarFire SoC FPGA slås på eller tilbakestilles. Den avsluttes når prosessoren er klar til å kjøre et applikasjonsprogram. Denne oppstartssekvensen går gjennom flere stages før den begynner å kjøre programmer.
Et sett med operasjoner utføres under oppstartsprosessen som inkluderer tilbakestilling av maskinvaren ved oppstart, initialisering av perifer, minneinitialisering og lasting av den brukerdefinerte applikasjonen fra ikke-flyktig minne til det flyktige minnet for kjøring.
Følgende figur viser ulike faser av oppstartssekvensen.
Figur 1 Oppstartssekvens
MSS forhåndsoppstart
Etter vellykket gjennomføring av designinitialisering starter MSS Pre-boot utførelsen. MSS frigjøres fra en tilbakestilling etter fullføring av alle normale oppstartsprosedyrer. Systemkontrolleren administrerer programmeringen, initialiseringen og konfigurasjonen av enhetene. MSS Pre-boot skjer ikke hvis den programmerte enheten er konfigurert for suspenderingsmodus for systemkontrolleren.
MSS pre-boot-fasen av initialisering koordineres av systemkontrollerens fastvare, selv om den kan bruke E51 i MSS Core Complex for å utføre visse deler av pre-boot-sekvensen.
Følgende hendelser inntreffer under MSS før-oppstarttage:
- Oppstart av MSS innebygd ikke-flyktig minne (eNVM)
- Initialisering av redundansreparasjonen knyttet til MSS Core Complex L2-cachen
- Autentisering av brukeroppstartskode (hvis alternativet for brukersikker oppstart er aktivert)
- Overlevering av operativ MSS til brukeroppstartskode
MSS Core Complex kan startes opp i en av fire moduser. Følgende tabell viser MSS pre-boot alternativer, som kan konfigureres og programmeres inn i sNVM. Oppstartsmodusen er definert av brukerparameteren U_MSS_BOOTMODE[1:0]. Ytterligere oppstartskonfigurasjonsdata er modusavhengige og er definert av brukerparameteren U_MSS_BOOTCFG (se Tabell 3, side 4 og Tabell 5, side 6).
Tabell 1 • MSS Core Complex Boot Modes
U_MSS_BOOTMODE[1:0] | Modus | Beskrivelse |
0 | Tomgangsstøvel | MSS Core Complex starter opp fra oppstarts-ROM hvis MSS ikke er konfigurert |
1 | Ikke-sikker oppstart | MSS Core Complex starter opp direkte fra adresse definert av U_MSS_BOOTADDR |
2 | Bruker sikker oppstart | MSS Core Complex støvler fra sNVM |
3 | Fabrikksikker oppstart | MSS Core Complex-støvler bruker den sikre oppstartsprotokollen fra fabrikken |
Støvelalternativet er valgt som en del av Libero-designflyten. Endring av modus kan bare oppnås gjennom generering av en ny FPGA-programmering file.
Figur 2 • MSS Pre-boot Flow
Tomgangsstart
Hvis MSS ikke er konfigurert (f.eksample, tom enhet), så kjører MSS Core Complex et oppstarts-ROM-program som holder alle prosessorene i en uendelig sløyfe til en debugger kobler til målet. Oppstartsvektorregistrene opprettholder verdien til enheten tilbakestilles eller en ny oppstartsmoduskonfigurasjon programmeres. For konfigurerte enheter kan denne modusen implementeres ved hjelp av
U_MSS_BOOTMODE=0 oppstartsalternativ i Libero-konfiguratoren.
Note: I denne modusen brukes ikke U_MSS_BOOTCFG.
Følgende figur viser tomgangsstartflyten.
Figur 3 • Tomgangsstartstrøm
Ikke-sikker oppstart
I denne modusen kjører MSS Core Complex fra en spesifisert eNVM-adresse uten autentisering. Det gir det raskeste oppstartsalternativet, men det er ingen autentisering av kodebildet. Adressen kan spesifiseres ved å sette U_MSS_BOOTADDR i Libero Configurator. Denne modusen kan også brukes til å starte opp fra en hvilken som helst FPGA Fabric-minneressurs gjennom FIC. Denne modusen implementeres ved hjelp av
U_MSS_BOOTMODE=1 oppstartsalternativ.
MSS Core Complex frigjøres fra tilbakestilling med oppstartsvektorer definert av U_MSS_BOOTCFG (som oppført i følgende tabell).
Tabell 2 • U_MSS_BOOTCFG Bruk i ikke-sikker oppstartsmodus 1
Offset (bytes) |
Størrelse (bytes) |
Navn |
Beskrivelse |
0 | 4 | BOOTVEC0 | Oppstartsvektor for E51 |
4 | 4 | BOOTVEC1 | Bootvektor for U540 |
8 | 4 | BOOTVEC2 | Bootvektor for U541 |
16 | 4 | BOOTVEC3 | Bootvektor for U542 |
20 | 4 | BOOTVEC4 | Bootvektor for U543 |
Følgende figur viser den usikre oppstartsflyten.
Figur 4 • Ikke-sikker oppstartsflyt
Bruker sikker oppstart
Denne modusen lar brukeren implementere sin egen tilpassede sikker oppstart og brukerens sikre oppstartskode plasseres i sNVM. sNVM er et 56 KB ikke-flyktig minne som kan beskyttes av den innebygde Physically Unclonable Function (PUF). Denne oppstartsmetoden anses som sikret fordi sNVM-sider merket som ROM er uforanderlige. Ved oppstart kopierer systemkontrolleren brukerens sikre oppstartskode fra sNVM til Data Tightly Integrated Memory (DTIM) i E51 Monitor-kjernen. E51 begynner å kjøre brukerens sikre oppstartskode.
Hvis størrelsen på brukerens sikre oppstartskode er større enn størrelsen på DTIM, må brukeren dele oppstartskoden i to s.tages. sNVM kan inneholde de neste stage av brukeroppstartssekvensen, som kan utføre autentisering av neste oppstarttage ved å bruke brukerautentiserings-/dekrypteringsalgoritmen.
Hvis det brukes autentiserte eller krypterte sider, er den samme USK-nøkkelen (det vil si
U_MSS_BOOT_SNVM_USK) må brukes for alle autentiserte/krypterte sider.
Hvis autentiseringen mislykkes, kan MSS Core Complex settes i tilbakestilling og BOOT_FAIL tamper flagget kan heises. Denne modusen implementeres ved å bruke oppstartsalternativet U_MSS_BOOTMODE=2.
Tabell 3 • U_MSS_BOOTCFG Bruk i brukersikker oppstart
Offset (bytes) | Størrelse (bytes) | Navn | Beskrivelse |
0 | 1 | U_MSS_BOOT_SNVM_PAGE | Startside i SNVM |
1 | 3 | RESERVERT | For justering |
4 | 12 | U_MSS_BOOT_SNVM_USK | For autentiserte/krypterte sider |
Følgende figur viser brukerens sikre oppstartsflyt.
Figur 5 • Brukersikker oppstartsflyt
Sikker oppstart fra fabrikk
I denne modusen leser systemkontrolleren Secure Boot Image Certificate (SBIC) fra eNVM og validerer SBIC. Ved vellykket validering kopierer systemkontrolleren den fabrikksikrede oppstartskoden fra det private, sikre minneområdet og laster den inn i DTIM-en til E51 Monitor-kjernen. Standard sikker oppstart utfører en signatursjekk på eNVM-bildet ved hjelp av SBIC som er lagret i eNVM. Hvis ingen feil rapporteres, frigis tilbakestillingen til MSS Core Complex. Hvis det rapporteres feil, settes MSS Core Complex i tilbakestilling og BOOT_FAIL tampflagget er heist. Deretter aktiveres systemkontrolleren klamper flagg som hevder et signal til FPGA-stoffet for brukerhandling. Denne modusen implementeres ved å bruke oppstartsalternativet U_MSS_BOOTMODE=3.
SBIC-en inneholder adresse, størrelse, hash og ECDSA-signatur (Elliptic Curve Digital Signature Algorithm) til den beskyttede binære blokken. ECDSA tilbyr en variant av Digital Signature Algorithm som bruker elliptisk kurvekryptografi. Den inneholder også tilbakestillingsvektoren for hver maskinvare
tråd/kjerne/prosessorkjerne (Hart) i systemet.
Tabell 4 • Secure Boot Image Certificate (SBIC)
Offset | Størrelse (bytes) | Verdi | Beskrivelse |
0 | 4 | IMAGEADDR | Adresse til UBL i MSS minnekart |
4 | 4 | IMAGELEN | Størrelse på UBL i byte |
8 | 4 | BOOTVEC0 | Oppstartsvektor i UBL for E51 |
12 | 4 | BOOTVEC1 | Bootvektor i UBL for U540 |
16 | 4 | BOOTVEC2 | Bootvektor i UBL for U541 |
20 | 4 | BOOTVEC3 | Bootvektor i UBL for U542 |
24 | 4 | BOOTVEC4 | Bootvektor i UBL for U543 |
28 | 1 | ALTERNATIVER[7:0] | SBIC-alternativer |
28 | 3 | RESERVERT | |
32 | 8 | VERSJON | SBIC/Bildeversjon |
40 | 16 | DSN | Valgfri DSN-binding |
56 | 48 | H | UBL-bilde SHA-384 hash |
104 | 104 | CODESIG | DER-kodet ECDSA-signatur |
Total | 208 | Bytes |
DSN
Hvis DSN-feltet ikke er null, sammenlignes det med enhetens eget serienummer. Hvis sammenligningen mislykkes, vil boot_fail tampflagget er satt og autentiseringen avbrytes.
VERSJON
Hvis SBIC-tilbakekalling er aktivert av U_MSS_REVOCATION_ENABLE, avvises SBIC-en med mindre verdien av VERSJON er større enn eller lik tilbakekallingsterskelen.
SBIC OPPHAVERING
Hvis SBIC-oppheving er aktivert av U_MSS_REVOCATION_ENABLE og OPTIONS[0] er '1', oppheves alle SBIC-versjoner mindre enn VERSJON ved fullstendig autentisering av SBIC. Tilbakekallingsterskelen forblir på den nye verdien til den øker igjen med en fremtidig SBIC med OPTIONS[0] = '1' og et høyere VERSJON-felt. Tilbakekallingsterskelen kan bare økes ved hjelp av denne mekanismen og kan bare tilbakestilles med en bitstrøm.
Når tilbakekallingsterskelen oppdateres dynamisk, lagres terskelen ved å bruke det redundante lagringsskjemaet som brukes for passord, slik at et strømbrudd under enhetsoppstart ikke fører til at en påfølgende enhetsoppstart mislykkes. Hvis oppdateringen av tilbakekallingsterskel mislykkes, er det garantert at terskelverdien enten er den nye verdien eller den forrige.
Tabell 5 • U_MSS_BOOTCFG Bruk i fabrikkoppstartslastermodus
Offset (bytes) |
Størrelse (bytes) |
Navn |
Beskrivelse |
0 | 4 | U_MSS_SBIC_ADDR | Adresse til SBIC i MSS adresserom |
4 | 4 | U_MSS_REVOCATION_ENABLE | Aktiver tilbakekalling av SBIC hvis den ikke er null |
Følgende figur viser fabrikksikker oppstartsflyt.
Figur 6 • Fabrikksikker oppstartsflyt
MSS brukeroppstart
MSS brukeroppstart finner sted når kontrollen er gitt fra systemkontrolleren til MSS Core Complex. Ved vellykket MSS-pre-boot, frigjør systemkontrolleren tilbakestillingen til MSS Core Complex. MSS kan startes opp på en av følgende måter:
- Bare Metal Application
- Linux-applikasjon
- AMP Søknad
Bare Metal Application
Bare metallapplikasjonene for PolarFire SoC kan utvikles ved hjelp av SoftConsole-verktøyet. Dette verktøyet gir resultatet files i form av .hex som kan brukes i Libero-flyten for å inkludere i programmeringsbitstrømmen file. Det samme verktøyet kan brukes til å feilsøke Bare Metal-applikasjonene ved å bruke JTAG
grensesnitt.
Den følgende figuren viser SoftConsole Bare Metal-applikasjonen som har fem harts (kjerner) inkludert E51 Monitor-kjerne.
Figur 7 • SoftConsole-prosjekt
Linux-applikasjon
Denne delen beskriver oppstartssekvensen for Linux som kjører på alle U54-kjerner.
En typisk oppstartsprosess består av tre stages. De første stagOppstartslasteren (FSBL) blir utført fra oppstartsflashen på brikken (eNVM). FSBL laster den andre stage oppstartslaster (SSBL) fra en oppstartsenhet til ekstern RAM eller cache. Oppstartsenheten kan være eNVM eller innebygd minnemikrokontroller (eMMC) eller ekstern SPI Flash. SSBL laster Linux-operativsystemet fra oppstartsenhet til ekstern RAM. I den tredje stage, Linux kjøres fra ekstern RAM.
Følgende figur viser Linux Boot Process-flyten.
Figur 8 • Typisk Linux Boot Process Flow
Detaljer om FSBL, Device Tree, Linux og YOCTO build, hvordan du bygger og konfigurerer Linux vil bli gitt i den fremtidige utgivelsen av dette dokumentet.
AMP Søknad
Detaljert beskrivelse av Libero MSS Configurator og hvordan du feilsøker multiprosessorapplikasjoner ved hjelp av SoftConsole vil bli gitt i den fremtidige utgivelsen av dette dokumentet.
Ulike kilder til oppstart
Oppdateres i fremtidige versjoner av dette dokumentet.
Oppstartskonfigurasjon
Oppdateres i fremtidige versjoner av dette dokumentet.
Akronymer
Følgende akronymer brukes i dette dokumentet.
Tabell 1 • Liste over akronymer
Akronym utvidet
- AMP Asymmetrisk multi-prosessering
- DTIM Data Tightly Integrated Memory (også kalt SRAM)
- ECDSA Elliptisk kurve digital signaturalgoritme
- eNVM innebygd ikke-flyktig minne
- FSBL Først Stage Boot Loader
- Hart Maskinvare tråd/kjerne/prosessor kjerne
- MSS Mikroprosessor undersystem
- POR Strøm på Tilbakestill
- PUF Fysisk uklonbar funksjon
- ROM Kun Les minne
- SCB Systemkontrollerbro
- sNVM Sikkert ikke-flyktig minne
Revisjonshistorie
Revisjonshistorikken beskriver endringene som ble implementert i dokumentet. Endringene er oppført etter revisjon, fra og med gjeldende publikasjon.
Revisjon 2.0
Følgende er en oppsummering av endringene som er gjort i denne revisjonen.
- Informasjon om Factory Secure Boot ble oppdatert.
- Informasjon om Bare Metal Application ble oppdatert.
Revisjon 1.0
Den første utgivelsen av dette dokumentet.
Mikrosemi hovedkvarter
One Enterprise, Aliso Viejo,
CA 92656 USA
Innenfor USA: +1 800-713-4113
Utenfor USA: +1 949-380-6100
Salg: +1 949-380-6136
Faks: +1 949-215-4996
E-post: sales.support@microsemi.com
www.microsemi.com
©2020 Microsemi, et heleid datterselskap av Microchip Technology Inc. Alle rettigheter forbeholdt. Microsemi og Microsemi-logoen er registrerte varemerker for Microsemi Corporation. Alle andre varemerker og tjenestemerker tilhører sine respektive eiere.
Dokumenter / Ressurser
![]() |
Mikrobrikke UG0881 PolarFire SoC FPGA oppstart og konfigurasjon [pdfBrukerhåndbok UG0881 PolarFire SoC FPGA oppstart og konfigurasjon, UG0881, PolarFire SoC FPGA oppstart og konfigurasjon, oppstart og konfigurasjon |