logo intel

Zavaděč intel UG-20080 Stratix 10 SoC UEFI

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

Nadview

Tento dokument poskytuje komplexní informace o zavaděči UEFI (Unified Extensible Firmware Interface) pro Intel Stratix 10 SoC. Intel Stratix 10 SoC poskytuje bezpečný tok spouštění, který se skládá z

  • Spouštěcí ROM
  • Správce zabezpečeného zařízení (SDM)
  • Zabezpečený monitor
  • Zavaděč UEFI

Zabezpečený tok spouštění Intel Stratix 10 SoC zajišťuje, že zavaděč systému je podepsán kryptografickým klíčem ověřeným firmwarem. The Secure Monitor stage také implementuje model bezpečného dělení TrustZone*. Tento model rozděluje softwarové prostředí na dva izolované oddíly, nazývané zabezpečený svět a nezabezpečený svět. Tyto dva světy spolu mohou komunikovat pouze prostřednictvím Secure Monitor. Binární obraz zavaděče UEFI lze uložit na kartu Quad SPI flash SD/MMC. Při zapnutí na desce správce zabezpečeného zařízení (SDM) nahraje zabezpečený monitor přímo do paměti RAM na čipu Hard Processor System (HPS). Poté Secure Monitor načte zavaděč UEFI do paměti HPS DDR.

Mezi úkoly Secure Monitor patří

  • Inicializace paměti DDR SDRAM
  • Konfigurace nízkoúrovňového hardwaru, jako je PLL, IO a pin MUX, který potřebuje nezabezpečený světový software

Mezi úlohy zavaděče UEFI patří

  • Poskytování podpory Ethernetu
  • Podpora základních funkcí diagnostiky hardwaru
  • Načítání následného spouštěcího softwaru, jako je balíček operačního systému nebo bitová kopie jádra.

Poznámka: Pro nezabezpečené spouštění může balíček operačního systému obsahovat obraz jádra, blob stromu zařízení a fileSystém. Pro bezpečné spouštění to může být bezpečné jádro.

UEFI Boot Flow Overview

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

Systémové požadavky

Chcete-li načíst a spustit zavaděč Intel Stratix 10 SoC Unified Extensible Firmware Interface (UEFI), musí váš systém splňovat následující požadavky.

Minimální hardwarové požadavky

  • Pracovní stanice Linux s následující konfigurací:
    • Sériový terminál, jako je Minicom pro Linux
    • Slot pro kartu microSD nebo zapisovač karet microSD nebo zapisovač s podporou SD s převodníkem SD na microSD

Možnosti platformy

  Linux
Schopnost zkompilovat zavaděč UEFI Ano
Schopnost zkompilovat Secure Monitor Ano

Minimální požadavky na software

  • Intel® SoC FPGA Embedded Development Suite (SoC EDS) v18.1 a vyšší
  • Linaro aarch64-linux-gnu-gcc toolchain

Začínáme

Instalace softwarových komponent

Instalace Intel SoC EDS

  • Na váš počítač musíte nainstalovat Intel SoC EDS.
  • Stáhněte si Intel SoC EDS z centra stahování pro FPGA.

Instalace Compiler Toolchain

Spouštěcí zavaděč UEFI a zabezpečený monitor zkompilujete pomocí GNU Toolchain (EABI Release) pro procesory Arm*. GNU Toolchain si můžete stáhnout ze stránky stahování Arm.

  • Linux: gcc-arm-8.3-2019.03-x86_64-aarch64-Linux-gnu.tar.xz
Vytvoření zabezpečeného monitoru

Vzhledem k tomu, že zabezpečení je stále důležitější, stává se ve vestavěném světě požadavkem řešení zabezpečeného spouštění. Pro zajištění komplexního zabezpečení a důvěryhodné platformy je vyžadováno bezpečné dělení. Zařízení Intel Stratix 10 dosahuje bezpečného rozdělení pomocí implementace modelu TrustZone s Arm Trusted Firmware (ATF). Model TrustZone rozděluje výpočetní prostředí na dva izolované světy, bezpečný svět a normální svět, které jsou propojeny softwarovým monitorem zvaným Secure Monitor. Tyto dva světy oddělily logický adresní prostor a periferie. Komunikace mezi těmito dvěma světy je možná pouze zavoláním instrukce privilegovaného volání Secure Monitor (SMC).

Plně zabezpečené řešení spouštění je

  • BootRom
  • Zabezpečený Správce zařízení
  • Zabezpečený monitor
  • Uboot/UEFI
  • Hypervizor
  • OS

Režim Secure Monitor je privilegovaný režim a je vždy bezpečný bez ohledu na stav bitu NS. Secure Monitor je kód, který běží v režimu Secure Monitor a zpracovává přepínače do a ze zabezpečeného světa. Celková bezpečnost softwaru závisí na zabezpečení tohoto kódu spolu s bezpečným spouštěcím kódem.

Související informace

Obecné informace o Arm Trusted Firmware

Konfigurace uživatele

Všechny konfigurace platformy najdete v arm-trusted-firmware/plat/intel/soc/stratix10/include/socfpga_plat_def.h. Pro konfiguraci uživatele musíte upravit spouštěcí zdroje na základě vašich preferencí. Při spouštění z SDMMC vyberete BOOT_SOURCE_SDMMC nebo při spouštění z QSPI vyberete BOOT_SOURCE_QSPI.

  • #define BOOT_SOURCE BOOT_SOURCE_SDMMC

Poznámka: Pro výměnu botičky filenázev nebo offset, v tomto můžete změnit #define file.

Získání zdrojového kódu důvěryhodného firmwaru Arm

Zdroj ATF je na GitHubu. Chcete-li získat zdrojový kód ATF, jednoduše spusťte následující kroky

  1. Otevřete terminál.
  2. Vytvořte nový adresář a podívejte se na zdrojový kód ATF z GitHubu.
  3. Přejděte do tohoto pracovního adresáře a naklonujte zdroj ATF ze stromů Git následovně:
  4. Po dokončení přejděte do složky arm-trusted-firmware a proveďte kontrolu Git takto:
    • cd arm-trusted-firmware
    • git checkout socfpga_v2.1

Související informace

  • Stavba ATF.
  • Kompilace zdrojového kódu UEFI pomocí Linaro Tool Chain.
  • Spuštění Secure Monitor.

Stavba ATF

Tato část popisuje, jak sestavit ATF pomocí kompilátoru Linaro GCC. Chcete-li začít sestavovat ATF pomocí kompilátoru Linaro GCC, jednoduše spusťte následující kroky

  1. Změňte svůj adresář na umístění zdrojového kódu ATF následovně:
    • cd arm-trusted-firmware
  2. Nastavte cestu GCC a proměnnou prostředí CROSS_COMPILE na křížovou kompilaci Linaro takto: export PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • export ARCH=arm64
    • export CROSS_COMPILE=aarch64-linux-gnu-
  3. Zcela odstraňte strom sestavení následovně:
    • udělat opravdu čisté
  4. Sestavte ATF pomocí následujícího příkazu:
    • make PLAT=stratix10 bl2 bl31
  5. Po úspěšném sestavení ATF se zobrazí následující zprávyintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-5
  6. Níže uvedená tabulka uvádí výstup Secure Monitor files.

Popis Secure Monitor Files

File Cesta a jméno Popis
\build\stratix10\release\bl31.bin Generované binární file
\build\stratix10\release\bl31\bl31.elf Generovaný elf file
\build\stratix10\release\bl2.bin Generované binární file
\build\stratix10\release\bl2\bl2.elf Generovaný elf file

Vytvoření spouštěcího zavaděče UEFI

Chcete-li sestavit zavaděč UEFI, získáte zdrojový kód UEFI a zkompilujete zdroj UEFI s podporovanou řadou nástrojů.

Unified Extensible Firmware Interface (UEFI) je standardizovaná specifikace firmwaru, která zjednodušuje a zabezpečuje inicializaci platformy a operace bootstrapu firmwaru. UEFI je v současné době vyvíjen a podporován zástupci více než 250 předních technologických společností. Arm a Linaro Enterprise Group také propagují použití architektury UEFI na architektuře Arm, protože specifikace UEFI pomáhá standardizovat proces spouštění pro platformy založené na procesorech Arm. Technologie UEFI je připravena na budoucnost díky standardizaci návrhu firmwaru spíše než proprietárnímu návrhu firmwaru. Specifikace UEFI podporují obchodní a technologickou efektivitu, zlepšují výkon a zabezpečení, usnadňují interoperabilitu mezi zařízeními, platformami a systémy a jsou v souladu s technologiemi nové generace. Specifikace UEFI je peer-reviewed a publikoval, což umožňuje vývojářům napsat firmware jednou pro každou platformu a znovu jej použít bez velkých úprav. Toto opětovné použití vede k úspoře nákladů a času při vývoji zavaděče. Tento rámec používá licenci BSD, která vám umožňuje volitelně komercializovat vaši implementaci s minimálními právními problémy. Zdrojový kód UEFI můžete zkompilovat buď v systému Windows nebo v systému Linux.

Předpoklady

Sestavení UEFI vyžaduje další linuxové balíčky. V závislosti na vaší distribuci Linuxu se příkaz k instalaci balíčků liší:

Pokud používáte distribuci Ubuntu, zadejte

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

Pokud používáte distribuci Fedory, zadejte

  • sudo yum nainstalovat uuid-devel libuuid-devel

Pro sestavení UEFI je vyžadován balíček Python. Pokud Python ve vašem systému ještě není dostupný, spuštění příkazů z prostředí SoC EDS Embedded Command Shell poskytuje požadovanou závislost na Pythonu.

Získání zdrojového kódu UEFI

Zdrojový kód UEFI se nachází na GitHubu. Následující kroky ukazují, jak získat zdrojový kód UEFI.

  1. Otevřete terminál.
  2. Naklonujte zdroj UEFI ze stromů Git.
  3. Po dokončení přejděte do složky edk2 a proveďte kontrolu Git.
    • cd edk2
    • git checkout socfpga_udk201905

Zdrojový kód platforem edk2 se nachází na GitHubu. Chcete-li získat zdrojový kód platforem edk2

Kompilace zdrojového kódu UEFI pomocí Linaro Tool Chain

Tato část vysvětluje, jak zkompilovat zdrojový kód UEFI pomocí Linaro toolchain v systému Linux

  1. Otevřete terminál a zadejte následující příkaz:
    • CD
    • export PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • export CROSS_COMPILE= aarch64-linux-gnu-
    • export ARCH=arm64
    • exportovat GCC48_AARCH64_PREFIX=aarch64-linux-gnu-
  2. Nastavte EDK_TOOLS_PATH:
    • export EDK_TOOLS_PATH=$PWD/edk2/BaseTools
  3. Nastavte cestu PACKAGES_PATH tak, aby ukazovala na umístění úložišť:
    • export PACKAGES_PATH= $PWD/edk2:$PWD/edk2-platforms/
  4. Nastavte WORKSPACE:
    • export WORKSPACE = $PWD
  5. Nastavte prostředí sestavení:
    • edk2/edksetup.sh
  6. Sestavte BaseTools (ujistěte se, že jsou nainstalovány nástroje python):
    • make -C edk2/BaseTools
  7. Zkompilujte zavaděč UEFI zadáním následujícího příkazu:
    • build -a AARCH64 -p Platforma/Intel/Stratix10/Stratix10SoCPkg.dsc -t GCC48-b DEBUG -y report.log -j build.log -Y PCD -Y LIBRARY -Y FLASH -Y DEPEX -Y BUILD_FLAGS -Y FIXED_ADDRESS
  8. Po úspěšné kompilaci UEFI váš terminál zobrazí zprávu „Build Done“.
Generováno UEFI Files

Kompilace zdrojového kódu UEFI vytvoří následující files ve složce /Build/ Stratix10SoCPkg/RELEASE_GCC48:

Generováno UEFI Files

File Popis
INTELSTRATIX10_EFI.fd Tento file je zavaděč UEFI pro spouštění prostředí UEFI a povolení funkce ethernetu nebo spuštění aplikace UEFI
Generování FIP

FIP je užitečné zatížení, které ATF BL2 načte do RAM a provede. FIP obsahuje binární soubor pro BL31 a bootloader UEFI a kontejner, který BL2 rozpozná.

Chcete-li sestavit FIP, postupujte podle těchto příkazů

  • export ARCH = ARM64
  • export CROSS_COMPILE= aarch64-linux-gnu-
  • CD

Sestavte FIP pomocí následujícího příkazu

  • udělat fip BL33= /Build/Stratix10SoCPKG/\DEBUG_GCC48/FV/INTELSTRATIX10_EFI.fd fip PLAT=stratix10

Spuštění UEFI na hardwaru Intel Stratix 10

Běží na fyzické desce s ATF a UEFI Bootloaderem

Tato část popisuje, jak spustit Secure Monitor na fyzické desce.

Vygenerujte soubor .sof file s ATF

  1. Získejte .sof file z instalačního adresáře $SOCEDS_DEST_ROOT.
  2. Převeďte binární file bl2.bin, vytvořený v Budování ATF.
    • aarch64-linux-gnu-objcopy -I binární -O ihex – \-change-addresses 0xffe00000 bl2.bin bl2.hex
  3. Zahrnout bootloader do .sof file následovně:
    • 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

Související informace

  • Stavba ATF.

Vytvoření obrázku SD karty

  1. Vygenerujte UEFI Bootloader a FIP jako v části Vytvoření zavaděče UEFI a Generování FIP.
  2. Sestavte Linux a root file systém založený na pokynech v Rocketboard.
  3. Vytvořte obraz SD karty:
  • Získejte python skript make_image a udělejte jej spustitelný
  • Připravte obsah tukové přepážky:
    • mkdir tuk && cd tuk
    • cp /linux-socfpga/arch/arm64/boot/Image
    • cp /linux-socfpga/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dtb
  • Připravte kořen file obsah systémového oddílu:
    • mkdir rootfs && cd rootfs
    • tar xf /gsrd-console-image-*.tar.xz
  • Vytvořte obraz SD karty:
    • 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
    • Obrázek,socfpga_stratix10_socdk.dtb,num=1,format=fat32,velikost=500M -s 2G -n sdimage.img
    • Poznámka: Pokud již máte obraz SD s oddílem A2, můžete FIP nahradit file s příkazem níže:
    • sudo dd if =arm-trusted-firmware/build/stratix10/release/fip.bin of=/dev/sdx3
Související informace
  • Kompilace zdrojového kódu UEFI pomocí Linaro Tool Chain.
  • Vytvoření spouštěcího zavaděče UEFI.

Spuštění Secure Monitor

  1. Po vložení SD karty zapněte desku.
  2. Otevřete programátor Quartus a naprogramujte desku pomocí .sof file generované v Generování .sof File s ATF.

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

  • Deska se spustí z ATF a automaticky načte bootloader UEFI, aby se spustil UEFI shell.

Související informace

  • Vygenerujte soubor .sof file s ATF.
Ladění pomocí DS

Tato část popisuje, jak načíst zavaděč ATF a UEFI na fyzickou desku prostřednictvím DS.

  1. Ujistěte se, že jste nainstalovali DS. Spusťte eclipse pomocí následujícího příkazu:
    • armds_ide &
  2. Nastavte nové ladicí připojení
    • Krok ilustraceintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-8
  3. Po dokončení konfigurace se připojte k cíli.
    • Poznámka: Před připojením k cíli musíte desku naprogramovat pomocí ghrd_1sx280lu2f50e2vg_hps_debug.sof.
  4. V příkazové konzoli DS můžete načíst ladicí skript s následujícím obsahem a stáhnout zavaděč ATF a UEFI na fyzickou desku.

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

Zavádění Linuxu

Tato část ukazuje, jak zavést Linux poté, co UEFI vstoupí do prostředí UEFI.

Bootování z prostředí UEFI Shell

  1. Spusťte desku až po UEFI shell, jak je popsáno v Spuštění zabezpečeného monitoru.
  2. Po načtení prostředí UEFI zadejte následující příkaz pro spuštění Linuxu:
    • Obrázek dtb=socfpga_stratix10_socdk.dtb console=ttyS0,115200 root=/dev/mmcb

Poznámka: Ujistěte se, že obraz Linuxu a dtb jsou uloženy na SD kartě.

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

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4Historie revizí dokumentu pro Intel Stratix 10 SoC UEFI Boot Loader Uživatelská příručka

Verze dokumentu Změny
2020.06.19 Byly aktualizovány následující sekce:
  • Minimální hardwarové požadavky
  • Minimální požadavky na software
  • Instalace Compiler Toolchain
  • Konfigurace uživatele
  • Získání zdrojového kódu důvěryhodného firmwaru Arm
  • Stavba ATF
  • Získání zdrojového kódu UEFI
  • Získání zdrojového kódu platformy edk2
  • Kompilace zdrojového kódu UEFI pomocí Linaro Tool Chain
  • Generováno UEFI Files
  • Vygenerujte soubor .sof file s ATF
  • Vytvoření obrázku SD karty
  • Ladění pomocí DS
  • Bootování z prostředí UEFI Shell
2019.03.28
  • Přidána nová sekce: Vytvoření zabezpečeného monitoru popsat nové boty stage a bezpečné spouštění.
  • Aktualizovaná sekce: Generováno UEFI Files.
  • Přidána nová sekce: Spuštění UEFI na hardwaru Intel Stratix 10.
2017.06.19 Počáteční vydání.

Intel Corporation. Všechna práva vyhrazena. Intel, logo Intel a další značky Intel jsou ochranné známky společnosti Intel Corporation nebo jejích dceřiných společností. Společnost Intel zaručuje výkon svých FPGA a polovodičových produktů podle aktuálních specifikací v souladu se standardní zárukou společnosti Intel, ale vyhrazuje si právo provádět změny jakýchkoli produktů a služeb kdykoli bez upozornění. Společnost Intel nepřebírá žádnou odpovědnost nebo závazky vyplývající z aplikace nebo použití jakýchkoli informací, produktů nebo služeb popsaných v tomto dokumentu, pokud to není výslovně písemně odsouhlaseno společností Intel. Zákazníkům společnosti Intel se doporučuje získat nejnovější verzi specifikací zařízení dříve, než se budou spoléhat na jakékoli zveřejněné informace a než zadají objednávky na produkty nebo služby. *Jiná jména a značky mohou být nárokovány jako vlastnictví jiných.

ID: 683134
Verze: 2020.06.19

Dokumenty / zdroje

Zavaděč intel UG-20080 Stratix 10 SoC UEFI [pdfUživatelská příručka
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

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *