Microchip UG0881 PolarFire SoC FPGA rendszerindítás és konfigurálás
Garancia
A Microsemi nem vállal garanciát, kijelentést vagy garanciát az itt található információkra, illetve termékeinek és szolgáltatásainak bármilyen meghatározott célra való alkalmasságára vonatkozóan, és a Microsemi nem vállal semmilyen felelősséget a termék vagy áramkör alkalmazásából vagy használatából eredően. Az itt értékesített termékek és a Microsemi által értékesített bármely más termék korlátozott tesztelésen esett át, és nem használhatók kritikus fontosságú berendezésekkel vagy alkalmazásokkal együtt. Bármely teljesítmény-specifikáció megbízhatónak tekinthető, de nem ellenőrzött, és a Vevőnek el kell végeznie a termékek minden teljesítmény- és egyéb vizsgálatát, önmagában és bármely végtermékkel együtt, vagy beleszerelve. A Vevő nem hagyatkozhat a Microsemi által biztosított adatokra és teljesítményspecifikációkra vagy paraméterekre. A Vevő felelőssége bármely termék alkalmasságának független megállapítása, valamint annak tesztelése és ellenőrzése. A Microsemi által az alábbiakban közölt információk „ahogy vannak, hol vannak” és minden hibával együtt, és az ilyen információkkal kapcsolatos teljes kockázat teljes mértékben a Vevőt terheli. A Microsemi sem kifejezetten, sem hallgatólagosan nem ad szabadalmi jogokat, licenceket vagy egyéb szellemi tulajdonjogokat sem magára az információra, sem az információ által leírtakra vonatkozóan. Az ebben a dokumentumban közölt információk a Microsemi tulajdonát képezik, és a Microsemi fenntartja a jogot, hogy bármikor, előzetes értesítés nélkül módosítsa a jelen dokumentumban található információkat, vagy bármely terméket és szolgáltatást.
A Microsemiről
A Microsemi, a Microchip Technology Inc. (Nasdaq: MCHP) XNUMX%-os tulajdonában lévő leányvállalata félvezető- és rendszermegoldások átfogó portfólióját kínálja a repülési és védelmi, kommunikációs, adatközponti és ipari piacok számára. A termékek közé tartoznak a nagy teljesítményű és sugárzásálló analóg vegyes jelű integrált áramkörök, FPGA-k, SoC-k és ASIC-k; energiagazdálkodási termékek; időzítő és szinkronizáló eszközök és precíz időmegoldások, amelyek az idő világszínvonalát állítják fel; Hangfeldolgozó eszközök; RF megoldások; diszkrét alkatrészek; vállalati tárolási és kommunikációs megoldások, biztonsági technológiák és méretezhető anti-tamper termékek; Ethernet megoldások; Power-over-Ethernet IC-k és midspans; valamint egyedi tervezési képességek és szolgáltatások. További információ: www.microsemi.com.
Indítás és konfigurálás
A PolarFire SoC FPGA-k fejlett bekapcsoló áramkört használnak a megbízható bekapcsolás biztosítására bekapcsoláskor és visszaállításkor. Bekapcsoláskor és alaphelyzetbe állításkor a PolarFire SoC FPGA rendszerindítási sorrendje a bekapcsolási alaphelyzetbe állítást (POR), az eszközindítást, a tervezés inicializálását, a mikrovezérlő alrendszer (MSS) előindítását és az MSS felhasználói rendszerindítást követi. Ez a dokumentum az MSS rendszerindítás előtti és az MSS felhasználói rendszerindítást írja le. A POR, az eszközindítás és a tervezés inicializálásával kapcsolatos információkért lásd: UG0890: PolarFire SoC FPGA Power-Up and Resets User Guide.
Az MSS funkciókkal kapcsolatos további információkért lásd az UG0880: PolarFire SoC MSS felhasználói kézikönyvet.
Indítási sorrend
A rendszerindítási folyamat a PolarFire SoC FPGA bekapcsolásakor vagy alaphelyzetbe állításakor kezdődik. Akkor ér véget, amikor a processzor készen áll egy alkalmazási program végrehajtására. Ez a rendszerindítási szekvencia több s-en keresztül futtages mielőtt elkezdené a programok végrehajtását.
A rendszerindítási folyamat során egy sor műveletet hajtanak végre, amely magában foglalja a hardver bekapcsolási alaphelyzetbe állítását, a periféria inicializálását, a memória inicializálását, valamint a felhasználó által meghatározott alkalmazásnak a nem felejtő memóriából a felejtő memóriába való betöltését végrehajtás céljából.
A következő ábra a rendszerindítási folyamat különböző fázisait mutatja be.
1. ábra Indítási sorrend
MSS Pre-Boot
A tervezési inicializálás sikeres befejezése után az MSS Pre-boot elindítja a végrehajtását. Az MSS az összes normál indítási eljárás befejezése után felszabadul a visszaállítás alól. A rendszervezérlő kezeli az eszközök programozását, inicializálását és konfigurációját. MSS Pre-boot nem történik meg, ha a programozott eszköz a rendszervezérlő felfüggesztési módra van konfigurálva.
Az MSS rendszerindítás előtti inicializálási fázisát a rendszervezérlő firmware koordinálja, bár használhatja az MSS Core Complex E51-ét a rendszerindítás előtti szekvencia bizonyos részei végrehajtására.
A következő események az MSS rendszerindítás előtti s alatt történnektage:
- Az MSS beágyazott nem felejtő memória (eNVM) bekapcsolása
- Az MSS Core Complex L2 gyorsítótárához kapcsolódó redundanciajavítás inicializálása
- Felhasználói rendszerindítási kód hitelesítése (ha a User Secure boot opció engedélyezve van)
- A működési MSS átadása a felhasználói rendszerindítási kódnak
Az MSS Core Complex négy mód egyikében indítható. A következő táblázat felsorolja az MSS rendszerindítás előtti beállításait, amelyek konfigurálhatók és programozhatók az sNVM-be. A rendszerindítási módot az U_MSS_BOOTMODE[1:0] felhasználói paraméter határozza meg. A további rendszerindítási konfigurációs adatok módfüggőek, és az U_MSS_BOOTCFG felhasználói paraméter határozza meg őket (lásd: 3. táblázat, 4. oldal és 5. táblázat, 6. oldal).
1. táblázat • MSS Core komplex rendszerindítási módok
U_MSS_BOOTMODE[1:0] | Mód | Leírás |
0 | Idle boot | Az MSS Core Complex rendszerindító ROM-ról indul, ha az MSS nincs konfigurálva |
1 | Nem biztonságos rendszerindítás | Az MSS Core Complex közvetlenül az U_MSS_BOOTADDR által meghatározott címről indul |
2 | Felhasználói biztonságos rendszerindítás | MSS Core Complex rendszerindítások az sNVM-től |
3 | Gyárilag biztonságos boot | Az MSS Core Complex rendszerindítás a gyári biztonságos rendszerindítási protokoll használatával |
A rendszerindítási opció a Libero tervezési folyamatának részeként van kiválasztva. Az üzemmód megváltoztatása csak egy új FPGA programozás generálásával érhető el file.
2. ábra • MSS rendszerindítás előtti folyamat
Idle Boot
Ha az MSS nincs konfigurálva (plample, üres eszköz), akkor az MSS Core Complex végrehajt egy boot ROM programot, amely az összes processzort egy végtelen ciklusban tartja, amíg egy hibakereső nem csatlakozik a célhoz. A rendszerindítási vektor-regiszterek mindaddig megtartják értéküket, amíg az eszközt alaphelyzetbe nem állítják vagy új rendszerindítási mód konfigurációt nem programoznak. Konfigurált eszközök esetén ez az üzemmód a következővel valósítható meg
U_MSS_BOOTMODE=0 rendszerindítási opció a Libero konfigurátorban.
Jegyzet: Ebben a módban az U_MSS_BOOTCFG nincs használatban.
A következő ábra az üresjárati rendszerindítási folyamatot mutatja.
3. ábra • Idle Boot Flow
Nem biztonságos rendszerindítás
Ebben a módban az MSS Core Complex egy megadott eNVM-címről hajt végre hitelesítést. Ez biztosítja a leggyorsabb rendszerindítási lehetőséget, de nincs hitelesítés a kódképhez. A cím megadható a Libero Configurator U_MSS_BOOTADDR beállításával. Ez a mód bármely FPGA Fabric memóriaforrásról FIC-en keresztül történő rendszerindításra is használható. Ezt a módot a
U_MSS_BOOTMODE=1 rendszerindítási lehetőség.
Az MSS Core Complex az U_MSS_BOOTCFG által meghatározott rendszerindítási vektorokkal (a következő táblázatban felsoroltak szerint) felszabadul az alaphelyzetbe állítás alól.
2. táblázat • U_MSS_BOOTCFG Használat nem biztonságos rendszerindítási módban 1
Eltolás (bájt) |
Méret (bájt) |
Név |
Leírás |
0 | 4 | BOOTVEC0 | Boot vektor az E51-hez |
4 | 4 | BOOTVEC1 | Boot vektor az U540-hez |
8 | 4 | BOOTVEC2 | Boot vektor az U541-hez |
16 | 4 | BOOTVEC3 | Boot vektor az U542-hez |
20 | 4 | BOOTVEC4 | Boot vektor az U543-hez |
A következő ábra a nem biztonságos rendszerindítási folyamatot mutatja.
4. ábra • Nem biztonságos rendszerindítási folyamat
Felhasználói biztonságos rendszerindítás
Ez a mód lehetővé teszi a felhasználó számára, hogy saját egyéni biztonságos rendszerindítást valósítson meg, és a felhasználó biztonságos rendszerindítási kódja az sNVM-be kerül. Az sNVM egy 56 KB-os nem felejtő memória, amelyet a beépített fizikailag nem klónozható funkció (PUF) védhet. Ez a rendszerindítási módszer biztonságosnak tekinthető, mivel a ROM-ként megjelölt sNVM-oldalak megváltoztathatatlanok. Bekapcsoláskor a rendszervezérlő átmásolja a felhasználó biztonságos rendszerindítási kódját az sNVM-ről az E51 Monitor magjának Data Tightly Integrated Memory (DTIM) memóriájába. Az E51 elindítja a felhasználói biztonságos rendszerindító kód végrehajtását.
Ha a felhasználó biztonságos rendszerindító kódjának mérete nagyobb, mint a DTIM, akkor a felhasználónak fel kell osztania a rendszerindító kódot két másodpercre.tages. Az sNVM tartalmazhatja a következő s-ttagA felhasználói rendszerindítási sorrend e-je, amely végrehajthatja a következő rendszerindítás hitelesítéséttage a felhasználó hitelesítési/dekódolási algoritmus használatával.
Ha hitelesített vagy titkosított oldalakat használnak, akkor ugyanazt az USK kulcsot (vagyis
Az U_MSS_BOOT_SNVM_USK) minden hitelesített/titkosított oldalhoz használni kell.
Ha a hitelesítés sikertelen, az MSS Core Complex visszaállítható, és a BOOT_FAIL tamper zászlót fel lehet emelni. Ez a mód az U_MSS_BOOTMODE=2 rendszerindítási opcióval valósul meg.
3. táblázat • U_MSS_BOOTCFG Használat felhasználói biztonságos rendszerindításban
Eltolás (bájt) | Méret (bájt) | Név | Leírás |
0 | 1 | U_MSS_BOOT_SNVM_PAGE | Kezdőlap az SNVM-ben |
1 | 3 | FENNTARTOTT | Az igazításhoz |
4 | 12 | U_MSS_BOOT_SNVM_USK | Hitelesített/titkosított oldalakhoz |
A következő ábra a felhasználó biztonságos rendszerindítási folyamatát mutatja be.
5. ábra • Felhasználói biztonságos rendszerindítási folyamat
Gyári biztonságos rendszerindítás
Ebben a módban a rendszervezérlő beolvassa a Secure Boot Image Certificate-t (SBIC) az eNVM-ből, és érvényesíti az SBIC-et. Sikeres érvényesítéskor a System Controller kimásolja a gyári biztonságos rendszerindító kódot a privát, biztonságos memóriaterületéről, és betölti az E51 Monitor mag DTIM-ébe. Az alapértelmezett biztonságos rendszerindítás az eNVM-ben tárolt SBIC használatával aláírás-ellenőrzést hajt végre az eNVM-képen. Ha nem jelentenek hibát, akkor a rendszer visszaállítja az MSS Core Complexet. Ha hibákat jelentenek, az MSS Core Complex visszaállításra kerül, és a BOOT_FAIL tamper zászló fel van emelve. Ezután a rendszervezérlő ekkor aktiválódikamper jelző, amely jelet küld az FPGA-szövetnek a felhasználói műveletekhez. Ez a mód az U_MSS_BOOTMODE=3 rendszerindítási opcióval valósul meg.
Az SBIC tartalmazza a védett bináris blob címét, méretét, kivonatát és elliptikus görbületű digitális aláírási algoritmus (ECDSA) aláírását. Az ECDSA a Digital Signature Algorithm egy olyan változatát kínálja, amely elliptikus görbe kriptográfiát használ. Tartalmazza az egyes hardverekhez tartozó visszaállítási vektorokat is
szál/mag/processzormag (Hart) a rendszerben.
4. táblázat • Secure Boot Image Certificate (SBIC)
Offset | Méret (bájt) | Érték | Leírás |
0 | 4 | IMAGEADDR | Az UBL címe az MSS memóriatérképen |
4 | 4 | IMAGELEN | Az UBL mérete bájtban |
8 | 4 | BOOTVEC0 | Indítóvektor az UBL-ben az E51-hez |
12 | 4 | BOOTVEC1 | Indítóvektor UBL-ben az U540-hez |
16 | 4 | BOOTVEC2 | Indítóvektor UBL-ben az U541-hez |
20 | 4 | BOOTVEC3 | Indítóvektor UBL-ben az U542-hez |
24 | 4 | BOOTVEC4 | Indítóvektor UBL-ben az U543-hez |
28 | 1 | OPCIÓK[7:0] | SBIC opciók |
28 | 3 | FENNTARTOTT | |
32 | 8 | VÁLTOZAT | SBIC/Image verzió |
40 | 16 | DSN | Opcionális DSN-kötés |
56 | 48 | H | UBL kép SHA-384 hash |
104 | 104 | CODESIG | DER-kódolt ECDSA aláírás |
Teljes | 208 | Bájtok |
DSN
Ha a DSN mező értéke nem nulla, akkor a rendszer összehasonlítja az eszköz saját sorozatszámával. Ha az összehasonlítás sikertelen, akkor a boot_fail tamper jelző be van állítva, és a hitelesítés megszakad.
VÁLTOZAT
Ha az SBIC visszavonását az U_MSS_REVOCATION_ENABLE engedélyezi, az SBIC visszautasításra kerül, kivéve, ha a VERSION értéke nagyobb vagy egyenlő a visszavonási küszöbértékkel.
SBIC VISSZAVONÁSI LEHETŐSÉG
Ha az SBIC visszavonását az U_MSS_REVOCATION_ENABLE engedélyezi, és az OPTIONS[0] értéke '1', akkor a VERSION-nál kisebb SBIC-verziók az SBIC teljes hitelesítésekor visszavonásra kerülnek. A visszavonási küszöbérték az új értéken marad mindaddig, amíg ismét nem növekszik egy jövőbeli SBIC-cel OPTIONS[0] = '1' értékkel és egy magasabb VERSION mezővel. A visszavonási küszöb csak ezzel a mechanizmussal növelhető, és csak bitfolyammal állítható vissza.
Amikor a visszavonási küszöbérték dinamikusan frissül, a küszöbérték a jelkódokhoz használt redundáns tárolási séma használatával kerül tárolásra, így az eszköz indításakor bekövetkező áramkimaradás nem okozza a következő eszközindítás sikertelenségét. Ha a visszavonási küszöb frissítése sikertelen, akkor garantált, hogy a küszöbérték vagy az új érték, vagy az előző.
5. táblázat • U_MSS_BOOTCFG Használat gyári rendszerbetöltő módban
Eltolás (bájt) |
Méret (bájt) |
Név |
Leírás |
0 | 4 | U_MSS_SBIC_ADDR | Az SBIC címe az MSS címterében |
4 | 4 | U_MSS_REVOCATION_ENABLE | SBIC visszavonás engedélyezése, ha nem nulla |
A következő ábra a gyárilag biztonságos rendszerindítási folyamatot mutatja.
6. ábra • Gyári Secure Boot Flow
MSS felhasználói rendszerindítás
Az MSS felhasználói rendszerindításra akkor kerül sor, amikor a vezérlést a System Controllerről az MSS Core Complexre adják. Sikeres MSS-előindítás után a rendszervezérlő visszaállítja az MSS Core Complex visszaállítását. Az MSS a következő módok egyikén indítható:
- Csupasz fém alkalmazás
- Linux alkalmazás
- AMP Alkalmazás
Csupasz fém alkalmazás
A PolarFire SoC csupasz fém alkalmazásai a SoftConsole eszközzel fejleszthetők. Ez az eszköz biztosítja a kimenetet files .hex formában, amely a Libero folyamatban használható a programozási bitfolyamba való beillesztéshez file. Ugyanez az eszköz használható a Bare Metal alkalmazások hibakeresésére a J használatávalTAG
felület.
A következő ábra a SoftConsole Bare Metal alkalmazást mutatja, amely öt harttal (maggal) rendelkezik, beleértve az E51 monitormagot.
7. ábra • SoftConsole projekt
Linux alkalmazás
Ez a rész az összes U54-es magon futó Linux rendszerindítási sorrendjét írja le.
Egy tipikus rendszerindítási folyamat három másodpercből álltages. Az első stagA rendszerbetöltő (FSBL) az on-chip rendszerindító flash-ről (eNVM) fut le. Az FSBL betölti a második s-ttage boot loader (SSBL) rendszerindító eszközről külső RAM-ra vagy gyorsítótárra. A rendszerindító eszköz lehet eNVM vagy beágyazott memória mikrokontroller (eMMC) vagy külső SPI Flash. Az SSBL betölti a Linux operációs rendszert a rendszerindító eszközről a külső RAM-ra. A harmadik stage, a Linux a külső RAM-ból fut.
A következő ábra a Linux rendszerindítási folyamatát mutatja be.
8. ábra • Tipikus Linux rendszerindítási folyamat
Az FSBL, az eszközfa, a Linux és a YOCTO build részletei, valamint a Linux felépítése és konfigurálása a jelen dokumentum jövőbeli kiadásában található.
AMP Alkalmazás
A Libero MSS Configurator és a többprocesszoros alkalmazások SoftConsole segítségével történő hibakeresésének részletes leírása a dokumentum jövőbeli kiadásában található.
Különféle rendszerindítási források
A dokumentum jövőbeli verzióiban frissítendő.
Rendszerindítási konfiguráció
A dokumentum jövőbeli verzióiban frissítendő.
Rövidítések
Ebben a dokumentumban a következő mozaikszavakat használjuk.
1. táblázat • Rövidítések listája
A mozaikszó kiterjesztve
- AMP Aszimmetrikus többszörös feldolgozás
- DTIM Adatok szorosan integrált memória (más néven SRAM)
- ECDSA Elliptikus görbe digitális aláírási algoritmus
- eNVM beágyazott nem felejtő memória
- FSBL Először Stage Boot Loader
- Szarvasbika Hardverszál/mag/processzormag
- MSS Mikroprocesszoros alrendszer
- POR Bekapcsolás Reset
- PUF Fizikailag nem klónozható funkció
- ROM Csak olvasható memória
- SCB Rendszervezérlő híd
- sNVM Biztonságos, nem felejtő memória
Revíziótörténet
A felülvizsgálati előzmények leírják a dokumentumban végrehajtott változtatásokat. A változtatások átdolgozásonként vannak felsorolva, az aktuális kiadványtól kezdve.
Felülvizsgálat 2.0
Az alábbiakban összefoglaljuk az ebben a felülvizsgálatban végrehajtott változtatásokat.
- A Factory Secure Boot információi frissültek.
- A Bare Metal Application információi frissültek.
Felülvizsgálat 1.0
Ennek a dokumentumnak az első publikációja.
Microsemi központja
One Enterprise, Aliso Viejo,
CA 92656 USA
Az USA-n belül: +1 800-713-4113
Az USA-n kívül: +1 949-380-6100
Értékesítés: +1 949-380-6136
Fax: +1 949-215-4996
Email: sales.support@microsemi.com
www.microsemi.com
©2020 Microsemi, a Microchip Technology Inc. teljes tulajdonú leányvállalata. Minden jog fenntartva. A Microsemi és a Microsemi logó a Microsemi Corporation bejegyzett védjegyei. Minden egyéb védjegy és szolgáltatási védjegy a megfelelő tulajdonosok tulajdona.
Dokumentumok / Források
![]() |
Microchip UG0881 PolarFire SoC FPGA rendszerindítás és konfigurálás [pdf] Felhasználói útmutató UG0881 PolarFire SoC FPGA rendszerindítás és konfigurálás, UG0881, PolarFire SoC FPGA rendszerindítás és konfigurálás, rendszerindítás és konfigurálás |