Mikrosemi-LGOO

Mikrobrikke UG0881 PolarFire SoC FPGA oppstart og konfigurasjon

Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-product

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  OppstartssekvensMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 1

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 Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 2

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ømMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 3

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 oppstartsflytMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 4

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 oppstartsflytMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 5

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 oppstartsflytMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 6 Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 7

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 Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 8

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 FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 9

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

Referanser

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *