intel-logo

intel UG-20080 Stratix 10 SoC UEFI selflaailaaier

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

verbyview

Hierdie dokument verskaf omvattende inligting oor die Unified Extensible Firmware Interface (UEFI) selflaailaaier vir Intel Stratix 10 SoC. Die Intel Stratix 10 SoC bied 'n veilige selflaaivloei, bestaande uit

  • Die selflaai-ROM
  • Die veilige toestelbestuurder (SDM)
  • Die Veilige Monitor
  • Die UEFI selflaailaaier

Die Intel Stratix 10 SoC veilige selflaaivloei verseker dat die stelsel selflaailaaier onderteken is met 'n kriptografiese sleutel, wat deur die firmware bekragtig is. Die Veilige Monitor stage implementeer ook die TrustZone*-model van veilige partisionering. Hierdie model verdeel die sagteware-omgewing in twee geïsoleerde partisies, genoem die veilige wêreld en die nie-veilige wêreld. Die twee wêrelde kan slegs met mekaar kommunikeer deur die Secure Monitor. Die binêre beeld van die UEFI selflaailaaier kan op Quad SPI flash SD/MMC kaart gestoor word. Aan boord van kragopwekking laai die veilige toestelbestuurder (SDM) die veilige monitor direk op die harde verwerkerstelsel (HPS) op-skyfie RAM. Dan laai die Secure Monitor die UEFI selflaailaaier in HPS DDR geheue.

Die Secure Monitor take sluit in

  • Inisialiseer DDR SDRAM geheue
  • Die opstel van laevlak hardeware, soos PLL, IO's en pen-MUX'e, benodig deur nie-veilige wêreldsagteware

Die UEFI selflaailaaitake sluit in

  • Die verskaffing van Ethernet-ondersteuning
  • Ondersteun basiese hardeware diagnostiese kenmerke
  • Haal tans daaropvolgende opstartsagteware soos die bedryfstelselpakket of kernbeeld.

Let wel: Vir nie-veilige opstart, kan die bedryfstelselpakket kernbeeld, toestelboomblob en filestelsel. Vir veilige opstart kan dit 'n veilige kern wees.

UEFI-selflaai vloei oorview

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

Stelselvereistes

Om die Intel Stratix 10 SoC Unified Extensible Firmware Interface (UEFI) selflaailaaier te laai en uit te voer, moet jou stelsel aan die volgende vereistes voldoen.

Minimum hardeware vereistes

  • Linux-werkstasie met die volgende konfigurasie:
    • Serial terminal, soos Minicom vir Linux
    • microSD-kaartgleuf of microSD-kaartskrywer of SD-bekwame skrywer met SD na microSD-omskakelaar

Platform vermoëns

  Linux
In staat om die UEFI selflaailaaier saam te stel Ja
In staat om die Secure Monitor saam te stel Ja

Minimum sagteware vereistes

  • Intel® SoC FPGA Embedded Development Suite (SoC EDS) v18.1 en hoër
  • Linaro aarch64-linux-gnu-gcc gereedskapketting

Aan die gang

Installering van sagteware komponente

Installeer die Intel SoC EDS

  • Jy moet die Intel SoC EDS op jou masjien installeer.
  • Laai die Intel SoC EDS af van die aflaaisentrum vir FPGA's.

Die installering van die Compiler Toolchain

Jy stel die UEFI selflaailaaier en die Secure Monitor saam met die GNU Toolchain (EABI Release) vir Arm* Processors. U kan die GNU Toolchain vanaf Arm se aflaaibladsy aflaai.

  • Linux: gcc-arm-8.3-2019.03-x86_64-aarch64-Linux-gnu.tar.xz
Die bou van die veilige monitor

Soos sekuriteit al hoe belangriker word, word 'n veilige selflaaioplossing 'n vereiste in die ingebedde wêreld. Om omvattende sekuriteit en 'n betroubare platform te verseker, word veilige partisionering vereis. Die Intel Stratix 10-toestel bereik veilige partisionering deur die TrustZone-model met Arm Trusted Firmware (ATF) te implementeer. Die TrustZone-model verdeel die rekenaaromgewing in twee geïsoleerde wêrelde, die veilige wêreld en die normale wêreld, wat verbind word deur 'n sagtewaremonitor genaamd die Secure Monitor. Die twee wêrelde het logiese adresruimte en randapparatuur geskei. Kommunikasie tussen die twee wêrelde is slegs moontlik deur die bevoorregte Secure Monitor-oproep (SMC) instruksie te skakel.

Die volledige veilige selflaai-oplossing is

  • BootRom
  • Veilige toestelbestuurder
  • Veilige monitor
  • Uboot/UEFI
  • Hipervisor
  • OS

Veilige Monitor-modus is 'n bevoorregte modus en is altyd veilig, ongeag die toestand van die NS-bis. Die Veilige Monitor is kode wat in Veilige Monitor-modus werk en skakelaars na en van die Veilige wêreld verwerk. Die algehele sekuriteit van die sagteware maak staat op die sekuriteit van hierdie kode saam met die Veilige opstartkode.

Verwante inligting

Algemene inligting oor Arm Trusted Firmware

Gebruiker konfigurasie

Jy kan alle platformkonfigurasies vind in arm-trusted-firmware/plat/intel/soc/stratix10/include/socfpga_plat_def.h. Vir gebruikerskonfigurasie moet jy die selflaaibronne verander op grond van jou voorkeure. Jy kies BOOT_SOURCE_SDMMC as selflaai vanaf SDMMC of kies BOOT_SOURCE_QSPI as selflaai vanaf QSPI.

  • #definieer BOOT_SOURCE BOOT_SOURCE_SDMMC

Let wel: Om die boot te verander filenaam of offset, jy kan die #definieer hierin verander file.

Kry die Arm Trusted Firmware-bronkode

Die ATF-bron is by GitHub. Om die ATF-bronkode te kry, voer eenvoudig die volgende stappe uit

  1. Maak 'n terminaal oop.
  2. Skep 'n nuwe gids om die ATF-bronkode van GitHub na te gaan.
  3. Verander na hierdie werkgids en kloon die ATF-bron vanaf die Git-bome soos volg:
  4. Wanneer dit voltooi is, verander na die arm-trusted-firmware-lêergids en voer 'n Git-uitcheck uit soos volg:
    • cd arm-trusted-firmware
    • git checkout socfpga_v2.1

Verwante inligting

  • Die bou van die ATF.
  • Die samestelling van die UEFI-bronkode met die Linaro-gereedskapsketting.
  • Begin die Secure Monitor.

Die bou van die ATF

Hierdie afdeling beskryf hoe om die ATF met die Linaro GCC-samesteller te bou. Om die ATF met die Linaro GCC-samesteller te begin bou, voer eenvoudig die volgende stappe uit

  1. Verander jou gids soos volg na die ATF-bronkode-ligging:
    • cd arm-trusted-firmware
  2. Stel die GCC-pad en omgewingsveranderlike CROSS_COMPILE na Linaro-kruissamestelling soos volg: export PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • uitvoer ARCH=arm64
    • uitvoer CROSS_COMPILE=aarch64-linux-gnu-
  3. Verwyder die bouboom heeltemal soos volg:
    • maak regtig skoon
  4. Bou die ATF deur die volgende opdrag te gebruik:
    • maak PLAT=stratix10 bl2 bl31
  5. Die volgende boodskappe verskyn wanneer die ATF-bou suksesvol isintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-5
  6. Die tabel hieronder lys die Veilige Monitor-uitset files.

Beskrywings van Secure Monitor Files

File Pad en Naam Beskrywing
\build\stratix10\release\bl31.bin Gegenereer binêre file
\build\stratix10\release\bl31\bl31.elf Gegenereerde elf file
\build\stratix10\release\bl2.bin Gegenereer binêre file
\build\stratix10\release\bl2\bl2.elf Gegenereerde elf file

Die bou van die UEFI-selflaaier

Om 'n UEFI-selflaailaaier te bou, kry jy die UEFI-bronkode en stel die UEFI-bron saam met die ondersteunde nutsdingsketting.

Die Unified Extensible Firmware Interface (UEFI) is 'n gestandaardiseerde firmware-spesifikasie wat platforminitialisasie en firmware selflaai-operasies vereenvoudig en beveilig. UEFI word tans ontwikkel en ondersteun deur verteenwoordigers van meer as 250 toonaangewende tegnologiemaatskappye. Arm en die Linaro Enterprise Group bevorder ook die gebruik van UEFI on Arm-argitektuur omdat die UEFI-spesifikasie help om die selflaaiproses vir Arm-verwerker-gebaseerde platforms te standaardiseer. UEFI-tegnologie is toekomsbestendig deur die standaardisering van firmware-ontwerp eerder as eie firmware-ontwerp. UEFI-spesifikasies bevorder besigheids- en tegnologiese doeltreffendheid, verbeter werkverrigting en sekuriteit, fasiliteer interoperabiliteit tussen toestelle, platforms en stelsels en voldoen aan die volgende generasie tegnologieë. Die UEFI-spesifikasie is eweknieviewed en gepubliseer, wat ontwikkelaars in staat stel om firmware een keer per platform te skryf en dit sonder veel verandering te hergebruik. Hierdie hergebruik lei tot koste- en tydbesparings tydens selflaailaaierontwikkeling. Hierdie raamwerk gebruik die BSD-lisensie, wat jou toelaat om jou implementering opsioneel te kommersialiseer met minimale regskwessies. U kan die UEFI-bronkode óf in 'n Windows- óf in 'n Linux-stelsel saamstel.

Voorvereistes

Die bou van die UEFI vereis bykomende Linux-pakkette. Afhangende van jou Linux-verspreiding, is die opdrag om die pakkette te installeer anders:

As jy 'n Ubuntu-verspreiding gebruik, tik

  • sudo apt-get install uuid-dev bou-noodsaaklik

As jy 'n Fedora-verspreiding gebruik, tik

  • sudo yum installeer uuid-devel libuuid-devel

Vir die bou van UEFI word die Python-pakket benodig. As Python nie reeds op jou stelsel beskikbaar is nie, bied die uitvoering van die opdragte vanaf die SoC EDS Embedded Command Shell die vereiste Python-afhanklikheid.

Verkryging van die UEFI-bronkode

Die UEFI-bronkode is in GitHub geleë. Die volgende stappe wys jou hoe om die UEFI-bronkode te kry.

  1. Maak 'n terminaal oop.
  2. Kloon die UEFI-bron vanaf die Git-bome.
  3. Wanneer dit voltooi is, verander na die edk2-lêergids en voer 'n Git-afhandeling uit.
    • cd edk2
    • git checkout socfpga_udk201905

Die bronkode van die edk2-platforms is in GitHub geleë. Om die edk2 platforms bronkode te kry

Die samestelling van die UEFI-bronkode met die Linaro-gereedskapsketting

Hierdie afdeling verduidelik hoe om die UEFI-bronkode saam te stel met die Linaro-gereedskapsketting in 'n Linux-stelsel

  1. Open 'n terminaal en voer die volgende opdrag in:
    • cd
    • uitvoer PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • uitvoer CROSS_COMPILE= aarch64-linux-gnu-
    • uitvoer ARCH=arm64
    • uitvoer GCC48_AARCH64_PREFIX=aarch64-linux-gnu-
  2. Stel die EDK_TOOLS_PATH op:
    • uitvoer EDK_TOOLS_PATH=$PWD/edk2/BaseTools
  3. Stel 'n PACKAGES_PATH op om na die ligging van die bewaarplekke te wys:
    • uitvoer PACKAGES_PATH= $PWD/edk2:$PWD/edk2-platforms/
  4. Stel die WERKRUIM op:
    • uitvoer WERKRUIM = $PWD
  5. Stel die bou-omgewing op:
    • edk2/edksetup.sh
  6. Bou BaseTools (maak seker dat die python-nutsgoed geïnstalleer is):
    • maak -C edk2/BaseTools
  7. Stel die UEFI selflaaiprogram saam deur die volgende opdrag in te voer:
    • bou -a AARCH64 -p Platform/Intel/Stratix10/Stratix10SoCPkg.dsc -t GCC48-b DEBUG -y report.log -j build.log -Y PCD -Y BIBLIOTEEK -Y FLASH -Y DEPEX -Y BUILD_FLAGS -Y FIXED_ADDRESS
  8. Jou terminale vertoon 'n "Build Done"-boodskap nadat die UEFI suksesvol saamgestel is.
UEFI gegenereer Files

Die samestelling van die UEFI-bronkode skep die volgende files in die /Build/ Stratix10SoCPkg/RELEASE_GCC48 gids:

UEFI gegenereer Files

File Beskrywing
INTELSTRATIX10_EFI.fd Hierdie file is die UEFI selflaaiprogram om UEFI-dop te begin en ethernet-funksie te aktiveer of 'n UEFI-toepassing te laat loop
Genereer die FIP

FIP is die loonvrag wat ATF se BL2 in RAM laai en uitgevoer word. Die FIP bevat die binêre vir BL31 en UEFI selflaaiprogram, en 'n houer wat BL2 herken.

Om die FIP te bou, volg hierdie opdragte

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

Bou die FIP deur die volgende opdrag te gebruik

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

Werk UEFI op Intel Stratix 10-hardeware

Werk op 'n fisiese bord met ATF en UEFI selflaaiprogram

Hierdie afdeling beskryf hoe om die Secure Monitor op 'n fisiese bord te laat loop.

Genereer 'n .sof file met ATF

  1. Kry 'n .sof file vanaf die $SOCEDS_DEST_ROOT-installasiegids.
  2. Skakel die binêre om file bl2.bin, gegenereer in die bou van die ATF.
    • aarch64-linux-gnu-objcopy -I binêre -O ihex – \-verander-adresse 0xffe00000 bl2.bin bl2.hex
  3. Sluit die selflaaiprogram in by die .sof file soos volg:
    • 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

Verwante inligting

  • Die bou van die ATF.

Skep 'n SD-kaartprent

  1. Genereer UEFI selflaailaaier en FIP soos in die bou van die UEFI selflaailaaier en genereer die FIP.
  2. Bou Linux en root file stelsel gebaseer op die instruksies in Rocketboard.
  3. Bou die SD-kaartbeeld:
  • Kry die make_image python script en maak dit uitvoerbaar
  • Berei die inhoud van die vetverdeling voor:
    • mkdir vet && cd vet
    • cp /linux-socfpga/arch/arm64/boot/Image
    • cp /linux-socfpga/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dtb
  • Berei die wortel voor file stelsel partisie inhoud:
    • mkdir rootfs && cd rootfs
    • teer xf /gsrd-console-image-*.tar.xz
  • Skep die SD-kaartprent:
    • 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
    • Beeld,socfpga_stratix10_socdk.dtb,num=1,formaat=fat32,grootte=500M -s 2G -n sdimage.img
    • Let wel: As jy reeds 'n SD-beeld met A2-partisie het, kan jy die FIP vervang file met die opdrag hieronder:
    • sudo dd if =arm-trusted-firmware/build/stratix10/release/fip.bin of=/dev/sdx3
Verwante inligting
  • Die samestelling van die UEFI-bronkode met die Linaro-gereedskapsketting.
  • Die bou van die UEFI-selflaaier.

Begin die Secure Monitor

  1. Skakel die bord aan nadat die SD-kaart ingesit is.
  2. Maak Quartus-programmeerder oop en programmeer die bord met die .sof file gegenereer in Genereer 'n .sof File met ATF.

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

  • Die bord begin vanaf die ATF en laai outomaties UEFI selflaaiprogram om UEFI-dop te begin.

Verwante inligting

  • Genereer 'n .sof file met ATF.
Ontfouting met DS

Hierdie afdeling beskryf hoe om ATF en UEFI selflaaiprogram na die fisiese bord te laai deur DS.

  1. Maak seker dat jy DS geïnstalleer het. Begin eclipse met die volgende opdrag:
    • armds_ide &
  2. Stel nuwe ontfoutverbinding op
    • Stap illustrasieintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-8
  3. Nadat die konfigurasie voltooi is, koppel aan die teiken.
    • Let wel: Jy moet die bord programmeer met ghrd_1sx280lu2f50e2vg_hps_debug.sof voordat jy aan die teiken koppel.
  4. In die DS-opdragkonsole kan u 'n ontfoutingskrip met die volgende inhoud laai om die ATF- en UEFI-selflaaier na die fisiese bord af te laai.

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

Begin Linux

Hierdie afdeling wys jou hoe om Linux te begin nadat UEFI die UEFI-dop binnegekom het.

Begin vanaf die UEFI Shell

  1. Selflaai die bord tot by die UEFI-dop, soos beskryf in Running the Secure Monitor.
  2. Sodra die UEFI-dop gelaai is, voer die volgende opdrag in om Linux te begin:
    • Beeld dtb=socfpga_stratix10_socdk.dtb console=ttyS0,115200 root=/dev/mmcb

Let wel: Maak seker dat Linux-beeld en dtb in die SD-kaart gestoor is.

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

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4Dokumenthersieningsgeskiedenis vir Intel Stratix 10 SoC UEFI Boot Loader Gebruikersgids

Dokument weergawe Veranderinge
2020.06.19 Het die volgende afdelings opgedateer:
  • Minimum hardeware vereistes
  • Minimum sagteware vereistes
  • Die installering van die Compiler Toolchain
  • Gebruiker konfigurasie
  • Kry die Arm Trusted Firmware-bronkode
  • Die bou van die ATF
  • Verkryging van die UEFI-bronkode
  • Verkryging van die edk2-platformbronkode
  • Die samestelling van die UEFI-bronkode met die Linaro-gereedskapsketting
  • UEFI gegenereer Files
  • Genereer 'n .sof file met ATF
  • Skep 'n SD-kaartprent
  • Ontfouting met DS
  • Begin vanaf die UEFI Shell
2019.03.28
  • Het 'n nuwe afdeling bygevoeg: Die bou van die veilige monitor nuwe stewels te beskryftage en veilige stewel.
  • Opgedateerde afdeling: UEFI gegenereer Files.
  • Het 'n nuwe afdeling bygevoeg: Werk UEFI op Intel Stratix 10-hardeware.
2017.06.19 Aanvanklike vrystelling.

Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.

ID: 683134
Weergawe: 2020.06.19

Dokumente / Hulpbronne

intel UG-20080 Stratix 10 SoC UEFI selflaailaaier [pdf] Gebruikersgids
UG-20080 Stratix 10 SoC UEFI selflaailaaier, UG-20080, Stratix 10 SoC UEFI selflaailaaier, 10 SoC UEFI selflaailaaier, UEFI selflaailaaier

Verwysings

Los 'n opmerking

Jou e-posadres sal nie gepubliseer word nie. Vereiste velde is gemerk *