Mikrosemi-LGOO

Mikrochip UG0881 PolarFire SoC FPGA opstart og konfiguration

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

Garanti

Microsemi giver ingen garanti, repræsentation eller garanti vedrørende informationen indeholdt heri eller egnetheden af ​​dets produkter og tjenester til et bestemt formål, og Microsemi påtager sig heller ikke noget som helst ansvar som følge af anvendelsen eller brugen af ​​noget produkt eller kredsløb. Produkterne, der sælges nedenfor, og alle andre produkter, der sælges af Microsemi, har været genstand for begrænset testning og bør ikke bruges sammen med missionskritisk udstyr eller applikationer. Eventuelle ydeevnespecifikationer menes at være pålidelige, men er ikke verificerede, og Køber skal udføre og gennemføre al ydeevne og anden test af produkterne, alene og sammen med eller installeret i eventuelle slutprodukter. Køber skal ikke stole på nogen data og ydeevnespecifikationer eller parametre leveret af Microsemi. Det er Købers ansvar selvstændigt at bestemme egnetheden af ​​ethvert produkt og at teste og verificere det samme. Oplysningerne leveret af Microsemi nedenfor leveres "som de er, hvor de er" og med alle fejl, og hele risikoen forbundet med sådanne oplysninger er udelukkende hos køberen. Microsemi giver ikke, eksplicit eller implicit, til nogen part nogen patentrettigheder, licenser eller andre IP-rettigheder, hvad enten det drejer sig om sådanne oplysninger i sig selv eller noget, der er beskrevet af sådanne oplysninger. Oplysningerne i dette dokument tilhører Microsemi, og Microsemi forbeholder sig retten til at foretage ændringer af oplysningerne i dette dokument eller til produkter og tjenester til enhver tid uden varsel.

Om Microsemi

Microsemi, et helejet datterselskab af Microchip Technology Inc. (Nasdaq: MCHP), tilbyder en omfattende portefølje af halvleder- og systemløsninger til rumfart og forsvar, kommunikation, datacentre og industrielle markeder. Produkterne omfatter højtydende og strålingshærdede analoge blandede signal-integrerede kredsløb, FPGA'er, SoC'er og ASIC'er; strømstyring produkter; timing- og synkroniseringsenheder og præcise tidsløsninger, der sætter verdens standard for tid; stemmebehandlingsudstyr; RF-løsninger; diskrete komponenter; enterprise storage og kommunikationsløsninger, sikkerhedsteknologier og skalerbar anti-tamper produkter; Ethernet-løsninger; Power-over-Ethernet IC'er og midspans; samt tilpassede designmuligheder og tjenester. Lær mere på www.microsemi.com.

Opstart og konfiguration

PolarFire SoC FPGA'er bruger avancerede opstartskredsløb for at sikre pålidelig strøm ved opstart og nulstilling. Ved opstart og nulstilling følger PolarFire SoC FPGA-opstartssekvensen Power-on-nulstilling (POR), Enhedsstart, Designinitialisering, Microcontroller Subsystem (MSS) pre-boot og MSS brugerstart. Dette dokument beskriver MSS pre-boot og MSS User Boot. For oplysninger om POR, Device Boot og Design-initialisering, se UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
For mere information om MSS-funktioner, se UG0880: PolarFire SoC MSS User Guide.

Opstartssekvens
Opstartssekvensen starter, når PolarFire SoC FPGA tændes eller nulstilles. Den slutter, når processoren er klar til at udføre et applikationsprogram. Denne opstartssekvens løber gennem flere stagfør den begynder at udføre programmer.
Et sæt handlinger udføres under opstartsprocessen, som inkluderer start-nulstilling af hardwaren, perifer initialisering, hukommelsesinitialisering og indlæsning af den brugerdefinerede applikation fra ikke-flygtig hukommelse til den flygtige hukommelse til udførelse.

Følgende figur viser forskellige faser af opstartssekvensen.

Figur 1  OpstartssekvensMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 1

MSS Pre-boot

Efter vellykket afslutning af designinitialisering, starter MSS Pre-boot sin eksekvering. MSS frigives fra en nulstilling efter fuldførelse af alle normale opstartsprocedurer. Systemcontrolleren styrer programmeringen, initialiseringen og konfigurationen af ​​enhederne. MSS Pre-boot forekommer ikke, hvis den programmerede enhed er konfigureret til systemcontroller-suspenderingstilstand.
MSS pre-boot-fasen af ​​initialisering koordineres af systemcontroller-firmwaren, selvom den kan gøre brug af E51 i MSS Core Complex til at udføre visse dele af pre-boot-sekvensen.
Følgende hændelser opstår under MSS pre-boot stage:

  • Opstart af MSS-indlejret ikke-flygtig hukommelse (eNVM)
  • Initialisering af redundansreparationen forbundet med MSS Core Complex L2-cachen
  • Godkendelse af brugerstartkode (hvis User Secure boot-indstillingen er aktiveret)
  • Overdragelse af operationel MSS til User Boot-kode

MSS Core Complex kan startes i en af ​​fire tilstande. Følgende tabel viser MSS pre-boot muligheder, som kan konfigureres og programmeres i sNVM. Opstartstilstanden er defineret af brugerparameteren U_MSS_BOOTMODE[1:0]. Yderligere opstartskonfigurationsdata er tilstandsafhængige og defineres af brugerparameteren U_MSS_BOOTCFG (se tabel 3, side 4 og tabel 5, side 6).

Tabel 1 • MSS Core Complex Boot Modes

U_MSS_BOOTMODE[1:0] Mode Beskrivelse
0 Tomgangsstøvle MSS Core Complex starter fra boot ROM, hvis MSS ikke er konfigureret
1 Usikret støvle MSS Core Complex starter direkte fra adresse defineret af U_MSS_BOOTADDR
2 Bruger sikker opstart MSS Core Complex støvler fra sNVM
3 Fabrikssikker boot MSS Core Complex-støvler ved hjælp af fabrikssikret opstartsprotokol

Støvlemuligheden er valgt som en del af Libero designflowet. Ændring af tilstanden kan kun opnås gennem generering af en ny FPGA-programmering file.

Figur 2 • MSS Pre-boot Flow Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 2

Tomgangsstøvle

Hvis MSS ikke er konfigureret (f.eksample, tom enhed), så udfører MSS Core Complex et boot ROM-program, som holder alle processorerne i en uendelig løkke, indtil en debugger forbinder til målet. Opstartsvektorregistrene bevarer deres værdi, indtil enheden nulstilles, eller en ny opstartstilstandskonfiguration er programmeret. For konfigurerede enheder kan denne tilstand implementeres ved hjælp af
U_MSS_BOOTMODE=0 opstartsmulighed i Libero-konfiguratoren.

Note: I denne tilstand bruges U_MSS_BOOTCFG ikke.

Følgende figur viser tomgangsstartflowet.
Figur 3 • Idle Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 3

Ikke-sikker Boot

I denne tilstand udføres MSS Core Complex fra en specificeret eNVM-adresse uden godkendelse. Det giver den hurtigste opstartsmulighed, men der er ingen godkendelse af kodebilledet. Adressen kan angives ved at indstille U_MSS_BOOTADDR i Libero Configurator. Denne tilstand kan også bruges til at starte fra enhver FPGA Fabric-hukommelsesressource gennem FIC. Denne tilstand implementeres ved hjælp af
U_MSS_BOOTMODE=1 opstartsmulighed.
MSS Core Complex frigives fra nulstilling med bootvektorer defineret af U_MSS_BOOTCFG (som angivet i følgende tabel).

Tabel 2 • U_MSS_BOOTCFG Brug i ikke-sikker opstartstilstand 1

Offset (bytes)  

Størrelse (bytes)

 

Navn

 

Beskrivelse

0 4 BOOTVEC0 Boot vektor til E51
4 4 BOOTVEC1 Boot vektor til U540
8 4 BOOTVEC2 Boot vektor til U541
16 4 BOOTVEC3 Boot vektor til U542
20 4 BOOTVEC4 Boot vektor til U543

Følgende figur viser det ikke-sikker bootflow.
Figur 4 • Ikke-sikkert Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 4

Bruger sikker opstart
Denne tilstand giver brugeren mulighed for at implementere deres egen brugerdefinerede sikker opstart, og brugerens sikre boot-kode placeres i sNVM. sNVM er en 56 KB ikke-flygtig hukommelse, der kan beskyttes af den indbyggede Physically Unclonable Function (PUF). Denne opstartsmetode anses for at være sikret, fordi sNVM-sider markeret som ROM er uforanderlige. Ved opstart kopierer systemcontrolleren brugerens sikre boot-kode fra sNVM til Data Tightly Integrated Memory (DTIM) i E51 Monitor-kernen. E51 begynder at udføre brugerens sikre boot-kode.
Hvis størrelsen på brugerens sikre boot-kode er større end størrelsen af ​​DTIM'en, skal brugeren opdele bootkoden i to s.tages. sNVM kan indeholde de næste stage af brugerens opstartssekvens, som kan udføre godkendelse af den næste opstarttage ved at bruge brugergodkendelses-/dekrypteringsalgoritmen.
Hvis der bruges autentificerede eller krypterede sider, er den samme USK-nøgle (dvs.
U_MSS_BOOT_SNVM_USK) skal bruges til alle godkendte/krypterede sider.
Hvis godkendelse mislykkes, kan MSS Core Complex sættes i nulstilling og BOOT_FAIL tamper flag kan hejses. Denne tilstand implementeres ved hjælp af U_MSS_BOOTMODE=2 boot-indstillingen.

Tabel 3 •  U_MSS_BOOTCFG Brug i brugersikker opstart

Offset (bytes) Størrelse (bytes) Navn Beskrivelse
0 1 U_MSS_BOOT_SNVM_PAGE Startside i SNVM
1 3 RESERVERET Til justering
4 12 U_MSS_BOOT_SNVM_USK Til autentificerede/krypterede sider

Følgende figur viser brugerens sikre boot-flow.
Figur 5 • Bruger Sikker Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 5

Factory Sikker Boot
I denne tilstand læser systemcontrolleren SBIC (Secure Boot Image Certificate) fra eNVM og validerer SBIC. Ved vellykket validering kopierer System Controller den fabrikssikre boot-kode fra dens private, sikre hukommelsesområde og indlæser den i DTIM'en på E51 Monitor-kernen. Den sikre standardopstart udfører en signaturkontrol på eNVM-billedet ved hjælp af SBIC, som er gemt i eNVM. Hvis der ikke rapporteres fejl, frigives nulstillingen til MSS Core Complex. Hvis der rapporteres fejl, sættes MSS Core Complex i nulstilling og BOOT_FAIL tamper flaget hejst. Derefter aktiveres systemcontrolleren klamper flag, som hævder et signal til FPGA-strukturen til brugerhandling. Denne tilstand implementeres ved hjælp af U_MSS_BOOTMODE=3 boot-indstillingen.

SBIC'en indeholder adresse, størrelse, hash og ECDSA-signatur (Elliptic Curve Digital Signature Algorithm) for den beskyttede binære klat. ECDSA tilbyder en variant af Digital Signature Algorithm, som bruger elliptisk kurvekryptering. Den indeholder også nulstillingsvektoren for hver hardware
tråd/kerne/processorkerne (Hart) i systemet.

Tabel 4 •  Secure Boot Image Certificate (SBIC)

Offset Størrelse (bytes) Værdi Beskrivelse
0 4 IMAGEADDR Adresse på UBL i MSS-hukommelseskort
4 4 IMAGELEN Størrelse af UBL i bytes
8 4 BOOTVEC0 Bootvektor i UBL til E51
12 4 BOOTVEC1 Boot vektor i UBL til U540
16 4 BOOTVEC2 Boot vektor i UBL til U541
20 4 BOOTVEC3 Boot vektor i UBL til U542
24 4 BOOTVEC4 Boot vektor i UBL til U543
28 1 MULIGHEDER[7:0] SBIC muligheder
28 3 RESERVERET  
32 8 VERSION SBIC/Image version
40 16 DSN Valgfri DSN-binding
56 48 H UBL-billede SHA-384 hash
104 104 CODESIG DER-kodet ECDSA-signatur
Total 208 Bytes  

DSN
Hvis DSN-feltet ikke er nul, sammenlignes det med enhedens eget serienummer. Hvis sammenligningen mislykkes, vil boot_fail tampflaget er sat, og godkendelsen afbrydes.

VERSION
Hvis SBIC-tilbagekaldelse er aktiveret af U_MSS_REVOCATION_ENABLE, afvises SBIC, medmindre værdien af ​​VERSION er større end eller lig med tilbagekaldelsestærsklen.

SBIC TILBAGETRÆDELSE MULIGHED
Hvis SBIC-tilbagekaldelse er aktiveret af U_MSS_REVOCATION_ENABLE og OPTIONS[0] er '1', tilbagekaldes alle SBIC-versioner mindre end VERSION ved fuldstændig godkendelse af SBIC. Tilbagekaldelsestærsklen forbliver på den nye værdi, indtil den igen stiger med en fremtidig SBIC med OPTIONS[0] = '1' og et højere VERSION-felt. Tilbagekaldelsestærsklen kan kun øges ved hjælp af denne mekanisme og kan kun nulstilles med en bitstrøm.
Når tilbagekaldelsestærsklen opdateres dynamisk, lagres tærsklen ved hjælp af det redundante lagerskema, der bruges til adgangskoder, således at et strømsvigt under enhedsstart ikke forårsager, at en efterfølgende enhedsstart mislykkes. Hvis opdateringen af ​​tilbagekaldelsestærskel mislykkes, er det garanteret, at tærskelværdien enten er den nye værdi eller den tidligere.

Tabel 5 • U_MSS_BOOTCFG Brug i Factory Boot Loader-tilstand

Offset (bytes)  

Størrelse (bytes)

 

Navn

 

Beskrivelse

0 4 U_MSS_SBIC_ADDR Adresse på SBIC i MSS adresserum
4 4 U_MSS_REVOCATION_ENABLE Aktiver SBIC-tilbagekaldelse, hvis ikke-nul

Følgende figur viser det fabrikssikre bootflow.
Figur 6 • Factory Secure Boot FlowMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 6 Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 7

MSS brugerstart 

MSS brugeropstart finder sted, når styringen gives fra System Controller til MSS Core Complex. Ved vellykket MSS-pre-boot frigiver systemcontrolleren nulstillingen til MSS Core Complex. MSS kan startes op på en af ​​følgende måder:

  • Bare Metal Applikation
  • Linux applikation
  • AMP Anvendelse

Bare Metal Applikation

De nøgne metalapplikationer til PolarFire SoC kan udvikles ved hjælp af SoftConsole-værktøjet. Dette værktøj giver output files i form af .hex, som kan bruges i Libero-flowet til at inkludere i programmeringsbitstrømmen file. Det samme værktøj kan bruges til at fejlsøge Bare Metal-applikationerne ved hjælp af JTAG
interface.
Den følgende figur viser SoftConsole Bare Metal-applikationen, som har fem harts (kerner) inklusive E51 Monitor-kerne.

Figur 7 • SoftConsole projekt Microchip-UG0881-PolarFire-SoC-FPGA-Booting-And-Configuration-fig 8

Linux applikation

Dette afsnit beskriver opstartssekvensen for Linux, der kører på alle U54-kerner.
En typisk opstartsproces består af tre stages. De første stagOpstartsindlæseren (FSBL) udføres fra on-chip Boot flash (eNVM). FSBL indlæser den anden stage boot loader (SSBL) fra en bootenhed til ekstern RAM eller cache. Opstartsenheden kan være eNVM eller embedded memory microcontroller (eMMC) eller ekstern SPI Flash. SSBL indlæser Linux-operativsystemet fra bootenhed til ekstern RAM. I tredje stage, Linux udføres fra den eksterne RAM.

Følgende figur viser Linux Boot Process flow.
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 man bygger og konfigurerer Linux, vil blive givet i den fremtidige udgivelse af dette dokument.

AMP Anvendelse
Detaljeret beskrivelse af Libero MSS Configurator og hvordan man fejlretter multi-processor applikationer ved hjælp af SoftConsole vil blive givet i den fremtidige udgivelse af dette dokument.

Forskellige kilder til opstart
Skal opdateres i fremtidige versioner af dette dokument.

Boot konfiguration
Skal opdateres i fremtidige versioner af dette dokument.

Akronymer

Følgende akronymer bruges i dette dokument.

Tabel 1 •  Liste over akronymer

Akronym udvidet

  • AMP Asymmetrisk multi-processing
  • DTIM Data tæt integreret hukommelse (også kaldet SRAM)
  • ECDSA Elliptisk kurve digital signaturalgoritme
  • enNVM indlejret ikke-flygtig hukommelse
  • FSBL Først Stage Boot Loader
  • Hart Hardware tråd/kerne/processor kerne
  • MSS Mikroprocessor undersystem
  • POR Tænd Nulstil
  • POF Fysisk uklonbar funktion
  • ROM Læs kun hukommelse
  • SCB System Controller Bridge
  • sNVM Sikker ikke-flygtig hukommelse

Revisionshistorie

Revisionshistorikken beskriver de ændringer, der blev implementeret i dokumentet. Ændringerne er listet efter revision, startende med den aktuelle publikation.

Revision 2.0
Det følgende er en oversigt over ændringerne i denne revision.

  • Oplysninger om Factory Secure Boot blev opdateret.
  • Oplysninger om Bare Metal Application blev opdateret.

Revision 1.0
Den første udgivelse af dette dokument.

Microsemi hovedkvarter
One Enterprise, Aliso Viejo,
CA 92656 USA
Inden for USA: +1 800-713-4113
Uden for USA: +1 949-380-6100
Salg: +1 949-380-6136
Fax: +1 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com

©2020 Microsemi, et helejet datterselskab af Microchip Technology Inc. Alle rettigheder forbeholdes. Microsemi og Microsemi-logoet er registrerede varemærker tilhørende Microsemi Corporation. Alle andre varemærker og servicemærker tilhører deres respektive ejere.

Dokumenter/ressourcer

Mikrochip UG0881 PolarFire SoC FPGA opstart og konfiguration [pdfBrugervejledning
UG0881 PolarFire SoC FPGA opstart og konfiguration, UG0881, PolarFire SoC FPGA opstart og konfiguration, opstart og konfiguration

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *