intel-logo

intel UG-20080 Stratix 10 SoC UEFI Boot Loader

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

Plis paseview

Dokiman sa a bay enfòmasyon konplè sou Unified Extensible Firmware Interface (UEFI) chajè bòt pou Intel Stratix 10 SoC. Intel Stratix 10 SoC bay yon koule bòt an sekirite, ki gen ladann

  • ROM bòt la
  • Manadjè aparèy sekirite (SDM)
  • Monitè ki an sekirite
  • Chargeur bòt UEFI

Intel Stratix 10 SoC sikilasyon bòt sekirite a asire ke charjeur bòt sistèm lan siyen ak yon kle kriptografik, ki valide pa firmwèr la. The Secure Monitor stage tou aplike modèl TrustZone* nan patisyon an sekirite. Modèl sa a divize anviwònman lojisyèl an nan de patisyon izole, yo rele mond an sekirite ak mond ki pa an sekirite. De mond yo ka sèlman kominike youn ak lòt atravè Secure Monitor. Ka imaj binè loader UEFI a dwe estoke sou kat SPI flash SD/MMC. Sou tablo pouvwa-up, manadjè aparèy sekirite (SDM) chaje monitè sekirite a dirèkteman sou Hard Processor System (HPS) sou-chip RAM. Lè sa a, Secure Monitor chaje loader bòt UEFI nan memwa HPS DDR.

Travay ki monitè kè bebe yo genyen ladan yo

  • Inisyalize memwa DDR SDRAM
  • Konfigirasyon pyès ki nan konpitè ba nivo, tankou PLL, IOs, ak PIN MUX, ki nesesè pa lojisyèl mond ki pa an sekirite.

Travay chargeur bòt UEFI yo enkli

  • Bay sipò Ethernet
  • Sipòte karakteristik debaz pyès ki nan konpitè dyagnostik
  • Chèche lojisyèl bòt ki vin apre a tankou pake sistèm operasyon an oswa imaj nwayo a.

Nòt: Pou bòt ki pa an sekirite, pake sistèm operasyon an ka gen ladan imaj nwayo, pate pyebwa aparèy ak filesistèm. Pou bòt an sekirite li kapab yon nwayo an sekirite.

UEFI Boot Flow Overview

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

Kondisyon sistèm

Pou chaje ak egzekite charjeur bòt Intel Stratix 10 SoC Unified Extensible Firmware Interface (UEFI), sistèm ou a dwe ranpli kondisyon sa yo.

Kondisyon Minimòm Materyèl

  • Estasyon travay Linux ak konfigirasyon sa a:
    • Tèminal seri, tankou Minicom pou Linux
    • emplacement kat microSD oswa ekriven kat microSD oswa ekriven SD ki kapab ak konvètisè SD nan microSD

Kapasite platfòm

  Linux
Kapab konpile loader bòt UEFI Wi
Kapab konpile monitè kè bebe a Wi

Kondisyon Minimòm lojisyèl

  • Intel® SoC FPGA Embedded Development Suite (SoC EDS) v18.1 ak pi wo a
  • Linaro aarch64-linux-gnu-gcc toolchain

Kòmanse

Enstale konpozan lojisyèl

Enstale Intel SoC EDS

  • Ou dwe enstale Intel SoC EDS sou machin ou.
  • Telechaje Intel SoC EDS nan Download Center pou FPGA yo.

Enstale chèn zouti konpilatè a

Ou konpile loader bòt UEFI ak Secure Monitor ak GNU Toolchain (EABI Release) pou Arm* Processors. Ou ka telechaje GNU Toolchain nan paj telechaje Arm la.

  • Linux: gcc-arm-8.3-2019.03-x86_64-aarch64-Linux-gnu.tar.xz
Bati monitè sekirite a

Kòm sekirite vin pi plis ak pi enpòtan, yon solisyon bòt sekirite vin tounen yon kondisyon nan mond lan entegre. Pou asire sekirite konplè ak yon platfòm ou fè konfyans, patisyon an sekirite obligatwa. Aparèy Intel Stratix 10 la reyalize patisyon an sekirite lè li aplike modèl TrustZone ak Arm Trusted Firmware (ATF). Modèl TrustZone a divize anviwònman informatique an de mond izole, mond an sekirite ak monn nòmal, ki lye pa yon monitè lojisyèl ki rele Secure Monitor. De mond yo te separe espas adrès lojik ak periferik. Kominikasyon ant de mond yo se posib sèlman lè w rele enstriksyon privilejye apèl Secure Monitor (SMC).

Solisyon an sekirite konplè bòt se

  • BootRom
  • Manadjè Aparèy Sekirize
  • Secure Monitor
  • Uboot/UEFI
  • Hypervisor
  • OS

Mòd Secure Monitor se yon mòd privilejye epi li toujou an sekirite kèlkeswa eta NS bit la. Secure Monitor la se kòd ki kouri nan mòd Secure Monitor epi trete switch pou ale ak soti nan mond Secure. Sekirite an jeneral nan lojisyèl an depann sou sekirite nan kòd sa a ansanm ak kòd la Secure bòt.

Enfòmasyon ki gen rapò

Enfòmasyon jeneral sou Arm Trusted Firmware

Konfigirasyon itilizatè

Ou ka jwenn tout konfigirasyon platfòm yo nan arm-trusted-firmware/plat/intel/soc/stratix10/include/socfpga_plat_def.h. Pou konfigirasyon itilizatè, ou dwe modifye sous bòt yo ki baze sou preferans ou yo. Ou chwazi BOOT_SOURCE_SDMMC si bòt soti nan SDMMC oswa chwazi BOOT_SOURCE_QSPI si bòt soti nan QSPI.

  • #defini BOOT_SOURCE BOOT_SOURCE_SDMMC

Nòt: Pou chanje bòt la filenon oswa konpanse, ou ka chanje #defini nan sa a file.

Jwenn Arm Trusted Firmware Sous Kòd la

Sous ATF la se nan GitHub. Pou jwenn kòd sous ATF, tou senpleman kouri etap sa yo

  1. Louvri yon tèminal.
  2. Kreye yon nouvo anyè pou tcheke kòd sous ATF ki soti nan GitHub.
  3. Chanje nan anyè k ap travay sa a epi klonaj sous ATF nan pye bwa Git yo jan sa a:
  4. Lè w fin ranpli a, chanje nan katab bra-trusted-firmware la epi fè yon tcheke Git jan sa a:
    • cd arm-trusted-firmware
    • git checkout socfpga_v2.1

Enfòmasyon ki gen rapò

  • Bati ATF la.
  • Konpile kòd sous UEFI ak chèn zouti Linaro.
  • Kouri ki monitè kè bebe an sekirite.

Bati ATF la

Seksyon sa a dekri kijan pou konstwi ATF ak du Linaro GCC. Pou kòmanse bati ATF ak du Linaro GCC, tou senpleman kouri etap sa yo

  1. Chanje anyè ou a nan kote kòd sous ATF la jan sa a:
    • cd arm-trusted-firmware
  2. Mete chemen GCC ak anviwònman varyab CROSS_COMPILE pou Linaro kwa konpile jan sa a: ekspòte PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • ekspòtasyon ARCH = arm64
    • ekspòte CROSS_COMPILE=aarch64-linux-gnu-
  3. Retire pye bwa a bati nèt jan sa a:
    • fè realclean
  4. Konstwi ATF la lè l sèvi avèk lòd sa a:
    • fè PLAT=stratix10 bl2 bl31
  5. Mesaj sa yo parèt lè konstriksyon ATF la reyisiintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-5
  6. Tablo ki anba a bay lis pwodiksyon Secure Monitor files.

Deskripsyon Secure Monitor Files

File Chemen ak Non Deskripsyon
\build\stratix10\release\bl31.bin Jenere binè file
\build\stratix10\release\bl31\bl31.elf Jenere farfade file
\build\stratix10\release\bl2.bin Jenere binè file
\build\stratix10\release\bl2\bl2.elf Jenere farfade file

Bati UEFI Boot Loader la

Pou konstwi yon loader bòt UEFI, ou jwenn kòd sous UEFI epi konpile sous UEFI ak chèn zouti ki sipòte a.

Unified Extensible Firmware Interface (UEFI) se yon spesifikasyon firmwèr ofisyèl ki senplifye epi asire inisyalizasyon platfòm ak operasyon bootstrap firmwèr. UEFI kounye a devlope ak sipòte pa reprezantan ki soti nan plis pase 250 konpayi teknoloji endistri-dirijan. Arm ak Linaro Enterprise Group yo ap ankouraje tou itilizasyon UEFI sou achitekti Arm paske spesifikasyon UEFI ede estandadize pwosesis bòt la pou platfòm ki baze sou processeur Arm yo. Teknoloji UEFI se yon prèv pou lavni atravè normalisation nan konsepsyon firmwèr olye ke konsepsyon firmwèr propriétaires. Espesifikasyon UEFI ankouraje efikasite biznis ak teknolojik, amelyore pèfòmans ak sekirite, fasilite entèoperabilite ant aparèy, platfòm ak sistèm epi konfòme yo ak teknoloji pwochen jenerasyon yo. Espesifikasyon UEFI se peer-reviewed ak pibliye, sa ki pèmèt devlopè yo ekri firmwèr yon fwa pou chak platfòm epi reitilize li san anpil modifikasyon. Réutilisation sa a rezilta nan pri ak ekonomi tan pandan devlopman loader bòt. Kad sa a sèvi ak lisans BSD, ki pèmèt ou opsyonèlman komèsyalize aplikasyon w lan ak pwoblèm legal minim. Ou ka konpile kòd sous UEFI swa nan yon Windows oswa nan yon sistèm Linux.

Prekondisyon

Bati UEFI a mande pou pakè Linux adisyonèl. Tou depan de distribisyon Linux ou a, lòd pou enstale pakè yo diferan:

Si w ap itilize yon distribisyon Ubuntu, tape

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

Si w ap itilize yon distribisyon Fedora, tape

  • sudo yum enstale uuid-devel libuuid-devel

Pou bati UEFI, pake Python obligatwa. Si Python pa deja disponib sou sistèm ou a, kouri kòmandman ki soti nan SoC EDS Embedded Command Shell bay depandans Python ki nesesè yo.

Jwenn kòd sous UEFI

Kòd sous UEFI a sitiye nan GitHub. Etap sa yo montre w kouman pou w jwenn kòd sous UEFI.

  1. Louvri yon tèminal.
  2. Klone sous UEFI soti nan pyebwa Git yo.
  3. Lè w fini, chanje nan katab edk2 a epi fè yon kesye Git.
    • cd edk2
    • git checkout socfpga_udk201905

Kòd sous platfòm edk2 a sitiye nan GitHub. Pou jwenn kòd sous platfòm edk2

Konpile kòd sous UEFI ak chèn zouti Linaro

Seksyon sa a eksplike kijan pou konpile kòd sous UEFI ak chèn zouti Linaro nan yon sistèm Linux

  1. Louvri yon tèminal ak antre nan lòd sa a:
    • cd
    • ekspòte PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • ekspòte CROSS_COMPILE = aarch64-linux-gnu-
    • ekspòtasyon ARCH = arm64
    • ekspòte GCC48_AARCH64_PREFIX = aarch64-linux-gnu-
  2. Mete kanpe EDK_TOOLS_PATH la:
    • ekspòte EDK_TOOLS_PATH=$PWD/edk2/BaseTools
  3. Mete yon PACKAGES_PATH pou montre kote depo yo:
    • ekspòte PACKAGES_PATH= $PWD/edk2:$PWD/edk2-platforms/
  4. Mete kanpe espas travay la:
    • ekspòtasyon ESPAS TRAVAY = $PWD
  5. Fikse anviwònman an bati:
    • edk2/edksetup.sh
  6. Bati BaseTools (asire ke zouti python yo enstale):
    • fè -C edk2/BaseTools
  7. Konpile UEFI bootloader la lè w antre lòd sa a:
    • bati -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. Tèminal ou a montre yon mesaj "Build Done" apre UEFI a avèk siksè konpile.
UEFI Jenere Files

Konpile kòd sous UEFI a kreye sa ki annapre yo files nan /Build/Stratix10SoCPkg/RELEASE_GCC48 katab la:

UEFI Jenere Files

File Deskripsyon
INTELSTRATIX10_EFI.fd Sa a file se UEFI bootloader pou demare UEFI kokiy ak pèmèt karakteristik Ethernet oswa kouri yon aplikasyon UEFI
Jenerasyon FIP la

FIP se chaj la ke BL2 ATF a chaje nan RAM epi egzekite. FIP a gen binè pou BL31 ak UEFI bootloader, ak yon veso ke BL2 rekonèt.

Pou konstwi FIP a, swiv kòmandman sa yo

  • ekspòtasyon ARCH = ARM64
  • ekspòte CROSS_COMPILE = aarch64-linux-gnu-
  • cd

Konstwi FIP a lè l sèvi avèk kòmandman sa a

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

Kouri UEFI sou Intel Stratix 10 Materyèl

Kouri sou yon Komisyon Konsèy Fizik ak ATF ak UEFI Bootloader

Seksyon sa a dekri kijan pou kouri Secure Monitor sou yon tablo fizik.

Jenere yon .sof file ak ATF

  1. Jwenn yon .sof file soti nan anyè enstalasyon $SOCEDS_DEST_ROOT.
  2. Konvèti binè a file bl2.bin, ki te pwodwi nan Building ATF la.
    • aarch64-linux-gnu-objcopy -I binè -O ihex – \-change-addresses 0xffe00000 bl2.bin bl2.hex
  3. Mete bootloader a nan .sof la file jan sa a:
    • 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

Enfòmasyon ki gen rapò

  • Bati ATF la.

Kreye yon imaj kat SD

  1. Jenere UEFI Bootloader ak FIP tankou nan Bati UEFI Boot Loader ak Jenere FIP la.
  2. Bati Linux ak rasin file sistèm ki baze sou enstriksyon yo nan Rocketboard.
  3. Bati imaj kat SD la:
  • Jwenn make_image python script la epi fè li ègzekutabl
  • Prepare sa ki nan patisyon grès:
    • mkdir fat && cd fat
    • cp /linux-socfpga/arch/arm64/boot/Image
    • cp /linux-socfpga/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dtb
  • Prepare rasin lan file kontni patisyon sistèm:
    • mkdir rootfs && cd rootfs
    • goudwon ​​xf /gsrd-console-image-*.tar.xz
  • Kreye imaj kat SD la:
    • 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
    • Imaj,socfpga_stratix10_socdk.dtb,num=1,format=fat32,size=500M -s 2G -n sdimage.img
    • Nòt: Si ou deja gen yon imaj SD ak patisyon A2, ou ka ranplase FIP la file ak kòmandman ki anba a:
    • sudo dd if =arm-trusted-firmware/build/stratix10/release/fip.bin of=/dev/sdx3
Enfòmasyon ki gen rapò
  • Konpile kòd sous UEFI ak chèn zouti Linaro.
  • Bati UEFI Boot Loader la.

Kouri monitè kè bebe a

  1. Pouvwa moute tablo a apre yo fin mete kat SD la.
  2. Louvri pwogramè Quartus epi pwograme tablo a ak .sof la file généré nan Générer yon .sof File ak ATF.

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

  • Komisyon Konsèy la bòt soti nan ATF la epi otomatikman chaje UEFI bootloader nan bòt UEFI kokiy.

Enfòmasyon ki gen rapò

  • Jenere yon .sof file ak ATF.
Debogaj ak DS

Seksyon sa a dekri kijan pou chaje ATF ak UEFI bootloader sou tablo fizik la atravè DS.

  1. Asire w ke ou te enstale DS. Lanse eclipse lè l sèvi avèk lòd sa a:
    • armds_ide &
  2. Mete kanpe nouvo koneksyon debug
    • Etap ilistrasyonintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-8
  3. Apre konfigirasyon fini, konekte ak sib la.
    • Nòt: Ou dwe pwograme tablo a ak ghrd_1sx280lu2f50e2vg_hps_debug.sof anvan ou konekte ak sib la.
  4. Nan konsole lòd DS la, ou ka chaje yon script debug ak sa ki annapre yo pou telechaje ATF ak UEFI bootloader sou tablo fizik.

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

Bòt Linux

Seksyon sa a montre w kouman pou w kòmanse Linux apre UEFI antre nan koki UEFI a.

Bòt soti nan UEFI Shell la

  1. Bòt tablo a jiska koki UEFI a, jan sa dekri nan Kouri monitè sekirite a.
  2. Yon fwa yo chaje UEFI kokiy la, antre lòd sa a pou demare Linux:
    • Imaj dtb=socfpga_stratix10_socdk.dtb console=ttyS0,115200 root=/dev/mmcb

Nòt: Asire w ke imaj Linux ak dtb estoke nan kat SD la.

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

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4Istwa revizyon dokiman pou Gid itilizatè Intel Stratix 10 SoC UEFI Boot Loader

Vèsyon dokiman an Chanjman
2020.06.19 Mete ajou seksyon sa yo:
  • Kondisyon Minimòm Materyèl
  • Kondisyon Minimòm lojisyèl
  • Enstale chèn zouti konpilatè a
  • Konfigirasyon itilizatè
  • Jwenn Arm Trusted Firmware Sous Kòd la
  • Bati ATF la
  • Jwenn kòd sous UEFI
  • Jwenn Kòd Sous platfòm edk2 la
  • Konpile kòd sous UEFI ak chèn zouti Linaro
  • UEFI Jenere Files
  • Jenere yon .sof file ak ATF
  • Kreye yon imaj kat SD
  • Debogaj ak DS
  • Bòt soti nan UEFI Shell la
2019.03.28
  • Te ajoute yon nouvo seksyon: Bati monitè sekirite a pou dekri nouvo bòt stage ak sekirite bòt.
  • Mizajou seksyon: UEFI Jenere Files.
  • Te ajoute yon nouvo seksyon: Kouri UEFI sou Intel Stratix 10 Materyèl.
2017.06.19 Premye lage.

Intel Corporation. Tout dwa rezève. Intel, logo Intel ak lòt mak Intel yo se mak komèsyal Intel Corporation oswa filiales li yo. Intel garanti pèfòmans pwodwi FPGA ak semi-conducteurs li yo selon espesifikasyon aktyèl yo an akò ak garanti estanda Intel a, men li rezève dwa pou fè chanjman nan nenpòt pwodwi ak sèvis nenpòt ki lè san avètisman. Intel pa asime okenn responsablite oswa responsablite ki soti nan aplikasyon an oswa itilizasyon nenpòt enfòmasyon, pwodwi oswa sèvis ki dekri la a eksepte si Intel te dakò ekspreseman alekri. Yo konseye kliyan Intel yo pou yo jwenn dènye vèsyon espesifikasyon aparèy yo anvan yo konte sou nenpòt enfòmasyon ki pibliye epi anvan yo pase lòd pou pwodwi oswa sèvis yo. *Yo ka reklame lòt non ak mak kòm pwopriyete lòt moun.

ID: 683134
Vèsyon: 2020.06.19

Dokiman / Resous

intel UG-20080 Stratix 10 SoC UEFI Boot Loader [pdfGid Itilizatè
UG-20080 Stratix 10 SoC UEFI Boot Loader, UG-20080, Stratix 10 SoC UEFI Boot Loader, 10 SoC UEFI Boot Loader, UEFI Boot Loader

Referans

Kite yon kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo make *