intel-logo

intel UG-20080 Stratix 10 SoC UEFI Boot Loader

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

Swaraview

Dokumen iki nyedhiyakake informasi lengkap babagan unified Extensible Firmware Interface (UEFI) boot loader kanggo Intel Stratix 10 SoC. Intel Stratix 10 SoC nyedhiyakake aliran boot sing aman, kalebu

  • ROM boot
  • Manajer piranti aman (SDM)
  • Monitor sing aman
  • UEFI boot loader

Aliran boot aman Intel Stratix 10 SoC njamin boot loader sistem ditandatangani nganggo kunci kriptografi, sing divalidasi dening perangkat kukuh. Monitor Aman stage uga ngleksanakake TrustZone * model pemisahan aman. Model iki mbagi lingkungan piranti lunak dadi rong partisi sing diisolasi, sing diarani jagad aman lan jagad ora aman. Loro donya mung bisa komunikasi karo saben liyane liwat Secure Monitor. Gambar binar saka boot loader UEFI bisa disimpen ing kertu SD/MMC lampu kilat Quad SPI. Ing papan power-up, manager piranti aman (SDM) mbukak Secure Monitor langsung menyang Hard Processor System (HPS) ing-chip RAM. Banjur Monitor Aman ngemot boot loader UEFI ing memori HPS DDR.

Tugas Monitor Aman kalebu

  • Initializing memori DDR SDRAM
  • Konfigurasi hardware tingkat rendah, kayata PLL, IO, lan PIN MUX, sing dibutuhake dening piranti lunak donya sing ora aman

Tugas boot loader UEFI kalebu

  • Nyedhiyakake dhukungan Ethernet
  • Ndhukung fitur diagnostik hardware dhasar
  • Njupuk piranti lunak boot sakteruse kayata paket sistem operasi utawa gambar kernel.

Cathetan: Kanggo boot sing ora aman, paket sistem operasi bisa kalebu gambar kernel, gumpalan wit piranti lan filesistem. Kanggo boot aman bisa dadi kernel aman.

UEFI Boot Flow Overview

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

Requirements Sistem

Kanggo mbukak lan nglakokake boot loader Intel Stratix 10 SoC Unified Extensible Firmware Interface (UEFI), sistem sampeyan kudu nyukupi syarat ing ngisor iki.

Persyaratan Hardware Minimal

  • Workstation Linux kanthi konfigurasi ing ngisor iki:
    • Terminal serial, kayata Minicom kanggo Linux
    • slot kertu microSD utawa writer kertu microSD utawa SD penulis saged karo SD kanggo microSD converter

Kapabilitas Platform

  Linux
Bisa ngumpulake boot loader UEFI ya wis
Bisa ngumpulake Monitor Aman ya wis

Persyaratan Piranti Lunak Minimal

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

Miwiti

Nginstal Komponen Piranti Lunak

Nginstal Intel SoC EDS

  • Sampeyan kudu nginstal Intel SoC EDS ing mesin sampeyan.
  • Unduh Intel SoC EDS saka Pusat Unduhan kanggo FPGA.

Nginstal Compiler Toolchain

Sampeyan ngumpulake UEFI boot loader lan Secure Monitor karo GNU Toolchain (EABI Release) kanggo Arm * Prosesor. Sampeyan bisa ngundhuh GNU Toolchain saka kaca download Arm.

  • Linux: gcc-arm-8.3-2019.03-x86_64-aarch64-Linux-gnu.tar.xz
Nggawe Monitor Aman

Nalika keamanan dadi luwih penting, solusi boot sing aman dadi syarat ing jagad sing dipasang. Kanggo njamin keamanan lengkap lan platform sing dipercaya, pemisahan sing aman dibutuhake. Piranti Intel Stratix 10 entuk pemisahan sing aman kanthi ngetrapake model TrustZone nganggo Arm Trusted Firmware (ATF). Model TrustZone mbagi lingkungan komputasi dadi rong jagad sing terisolasi, jagad aman lan jagad normal, sing disambung karo monitor piranti lunak sing diarani Secure Monitor. Loro donya wis misahake spasi alamat logis lan peripheral. Komunikasi antarane loro donya mung bisa kanthi nelpon hak istimewa Secure Monitor telpon (SMC) instruction.

Solusi boot aman lengkap yaiku

  • BootRom
  • Manager Piranti sing aman
  • Monitor sing aman
  • Uboot/UEFI
  • Hypervisor
  • OS

Mode Monitor Aman minangka mode ndarbeni hak istimewa lan tansah aman preduli saka negara bit NS. Monitor Aman minangka kode sing mlaku ing mode Monitor Aman lan proses ngalih menyang lan saka jagad Aman. Keamanan sakabèhé piranti lunak gumantung marang keamanan kode iki bebarengan karo kode boot Aman.

Informasi sing gegandhengan

Informasi umum babagan Arm Trusted Firmware

Konfigurasi pangguna

Sampeyan bisa nemokake kabeh konfigurasi platform ing arm-dipercaya-firmware/plat/intel/soc/stratix10/include/socfpga_plat_def.h. Kanggo konfigurasi pangguna, sampeyan kudu ngowahi sumber boot adhedhasar pilihan sampeyan. Sampeyan milih BOOT_SOURCE_SDMMC yen boot saka SDMMC utawa pilih BOOT_SOURCE_QSPI yen boot saka QSPI.

  • #define BOOT_SOURCE BOOT_SOURCE_SDMMC

Cathetan: Kanggo ngganti boot filejeneng utawa offset, sampeyan bisa ngganti #define ing iki file.

Njupuk Kode Sumber Firmware Arm Dipercaya

Sumber ATF ana ing GitHub. Kanggo entuk kode sumber ATF, mung tindakake langkah ing ngisor iki

  1. Bukak terminal.
  2. Nggawe direktori anyar kanggo mriksa kode sumber ATF saka GitHub.
  3. Ganti menyang direktori kerja iki lan tiron sumber ATF saka wit Git kaya ing ngisor iki:
  4. Yen wis rampung, ganti menyang folder arm-trusted-firmware lan priksa Git kaya ing ngisor iki:
    • cd arm-dipercaya-firmware
    • git checkout socfpga_v2.1

Informasi sing gegandhengan

  • mbangun ATF.
  • Nglumpukake Kode Sumber UEFI nganggo Rantai Alat Linaro.
  • Mbukak Monitor Aman.

mbangun ATF

Bagean iki nerangake carane mbangun ATF karo kompiler Linaro GCC. Kanggo miwiti mbangun ATF karo kompiler Linaro GCC, mung tindakake langkah ing ngisor iki

  1. Ganti direktori sampeyan menyang lokasi kode sumber ATF kaya ing ngisor iki:
    • cd arm-dipercaya-firmware
  2. Setel path GCC lan variabel lingkungan CROSS_COMPILE menyang Linaro cross compile kaya ing ngisor iki: export PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • ngekspor ARCH = arm64
    • ekspor CROSS_COMPILE=aarch64-linux-gnu-
  3. Copot wit mbangun kanthi lengkap kaya ing ngisor iki:
    • nggawe realclean
  4. Gawe ATF kanthi nggunakake printah ing ngisor iki:
    • nggawe PLAT = stratix10 bl2 bl31
  5. Pesen ing ngisor iki katon nalika mbangun ATF suksesintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-5
  6. Tabel ing ngisor iki nampilake output Monitor Aman files.

Katrangan saka Secure Monitor Files

File Path lan Jeneng Katrangan
\mbangun\stratix10\release\bl31.bin binar sing digawe file
\mbangun\stratix10\release\bl31\bl31.elf Elf digawe file
\mbangun\stratix10\release\bl2.bin binar sing digawe file
\mbangun\stratix10\release\bl2\bl2.elf Elf digawe file

Nggawe UEFI Boot Loader

Kanggo mbangun boot loader UEFI, sampeyan entuk kode sumber UEFI lan ngumpulake sumber UEFI kanthi toolchain sing didhukung.

Unified Extensible Firmware Interface (UEFI) minangka spesifikasi perangkat kukuh standar sing nyederhanakake lan ngamanake inisialisasi platform lan operasi bootstrap perangkat kukuh. UEFI saiki dikembangake lan didhukung dening wakil saka luwih saka 250 perusahaan teknologi sing unggul ing industri. Arm lan Linaro Enterprise Group uga promosi panggunaan UEFI ing arsitektur Arm amarga spesifikasi UEFI mbantu nggawe standar proses boot kanggo platform basis prosesor Arm. Teknologi UEFI dibuktekake ing mangsa ngarep liwat standarisasi desain perangkat kukuh tinimbang desain perangkat kukuh eksklusif. Spesifikasi UEFI ningkatake efisiensi bisnis lan teknologi, ningkatake kinerja lan keamanan, nggampangake interoperabilitas antarane piranti, platform lan sistem lan tundhuk karo teknologi generasi sabanjure. Spesifikasi UEFI yaiku peer-reviewed lan diterbitake, ngidini pangembang kanggo nulis perangkat kukuh sapisan saben platform lan nggunakake maneh tanpa akeh modifikasi. Panganggone maneh iki nyebabake irit biaya lan wektu sajrone pangembangan boot loader. Kerangka iki nggunakake lisensi BSD, ngidini sampeyan komersialisasi implementasine kanthi masalah hukum minimal. Sampeyan bisa ngumpulake kode sumber UEFI ing Windows utawa ing sistem Linux.

Prasyarat

Mbangun UEFI mbutuhake paket Linux tambahan. Gumantung ing distribusi Linux sampeyan, printah kanggo nginstal paket beda:

Yen sampeyan nggunakake distribusi Ubuntu, ketik

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

Yen sampeyan nggunakake distribusi Fedora, ketik

  • sudo yum nginstal uuid-devel libuuid-devel

Kanggo mbangun UEFI, paket Python dibutuhake. Yen Python durung kasedhiya ing sistem sampeyan, mbukak printah saka SoC EDS Embedded Command Shell nyedhiyakake ketergantungan Python sing dibutuhake.

Entuk Kode Sumber UEFI

Kode sumber UEFI dumunung ing GitHub. Langkah-langkah ing ngisor iki nuduhake sampeyan carane njaluk kode sumber UEFI.

  1. Bukak terminal.
  2. Kloning sumber UEFI saka wit Git.
  3. Yen wis rampung, ganti menyang folder edk2 lan nglakoni checkout Git.
    • cd edk2
    • git checkout socfpga_udk201905

Kode sumber platform edk2 dumunung ing GitHub. Kanggo entuk kode sumber platform edk2

Nglumpukake Kode Sumber UEFI nganggo Rantai Alat Linaro

Bagian iki nerangake carane ngumpulake kode sumber UEFI karo toolchain Linaro ing sistem Linux

  1. Bukak terminal banjur ketik printah ing ngisor iki:
    • cd
    • ekspor PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • ekspor CROSS_COMPILE = aarch64-linux-gnu-
    • ngekspor ARCH = arm64
    • ekspor GCC48_AARCH64_PREFIX=aarch64-linux-gnu-
  2. Setel EDK_TOOLS_PATH:
    • ekspor EDK_TOOLS_PATH=$PWD/edk2/BaseTools
  3. Nggawe PACKAGES_PATH kanggo ngarahake menyang lokasi repositori:
    • ekspor PACKAGES_PATH= $PWD/edk2:$PWD/edk2-platforms/
  4. Setel RUANG KERJA:
    • ekspor RUANG KERJA = $PWD
  5. Nggawe lingkungan mbangun:
    • edk2/edksetup.sh
  6. Mbangun BaseTools (pastikan alat python diinstal):
    • nggawe -C edk2 / BaseTools
  7. Kompilasi bootloader UEFI kanthi ngetik printah ing ngisor iki:
    • mbangun -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. Terminal sampeyan nampilake pesen "Mbangun Rampung" sawise UEFI kasil dikompilasi.
UEFI Digawe Files

Nglumpukake kode sumber UEFI nggawe ing ngisor iki files ing folder /Build/ Stratix10SoCPkg/RELEASE_GCC48:

UEFI Digawe Files

File Katrangan
INTELSTRATIX10_EFI.fd Iki file yaiku bootloader UEFI kanggo boot cangkang UEFI lan ngaktifake fitur ethernet utawa mbukak aplikasi UEFI
Nggawe FIP

FIP minangka muatan sing diisi BL2 ATF menyang RAM lan dieksekusi. FIP ngemot binar kanggo bootloader BL31 lan UEFI, lan wadhah sing diakoni BL2.

Kanggo mbangun FIP, tindakake printah iki

  • ngekspor ARCH = ARM64
  • ekspor CROSS_COMPILE = aarch64-linux-gnu-
  • cd

Gawe FIP kanthi nggunakake printah ing ngisor iki

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

Mlaku UEFI ing Intel Stratix 10 Hardware

Mlaku ing Papan Fisik karo ATF lan UEFI Bootloader

Bagean iki nerangake carane mbukak Monitor Aman ing papan fisik.

Nggawe .sof file karo ATF

  1. Njaluk .sof file saka direktori instalasi $SOCEDS_DEST_ROOT.
  2. Ngonversi binar file bl2.bin, kui ing Bangunan ATF.
    • aarch64-linux-gnu-objcopy -I binar -O ihex - \-ganti-alamat 0xffe00000 bl2.bin bl2.hex
  3. Kalebu bootloader menyang .sof file kaya ing ngisor iki:
    • 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

Informasi sing gegandhengan

  • mbangun ATF.

Nggawe Gambar kertu SD

  1. Generate UEFI Bootloader lan FIP kaya ing Mbangun UEFI Boot Loader lan Generating FIP.
  2. Mbangun Linux lan ROOT file sistem adhedhasar pandhuan ing Rocketboard.
  3. Gawe gambar kertu SD:
  • Entuk skrip python make_image lan nggawe bisa dieksekusi
  • Siapke isi partisi lemak:
    • mkdir lemak && cd lemak
    • cp /linux-socfpga/arch/arm64/boot/Gambar
    • cp /linux-socfpga/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dtb
  • Siapke ROOT file isi partisi sistem:
    • mkdir rootfs && cd rootfs
    • tar xf /gsrd-console-image-*.tar.xz
  • Nggawe gambar kertu 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
    • Gambar,socfpga_stratix10_socdk.dtb,num=1,format=fat32,size=500M -s 2G -n sdimage.img
    • Cathetan: Yen sampeyan wis duwe gambar SD karo partisi A2, sampeyan bisa ngganti FIP file kanthi printah ing ngisor iki:
    • sudo dd yen = arm-trusted-firmware/build/stratix10/release/fip.bin of=/dev/sdx3
Informasi sing gegandhengan
  • Nglumpukake Kode Sumber UEFI nganggo Rantai Alat Linaro.
  • Nggawe UEFI Boot Loader.

Mbukak Monitor Aman

  1. Daya munggah Papan sawise kertu SD dipasang.
  2. Mbukak programer Quartus lan program Papan karo .sof file kui ing Generating a .sof File karo ATF.

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

  • Papan boot saka ATF lan kanthi otomatis mbukak bootloader UEFI kanggo boot cangkang UEFI.

Informasi sing gegandhengan

  • Nggawe .sof file karo ATF.
Debugging karo DS

Bagean iki nerangake carane mbukak bootloader ATF lan UEFI menyang papan fisik liwat DS.

  1. Priksa manawa sampeyan wis nginstal DS. Bukak eclipse nggunakake printah ing ngisor iki:
    • armds_ide &
  2. Nggawe sambungan debug anyar
    • Ilustrasi Langkahintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-8
  3. Sawise konfigurasi rampung, sambungake menyang target.
    • Cathetan: Sampeyan kudu program Papan karo ghrd_1sx280lu2f50e2vg_hps_debug.sof sadurunge nyambung menyang target.
  4. Ing console printah DS, sampeyan bisa mbukak script debug karo isi ing ngisor iki kanggo download ATF lan UEFI bootloader kanggo Papan fisik.

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

Booting Linux

Bagean iki nuduhake sampeyan carane boot Linux sawise UEFI mlebu cangkang UEFI.

Booting saka Shell UEFI

  1. Boot papan nganti cangkang UEFI, kaya sing diterangake ing Running the Secure Monitor.
  2. Sawise cangkang UEFI dimuat, ketik printah ing ngisor iki kanggo boot Linux:
    • Gambar dtb=socfpga_stratix10_socdk.dtb console=ttyS0,115200 root=/dev/mmcb

Cathetan: Priksa manawa gambar Linux lan dtb disimpen ing kertu SD.

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

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4Riwayat Revisi Dokumen kanggo Pandhuan Pangguna Boot Loader Intel Stratix 10 SoC UEFI

Versi Dokumen Owah-owahan
2020.06.19 Dianyari bagean ing ngisor iki:
  • Persyaratan Hardware Minimal
  • Persyaratan Piranti Lunak Minimal
  • Nginstal Compiler Toolchain
  • Konfigurasi pangguna
  • Njupuk Kode Sumber Firmware Arm Dipercaya
  • mbangun ATF
  • Entuk Kode Sumber UEFI
  • Entuk Kode Sumber Platform edk2
  • Nglumpukake Kode Sumber UEFI nganggo Rantai Alat Linaro
  • UEFI Digawe Files
  • Nggawe .sof file karo ATF
  • Nggawe Gambar kertu SD
  • Debugging karo DS
  • Booting saka Shell UEFI
2019.03.28
  • Nambahake bagean anyar: Nggawe Monitor Aman kanggo njlèntrèhaké boot anyar stage lan boot aman.
  • Bagean sing dianyari: UEFI Digawe Files.
  • Nambahake bagean anyar: Mlaku UEFI ing Intel Stratix 10 Hardware.
2017.06.19 Rilis wiwitan.

Intel Corporation. Kabeh hak dilindhungi undhang-undhang. Intel, logo Intel, lan merek Intel liyane minangka merek dagang saka Intel Corporation utawa anak perusahaan. Intel njamin kinerja produk FPGA lan semikonduktor kanggo spesifikasi saiki sesuai karo garansi standar Intel nanging nduweni hak kanggo ngganti produk lan layanan kapan wae tanpa kabar. Intel ora tanggung jawab utawa tanggung jawab sing muncul saka aplikasi utawa panggunaan informasi, produk, utawa layanan sing diterangake ing kene kajaba sing disepakati kanthi tinulis dening Intel. Pelanggan Intel disaranake njupuk versi paling anyar saka spesifikasi piranti sadurunge ngandelake informasi sing diterbitake lan sadurunge nggawe pesenan kanggo produk utawa layanan. * Jeneng lan merek liyane bisa uga diklaim minangka properti wong liya.

ID: 683134
Versi: 2020.06.19

Dokumen / Sumber Daya

intel UG-20080 Stratix 10 SoC UEFI Boot Loader [pdf] Pandhuan pangguna
UG-20080 Stratix 10 SoC UEFI Boot Loader, UG-20080, Stratix 10 SoC UEFI Boot Loader, 10 SoC UEFI Boot Loader, UEFI Boot Loader

Referensi

Ninggalake komentar

Alamat email sampeyan ora bakal diterbitake. Kolom sing dibutuhake ditandhani *