Microchip UG0881 PolarFire SoC FPGA pokretanje i konfiguracija
Garancija
Microsemi ne daje nikakvu garanciju, zastupanje ili garanciju u vezi sa informacijama sadržanim u ovom dokumentu ili prikladnošću svojih proizvoda i usluga za bilo koju određenu svrhu, niti Microsemi preuzima bilo kakvu odgovornost koja proizilazi iz primene ili upotrebe bilo kog proizvoda ili kola. Proizvodi koji se ovdje prodaju i svi drugi proizvodi koje prodaje Microsemi bili su podvrgnuti ograničenom testiranju i ne bi se trebali koristiti zajedno sa opremom ili aplikacijama kritičnim za misiju. Vjeruje se da su sve specifikacije performansi pouzdane, ali nisu provjerene, a Kupac mora provesti i završiti sva ispitivanja performansi i druga testiranja proizvoda, sami i zajedno sa, ili ugrađeni u bilo koji krajnji proizvod. Kupac se neće oslanjati ni na kakve podatke i specifikacije performansi ili parametre koje pruža Microsemi. Odgovornost Kupca je da samostalno utvrdi prikladnost bilo kojeg proizvoda te da istu testira i provjeri. Informacije koje Microsemi pruža u nastavku su date „kao što jesu, gdje je“ i sa svim greškama, a cijeli rizik povezan s takvim informacijama je u potpunosti na Kupcu. Microsemi ne dodeljuje, eksplicitno ili implicitno, nijednoj strani nikakva patentna prava, licence ili bilo koja druga prava intelektualne svojine, bilo u pogledu samih takvih informacija ili bilo čega što je opisano u takvim informacijama. Informacije navedene u ovom dokumentu su vlasništvo Microsemi-ja, a Microsemi zadržava pravo da izvrši bilo kakve izmjene informacija u ovom dokumentu ili bilo kojeg proizvoda i usluga u bilo koje vrijeme bez prethodne najave.
O Microsemi
Microsemi, podružnica u potpunom vlasništvu Microchip Technology Inc. (Nasdaq: MCHP), nudi sveobuhvatan portfelj poluvodičkih i sistemskih rješenja za svemirska i odbrambena tržišta, komunikacije, podatkovne centre i industrijska tržišta. Proizvodi uključuju analogna integrirana kola s mješovitim signalom visokih performansi i zračenjem ojačana, FPGA, SoC i ASIC; Proizvodi za upravljanje napajanjem; uređaji za merenje vremena i sinhronizacije i precizna vremenska rešenja, postavljajući svetske standarde za vreme; Uređaji za obradu glasa; RF rješenja; diskretne komponente; korporativna rješenja za pohranu i komunikaciju, sigurnosne tehnologije i skalabilni anti-tamper products; Ethernet rješenja; Power-over-Ethernet IC-ovi i srednji rasponi; kao i mogućnosti i usluge prilagođenog dizajna. Saznajte više na www.microsemi.com.
Dizanje i konfiguracija
PolarFire SoC FPGA koriste napredna kola za napajanje kako bi osigurali pouzdano uključivanje pri uključivanju i resetovanju. Prilikom uključivanja i resetovanja, sekvenca pokretanja PolarFire SoC FPGA prati resetovanje po uključenju (POR), pokretanje uređaja, inicijalizaciju dizajna, prethodno pokretanje podsistema mikrokontrolera (MSS) i MSS pokretanje korisnika. Ovaj dokument opisuje MSS pre-boot i MSS korisničko pokretanje. Za informacije o POR-u, pokretanju uređaja i inicijalizaciji dizajna, pogledajte UG0890: Korisnički vodič za PolarFire SoC FPGA napajanje i resetiranje.
Za više informacija o MSS funkcijama, pogledajte UG0880: PolarFire SoC MSS korisnički vodič.
Redoslijed pokretanja
Redoslijed pokretanja počinje kada se PolarFire SoC FPGA uključi ili resetuje. Završava se kada je procesor spreman za izvršavanje aplikacijskog programa. Ova sekvenca pokretanja traje nekoliko sekunditages prije nego što počne izvršavanje programa.
Skup operacija se izvodi tokom procesa podizanja sistema koji uključuje resetiranje hardvera po uključenju, inicijalizaciju periferije, inicijalizaciju memorije i učitavanje korisnički definirane aplikacije iz nepromjenjive memorije u nestabilnu memoriju radi izvršavanja.
Sljedeća slika prikazuje različite faze sekvence pokretanja.
Slika 1 Redoslijed pokretanja
MSS Pre-Boot
Nakon uspješnog završetka inicijalizacije dizajna, MSS Pre-boot počinje svoje izvršavanje. MSS se oslobađa od resetiranja nakon završetka svih normalnih procedura pokretanja. Sistemski kontroler upravlja programiranjem, inicijalizacijom i konfiguracijom uređaja. MSS Pre-boot se ne dešava ako je programirani uređaj konfigurisan za režim suspendovanja sistemskog kontrolera.
MSS faza pre pokretanja inicijalizacije je koordinirana firmverom sistemskog kontrolera, iako može koristiti E51 u MSS Core Complexu za obavljanje određenih delova sekvence pre pokretanja.
Sljedeći događaji se dešavaju tokom MSS pre-boot stage:
- Pokretanje MSS ugrađene nepromjenjive memorije (eNVM)
- Inicijalizacija popravke redundancije povezane s MSS Core Complex L2 keš memorije
- Autentifikacija koda za pokretanje korisnika (ako je omogućena opcija za sigurno pokretanje korisnika)
- Primopredaja operativnog MSS koda za pokretanje korisnika
MSS Core Complex se može pokrenuti u jednom od četiri načina. Sljedeća tabela navodi MSS opcije prije pokretanja, koje se mogu konfigurirati i programirati u sNVM. Način pokretanja je definiran korisničkim parametrom U_MSS_BOOTMODE[1:0]. Dodatni podaci o konfiguraciji pokretanja ovise o načinu rada i definirani su korisničkim parametrom U_MSS_BOOTCFG (pogledajte Tablicu 3, stranica 4 i Tablicu 5, stranica 6).
Tabela 1 • Složeni načini pokretanja MSS Core
U_MSS_BOOTMODE[1:0] | Mode | Opis |
0 | Idle boot | MSS Core Complex pokreće se iz ROM-a za pokretanje ako MSS nije konfigurisan |
1 | Nebezbedno pokretanje | MSS Core Complex pokreće se direktno sa adrese definisane od strane U_MSS_BOOTADDR |
2 | Sigurno pokretanje korisnika | MSS Core Complex čizme iz sNVM-a |
3 | Fabrički sigurna dizanja | MSS Core Complex pokreće se koristeći fabrički zaštićen protokol za pokretanje |
Opcija pokretanja je odabrana kao dio Libero dizajna. Promjena načina rada može se postići samo kroz generiranje novog FPGA programiranja file.
Slika 2 • MSS tok prije pokretanja
Idle Boot
Ako MSS nije konfigurisan (nprample, prazan uređaj), zatim MSS Core Complex izvršava ROM program za pokretanje koji drži sve procesore u beskonačnoj petlji dok se debager ne poveže sa ciljem. Vektorski registri pokretanja održavaju svoju vrijednost sve dok se uređaj ne resetuje ili dok se ne programira nova konfiguracija načina pokretanja. Za konfigurirane uređaje, ovaj način rada se može implementirati pomoću
U_MSS_BOOTMODE=0 opcija pokretanja u Libero konfiguratoru.
Napomena: U ovom načinu rada, U_MSS_BOOTCFG se ne koristi.
Sljedeća slika prikazuje tok pokretanja u stanju mirovanja.
Slika 3 • Protok pokretanja u praznom hodu
Nebezbedno pokretanje
U ovom načinu rada, MSS Core Complex se izvršava sa specificirane eNVM adrese bez provjere autentičnosti. Pruža najbržu opciju pokretanja, ali nema provjere autentičnosti slike koda. Adresa se može specificirati postavljanjem U_MSS_BOOTADDR u Libero konfiguratoru. Ovaj način se također može koristiti za pokretanje s bilo kojeg FPGA Fabric memorijskog resursa preko FIC-a. Ovaj način rada se implementira pomoću
U_MSS_BOOTMODE=1 opcija pokretanja.
MSS Core Complex je oslobođen resetovanja sa vektorima pokretanja definisanim sa U_MSS_BOOTCFG (kao što je navedeno u sledećoj tabeli).
Tabela 2 • U_MSS_BOOTCFG Upotreba u nebezbednom režimu pokretanja 1
Pomak (bajtovi) |
Veličina (bajtovi) |
Ime |
Opis |
0 | 4 | BOOTVEC0 | Vektor pokretanja za E51 |
4 | 4 | BOOTVEC1 | Vektor pokretanja za U540 |
8 | 4 | BOOTVEC2 | Vektor pokretanja za U541 |
16 | 4 | BOOTVEC3 | Vektor pokretanja za U542 |
20 | 4 | BOOTVEC4 | Vektor pokretanja za U543 |
Sljedeća slika prikazuje tok Nebezbednog pokretanja.
Slika 4 • Nesiguran tok pokretanja
Sigurno pokretanje korisnika
Ovaj način omogućava korisniku da implementira vlastito prilagođeno sigurno pokretanje, a korisnički kod za sigurno pokretanje se postavlja u sNVM. sNVM je nepromjenjiva memorija od 56 KB koja se može zaštititi ugrađenom funkcijom koja se ne može klonirati (PUF). Ova metoda pokretanja se smatra zaštićenom jer su sNVM stranice označene kao ROM nepromjenjive. Po uključivanju, sistemski kontroler kopira korisnički bezbedni kod za pokretanje sa sNVM-a u Data Tightly Integrated Memory (DTIM) jezgre monitora E51. E51 počinje izvršavati korisnički zaštićeni kod za pokretanje.
Ako je veličina korisničkog sigurnog koda za pokretanje veća od veličine DTIM-a, korisnik mora podijeliti kod za pokretanje na dva stages. sNVM može sadržavati sljedeće stage sekvence pokretanja korisnika, koja može izvršiti provjeru autentičnosti sljedećeg pokretanja stage korištenjem algoritma za autentifikaciju/dešifriranje korisnika.
Ako se koriste autentificirane ili šifrirane stranice, tada isti USK ključ (tj.
U_MSS_BOOT_SNVM_USK) se mora koristiti za sve autentificirane/šifrirane stranice.
Ako autentifikacija ne uspije, MSS Core Complex se može staviti u resetiranje i BOOT_FAIL tampZastava se može podići. Ovaj način rada se implementira korištenjem opcije pokretanja U_MSS_BOOTMODE=2.
Tabela 3 • U_MSS_BOOTCFG Upotreba u korisničkom sigurnom pokretanju
Pomak (bajtovi) | Veličina (bajtovi) | Ime | Opis |
0 | 1 | U_MSS_BOOT_SNVM_PAGE | Početna stranica u SNVM-u |
1 | 3 | RESERVED | Za poravnanje |
4 | 12 | U_MSS_BOOT_SNVM_USK | Za provjerene/šifrirane stranice |
Sljedeća slika prikazuje tok sigurnog pokretanja korisnika.
Slika 5 • Tok sigurnog pokretanja korisnika
Factory Secure Boot
U ovom načinu rada, sistemski kontroler čita SBIC certifikat za sigurno pokretanje iz eNVM-a i potvrđuje SBIC. Nakon uspješne validacije, System Controller kopira fabrički bezbedni kod za pokretanje iz svog privatnog, bezbednog memorijskog područja i učitava ga u DTIM jezgra monitora E51. Podrazumevano sigurno pokretanje vrši provjeru potpisa na eNVM slici koristeći SBIC koji je pohranjen u eNVM-u. Ako se ne prijave greške, reset se pušta na MSS Core Complex. Ako se prijave greške, MSS Core Complex se stavlja u resetiranje i BOOT_FAIL tamper zastava je podignuta. Zatim se sistemski kontroler aktivira naamper zastavica koja potvrđuje signal FPGA tkanini za radnju korisnika. Ovaj način rada je implementiran korištenjem opcije pokretanja U_MSS_BOOTMODE=3.
SBIC sadrži adresu, veličinu, hash i potpis algoritma digitalnog potpisa eliptične krivulje (ECDSA) zaštićenog binarnog blob-a. ECDSA nudi varijantu algoritma digitalnog potpisa koji koristi kriptografiju eliptičke krivulje. Takođe sadrži vektor resetovanja za svaki hardver
niti/jezgro/jezgro procesora (Hart) u sistemu.
Tabela 4 • Sertifikat slike za sigurno pokretanje (SBIC)
Offset | Veličina (bajtovi) | Vrijednost | Opis |
0 | 4 | IMAGEADDR | Adresa UBL u memorijskoj mapi MSS-a |
4 | 4 | IMAGELEN | Veličina UBL-a u bajtovima |
8 | 4 | BOOTVEC0 | Vektor pokretanja u UBL za E51 |
12 | 4 | BOOTVEC1 | Vektor pokretanja u UBL za U540 |
16 | 4 | BOOTVEC2 | Vektor pokretanja u UBL za U541 |
20 | 4 | BOOTVEC3 | Vektor pokretanja u UBL za U542 |
24 | 4 | BOOTVEC4 | Vektor pokretanja u UBL za U543 |
28 | 1 | OPCIJE[7:0] | SBIC opcije |
28 | 3 | RESERVED | |
32 | 8 | VERSION | SBIC/Image verzija |
40 | 16 | DSN | Opciono DSN povezivanje |
56 | 48 | H | UBL slika SHA-384 hash |
104 | 104 | CODESIG | DER-kodirani ECDSA potpis |
Ukupno | 208 | Bytes |
DSN
Ako je DSN polje različito od nule, upoređuje se s vlastitim serijskim brojem uređaja. Ako poređenje ne uspije, onda boot_fail tamper zastavica je postavljena i autentifikacija je prekinuta.
VERSION
Ako je SBIC opoziv omogućen pomoću U_MSS_REVOCATION_ENABLE, SBIC se odbija osim ako vrijednost VERSION nije veća ili jednaka pragu opoziva.
OPCIJA OPOZIVA SBIC-a
Ako je opoziv SBIC-a omogućen pomoću U_MSS_REVOCATION_ENABLE i OPTIONS[0] je '1', sve SBIC verzije manje od VERSION se opozivaju nakon potpune provjere autentičnosti SBIC-a. Prag opoziva ostaje na novoj vrijednosti sve dok se ponovo ne poveća za budući SBIC sa OPTIONS[0] = '1' i višim poljem VERSION. Prag opoziva se može samo povećati korištenjem ovog mehanizma i može se resetirati samo bit-streamom.
Kada se prag opoziva dinamički ažurira, prag se pohranjuje korištenjem redundantne sheme pohrane koja se koristi za lozinke tako da nestanak struje tijekom pokretanja uređaja ne uzrokuje neuspjeh naknadnog pokretanja uređaja. Ako ažuriranje praga opoziva ne uspije, zajamčeno je da je vrijednost praga ili nova vrijednost ili prethodna.
Tabela 5 • U_MSS_BOOTCFG Upotreba u Factory Boot Loader modu
Pomak (bajtovi) |
Veličina (bajtovi) |
Ime |
Opis |
0 | 4 | U_MSS_SBIC_ADDR | Adresa SBIC-a u MSS adresnom prostoru |
4 | 4 | U_MSS_REVOCATION_ENABLE | Omogućite SBIC opoziv ako nije nula |
Sljedeća slika prikazuje tvornički siguran tok pokretanja.
Slika 6 • Tvornički siguran tok pokretanja
MSS User Boot
Pokretanje korisnika MSS-a se dešava kada je kontrola data od sistemskog kontrolera na MSS Core Complex. Nakon uspješnog MSS prethodnog pokretanja, sistemski kontroler otpušta reset na MSS Core Complex. MSS se može pokrenuti na jedan od sljedećih načina:
- Primjena golih metala
- Linux aplikacija
- AMP Aplikacija
Primjena golih metala
Gole metalne aplikacije za PolarFire SoC mogu se razviti pomoću alata SoftConsole. Ovaj alat daje izlaz files u obliku .hex koji se može koristiti u Libero toku za uključivanje u programski bitstream file. Isti alat se može koristiti za otklanjanje grešaka u Bare Metal aplikacijama pomoću JTAG
interfejs.
Na sljedećoj slici prikazana je SoftConsole Bare Metal aplikacija koja ima pet jezgara (Core) uključujući jezgro E51 Monitora.
Slika 7 • Projekt SoftConsole
Linux aplikacija
Ovaj odjeljak opisuje sekvencu pokretanja za Linux koji radi na svim U54 jezgrama.
Tipičan proces pokretanja se sastoji od tri stages. Prvi stage Boot loader (FSBL) se izvršava iz boot flash-a na čipu (eNVM). FSBL učitava drugi stage pokretač (SSBL) sa uređaja za pokretanje u eksternu RAM memoriju ili keš memoriju. Uređaj za pokretanje može biti eNVM ili mikrokontroler sa ugrađenom memorijom (eMMC) ili eksterni SPI Flash. SSBL učitava Linux operativni sistem sa uređaja za pokretanje u eksterni RAM. U trećem stage, Linux se izvršava iz eksterne RAM memorije.
Sljedeća slika prikazuje tok procesa pokretanja Linuxa.
Slika 8 • Tipičan tok procesa pokretanja Linuxa
Detalji o FSBL-u, stablu uređaja, Linuxu i YOCTO verziji, kako izgraditi i konfigurirati Linux bit će dati u budućem izdanju ovog dokumenta.
AMP Aplikacija
Detaljan opis Libero MSS Configurator-a i kako otkloniti greške u višeprocesorskim aplikacijama koristeći SoftConsole će biti dat u budućem izdanju ovog dokumenta.
Različiti izvori pokretanja
Za ažuriranje u budućim verzijama ovog dokumenta.
Boot Configuration
Za ažuriranje u budućim verzijama ovog dokumenta.
Akronimi
Sljedeći akronimi se koriste u ovom dokumentu.
Tabela 1 • Lista akronima
Akronim Expanded
- AMP Asimetrična višestruka obrada
- DTIM Čvrsto integrisana memorija podataka (naziva se i SRAM)
- ECDSA Algoritam digitalnog potpisa eliptične krivulje
- eNVM ugrađena nepromjenjiva memorija
- FSBL Prvo Stage Boot Loader
- Hart Hardverska nit/jezgro/jezgro procesora
- MSS Mikroprocesorski podsistem
- POR Pokreni Reset
- PUF Fizički neklonirana funkcija
- ROM Memorija samo za čitanje
- SCB Most kontrolera sistema
- sNVM Sigurna nepromjenjiva memorija
Istorija revizija
Historija revizija opisuje promjene koje su implementirane u dokumentu. Promjene su navedene po reviziji, počevši od tekuće publikacije.
Revizija 2.0
Sljedeći je sažetak promjena napravljenih u ovoj reviziji.
- Informacije o Factory Secure Boot-u su ažurirane.
- Informacije o aplikaciji Bare Metal su ažurirane.
Revizija 1.0
Prva publikacija ovog dokumenta.
Microsemi Headquarters
One Enterprise, Aliso Viejo,
CA 92656 SAD
Unutar SAD-a: +1 800-713-4113
Izvan SAD-a: +1 949-380-6100
prodaja: +1 949-380-6136
faks: +1 949-215-4996
Email: sales.support@microsemi.com
www.microsemi.com
©2020 Microsemi, podružnica u potpunom vlasništvu Microchip Technology Inc. Sva prava zadržana. Microsemi i Microsemi logo su registrovani zaštitni znakovi Microsemi Corporation. Svi ostali zaštitni znakovi i uslužni znaci vlasništvo su njihovih vlasnika.
Dokumenti / Resursi
![]() |
Microchip UG0881 PolarFire SoC FPGA pokretanje i konfiguracija [pdf] Korisnički priručnik UG0881 PolarFire SoC FPGA pokretanje i konfiguracija, UG0881, PolarFire SoC FPGA pokretanje i konfiguracija, pokretanje i konfiguracija |