logo intel

Caricatore di avvio UEFI SoC Intel UG-20080 Stratix 10

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

Sopraview

Questo documento fornisce informazioni complete sul caricatore di avvio UEFI (Unified Extensible Firmware Interface) per SoC Intel Stratix 10. Il SoC Intel Stratix 10 fornisce un flusso di avvio sicuro, composto da

  • La ROM di avvio
  • Il gestore dispositivi sicuri (SDM)
  • Il monitor sicuro
  • Il caricatore di avvio UEFI

Il flusso di avvio sicuro del SoC Intel Stratix 10 garantisce che il boot loader del sistema sia firmato con una chiave crittografica, convalidata dal firmware. Il monitor sicuro stage implementa anche il modello TrustZone* di partizionamento sicuro. Questo modello divide l'ambiente software in due partizioni isolate, chiamate mondo sicuro e mondo non sicuro. I due mondi possono comunicare tra loro solo attraverso il Secure Monitor. L'immagine binaria del boot loader UEFI può essere archiviata sulla scheda SD/MMC flash Quad SPI. All'accensione della scheda, il Secure Device Manager (SDM) carica il Secure Monitor direttamente sulla RAM su chip dell'Hard Processor System (HPS). Quindi Secure Monitor carica il boot loader UEFI nella memoria HPS DDR.

Le attività di Secure Monitor includono

  • Inizializzazione della memoria DDR SDRAM
  • Configurazione di hardware di basso livello, come PLL, IO e MUX pin, necessari per il software mondiale non sicuro

Le attività del caricatore di avvio UEFI includono

  • Fornire supporto Ethernet
  • Supporto delle funzionalità diagnostiche hardware di base
  • Recupero del software di avvio successivo come il pacchetto del sistema operativo o l'immagine del kernel.

Nota: Per l'avvio non sicuro, il pacchetto del sistema operativo può includere l'immagine del kernel, il BLOB dell'albero del dispositivo e filesistema. Per l'avvio sicuro può essere un kernel sicuro.

Flusso di avvio UEFI terminatoview

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

Requisiti di sistema

Per caricare ed eseguire il caricatore di avvio UEFI (Unified Extensible Firmware Interface) SoC Intel Stratix 10, il sistema deve soddisfare i seguenti requisiti.

Requisiti hardware minimi

  • Workstation Linux con la seguente configurazione:
    • Terminale seriale, come Minicom per Linux
    • Slot per schede microSD o scrittore di schede microSD o scrittore compatibile con SD con convertitore da SD a microSD

Capacità della piattaforma

  Linux
In grado di compilare il boot loader UEFI
In grado di compilare il Secure Monitor

Requisiti software minimi

  • Intel® SoC FPGA Embedded Development Suite (SoC EDS) v18.1 e versioni successive
  • Catena degli strumenti Linaro aarch64-linux-gnu-gcc

Iniziare

Installazione dei componenti software

Installazione del SoC Intel EDS

  • È necessario installare Intel SoC EDS sul computer.
  • Scarica Intel SoC EDS dal Download Center per FPGA.

Installazione della toolchain del compilatore

Compila il boot loader UEFI e Secure Monitor con GNU Toolchain (versione EABI) per processori Arm*. Puoi scaricare la GNU Toolchain dalla pagina di download di Arm.

  • Linux: gcc-arm-8.3-2019.03-x86_64-aarch64-Linux-gnu.tar.xz
Costruire il monitor sicuro

Poiché la sicurezza diventa sempre più importante, una soluzione di avvio protetto diventa un requisito nel mondo embedded. Per garantire una sicurezza completa e una piattaforma affidabile, è necessario un partizionamento sicuro. Il dispositivo Intel Stratix 10 ottiene un partizionamento sicuro implementando il modello TrustZone con Arm Trusted Firmware (ATF). Il modello TrustZone divide l’ambiente informatico in due mondi isolati, il mondo sicuro e il mondo normale, collegati da un monitor software chiamato Secure Monitor. I due mondi hanno separato lo spazio degli indirizzi logici e le periferiche. La comunicazione tra i due mondi è possibile solo richiamando l'istruzione privilegiata Secure Monitor call (SMC).

La soluzione di avvio sicuro completa è

  • BootRom
  • Gestore dispositivi sicuri
  • Monitor sicuro
  • Uboot/UEFI
  • Ipervisore
  • OS

La modalità Secure Monitor è una modalità privilegiata ed è sempre sicura indipendentemente dallo stato del bit NS. Secure Monitor è un codice che viene eseguito in modalità Secure Monitor ed elabora i passaggi da e verso il mondo Secure. La sicurezza complessiva del software si basa sulla sicurezza di questo codice insieme al codice di avvio protetto.

Informazioni correlate

Informazioni generali sul firmware Arm Trusted

Configurazione utente

È possibile trovare tutte le configurazioni della piattaforma in arm-trusted-firmware/plat/intel/soc/stratix10/include/socfpga_plat_def.h. Per la configurazione utente, è necessario modificare le origini di avvio in base alle proprie preferenze. Selezionare BOOT_SOURCE_SDMMC se si esegue l'avvio da SDMMC o selezionare BOOT_SOURCE_QSPI se si esegue l'avvio da QSPI.

  • #define BOOT_SOURCE BOOT_SOURCE_SDMMC

Nota: Per cambiare lo stivale filenome o offset, puoi modificare #define in this file.

Ottenere il codice sorgente del firmware Arm Trusted

La fonte ATF è su GitHub. Per ottenere il codice sorgente ATF, esegui semplicemente i seguenti passaggi

  1. Aprire un terminale.
  2. Crea una nuova directory per estrarre il codice sorgente ATF da GitHub.
  3. Passa a questa directory di lavoro e clona l'origine ATF dagli alberi Git come segue:
  4. Al termine, passare alla cartella arm-trusted-firmware ed eseguire un check-out Git come segue:
    • cd arm-firmware affidabile
    • git checkout socfpga_v2.1

Informazioni correlate

  • Costruire l'ATF.
  • Compilazione del codice sorgente UEFI con Linaro Tool Chain.
  • Esecuzione del monitoraggio sicuro.

Costruire l'ATF

Questa sezione descrive come costruire l'ATF con il compilatore Linaro GCC. Per iniziare a costruire l'ATF con il compilatore Linaro GCC, esegui semplicemente i seguenti passaggi

  1. Modifica la directory nel percorso del codice sorgente ATF come segue:
    • cd arm-firmware affidabile
  2. Imposta il percorso GCC e la variabile d'ambiente CROSS_COMPILE sulla compilazione incrociata di Linaro come segue: export PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • esporta ARCH=arm64
    • esporta CROSS_COMPILE=aarch64-linux-gnu-
  3. Rimuovere completamente l'albero di compilazione come segue:
    • rendere realclean
  4. Costruisci l'ATF utilizzando il seguente comando:
    • rendere PLAT=stratix10 bl2 bl31
  5. I seguenti messaggi vengono visualizzati quando la compilazione ATF ha esito positivointel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-5
  6. La tabella seguente elenca l'output di Secure Monitor files.

Descrizioni di Secure Monitor Files

File Percorso e nome Descrizione
\build\stratix10\release\bl31.bin Binario generato file
\build\stratix10\release\bl31\bl31.elf Elfo generato file
\build\stratix10\release\bl2.bin Binario generato file
\build\stratix10\release\bl2\bl2.elf Elfo generato file

Creazione del caricatore di avvio UEFI

Per creare un boot loader UEFI, ottieni il codice sorgente UEFI e compila il sorgente UEFI con la toolchain supportata.

L'UEFI (Unified Extensible Firmware Interface) è una specifica firmware standardizzata che semplifica e protegge l'inizializzazione della piattaforma e le operazioni di bootstrap del firmware. UEFI è attualmente sviluppato e supportato da rappresentanti di oltre 250 aziende tecnologiche leader del settore. Arm e Linaro Enterprise Group stanno inoltre promuovendo l'uso di UEFI sull'architettura Arm perché le specifiche UEFI aiutano a standardizzare il processo di avvio per le piattaforme basate su processori Arm. La tecnologia UEFI è a prova di futuro grazie alla standardizzazione della progettazione del firmware anziché alla progettazione del firmware proprietario. Le specifiche UEFI promuovono l’efficienza aziendale e tecnologica, migliorano le prestazioni e la sicurezza, facilitano l’interoperabilità tra dispositivi, piattaforme e sistemi e sono conformi alle tecnologie di prossima generazione. La specifica UEFI è peer-reviewedificato e pubblicato, consentendo agli sviluppatori di scrivere il firmware una volta per piattaforma e riutilizzarlo senza troppe modifiche. Questo riutilizzo si traduce in risparmi di tempo e costi durante lo sviluppo del boot loader. Questo framework utilizza la licenza BSD, consentendoti di commercializzare facoltativamente la tua implementazione con problemi legali minimi. Puoi compilare il codice sorgente UEFI in un sistema Windows o Linux.

Prerequisiti

La creazione di UEFI richiede pacchetti Linux aggiuntivi. A seconda della distribuzione Linux, il comando per installare i pacchetti è diverso:

Se stai usando una distribuzione Ubuntu, digita

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

Se usi una distribuzione Fedora, digita

  • sudo yum installa uuid-devel libuuid-devel

Per creare UEFI è necessario il pacchetto Python. Se Python non è già disponibile sul tuo sistema, l'esecuzione dei comandi dalla shell di comando incorporata SoC EDS fornisce la dipendenza Python richiesta.

Ottenere il codice sorgente UEFI

Il codice sorgente UEFI si trova in GitHub. I passaggi seguenti mostrano come ottenere il codice sorgente UEFI.

  1. Aprire un terminale.
  2. Clona la sorgente UEFI dagli alberi Git.
  3. Al termine, passare alla cartella edk2 ed eseguire un checkout Git.
    • cd edk2
    • git checkout socfpga_udk201905

Il codice sorgente delle piattaforme edk2 si trova in GitHub. Per ottenere il codice sorgente delle piattaforme edk2

Compilazione del codice sorgente UEFI con Linaro Tool Chain

Questa sezione spiega come compilare il codice sorgente UEFI con la toolchain Linaro in un sistema Linux

  1. Apri un terminale e inserisci il seguente comando:
    • CD
    • esporta PERCORSO= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • esporta CROSS_COMPILE= aarch64-linux-gnu-
    • esporta ARCH=arm64
    • esporta GCC48_AARCH64_PREFIX=aarch64-linux-gnu-
  2. Imposta EDK_TOOLS_PATH:
    • esporta EDK_TOOLS_PATH=$PWD/edk2/BaseTools
  3. Imposta PACKAGES_PATH in modo che punti alla posizione dei repository:
    • esporta PACCHETTI_PATH= $PWD/edk2:$PWD/edk2-piattaforme/
  4. Configura l'AREA DI LAVORO:
    • esporta AREA DI LAVORO = $PWD
  5. Configura l'ambiente di compilazione:
    • edk2/edksetup.sh
  6. Costruisci BaseTools (assicurati che gli strumenti Python siano installati):
    • make -C edk2/BaseTools
  7. Compila il bootloader UEFI inserendo il seguente comando:
    • 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. Il terminale visualizza un messaggio "Build Done" dopo che l'UEFI è stato compilato con successo.
UEFI generato Files

La compilazione del codice sorgente UEFI crea quanto segue files nella cartella /Build/ Stratix10SoCPkg/RELEASE_GCC48:

UEFI generato Files

File Descrizione
INTELSTRATIX10_EFI.fd Questo file è il bootloader UEFI per avviare la shell UEFI e abilitare la funzionalità Ethernet o eseguire un'applicazione UEFI
Generazione della FIP

FIP è il carico utile che BL2 di ATF carica nella RAM ed esegue. Il FIP contiene il binario per BL31 e bootloader UEFI e un contenitore riconosciuto da BL2.

Per costruire la FIP, segui questi comandi

  • esportazione ARCH = ARM64
  • esporta CROSS_COMPILE= aarch64-linux-gnu-
  • CD

Costruisci la FIP utilizzando il comando seguente

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

Esecuzione UEFI su hardware Intel Stratix 10

In esecuzione su una scheda fisica con Bootloader ATF e UEFI

Questa sezione descrive come eseguire Secure Monitor su una scheda fisica.

Genera un file .sof file con ATF

  1. Ottieni un file .sof file dalla directory di installazione $SOCEDS_DEST_ROOT.
  2. Converti il ​​binario file bl2.bin, generato nella creazione dell'ATF.
    • aarch64-linux-gnu-objcopy -I binario -O ihex – \-cambia-indirizzi 0xffe00000 bl2.bin bl2.hex
  3. Includere il bootloader nel file .sof file come segue:
    • 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

Informazioni correlate

  • Costruire l'ATF.

Creazione di un'immagine della scheda SD

  1. Genera bootloader UEFI e FIP come in Creazione del bootloader UEFI e generazione del FIP.
  2. Costruisci Linux e root file sistema basato sulle istruzioni in Rocketboard.
  3. Costruisci l'immagine della scheda SD:
  • Ottieni lo script make_image python e rendilo eseguibile
  • Preparare il contenuto della partizione di grasso:
    • mkdir grasso && cd grasso
    • cp /linux-socfpga/arch/arm64/boot/Image
    • cp /linux-socfpga/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dtb
  • Prepara la radice file contenuto della partizione di sistema:
    • mkdir rootfs && cd rootfs
    • catrame xf /gsrd-console-image-*.tar.xz
  • Crea l'immagine della scheda SD:
    • sudo ./make_sdimage.py -f -P fip.bin,num=3,format=raw,dimensione=10M, type=A2 -P rootfs/\ *,num=2,format=ext3,dimensione=1500M -P
    • Immagine,socfpga_stratix10_socdk.dtb,num=1,formato=fat32,dimensione=500M -s 2G -n sdimage.img
    • Nota: Se hai già un'immagine SD con partizione A2, puoi sostituire la FIP file con il comando seguente:
    • sudo dd if =arm-trusted-firmware/build/stratix10/release/fip.bin of=/dev/sdx3
Informazioni correlate
  • Compilazione del codice sorgente UEFI con Linaro Tool Chain.
  • Creazione del caricatore di avvio UEFI.

Esecuzione del monitoraggio sicuro

  1. Alimentare la scheda dopo aver inserito la scheda SD.
  2. Apri il programmatore Quartus e programma la scheda con il file .sof file generato in Generazione di un file .sof File con ATF.

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

  • La scheda si avvia dall'ATF e carica automaticamente il bootloader UEFI per avviare la shell UEFI.

Informazioni correlate

  • Genera un file .sof file con ATF.
Debug con DS

Questa sezione descrive come caricare il bootloader ATF e UEFI sulla scheda fisica tramite DS.

  1. Assicurati di aver installato DS. Avvia Eclipse utilizzando il seguente comando:
    • braccia_ide &
  2. Configura una nuova connessione di debug
    • Illustrazione del passointel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-8
  3. Una volta completata la configurazione, connettersi alla destinazione.
    • Nota: È necessario programmare la scheda con ghrd_1sx280lu2f50e2vg_hps_debug.sof prima di connettersi al target.
  4. Nella console dei comandi DS, puoi caricare uno script di debug con i seguenti contenuti per scaricare il bootloader ATF e UEFI sulla scheda fisica.

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

Avvio di Linux

Questa sezione mostra come avviare Linux dopo che UEFI è entrato nella shell UEFI.

Avvio dalla shell UEFI

  1. Avviare la scheda sulla shell UEFI, come descritto in Esecuzione di Secure Monitor.
  2. Una volta caricata la shell UEFI, inserisci il seguente comando per avviare Linux:
    • Immagine dtb=socfpga_stratix10_socdk.dtb console=ttyS0,115200 root=/dev/mmcb

Nota: Assicurati che l'immagine Linux e il dtb siano archiviati nella scheda SD.

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

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4Cronologia delle revisioni del documento per la Guida per l'utente del caricatore di avvio UEFI SoC Intel Stratix 10

Versione del documento Cambiamenti
2020.06.19 Aggiornate le seguenti sezioni:
  • Requisiti hardware minimi
  • Requisiti software minimi
  • Installazione della toolchain del compilatore
  • Configurazione utente
  • Ottenere il codice sorgente del firmware Arm Trusted
  • Costruire l'ATF
  • Ottenere il codice sorgente UEFI
  • Ottenere il codice sorgente della piattaforma edk2
  • Compilazione del codice sorgente UEFI con Linaro Tool Chain
  • UEFI generato Files
  • Genera un file .sof file con ATF
  • Creazione di un'immagine della scheda SD
  • Debug con DS
  • Avvio dalla shell UEFI
2019.03.28
  • Aggiunta una nuova sezione: Costruire il monitor sicuro per descrivere i nuovi stivalitagee avvio sicuro.
  • Sezione aggiornata: UEFI generato Files.
  • Aggiunta una nuova sezione: Esecuzione UEFI su hardware Intel Stratix 10.
2017.06.19 Versione iniziale.

Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue filiali. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori secondo le specifiche attuali in conformità con la garanzia standard Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini di prodotti o servizi. *Altri nomi e marchi potrebbero essere rivendicati come proprietà di altri.

ID: 683134
Versione: 2020.06.19

Documenti / Risorse

Caricatore di avvio UEFI SoC Intel UG-20080 Stratix 10 [pdf] Guida utente
Caricatore di avvio UEFI Stratix 20080 SoC UG-10, caricatore di avvio UEFI Stratix 20080 SoC, caricatore di avvio UEFI Stratix 10 SoC, caricatore di avvio UEFI

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *