intel-logo

intel UG-20080 Stratix 10 SoC UEFI Boot Loader

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

Tapos naview

Kini nga dokumento naghatag komprehensibo nga impormasyon sa Unified Extensible Firmware Interface (UEFI) boot loader para sa Intel Stratix 10 SoC. Ang Intel Stratix 10 SoC naghatag usa ka luwas nga dagan sa boot, nga gilangkuban sa

  • Ang boot ROM
  • Ang luwas nga device manager (SDM)
  • Ang Secure Monitor
  • Ang UEFI boot loader

Ang Intel Stratix 10 SoC secure boot flow nagsiguro nga ang system boot loader gipirmahan gamit ang cryptographic key, nga gi-validate sa firmware. Ang Secure Monitor stage nagpatuman usab sa TrustZone* nga modelo sa luwas nga partitioning. Kini nga modelo nagbahin sa software environment ngadto sa duha ka nahilit nga partisyon, nga gitawag og secure nga kalibutan ug ang dili-secure nga kalibutan. Ang duha ka kalibutan makakomunikar lamang sa usag usa pinaagi sa Secure Monitor. Ang binary nga imahe sa UEFI boot loader mahimong tipigan sa Quad SPI flash SD/MMC card. Sa board power-up, ang secure device manager (SDM) nagkarga sa Secure Monitor direkta ngadto sa Hard Processor System (HPS) on-chip RAM. Dayon ang Secure Monitor nagkarga sa UEFI boot loader sa HPS DDR memory.

Ang mga buluhaton sa Secure Monitor naglakip

  • Pagsugod sa memorya sa DDR SDRAM
  • Pag-configure sa ubos nga lebel nga hardware, sama sa PLL, IOs, ug pin MUXes, gikinahanglan sa dili luwas nga software sa kalibutan

Ang UEFI boot loader nga mga buluhaton naglakip

  • Paghatag suporta sa Ethernet
  • Pagsuporta sa batakang hardware diagnostic nga mga bahin
  • Pagkuha sa sunod nga boot software sama sa operating system package o kernel image.

Mubo nga sulat: Para sa dili luwas nga boot, ang operating system package mahimong maglakip sa kernel image, device tree blob ug filesistema. Alang sa luwas nga boot kini mahimo nga usa ka luwas nga kernel.

UEFI Boot Flow Overview

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

Mga Kinahanglanon sa Sistema

Aron ma-load ug ma-execute ang Intel Stratix 10 SoC Unified Extensible Firmware Interface (UEFI) boot loader, ang imong sistema kinahanglang makatuman sa mosunod nga mga kinahanglanon.

Minimum nga mga Kinahanglanon sa Hardware

  • Linux workstation nga adunay mosunod nga configuration:
    • Serial terminal, sama sa Minicom alang sa Linux
    • microSD card slot o microSD card writer o SD capable writer nga adunay SD to microSD converter

Mga Kapabilidad sa Platform

  Linux
Makahimo sa pag-compile sa UEFI boot loader Oo
Makahimo sa pag-compile sa Secure Monitor Oo

Minimum nga mga Kinahanglanon sa Software

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

Pagsugod

Pag-instalar sa mga sangkap sa software

Pag-instalar sa Intel SoC EDS

  • Kinahanglan nimo nga i-install ang Intel SoC EDS sa imong makina.
  • I-download ang Intel SoC EDS gikan sa Download Center para sa mga FPGA.

Pag-instalar sa Compiler Toolchain

Imong gi-compile ang UEFI boot loader ug ang Secure Monitor gamit ang GNU Toolchain (EABI Release) para sa Arm* Processors. Mahimo nimong i-download ang GNU Toolchain gikan sa panid sa pag-download sa Arm.

  • Linux: gcc-arm-8.3-2019.03-x86_64-aarch64-Linux-gnu.tar.xz
Pagtukod sa Secure Monitor

Samtang ang seguridad nahimong labi ug labi ka hinungdanon, ang usa ka luwas nga solusyon sa boot nahimo nga kinahanglanon sa naka-embed nga kalibutan. Aron masiguro ang komprehensibo nga seguridad ug usa ka kasaligan nga plataporma, gikinahanglan ang luwas nga partisyon. Ang Intel Stratix 10 device nakab-ot ang luwas nga partitioning pinaagi sa pagpatuman sa TrustZone nga modelo nga adunay Arm Trusted Firmware (ATF). Ang TrustZone nga modelo nagbahin sa computing environment ngadto sa duha ka hilit nga kalibutan, ang luwas nga kalibutan ug normal nga kalibutan, nga gisumpay sa usa ka software monitor nga gitawag og Secure Monitor. Ang duha ka kalibutan nagbulag sa lohikal nga address space ug mga peripheral. Ang komunikasyon tali sa duha ka kalibutan posible lamang pinaagi sa pagtawag sa pribilihiyo nga Secure Monitor call (SMC) nga instruksiyon.

Ang bug-os nga luwas nga solusyon sa boot mao ang

  • BootRom
  • Luwas nga Device Manager
  • Luwas nga Monitor
  • Uboot/UEFI
  • Hypervisor
  • OS

Ang Secure Monitor mode usa ka privileged mode ug kanunay nga luwas bisan unsa pa ang kahimtang sa NS bit. Ang Secure Monitor mao ang code nga nagdagan sa Secure Monitor mode ug ang mga proseso sa pagbalhin ngadto ug gikan sa Secure nga kalibutan. Ang kinatibuk-ang seguridad sa software nagsalig sa seguridad niini nga code uban sa Secure boot code.

May Kalabutan nga Impormasyon

Kinatibuk-ang impormasyon bahin sa Arm Trusted Firmware

Konfigurasyon sa Gumagamit

Imong makit-an ang tanang mga configuration sa plataporma sa arm-trusted-firmware/plat/intel/soc/stratix10/include/socfpga_plat_def.h. Para sa configuration sa user, kinahanglan nimong usbon ang boot sources base sa imong gusto. Imong pilion ang BOOT_SOURCE_SDMMC kon boot gikan sa SDMMC o pilia ang BOOT_SOURCE_QSPI kon boot gikan sa QSPI.

  • #define BOOT_SOURCE BOOT_SOURCE_SDMMC

Mubo nga sulat: Aron mabag-o ang boot filengalan o offset, mahimo nimong usbon ang #define niini file.

Pagkuha sa Arm Trusted Firmware Source Code

Ang tinubdan sa ATF anaa sa GitHub. Aron makuha ang source code sa ATF, padagana lang ang mosunod nga mga lakang

  1. Ablihi ang usa ka terminal.
  2. Paghimo og bag-ong direktoryo aron masusi ang source code sa ATF gikan sa GitHub.
  3. Usba sa kini nga direktoryo sa pagtrabaho ug i-clone ang gigikanan sa ATF gikan sa mga punoan sa Git sama sa mosunod:
  4. Kung nahuman na, usba ang folder sa arm-trusted-firmware ug ipahigayon ang usa ka Git check out sama sa mosunod:
    • cd arm-trusted-firmware
    • git checkout socfpga_v2.1

May Kalabutan nga Impormasyon

  • Pagtukod sa ATF.
  • Pag-compile sa UEFI Source Code gamit ang Linaro Tool Chain.
  • Pagpadagan sa Secure Monitor.

Pagtukod sa ATF

Kini nga seksyon naghulagway kung giunsa paghimo ang ATF gamit ang Linaro GCC compiler. Aron masugdan ang pagtukod sa ATF gamit ang Linaro GCC compiler, padagana lang ang mosunod nga mga lakang

  1. Usba ang imong direktoryo ngadto sa lokasyon sa source code sa ATF sama sa mosunod:
    • cd arm-trusted-firmware
  2. Ibutang ang GCC path ug environment variable CROSS_COMPILE ngadto sa Linaro cross compile sama sa mosunod: 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. Kuhaa sa hingpit ang build tree sama sa mosunod:
    • paghimo og tinuod nga limpyo
  4. Pagtukod sa ATF pinaagi sa paggamit sa mosunod nga sugo:
    • himoa ang PLAT=stratix10 bl2 bl31
  5. Ang mosunod nga mga mensahe makita kung ang pagtukod sa ATF malampusonintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-5
  6. Ang lamesa sa ubos naglista sa Secure Monitor output files.

Deskripsyon sa Secure Monitor Files

File Dalan ug Ngalan Deskripsyon
\build\stratix10\release\bl31.bin Nahimo binary file
\build\stratix10\release\bl31\bl31.elf Namugna nga duwende file
\build\stratix10\release\bl2.bin Nahimo binary file
\build\stratix10\release\bl2\bl2.elf Namugna nga duwende file

Pagtukod sa UEFI Boot Loader

Aron makahimo og UEFI boot loader, makuha nimo ang UEFI source code ug i-compile ang UEFI source gamit ang gisuportahan nga toolchain.

Ang Unified Extensible Firmware Interface (UEFI) usa ka standardized firmware specification nga nagpasimple ug nagsiguro sa pagsugod sa platform ug firmware bootstrap nga mga operasyon. Ang UEFI karon gipalambo ug gisuportahan sa mga representante gikan sa labaw sa 250 nga mga kompanya sa teknolohiya nga nanguna sa industriya. Ang Arm ug ang Linaro Enterprise Group nagpasiugda usab sa paggamit sa UEFI sa Arm nga arkitektura tungod kay ang UEFI nga detalye makatabang sa pag-standardize sa proseso sa boot alang sa Arm processor-based nga mga platform. Ang teknolohiya sa UEFI gipamatud-an sa umaabot pinaagi sa pag-standardize sa disenyo sa firmware kaysa proprietary firmware nga disenyo. Ang mga espesipikasyon sa UEFI nagpasiugda sa negosyo ug teknolohikal nga kahusayan, pagpalambo sa pasundayag ug seguridad, pagpadali sa interoperability tali sa mga himan, plataporma ug mga sistema ug pagsunod sa sunod nga henerasyon nga mga teknolohiya. Ang espesipikasyon sa UEFI kay peer-reviewed ug gipatik, nga nagtugot sa mga developers sa pagsulat sa firmware kausa kada plataporma ug gamiton kini pag-usab nga walay daghang kausaban. Kini nga paggamit pag-usab nagresulta sa gasto ug oras nga pagtipig sa panahon sa pag-uswag sa boot loader. Kini nga balangkas naggamit sa lisensya sa BSD, nga nagtugot kanimo nga opsyonal nga i-komersyal ang imong pagpatuman nga adunay gamay nga legal nga mga isyu. Mahimo nimong i-compile ang source code sa UEFI sa Windows o sa Linux system.

Mga kinahanglanon

Ang pagtukod sa UEFI nanginahanglan dugang nga mga pakete sa Linux. Depende sa imong distribusyon sa Linux, lahi ang command sa pag-install sa mga package:

Kung naggamit ka usa ka pag-apod-apod sa Ubuntu, i-type

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

Kung naggamit ka usa ka pag-apod-apod sa Fedora, i-type

  • sudo yum i-install uuid-devel libuuid-devel

Alang sa pagtukod sa UEFI, gikinahanglan ang Python nga pakete. Kung wala pa ang Python sa imong sistema, ang pagpadagan sa mga sugo gikan sa SoC EDS Embedded Command Shell naghatag sa gikinahanglan nga pagsalig sa Python.

Pagkuha sa UEFI Source Code

Ang UEFI source code nahimutang sa GitHub. Ang mosunud nga mga lakang nagpakita kanimo kung giunsa pagkuha ang source code sa UEFI.

  1. Ablihi ang usa ka terminal.
  2. I-clone ang tinubdan sa UEFI gikan sa mga punoan sa Git.
  3. Kung nahuman na, usba ang folder sa edk2 ug paghimo usa ka Git checkout.
    • cd edk2
    • git checkout socfpga_udk201905

Ang edk2 platform source code nahimutang sa GitHub. Aron makuha ang edk2 platforms source code

Pag-compile sa UEFI Source Code gamit ang Linaro Tool Chain

Kini nga seksyon nagpatin-aw unsaon pag-compile ang UEFI source code gamit ang Linaro toolchain sa usa ka Linux system

  1. Pag-abli sa usa ka terminal ug isulud ang mosunud nga mando:
    • 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. I-set up ang EDK_TOOLS_PATH:
    • export EDK_TOOLS_PATH=$PWD/edk2/BaseTools
  3. Ibutang ang usa ka PACKAGES_PATH aron itudlo ang lokasyon sa mga repositoryo:
    • export PACKAGES_PATH= $PWD/edk2:$PWD/edk2-platforms/
  4. I-set up ang WORKSPACE:
    • export WORKSPACE = $PWD
  5. I-set up ang build environment:
    • edk2/edksetup.sh
  6. Paghimo BaseTools (siguroha nga ang mga himan sa python na-install):
    • paghimo -C edk2/BaseTools
  7. I-compile ang UEFI bootloader pinaagi sa pagsulod sa mosunod nga sugo:
    • 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. Ang imong terminal nagpakita sa usa ka mensahe nga "Pagtukod Tapos" pagkahuman nga malampuson nga naipon ang UEFI.
Nahimo ang UEFI Files

Ang pag-compile sa source code sa UEFI nagmugna sa mosunod files sa / Build / Stratix10SoCPkg / RELEASE_GCC48 folder:

Nahimo ang UEFI Files

File Deskripsyon
INTELSTRATIX10_EFI.fd Kini file mao ang UEFI bootloader aron ma-boot ang UEFI shell ug makapahimo sa ethernet feature o magpadagan og UEFI application
Pagmugna sa FIP

Ang FIP mao ang payload nga gikarga sa BL2 sa ATF sa RAM ug gipatuman. Ang FIP naglangkob sa binary para sa BL31 ug UEFI bootloader, ug usa ka sudlanan nga giila sa BL2.

Aron matukod ang FIP, sunda kini nga mga mando

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

Pagtukod sa FIP pinaagi sa paggamit sa mosunod nga sugo

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

Pagpadagan sa UEFI sa Intel Stratix 10 Hardware

Nagdagan sa usa ka Pisikal nga Lupon nga adunay ATF ug UEFI Bootloader

Kini nga seksyon naghulagway kung giunsa pagpadagan ang Secure Monitor sa usa ka pisikal nga board.

Paghimo og .sof file uban sa ATF

  1. Pagkuha og .sof file gikan sa $SOCEDS_DEST_ROOT nga direktoryo sa pag-instalar.
  2. I-convert ang binary file bl2.bin, namugna sa Pagtukod sa ATF.
    • aarch64-linux-gnu-objcopy -I binary -O ihex – \-change-addresses 0xffe00000 bl2.bin bl2.hex
  3. Iapil ang bootloader sa .sof file ingon sa mosunod:
    • 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

May Kalabutan nga Impormasyon

  • Pagtukod sa ATF.

Paghimo og SD Card Image

  1. Paghimo UEFI Bootloader ug FIP sama sa Pagtukod sa UEFI Boot Loader ug Pagmugna sa FIP.
  2. Paghimo Linux ug gamut file sistema base sa mga instruksyon sa Rocketboard.
  3. Paghimo sa imahe sa SD card:
  • Kuhaa ang make_image python script ug himoa kini nga ma-executable
  • Pag-andam sa mga sulud sa tambok nga partisyon:
    • mkdir tambok && cd tambok
    • cp /linux-socfpga/arch/arm64/boot/Image
    • cp /linux-socfpga/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dtb
  • Pag-andam sa gamut file sulod sa partition system:
    • mkdir rootfs && cd rootfs
    • tar xf /gsrd-console-image-*.tar.xz
  • Paghimo sa imahe sa SD card:
    • 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
    • Hulagway,socfpga_stratix10_socdk.dtb,num=1,format=fat32,gidak-on=500M -s 2G -n sdimage.img
    • Mubo nga sulat: Kung aduna ka'y ​​SD nga imahe nga adunay partisyon sa A2, mahimo nimong ilisan ang FIP file uban sa sugo sa ubos:
    • sudo dd kung = arm-trusted-firmware/build/stratix10/release/fip.bin of=/dev/sdx3
May Kalabutan nga Impormasyon
  • Pag-compile sa UEFI Source Code gamit ang Linaro Tool Chain.
  • Pagtukod sa UEFI Boot Loader.

Pagpadagan sa Secure Monitor

  1. I-power up ang board human masulod ang SD card.
  2. Ablihi ang Quartus programmer ug iprograma ang board gamit ang .sof file namugna sa Pagmugna og .sof File uban sa ATF.

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

  • Ang board nag-boot gikan sa ATF ug awtomatiko nga nag-load sa UEFI bootloader aron ma-boot ang UEFI shell.

May Kalabutan nga Impormasyon

  • Paghimo og .sof file uban sa ATF.
Pag-debug sa DS

Kini nga seksyon naghulagway kung giunsa pagkarga ang ATF ug UEFI bootloader sa pisikal nga board pinaagi sa DS.

  1. Siguroha nga imong na-install ang DS. Ilunsad ang eclipse gamit ang mosunod nga sugo:
    • armd_ide &
  2. I-set up ang bag-ong koneksyon sa debug
    • Lakang Ilustrasyonintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-8
  3. Human makompleto ang configuration, sumpay sa target.
    • Mubo nga sulat: Kinahanglan nimo nga iprograma ang board gamit ang ghrd_1sx280lu2f50e2vg_hps_debug.sof sa dili pa magkonektar sa target.
  4. Sa DS command console, mahimo nimong i-load ang usa ka debug script nga adunay mga mosunod nga sulud aron ma-download ang ATF ug UEFI bootloader sa pisikal nga board.

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

Pag-boot sa Linux

Kini nga seksyon nagpakita kanimo kung unsaon pag-boot ang Linux human ang UEFI mosulod sa UEFI shell.

Pag-boot gikan sa UEFI Shell

  1. I-boot ang board hangtod sa UEFI shell, ingon nga gihulagway sa Pagdagan sa Secure Monitor.
  2. Sa higayon nga ma-load ang UEFI shell, isulod ang mosunod nga command aron ma-boot ang Linux:
    • Hulagway dtb=socfpga_stratix10_socdk.dtb console=ttyS0,115200 gamut=/dev/mmcb

Mubo nga sulat: Siguroha nga ang imahe sa Linux ug dtb gitipigan sa SD card.

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

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4Kasaysayan sa Pagbag-o sa Dokumento para sa Intel Stratix 10 SoC UEFI Boot Loader User Guide

Bersyon sa Dokumento Mga kausaban
2020.06.19 Gi-update ang mosunod nga mga seksyon:
  • Minimum nga mga Kinahanglanon sa Hardware
  • Minimum nga mga Kinahanglanon sa Software
  • Pag-instalar sa Compiler Toolchain
  • Konfigurasyon sa Gumagamit
  • Pagkuha sa Arm Trusted Firmware Source Code
  • Pagtukod sa ATF
  • Pagkuha sa UEFI Source Code
  • Pagkuha sa edk2 Platform Source Code
  • Pag-compile sa UEFI Source Code gamit ang Linaro Tool Chain
  • Nahimo ang UEFI Files
  • Paghimo og .sof file uban sa ATF
  • Paghimo og SD Card Image
  • Pag-debug sa DS
  • Pag-boot gikan sa UEFI Shell
2019.03.28
  • Gidugang usa ka bag-ong seksyon: Pagtukod sa Secure Monitor sa paghulagway sa bag-ong boot stage ug luwas nga boot.
  • Gi-update nga seksyon: Nahimo ang UEFI Files.
  • Gidugang usa ka bag-ong seksyon: Pagpadagan sa UEFI sa Intel Stratix 10 Hardware.
2017.06.19 Inisyal nga pagpagawas.

Intel Corporation. Tanang katungod gigahin. Ang Intel, ang logo sa Intel, ug uban pang mga marka sa Intel mao ang mga marka sa pamatigayon sa Intel Corporation o mga subsidiary niini. Gigarantiya sa Intel ang paghimo sa iyang mga produkto nga FPGA ug semiconductor sa kasamtangang mga espesipikasyon subay sa standard warranty sa Intel apan adunay katungod sa paghimog mga pagbag-o sa bisan unsang produkto ug serbisyo bisan unsang orasa nga wala’y pahibalo. Ang Intel walay responsibilidad o tulubagon nga naggikan sa aplikasyon o paggamit sa bisan unsang impormasyon, produkto, o serbisyo nga gihulagway dinhi gawas sa dayag nga giuyonan sa pagsulat sa Intel. Gitambagan ang mga kustomer sa Intel nga makakuha sa pinakabag-o nga bersyon sa mga detalye sa aparato sa dili pa mosalig sa bisan unsang gipatik nga impormasyon ug sa dili pa magbutang og mga order alang sa mga produkto o serbisyo. *Ang ubang mga ngalan ug mga tatak mahimong maangkon nga gipanag-iya sa uban.

ID: 683134
Bersyon: 2020.06.19

Mga Dokumento / Mga Kapanguhaan

intel UG-20080 Stratix 10 SoC UEFI Boot Loader [pdf] Giya sa Gumagamit
UG-20080 Stratix 10 SoC UEFI Boot Loader, UG-20080, Stratix 10 SoC UEFI Boot Loader, 10 SoC UEFI Boot Loader, UEFI Boot Loader

Mga pakisayran

Pagbilin ug komento

Ang imong email address dili mamantala. Ang gikinahanglan nga mga natad gimarkahan *