intel-logo

intel UG-20080 Stratix 10 SoC UEFI pokretač

intel-UG-20080-Stratix-10-SoC -Boot-Loader-product

Gotovoview

Ovaj dokument pruža sveobuhvatne informacije o pokretačkom programu Unified Extensible Firmware Interface (UEFI) za Intel Stratix 10 SoC. Intel Stratix 10 SoC obezbeđuje siguran tok pokretanja, koji se sastoji od

  • ROM za pokretanje
  • Upravitelj sigurnim uređajima (SDM)
  • Secure Monitor
  • UEFI boot loader

Intel Stratix 10 SoC siguran tok pokretanja osigurava da je pokretač sistema potpisan kriptografskim ključem, potvrđen od strane firmvera. Secure Monitor stage također implementira TrustZone* model sigurnog particioniranja. Ovaj model dijeli softversko okruženje na dvije izolirane particije, nazvane sigurni svijet i svijet koji nije siguran. Dva svijeta mogu međusobno komunicirati samo preko Sigurnog monitora. Binarna slika UEFI boot loadera može se pohraniti na Quad SPI flash SD/MMC karticu. Prilikom uključivanja, upravitelj sigurnih uređaja (SDM) učitava Secure Monitor direktno u RAM na čipu hard procesora (HPS). Zatim Secure Monitor učitava UEFI pokretač u HPS DDR memoriju.

Zadaci Secure Monitor uključuju

  • Inicijalizacija DDR SDRAM memorije
  • Konfiguriranje hardvera niskog nivoa, kao što su PLL, IO-ovi i pin MUX-ovi, potrebni za nesigurni svjetski softver

Zadaci UEFI pokretača uključuju

  • Pružanje podrške za Ethernet
  • Podržava osnovne hardverske dijagnostičke funkcije
  • Dohvaćanje naknadnog softvera za pokretanje, kao što je paket operativnog sistema ili slika kernela.

Napomena: Za nebezbedno pokretanje, paket operativnog sistema može uključivati ​​sliku kernela, blob stabla uređaja i filesistem. Za sigurno pokretanje to može biti sigurno jezgro.

UEFI Boot Flow Overview

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-1

Sistemski zahtjevi

Da biste učitali i izvršili pokretački program Intel Stratix 10 SoC Unified Extensible Firmware Interface (UEFI), vaš sistem mora ispuniti sljedeće zahtjeve.

Minimalni hardverski zahtjevi

  • Linux radna stanica sa sljedećom konfiguracijom:
    • Serijski terminal, kao što je Minicom za Linux
    • Utor za microSD karticu ili uređaj za pisanje na microSD karticu ili SD uređaj za pisanje sa SD u microSD konverter

Mogućnosti platforme

  Linux
Može kompajlirati UEFI boot loader Da
Može kompajlirati Secure Monitor Da

Minimalni softverski zahtjevi

  • Intel® SoC FPGA Embedded Development Suite (SoC EDS) v18.1 i noviji
  • Linaro aarch64-linux-gnu-gcc alatni lanac

Getting Started

Instaliranje softverskih komponenti

Instalacija Intel SoC EDS-a

  • Morate instalirati Intel SoC EDS na svoju mašinu.
  • Preuzmite Intel SoC EDS iz Download Center for FPGAs.

Instaliranje lanca alata kompajlera

Vi kompajlirate UEFI pokretački program i Secure Monitor sa GNU Toolchain-om (EABI izdanje) za Arm* procesore. Možete preuzeti GNU Toolchain sa Armove stranice za preuzimanje.

  • Linux: gcc-arm-8.3-2019.03-x86_64-aarch64-Linux-gnu.tar.xz
Izgradnja sigurnog monitora

Kako sigurnost postaje sve važnija, rješenje za sigurno pokretanje postaje zahtjev u svijetu ugrađenih uređaja. Da bi se osigurala sveobuhvatna sigurnost i pouzdana platforma, potrebno je sigurno particioniranje. Intel Stratix 10 uređaj postiže sigurno particioniranje implementacijom TrustZone modela sa Arm Trusted Firmware (ATF). Model TrustZone dijeli računarsko okruženje u dva izolovana svijeta, sigurni svijet i normalan svijet, koji su povezani softverskim monitorom koji se zove Secure Monitor. Dva svijeta imaju odvojen logički adresni prostor i periferne uređaje. Komunikacija između dva svijeta je moguća samo pozivanjem privilegovane instrukcije Secure Monitor call (SMC).

Potpuno sigurno rješenje za pokretanje je

  • BootRom
  • Secure Device Manager
  • Secure Monitor
  • Uboot/UEFI
  • Hipervizor
  • OS

Režim Secure Monitor je privilegovani režim i uvek je bezbedan bez obzira na stanje NS bita. Secure Monitor je kod koji radi u režimu Secure Monitor i obrađuje prebacivanja u i iz bezbednog sveta. Ukupna sigurnost softvera oslanja se na sigurnost ovog koda zajedno sa bezbednim kodom za pokretanje.

Povezane informacije

Opće informacije o Arm Trusted firmveru

Korisnička konfiguracija

Sve konfiguracije platforme možete pronaći u arm-trusted-firmware/plat/intel/soc/stratix10/include/socfpga_plat_def.h. Za korisničku konfiguraciju, morate izmijeniti izvore pokretanja na osnovu vaših preferencija. Birate BOOT_SOURCE_SDMMC ako se dižete iz SDMMC-a ili odaberete BOOT_SOURCE_QSPI ako se dižete iz QSPI.

  • #define BOOT_SOURCE BOOT_SOURCE_SDMMC

Napomena: Za promjenu prtljažnika fileime ili pomak, možete promijeniti #define u ovome file.

Dobijanje izvornog koda firmvera Arm Trusted

ATF izvor je na GitHubu. Da biste dobili ATF izvorni kod, jednostavno pokrenite sljedeće korake

  1. Otvorite terminal.
  2. Kreirajte novi direktorij da provjerite ATF izvorni kod sa GitHuba.
  3. Promijenite u ovaj radni direktorij i klonirajte ATF izvor iz Git stabala na sljedeći način:
  4. Kada završite, promijenite mapu arm-trusted-firmware i izvršite Git checkout na sljedeći način:
    • cd arm-trusted-firmware
    • git checkout socfpga_v2.1

Povezane informacije

  • Izgradnja ATF-a.
  • Kompajliranje UEFI izvornog koda sa Linaro lancem alata.
  • Pokretanje Secure Monitora.

Izgradnja ATF-a

Ovaj odjeljak opisuje kako napraviti ATF sa Linaro GCC kompajlerom. Da biste počeli graditi ATF sa Linaro GCC kompajlerom, jednostavno pokrenite sljedeće korake

  1. Promijenite svoj direktorij na lokaciju ATF izvornog koda na sljedeći način:
    • cd arm-trusted-firmware
  2. Postavite GCC putanju i varijablu okruženja CROSS_COMPILE na Linaro unakrsno kompajliranje na sljedeći način: export PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • izvoz ARCH=arm64
    • izvoz CROSS_COMPILE=aarch64-linux-gnu-
  3. Uklonite stablo izgradnje u potpunosti na sljedeći način:
    • učiniti realclean
  4. Napravite ATF koristeći sljedeću naredbu:
    • napravi PLAT=stratix10 bl2 bl31
  5. Sljedeće poruke se pojavljuju kada je ATF izgradnja uspješnaintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-5
  6. Tabela ispod navodi izlaz Secure Monitora files.

Opisi Secure Monitora Files

File Put i ime Opis
\build\stratix10\release\bl31.bin Generirano binarno file
\build\stratix10\release\bl31\bl31.elf Generirani vilenjak file
\build\stratix10\release\bl2.bin Generirano binarno file
\build\stratix10\release\bl2\bl2.elf Generirani vilenjak file

Izrada UEFI Boot Loader-a

Da biste napravili UEFI boot loader, dobijate UEFI izvorni kod i kompajlirate UEFI izvor sa podržanim lancem alata.

Unified Extensible Firmware Interface (UEFI) je standardizirana specifikacija firmvera koja pojednostavljuje i osigurava inicijalizaciju platforme i operacije pokretanja firmvera. UEFI trenutno razvijaju i podržavaju predstavnici više od 250 vodećih tehnoloških kompanija u industriji. Arm i Linaro Enterprise Group takođe promovišu upotrebu UEFI na Arm arhitekturi jer UEFI specifikacija pomaže u standardizaciji procesa pokretanja za platforme zasnovane na Arm procesorima. UEFI tehnologija je otporna na budućnost kroz standardizaciju dizajna firmvera umjesto vlasničkog dizajna firmvera. UEFI specifikacije promovišu poslovnu i tehnološku efikasnost, poboljšavaju performanse i sigurnost, olakšavaju interoperabilnost između uređaja, platformi i sistema i usklađuju se s tehnologijama sljedeće generacije. UEFI specifikacija je peer-reviewizdano i objavljeno, omogućavajući programerima da napišu firmver jednom po platformi i ponovo ga koriste bez velikih modifikacija. Ova ponovna upotreba rezultira uštedom troškova i vremena tokom razvoja pokretačkog programa. Ovaj okvir koristi BSD licencu, dozvoljavajući vam da opciono komercijalizujete svoju implementaciju uz minimalne pravne probleme. UEFI izvorni kod možete kompajlirati u Windows ili Linux sistemu.

Preduvjeti

Izgradnja UEFI-ja zahtijeva dodatne Linux pakete. Ovisno o vašoj Linux distribuciji, naredba za instaliranje paketa je drugačija:

Ako koristite Ubuntu distribuciju, otkucajte

  • sudo apt-get install uuid-dev build-essential

Ako koristite Fedora distribuciju, otkucajte

  • sudo yum install uuid-devel libuuid-devel

Za pravljenje UEFI-ja potreban je Python paket. Ako Python već nije dostupan na vašem sistemu, pokretanje komandi iz SoC EDS Embedded Command Shell pruža potrebnu Python zavisnost.

Dobijanje UEFI izvornog koda

UEFI izvorni kod se nalazi na GitHubu. Sljedeći koraci vam pokazuju kako da dobijete UEFI izvorni kod.

  1. Otvorite terminal.
  2. Klonirajte UEFI izvor iz Git stabala.
  3. Kada završite, prebacite se na edk2 folder i izvršite Git checkout.
    • cd edk2
    • git checkout socfpga_udk201905

Izvorni kod edk2 platforme nalazi se na GitHubu. Da biste dobili izvorni kod edk2 platforme

Kompajliranje UEFI izvornog koda sa Linaro lancem alata

Ovaj odjeljak objašnjava kako kompajlirati UEFI izvorni kod s Linaro alatnim lancem u Linux sistemu

  1. Otvorite terminal i unesite sljedeću naredbu:
    • cd
    • izvoz PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • izvoz CROSS_COMPILE= aarch64-linux-gnu-
    • izvoz ARCH=arm64
    • izvoz GCC48_AARCH64_PREFIX=aarch64-linux-gnu-
  2. Postavite EDK_TOOLS_PATH:
    • export EDK_TOOLS_PATH=$PWD/edk2/BaseTools
  3. Postavite PACKAGES_PATH da ukazuje na lokaciju spremišta:
    • izvoz PACKAGES_PATH= $PWD/edk2:$PWD/edk2-platforms/
  4. Postavite RADNI PROSTOR:
    • izvoz RADNI PROSTOR = $PWD
  5. Postavite okruženje za izgradnju:
    • edk2/edksetup.sh
  6. Napravite BaseTools (uvjerite se da su python alati instalirani):
    • make -C edk2/BaseTools
  7. Prevedite UEFI bootloader unosom sljedeće naredbe:
    • build -a AARCH64 -p Platforma/Intel/Stratix10/Stratix10SoCPkg.dsc -t GCC48-b DEBUG -y report.log -j build.log -Y PCD -Y BIBLIOTEKA -Y FLASH -Y DEPEX -Y BUILD_FLAGS -Y FIXED_ADDRESS
  8. Vaš terminal prikazuje poruku "Build Done" nakon što se UEFI uspješno kompajlira.
UEFI Generated Files

Prevođenje UEFI izvornog koda stvara sljedeće files u folderu /Build/ Stratix10SoCPkg/RELEASE_GCC48:

UEFI Generated Files

File Opis
INTELSTRATIX10_EFI.fd Ovo file je UEFI bootloader za pokretanje UEFI ljuske i omogućavanje ethernet funkcije ili pokretanje UEFI aplikacije
Generisanje FIP-a

FIP je teret koji ATF-ov BL2 učitava u RAM i izvršava. FIP sadrži binarnu datoteku za BL31 i UEFI bootloader i kontejner koji BL2 prepoznaje.

Da biste napravili FIP, slijedite ove naredbe

  • izvoz ARCH = ARM64
  • izvoz CROSS_COMPILE= aarch64-linux-gnu-
  • cd

Napravite FIP koristeći sljedeću naredbu

  • napravi fip BL33= /Build/Stratix10SoCPKG/\DEBUG_GCC48/FV/INTELSTRATIX10_EFI.fd fip PLAT=stratix10

Pokretanje UEFI-a na Intel Stratix 10 hardveru

Radi na fizičkoj ploči sa ATF i UEFI bootloaderom

Ovaj odjeljak opisuje kako pokrenuti Secure Monitor na fizičkoj ploči.

Generirajte .sof file sa ATF-om

  1. Uzmite .sof file iz $SOCEDS_DEST_ROOT instalacijskog direktorija.
  2. Pretvorite binarni file bl2.bin, generiran u izgradnji ATF-a.
    • aarch64-linux-gnu-objcopy -I binarni -O ihex – \-promjena-adrese 0xffe00000 bl2.bin bl2.hex
  3. Uključite bootloader u .sof file kako slijedi:
    • quartus_pfg -c -o hps_path=bl2.hex \ghrd_1sx280lu2f50e2vg.sof ghrd_1sx280lu2f50e2vg_hps.sof

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-6

Povezane informacije

  • Izgradnja ATF-a.

Kreiranje slike SD kartice

  1. Generirajte UEFI Bootloader i FIP kao u Pravljenje UEFI Boot Loader-a i Generisanje FIP-a.
  2. Napravi Linux i root file sistem zasnovan na uputstvima u Rocketboardu.
  3. Napravite sliku SD kartice:
  • Nabavite make_image python skriptu i učinite je izvršnom
  • Pripremite sadržaj particije masti:
    • mkdir mast && cd mast
    • k.č /linux-socfpga/arch/arm64/boot/Image
    • k.č /linux-socfpga/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dtb
  • Pripremite korijen file sadržaj sistemske particije:
    • mkdir rootfs && cd rootfs
    • tar xf /gsrd-console-image-*.tar.xz
  • Kreirajte sliku SD kartice:
    • sudo ./make_sdimage.py -f -P fip.bin,num=3,format=raw,size=10M, type=A2 -P rootfs/\ *,num=2,format=ext3,size=1500M -P
    • Slika,socfpga_stratix10_socdk.dtb,num=1,format=fat32,size=500M -s 2G -n sdimage.img
    • Napomena: Ako već imate SD sliku sa A2 particijom, možete zamijeniti FIP file sa naredbom ispod:
    • sudo dd if =arm-trusted-firmware/build/stratix10/release/fip.bin of=/dev/sdx3
Povezane informacije
  • Kompajliranje UEFI izvornog koda sa Linaro lancem alata.
  • Izrada UEFI Boot Loader-a.

Pokretanje Secure Monitora

  1. Uključite ploču nakon što je SD kartica umetnuta.
  2. Otvorite Quartus programator i programirajte ploču sa .sof file generirano u Generiranje .sof File sa ATF-om.

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-7

  • Ploča se pokreće sa ATF-a i automatski učitava UEFI bootloader za pokretanje UEFI shell-a.

Povezane informacije

  • Generirajte .sof file sa ATF-om.
Otklanjanje grešaka sa DS-om

Ovaj odjeljak opisuje kako učitati ATF i UEFI bootloader na fizičku ploču preko DS-a.

  1. Uvjerite se da ste instalirali DS. Pokrenite eclipse koristeći sljedeću naredbu:
    • armds_ide &
  2. Postavite novu vezu za otklanjanje grešaka
    • Ilustracija korakaintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-8
  3. Nakon što je konfiguracija završena, povežite se na cilj.
    • Napomena: Morate programirati ploču sa ghrd_1sx280lu2f50e2vg_hps_debug.sof prije povezivanja na cilj.
  4. U DS komandnoj konzoli možete učitati skriptu za otklanjanje grešaka sa sljedećim sadržajem da biste preuzeli ATF i UEFI bootloader na fizičku ploču.

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-9 intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-10

Dizanje Linuxa

Ovaj odjeljak vam pokazuje kako pokrenuti Linux nakon što UEFI uđe u UEFI shell.

Dizanje iz UEFI Shell-a

  1. Pokrenite ploču na UEFI shell, kao što je opisano u Pokretanju sigurnog monitora.
  2. Kada se UEFI ljuska učita, unesite sljedeću naredbu da pokrenete Linux:
    • Slika dtb=socfpga_stratix10_socdk.dtb console=ttyS0,115200 root=/dev/mmcb

Napomena: Provjerite jesu li Linux slika i dtb pohranjeni na SD kartici.

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4Istorija revizija dokumenta za Intel Stratix 10 SoC UEFI Boot Loader Uputstvo za upotrebu

Verzija dokumenta Promjene
2020.06.19 Ažurirani su sljedeći odjeljci:
  • Minimalni hardverski zahtjevi
  • Minimalni softverski zahtjevi
  • Instaliranje lanca alata kompajlera
  • Korisnička konfiguracija
  • Dobijanje izvornog koda firmvera Arm Trusted
  • Izgradnja ATF-a
  • Dobijanje UEFI izvornog koda
  • Dobijanje izvornog koda edk2 platforme
  • Kompajliranje UEFI izvornog koda sa Linaro lancem alata
  • UEFI Generated Files
  • Generirajte .sof file sa ATF-om
  • Kreiranje slike SD kartice
  • Otklanjanje grešaka sa DS-om
  • Dizanje iz UEFI Shell-a
2019.03.28
  • Dodan novi odjeljak: Izgradnja sigurnog monitora da opišem nove boot stage i sigurno pokretanje.
  • Ažurirani odjeljak: UEFI Generated Files.
  • Dodan novi odjeljak: Pokretanje UEFI-a na Intel Stratix 10 hardveru.
2017.06.19 Prvo izdanje.

Intel Corporation. Sva prava zadržana. Intel, Intel logo i druge Intel oznake su zaštitni znaci Intel Corporation ili njenih podružnica. Intel garantuje performanse svojih FPGA i poluprovodničkih proizvoda u skladu sa trenutnim specifikacijama u skladu sa Intelovom standardnom garancijom, ali zadržava pravo da izvrši izmene bilo kojeg proizvoda i usluge u bilo koje vreme bez prethodne najave. Intel ne preuzima nikakvu odgovornost ili odgovornost koja proizilazi iz primene ili korišćenja bilo koje informacije, proizvoda ili usluge opisane ovde, osim ako je Intel izričito pristao u pisanoj formi. Intelovim kupcima se savjetuje da nabave najnoviju verziju specifikacija uređaja prije nego što se oslone na bilo koju objavljenu informaciju i prije naručivanja proizvoda ili usluga. *Druga imena i robne marke mogu se smatrati vlasništvom drugih.

ID: 683134
verzija: 2020.06.19

Dokumenti / Resursi

intel UG-20080 Stratix 10 SoC UEFI pokretač [pdf] Korisnički priručnik
UG-20080 Stratix 10 SoC UEFI Boot Loader, UG-20080, Stratix 10 SoC UEFI Boot Loader, 10 SoC UEFI Boot Loader, UEFI Boot Loader

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *