Intel UG-20080 Stratix 10 SoC UEFI 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
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 | Iè |
Capacità di cumpilà u Monitor Secure | Iè |
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
- Aprite un terminal.
- Crea un novu repertoriu per verificà u codice fonte ATF da GitHub.
- Cambia in questu repertoriu di travagliu è clone a fonte ATF da l'arburi Git cum'è seguente:
- 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
- Cambia u vostru cartulare à u locu di u codice fonte ATF cum'è seguitu:
- cd arm-trusted-firmware
- 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-
- Eliminate l'arbulu di custruzzione cumpletamente cum'è seguitu:
- rende veramente pulita
- Custruite l'ATF usendu u cumandimu seguente:
- fate PLAT=stratix10 bl2 bl31
- I missaghji seguenti appariscenu quandu a custruzione ATF hè successu
- 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.
- Aprite un terminal.
- Clona a fonte UEFI da l'arburi Git.
- 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
- git clone https://github.com/altera-opensource/edk2-platforms-socfpgaedk2-platforms
- cd edk2-platformi
- git checkout socfpga_udk201905
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
- 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-
- Configurate l'EDK_TOOLS_PATH:
- Esporta EDK_TOOLS_PATH=$PWD/edk2/BaseTools
- Configurate un PACKAGES_PATH per indicà u locu di i repositori:
- export PACKAGES_PATH= $PWD/edk2:$PWD/edk2-platforms/
- Configurate u WORKSPACE:
- export WORKSPACE = $PWD
- Configurate l'ambiente di creazione:
- edk2/edksetup.sh
- Custruite BaseTools (assicuratevi chì l'arnesi Python sò installati):
- fate -C edk2/BaseTools
- 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
- 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
- Pigliate un .sof file da u cartulare di stallazione $SOCEDS_DEST_ROOT.
- 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
- Includite u bootloader in u .sof file cum'è seguita:
- quartus_pfg -c -o hps_path=bl2.hex \ghrd_1sx280lu2f50e2vg.sof ghrd_1sx280lu2f50e2vg_hps.sof
Information Related
- Custruì l'ATF.
Creazione di una stampa di carta SD
- Generate UEFI Bootloader è FIP cum'è in Creazione di UEFI Boot Loader è Generazione di FIP.
- Custruite Linux è root file sistema basatu annantu à l'istruzzioni in Rocketboard.
- Custruite l'imaghjini di a carta SD:
- Ottene u script python make_image è rende eseguibile
- wget https://releases.rocketboards.org/release/2019.10/gsrd/tools/make_sdimage.py
- chmod +x make_sdimage.py
- 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
- Cumpilà u Codice Source UEFI cù a Catena di Strumenti Linaro.
- Custruì u Loader di Boot UEFI.
Eseguisce u Monitor Secure
- Power up the board dopu chì a carta SD hè inserita.
- Open programmatore Quartus è prugramma u bordu cù u .sof file generatu in Generating a .sof File cù ATF.
- 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.
- Assicuratevi chì avete installatu DS. Lanciate eclipse cù u cumandimu seguente:
- armds_ide &
- Configurate una nova cunnessione di debug
- Step Illustration
- Step Illustration
- 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.
- 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.
Booting Linux
Questa sezione vi mostra cumu avvià Linux dopu chì UEFI entra in a cunchiglia UEFI.
Booting da u UEFI Shell
- Avviate u tavulinu finu à a cunchiglia UEFI, cum'è deskrittu in Running the Secure Monitor.
- 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.
Storia 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:
|
2019.03.28 |
|
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 |