intel-logo

Intel UG-20080 Stratix 10 SoC UEFI Boot Loader

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

Overview

Stu documentu furnisce infurmazione cumpleta nantu à u caricatore di avviu UEFI (Unified Extensible Firmware Interface) per Intel Stratix 10 SoC. L'Intel Stratix 10 SoC furnisce un flussu di boot sicuru, custituitu da

  • A ROM di boot
  • U gestore di dispositivi sicuru (SDM)
  • U Monitor Secure
  • U caricatore di boot UEFI

L'Intel Stratix 10 SoC secure boot flow assicura chì u boot loader di u sistema hè firmatu cù una chjave criptografica, validata da u firmware. U Monitor Secure stage implementa ancu u mudellu TrustZone * di particionamentu sicuru. Stu mudellu divide l'ambiente di u software in duie partizioni isolate, chjamate u mondu sicuru è u mondu micca sicuru. I dui mondi ponu cumunicà solu cù l'altri attraversu u Monitor Secure. L'imaghjini binariu di u caricatore di u boot UEFI pò esse guardatu nantu à a carta SD / MMC Quad SPI flash. A bordu di l'accensione, u gestore di dispositivi sicuri (SDM) carica u Monitor Secure direttamente nantu à a RAM in chip di u Hard Processor System (HPS). Allora u Monitor Secure carica u caricatore di boot UEFI in memoria HPS DDR.

I travaglii di Secure Monitor includenu

  • Inizializza a memoria DDR SDRAM
  • Configurazione di hardware di livellu bassu, cum'è PLL, IO, è pin MUX, necessariu da u software mundiale micca sicuru

I compiti di u caricatore di u boot UEFI includenu

  • Fornisce un supportu Ethernet
  • Supporta e funzioni di diagnostica hardware di basa
  • Pigliate u software di boot sussegwente cum'è u pacchettu di u sistema operatore o l'imagine di u kernel.

Nota: Per un boot micca sicuru, u pacchettu di u sistema operatore pò include l'imaghjini di u kernel, u blob di l'arburu di u dispositivu è filesistema. Per un boot sicuru pò esse un kernel sicuru.

UEFI Boot Flow Overview

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

Requisiti di u sistema

Per carica è eseguisce l'Intel Stratix 10 SoC Unified Extensible Firmware Interface (UEFI) boot loader, u vostru sistema deve risponde à i seguenti requisiti.

Requisiti minimi di hardware

  • A stazione di travagliu Linux cù a seguente cunfigurazione:
    • Terminal seriale, cum'è Minicom per Linux
    • Slot per schede microSD o scrittore di carte microSD o scrittore capace di SD cun convertitore SD à microSD

Capacità di a piattaforma

  Linux
Capacità di cumpilà u caricatore di boot UEFI
Capacità di cumpilà u Monitor Secure

Requisiti minimi di u software

  • Intel® SoC FPGA Embedded Development Suite (SoC EDS) v18.1 è superiore
  • Linaro aarch64-linux-gnu-gcc toolchain

Cuminciatu

Installazione di cumpunenti di u software

Installazione di Intel SoC EDS

  • Duvete installà l'Intel SoC EDS in a vostra macchina.
  • Scaricate l'Intel SoC EDS da u Centru di Download per FPGA.

Installazione di u Compiler Toolchain

Cumpilate u caricatore di boot UEFI è u Monitor Secure cù a GNU Toolchain (EABI Release) per i Processori Arm *. Pudete scaricà a GNU Toolchain da a pagina di scaricamentu di Arm.

  • Linux: gcc-arm-8.3-2019.03-x86_64-aarch64-Linux-gnu.tar.xz
Custruì u Monitor Secure

Cume a sicurità diventa sempre più impurtante, una soluzione di boot assicurata diventa un requisitu in u mondu incrustatu. Per assicurà a sicurità cumpleta è una piattaforma di fiducia, hè necessaria una partizione sicura. U dispusitivu Intel Stratix 10 ottene una partizione sicura implementendu u mudellu TrustZone cù Arm Trusted Firmware (ATF). U mudellu TrustZone divide l'ambiente di l'informatica in dui mondi isolati, u mondu sicuru è u mondu normale, chì sò ligati da un monitor di software chjamatu Secure Monitor. I dui mondi anu separatu u spaziu di indirizzu logicu è i periferichi. A cumunicazione trà i dui mondi hè pussibile solu chjamendu l'istruzzioni privilegiata Secure Monitor call (SMC).

A suluzione cumpleta di boot sicura hè

  • BootRom
  • Secure Device Manager
  • Monitor Sicuru
  • Uboot/UEFI
  • Hypervisor
  • OS

U modu Secure Monitor hè un modu privilegiatu è hè sempre sicuru indipendentemente da u statu di u bit NS. U Secure Monitor hè un codice chì corre in modalità Secure Monitor è processa i cambiamenti da è da u mondu Secure. A sicurità generale di u software si basa nantu à a sicurità di stu codice cù u codice di boot Secure.

Information Related

Informazioni generali su Arm Trusted Firmware

Cunfigurazione di l'Usuariu

Pudete truvà tutte e cunfigurazioni di a piattaforma in arm-trusted-firmware/plat/intel/soc/stratix10/include/socfpga_plat_def.h. Per a cunfigurazione di l'utilizatori, duvete mudificà e fonti di boot basatu nantu à e vostre preferenze. Selezziunate BOOT_SOURCE_SDMMC se boot da SDMMC o selezziunate BOOT_SOURCE_QSPI se boot da QSPI.

  • #define BOOT_SOURCE BOOT_SOURCE_SDMMC

Nota: Per cambià u boot filenome o offset, pudete cambià u #define in questu file.

Ottene u codice fonte di u firmware di Arm Trusted

A fonte ATF hè in GitHub. Per uttene u codice fonte ATF, basta à eseguisce i seguenti passi

  1. Aprite un terminal.
  2. Crea un novu repertoriu per verificà u codice fonte ATF da GitHub.
  3. Cambia in questu repertoriu di travagliu è clone a fonte ATF da l'arburi Git cum'è seguente:
  4. Quandu hè finitu, cambiate à u cartulare di u firmware di u bracciu è eseguite una verificazione Git cum'è seguente:
    • cd arm-trusted-firmware
    • git checkout socfpga_v2.1

Information Related

  • Custruì l'ATF.
  • Cumpilà u Codice Source UEFI cù a Catena di Strumenti Linaro.
  • Eseguisce u Monitor Secure.

Custruì l'ATF

Questa sezione descrive cumu custruisce l'ATF cù u compilatore Linaro GCC. Per cumincià à custruisce l'ATF cù u compilatore Linaro GCC, basta à eseguisce i seguenti passi

  1. Cambia u vostru cartulare à u locu di u codice fonte ATF cum'è seguitu:
    • cd arm-trusted-firmware
  2. Impostate u percorsu GCC è a variabile d'ambiente CROSS_COMPILE à Linaro cross compile cum'è seguente: 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. Eliminate l'arbulu di custruzzione cumpletamente cum'è seguitu:
    • rende veramente pulita
  4. Custruite l'ATF usendu u cumandimu seguente:
    • fate PLAT=stratix10 bl2 bl31
  5. I missaghji seguenti appariscenu quandu a custruzione ATF hè successuintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-5
  6. A tavula sottu elenca l'output Secure Monitor files.

Descrizzione di Secure Monitor Files

File Percorsu è nome Descrizzione
\build\stratix10\release\bl31.bin Binariu generatu file
\build\stratix10\release\bl31\bl31.elf Elfo generatu file
\build\stratix10\release\bl2.bin Binariu generatu file
\build\stratix10\release\bl2\bl2.elf Elfo generatu file

Custruì u Loader di Boot UEFI

Per custruisce un boot loader UEFI, uttene u codice fonte UEFI è compilate a fonte UEFI cù a catena di strumenti supportata.

U Unified Extensible Firmware Interface (UEFI) hè una specificazione di firmware standardizata chì simplifica è assicura l'inizializazione di a piattaforma è l'operazione di bootstrap di firmware. UEFI hè attualmente sviluppatu è supportatu da rapprisentanti di più di 250 cumpagnie tecnologiche di punta. Arm è u Linaro Enterprise Group prumove ancu l'usu di UEFI nantu à l'architettura Arm perchè l'specificazione UEFI aiuta à standardizà u prucessu di boot per e plataforme basate in u processore Arm. A tecnulugia UEFI hè a prova di u futuru attraversu a standardizazione di u disignu di u firmware piuttostu chè u disignu di u firmware proprietariu. E specificazioni UEFI prumove l'efficienza cummerciale è tecnologica, migliurà u rendiment è a sicurità, facilitanu l'interoperabilità trà i dispositi, e piattaforme è i sistemi è rispettanu e tecnulugia di a prossima generazione. A specificazione UEFI hè peer-reviewed è publicatu, chì permette à i sviluppatori di scrive firmware una volta per piattaforma è riutilizà senza assai mudificazione. Questa reutilizazione si traduce in un risparmiu di costu è tempu durante u sviluppu di u boot loader. Stu quadru utilizeghja a licenza BSD, chì vi permette di cumercià facultativamente a vostra implementazione cù prublemi legali minimi. Pudete cumpilà u codice fonte UEFI sia in un Windows o in un sistema Linux.

Prerequisites

A creazione di l'UEFI richiede pacchetti Linux supplementari. Sicondu a vostra distribuzione Linux, u cumandamentu per installà i pacchetti hè diversu:

Sè vo aduprate una distribuzione Ubuntu, scrive

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

Se utilizate una distribuzione Fedora, scrive

  • sudo yum install uuid-devel libuuid-devel

Per custruisce UEFI, u pacchettu Python hè necessariu. Se Python ùn hè micca digià dispunibule nantu à u vostru sistema, eseguisce i cumandamenti da u SoC EDS Embedded Command Shell furnisce a dependenza necessaria di Python.

Uttenimentu di u Codice Source UEFI

U codice fonte UEFI si trova in GitHub. I seguenti passi vi mostranu cumu pè ottene u codice fonte UEFI.

  1. Aprite un terminal.
  2. Clona a fonte UEFI da l'arburi Git.
  3. Quandu hè finitu, cambiate à u cartulare edk2 è eseguite un checkout Git.
    • cd edk2
    • git checkout socfpga_udk201905

U codice fonte di e plataforme edk2 si trova in GitHub. Per uttene u codice fonte di e plataforme edk2

Cumpilà u Codice Source UEFI cù a Catena di Strumenti Linaro

Questa sezione spiega cumu cumpilà u codice fonte UEFI cù a catena di strumenti Linaro in un sistema Linux

  1. Apri un terminal è inserite u cumandimu seguitu:
    • 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
    • export GCC48_AARCH64_PREFIX=aarch64-linux-gnu-
  2. Configurate l'EDK_TOOLS_PATH:
    • Esporta EDK_TOOLS_PATH=$PWD/edk2/BaseTools
  3. Configurate un PACKAGES_PATH per indicà u locu di i repositori:
    • export PACKAGES_PATH= $PWD/edk2:$PWD/edk2-platforms/
  4. Configurate u WORKSPACE:
    • export WORKSPACE = $PWD
  5. Configurate l'ambiente di creazione:
    • edk2/edksetup.sh
  6. Custruite BaseTools (assicuratevi chì l'arnesi Python sò installati):
    • fate -C edk2/BaseTools
  7. Cumpilà u bootloader UEFI inserendu u cumandimu seguente:
    • build -a AARCH64 -p Platform/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. U vostru terminal mostra un missaghju "Custruisce Done" dopu chì l'UEFI hè cumpilatu bè.
UEFI generatu Files

Cumpilà u codice fonte UEFI crea i seguenti files in u cartulare /Build/ Stratix10SoCPkg/RELEASE_GCC48:

UEFI generatu Files

File Descrizzione
INTELSTRATIX10_EFI.fd Questu file hè u bootloader UEFI per boot UEFI shell è attivà a funzione ethernet o eseguite una applicazione UEFI
Generazione di u FIP

FIP hè a carica utile chì BL2 di ATF carica in RAM è eseguita. U FIP cuntene u binariu per u bootloader BL31 è UEFI, è un containeru chì BL2 ricunnosce.

Per custruisce u FIP, seguitate questi cumandamenti

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

Custruite u FIP usendu u cumandimu seguitu

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

Esecuzione di UEFI nantu à l'hardware Intel Stratix 10

Esecuzione nantu à una scheda fisica cù ATF è UEFI Bootloader

Questa sezione descrive cumu eseguisce u Monitor Secure nantu à una scheda fisica.

Generate un .sof file cù ATF

  1. Pigliate un .sof file da u cartulare di stallazione $SOCEDS_DEST_ROOT.
  2. Cunvertisce u binariu file bl2.bin, generatu in Building the ATF.
    • aarch64-linux-gnu-objcopy -I binariu -O ihex – \-change-addresses 0xffe00000 bl2.bin bl2.hex
  3. Includite u bootloader in u .sof file cum'è seguita:
    • 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

Information Related

  • Custruì l'ATF.

Creazione di una stampa di carta SD

  1. Generate UEFI Bootloader è FIP cum'è in Creazione di UEFI Boot Loader è Generazione di FIP.
  2. Custruite Linux è root file sistema basatu annantu à l'istruzzioni in Rocketboard.
  3. Custruite l'imaghjini di a carta SD:
  • Ottene u script python make_image è rende eseguibile
  • Preparate u cuntenutu di a partizione di grassu:
    • mkdir fat && cd fat
    • cp /linux-socfpga/arch/arm64/boot/Image
    • cp /linux-socfpga/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dtb
  • Preparate a radica file cuntenutu di partizioni di u sistema:
    • mkdir rootfs && cd rootfs
    • tar xf /gsrd-console-image-*.tar.xz
  • Crea l'imaghjini di a carta SD:
    • 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
    • Image,socfpga_stratix10_socdk.dtb,num=1,format=fat32,size=500M -s 2G -n sdimage.img
    • Nota: Se avete digià una maghjina SD cù partizione A2, pudete rimpiazzà u FIP file cù u cumandimu sottu:
    • sudo dd if = arm-trusted-firmware/build/stratix10/release/fip.bin of=/dev/sdx3
Information Related
  • Cumpilà u Codice Source UEFI cù a Catena di Strumenti Linaro.
  • Custruì u Loader di Boot UEFI.

Eseguisce u Monitor Secure

  1. Power up the board dopu chì a carta SD hè inserita.
  2. Open programmatore Quartus è prugramma u bordu cù u .sof file generatu in Generating a .sof File cù ATF.

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

  • A scheda si avvia da l'ATF è carica automaticamente u bootloader UEFI per boot UEFI shell.

Information Related

  • Generate un .sof file cù ATF.
Debugging cù DS

Questa sezione descrive cumu carricà ATF è UEFI bootloader à u pianu fisicu attraversu DS.

  1. Assicuratevi chì avete installatu DS. Lanciate eclipse cù u cumandimu seguente:
    • armds_ide &
  2. Configurate una nova cunnessione di debug
    • Step Illustrationintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-8
  3. Dopu chì a cunfigurazione hè cumpleta, cunnette à u destinazione.
    • Nota: Avete da prugrammà u bordu cù ghrd_1sx280lu2f50e2vg_hps_debug.sof prima di cunnette à u destinazione.
  4. In a cunsola di cumandamentu DS, pudete carricà un script di debug cù i seguenti cuntenuti per scaricà l'ATF è UEFI bootloader à a scheda fisica.

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

Booting Linux

Questa sezione vi mostra cumu avvià Linux dopu chì UEFI entra in a cunchiglia UEFI.

Booting da u UEFI Shell

  1. Avviate u tavulinu finu à a cunchiglia UEFI, cum'è deskrittu in Running the Secure Monitor.
  2. Una volta chì a cunchiglia UEFI hè caricata, inserite u cumandimu seguitu per boot Linux:
    • Image dtb=socfpga_stratix10_socdk.dtb console=ttyS0,115200 root=/dev/mmcb

Nota: Assicuratevi chì l'imaghjini Linux è dtb sò guardati in a carta SD.

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

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4Storia di revisione di documenti per Intel Stratix 10 SoC UEFI Boot Loader Guida d'utilizatore

Versione di documentu Cambiamenti
2020.06.19 Aghjurnatu e seguenti sezioni:
  • Requisiti minimi di hardware
  • Requisiti minimi di u software
  • Installazione di u Compiler Toolchain
  • Cunfigurazione di l'Usuariu
  • Ottene u codice fonte di u firmware di Arm Trusted
  • Custruì l'ATF
  • Uttenimentu di u Codice Source UEFI
  • Ottene u codice sorgente di a piattaforma edk2
  • Cumpilà u Codice Source UEFI cù a Catena di Strumenti Linaro
  • UEFI generatu Files
  • Generate un .sof file cù ATF
  • Creazione di una stampa di carta SD
  • Debugging cù DS
  • Booting da u UEFI Shell
2019.03.28
  • Aggiunta una nova sezione: Custruì u Monitor Secure per discrìviri novu boot stage e boot sicuru.
  • Sezione aghjurnata: UEFI generatu Files.
  • Aggiunta una nova sezione: Esecuzione di UEFI nantu à l'hardware Intel Stratix 10.
2017.06.19 Liberazione iniziale.

Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritta quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di cunfidendu qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.

ID: 683134
Versione: 2020.06.19

Documenti / Risorse

Intel UG-20080 Stratix 10 SoC UEFI Boot Loader [pdfGuida di l'utente
UG-20080 Stratix 10 SoC UEFI Boot Loader, UG-20080, Stratix 10 SoC UEFI Boot Loader, 10 SoC UEFI Boot Loader, UEFI Boot Loader

Referenze

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. I campi obbligatori sò marcati *