logo intel

intel UG-20080 Stratix 10 SoC UEFI Pemuat But

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

Berakhirview

Dokumen ini menyediakan maklumat komprehensif tentang pemuat but Antara Muka Perisian Tegar Boleh Diperluas Bersepadu (UEFI) untuk Intel Stratix 10 SoC. Intel Stratix 10 SoC menyediakan aliran but selamat, yang terdiri daripada

  • ROM but
  • Pengurus peranti selamat (SDM)
  • Pemantau Selamat
  • Pemuat but UEFI

Aliran but selamat Intel Stratix 10 SoC memastikan bahawa pemuat but sistem ditandatangani dengan kunci kriptografi, disahkan oleh perisian tegar. Pemantau Selamat stage juga melaksanakan model TrustZone* pembahagian selamat. Model ini membahagikan persekitaran perisian kepada dua sekatan terpencil, dipanggil dunia selamat dan dunia tidak selamat. Kedua-dua dunia hanya boleh berkomunikasi antara satu sama lain melalui Secure Monitor. Imej binari pemuat but UEFI boleh disimpan pada kad SD/MMC kilat Quad SPI. Semasa dinaikkan kuasa, pengurus peranti selamat (SDM) memuatkan Monitor Selamat terus ke RAM pada cip Sistem Pemproses Keras (HPS). Kemudian Secure Monitor memuatkan pemuat but UEFI dalam memori HPS DDR.

Tugas Pemantau Selamat termasuk

  • Memulakan memori DDR SDRAM
  • Mengkonfigurasi perkakasan tahap rendah, seperti PLL, IO dan PIN MUX, yang diperlukan oleh perisian dunia yang tidak selamat

Tugas pemuat but UEFI termasuk

  • Menyediakan sokongan Ethernet
  • Menyokong ciri diagnostik perkakasan asas
  • Mengambil perisian but seterusnya seperti pakej sistem pengendalian atau imej kernel.

Nota: Untuk but tidak selamat, pakej sistem pengendalian boleh termasuk imej kernel, gumpalan pokok peranti dan filesistem. Untuk but selamat ia boleh menjadi kernel selamat.

Aliran But UEFI Selesaiview

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

Keperluan Sistem

Untuk memuatkan dan melaksanakan pemuat but Intel Stratix 10 SoC Unified Extensible Firmware Interface (UEFI), sistem anda mesti memenuhi keperluan berikut.

Keperluan Perkakasan Minimum

  • Stesen kerja Linux dengan konfigurasi berikut:
    • Terminal bersiri, seperti Minicom untuk Linux
    • slot kad microSD atau penulis kad microSD atau penulis berkemampuan SD dengan penukar SD ke microSD

Keupayaan Platform

  Linux
Dapat menyusun pemuat but UEFI ya
Mampu menyusun Monitor Selamat ya

Keperluan Perisian Minimum

  • Suite Pembangunan Terbenam Intel® SoC FPGA (SoC EDS) v18.1 dan ke atas
  • Rantai alat Linaro aarch64-linux-gnu-gcc

Bermula

Memasang Komponen Perisian

Memasang Intel SoC EDS

  • Anda mesti memasang Intel SoC EDS pada mesin anda.
  • Muat turun Intel SoC EDS daripada Pusat Muat Turun untuk FPGA.

Memasang Rangkaian Alat Pengkompil

Anda menyusun pemuat but UEFI dan Secure Monitor dengan GNU Toolchain (EABI Release) untuk Pemproses Lengan*. Anda boleh memuat turun GNU Toolchain dari halaman muat turun Arm.

  • Linux: gcc-arm-8.3-2019.03-x86_64-aarch64-Linux-gnu.tar.xz
Membina Monitor Selamat

Apabila keselamatan menjadi semakin penting, penyelesaian but terjamin menjadi keperluan dalam dunia terbenam. Untuk memastikan keselamatan yang komprehensif dan platform yang dipercayai, pembahagian selamat diperlukan. Peranti Intel Stratix 10 mencapai pembahagian selamat dengan melaksanakan model TrustZone dengan Arm Trusted Firmware (ATF). Model TrustZone membahagikan persekitaran pengkomputeran kepada dua dunia terpencil, dunia selamat dan dunia biasa, yang dipautkan oleh pemantau perisian yang dipanggil Secure Monitor. Kedua-dua dunia telah memisahkan ruang alamat logik dan persisian. Komunikasi antara dua dunia hanya boleh dilakukan dengan memanggil arahan panggilan Secure Monitor (SMC) istimewa.

Penyelesaian but selamat penuh ialah

  • BootRom
  • Pengurus Peranti Selamat
  • Monitor Selamat
  • Uboot/UEFI
  • Hipervisor
  • OS

Mod Secure Monitor ialah mod istimewa dan sentiasa selamat tanpa mengira keadaan bit NS. Secure Monitor ialah kod yang berjalan dalam mod Secure Monitor dan proses beralih ke dan dari dunia Secure. Keselamatan keseluruhan perisian bergantung pada keselamatan kod ini bersama-sama dengan kod but Secure.

Maklumat Berkaitan

Maklumat am tentang Perisian Tegar Arm Trusted

Konfigurasi Pengguna

Anda boleh menemui semua konfigurasi platform dalam arm-trusted-firmware/plat/intel/soc/stratix10/include/socfpga_plat_def.h. Untuk konfigurasi pengguna, anda mesti mengubah suai sumber but berdasarkan keutamaan anda. Anda pilih BOOT_SOURCE_SDMMC jika but daripada SDMMC atau pilih BOOT_SOURCE_QSPI jika but daripada QSPI.

  • #define BOOT_SOURCE BOOT_SOURCE_SDMMC

Nota: Untuk menukar but filenama atau offset, anda boleh menukar #define dalam ini file.

Mendapatkan Kod Sumber Perisian Tegar Arm Trusted

Sumber ATF ada di GitHub. Untuk mendapatkan kod sumber ATF, jalankan langkah berikut

  1. Buka terminal.
  2. Buat direktori baharu untuk menyemak kod sumber ATF daripada GitHub.
  3. Tukar ke direktori kerja ini dan klon sumber ATF daripada pepohon Git seperti berikut:
  4. Apabila selesai, tukar kepada folder perisian tegar yang dipercayai lengan dan lakukan semakan Git seperti berikut:
    • cd arm-trusted-firmware
    • git checkout socfpga_v2.1

Maklumat Berkaitan

  • Membina ATF.
  • Menyusun Kod Sumber UEFI dengan Rantaian Alat Linaro.
  • Menjalankan Monitor Selamat.

Membina ATF

Bahagian ini menerangkan cara membina ATF dengan pengkompil Linaro GCC. Untuk mula membina ATF dengan pengkompil Linaro GCC, hanya jalankan langkah berikut

  1. Tukar direktori anda kepada lokasi kod sumber ATF seperti berikut:
    • cd arm-trusted-firmware
  2. Tetapkan laluan GCC dan pembolehubah persekitaran CROSS_COMPILE kepada kompil silang Linaro seperti berikut: eksport PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • eksport ARCH=lengan64
    • eksport CROSS_COMPILE=aarch64-linux-gnu-
  3. Keluarkan pokok binaan sepenuhnya seperti berikut:
    • buat betul-betul bersih
  4. Bina ATF dengan menggunakan arahan berikut:
    • jadikan PLAT=stratix10 bl2 bl31
  5. Mesej berikut muncul apabila binaan ATF berjayaintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-5
  6. Jadual di bawah menyenaraikan output Monitor Selamat files.

Penerangan mengenai Secure Monitor Files

File Laluan dan Nama Penerangan
\build\stratix10\release\bl31.bin Binari yang dihasilkan file
\build\stratix10\release\bl31\bl31.elf Bunian yang dihasilkan file
\build\stratix10\release\bl2.bin Binari yang dihasilkan file
\build\stratix10\release\bl2\bl2.elf Bunian yang dihasilkan file

Membina Pemuat But UEFI

Untuk membina pemuat but UEFI, anda mendapatkan kod sumber UEFI dan menyusun sumber UEFI dengan rantai alat yang disokong.

Antara Muka Perisian Tegar Boleh Diperluas Bersepadu (UEFI) ialah spesifikasi perisian tegar piawai yang memudahkan dan menjamin operasi pemulaan platform dan bootstrap perisian tegar. UEFI pada masa ini dibangunkan dan disokong oleh wakil daripada lebih 250 syarikat teknologi peneraju industri. Arm dan Kumpulan Perusahaan Linaro juga mempromosikan penggunaan UEFI pada seni bina Lengan kerana spesifikasi UEFI membantu menyeragamkan proses but untuk platform berasaskan pemproses Arm. Teknologi UEFI kalis masa hadapan melalui penyeragaman reka bentuk perisian tegar dan bukannya reka bentuk perisian tegar proprietari. Spesifikasi UEFI menggalakkan kecekapan perniagaan dan teknologi, meningkatkan prestasi dan keselamatan, memudahkan kebolehoperasian antara peranti, platform dan sistem serta mematuhi teknologi generasi akan datang. Spesifikasi UEFI adalah peer-reviewed dan diterbitkan, membenarkan pembangun menulis perisian tegar sekali setiap platform dan menggunakannya semula tanpa banyak pengubahsuaian. Penggunaan semula ini menghasilkan penjimatan kos dan masa semasa pembangunan pemuat but. Rangka kerja ini menggunakan lesen BSD, membenarkan anda untuk mengkomersialkan pelaksanaan anda secara pilihan dengan isu undang-undang yang minimum. Anda boleh menyusun kod sumber UEFI sama ada dalam Windows atau dalam sistem Linux.

Prasyarat

Membina UEFI memerlukan pakej Linux tambahan. Bergantung pada pengedaran Linux anda, arahan untuk memasang pakej adalah berbeza:

Jika anda menggunakan pengedaran Ubuntu, taip

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

Jika anda menggunakan pengedaran Fedora, taip

  • sudo yum pasang uuid-devel libuuid-devel

Untuk membina UEFI, pakej Python diperlukan. Jika Python belum tersedia pada sistem anda, menjalankan arahan daripada SoC EDS Embedded Command Shell menyediakan pergantungan Python yang diperlukan.

Mendapatkan Kod Sumber UEFI

Kod sumber UEFI terletak di GitHub. Langkah berikut menunjukkan kepada anda cara mendapatkan kod sumber UEFI.

  1. Buka terminal.
  2. Klon sumber UEFI daripada pokok Git.
  3. Apabila selesai, tukar kepada folder edk2 dan lakukan pembayaran Git.
    • cd edk2
    • git checkout socfpga_udk201905

Kod sumber platform edk2 terletak di GitHub. Untuk mendapatkan kod sumber platform edk2

Menyusun Kod Sumber UEFI dengan Rantaian Alat Linaro

Bahagian ini menerangkan cara untuk menyusun kod sumber UEFI dengan rantai alat Linaro dalam sistem Linux

  1. Buka terminal dan masukkan arahan berikut:
    • cd
    • eksport PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • eksport CROSS_COMPILE= aarch64-linux-gnu-
    • eksport ARCH=lengan64
    • eksport GCC48_AARCH64_PREFIX=aarch64-linux-gnu-
  2. Sediakan EDK_TOOLS_PATH:
    • eksport EDK_TOOLS_PATH=$PWD/edk2/BaseTools
  3. Sediakan PACKAGES_PATH untuk menunjuk ke lokasi repositori:
    • eksport PACKAGES_PATH= $PWD/edk2:$PWD/edk2-platforms/
  4. Sediakan RUANG KERJA:
    • eksport RUANG KERJA = $PWD
  5. Sediakan persekitaran binaan:
    • edk2/edksetup.sh
  6. Bina BaseTools (pastikan alat python dipasang):
    • buat -C edk2/BaseTools
  7. Susun pemuat but UEFI dengan memasukkan arahan berikut:
    • bina -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 anda memaparkan mesej "Bina Selesai" selepas UEFI berjaya disusun.
UEFI Dijana Files

Menyusun kod sumber UEFI mencipta yang berikut files dalam folder /Build/ Stratix10SoCPkg/RELEASE_GCC48:

UEFI Dijana Files

File Penerangan
INTELSTRATIX10_EFI.fd ini file ialah pemuat but UEFI untuk boot shell UEFI dan mendayakan ciri ethernet atau menjalankan aplikasi UEFI
Menjana FIP

FIP ialah muatan yang dimuatkan oleh BL2 ATF ke dalam RAM dan dilaksanakan. FIP mengandungi binari untuk pemuat but BL31 dan UEFI, dan bekas yang dikenali BL2.

Untuk membina FIP, ikut arahan ini

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

Bina FIP dengan menggunakan arahan berikut

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

Menjalankan UEFI pada Perkakasan Intel Stratix 10

Berjalan pada Papan Fizikal dengan Pemuat But ATF dan UEFI

Bahagian ini menerangkan cara menjalankan Monitor Selamat pada papan fizikal.

Hasilkan .sof file dengan ATF

  1. Dapatkan .sof file daripada direktori pemasangan $SOCEDS_DEST_ROOT.
  2. Tukarkan binari file bl2.bin, dijana dalam Membina ATF.
    • aarch64-linux-gnu-objcopy -I binari -O ihex – \-change-addresses 0xffe00000 bl2.bin bl2.hex
  3. Sertakan pemuat but ke dalam .sof file seperti berikut:
    • 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

Maklumat Berkaitan

  • Membina ATF.

Mencipta Imej Kad SD

  1. Hasilkan Pemuat But UEFI dan FIP seperti dalam Membina Pemuat But UEFI dan Menjana FIP.
  2. Bina Linux dan root file sistem berdasarkan arahan dalam Rocketboard.
  3. Bina imej kad SD:
  • Dapatkan skrip python make_image dan jadikan ia boleh laku
  • Sediakan kandungan sekatan lemak:
    • mkdir lemak && cd lemak
    • cp /linux-socfpga/arch/arm64/boot/Image
    • cp /linux-socfpga/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dtb
  • Sediakan akar file kandungan partition sistem:
    • mkdir rootfs && cd rootfs
    • tar xf /gsrd-console-image-*.tar.xz
  • Buat imej kad 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
    • Imej,socfpga_stratix10_socdk.dtb,num=1,format=fat32,size=500M -s 2G -n sdimage.img
    • Nota: Jika anda sudah mempunyai imej SD dengan partition A2, anda boleh menggantikan FIP file dengan arahan di bawah:
    • sudo dd if =arm-trusted-firmware/build/stratix10/release/fip.bin of=/dev/sdx3
Maklumat Berkaitan
  • Menyusun Kod Sumber UEFI dengan Rantaian Alat Linaro.
  • Membina Pemuat But UEFI.

Menjalankan Monitor Selamat

  1. Kuasakan papan selepas kad SD dimasukkan.
  2. Buka pengaturcara Quartus dan atur cara papan dengan .sof file dijana dalam Menjana .sof File dengan ATF.

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

  • Papan but daripada ATF dan secara automatik memuatkan pemuat but UEFI untuk boot shell UEFI.

Maklumat Berkaitan

  • Hasilkan .sof file dengan ATF.
Menyahpepijat dengan DS

Bahagian ini menerangkan cara memuatkan pemuat but ATF dan UEFI ke papan fizikal melalui DS.

  1. Pastikan anda telah memasang DS. Lancarkan eclipse menggunakan arahan berikut:
    • armds_ide &
  2. Sediakan sambungan nyahpepijat baharu
    • Ilustrasi Langkahintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-8
  3. Selepas konfigurasi selesai, sambungkan ke sasaran.
    • Nota: Anda mesti memprogramkan papan dengan ghrd_1sx280lu2f50e2vg_hps_debug.sof sebelum menyambung ke sasaran.
  4. Dalam konsol arahan DS, anda boleh memuatkan skrip nyahpepijat dengan kandungan berikut untuk memuat turun pemuat but ATF dan UEFI ke papan fizikal.

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

Memulakan Linux

Bahagian ini menunjukkan kepada anda cara untuk boot Linux selepas UEFI memasuki shell UEFI.

Boot dari Shell UEFI

  1. But papan ke atas cangkerang UEFI, seperti yang diterangkan dalam Menjalankan Monitor Selamat.
  2. Setelah shell UEFI dimuatkan, masukkan arahan berikut untuk boot Linux:
    • Imej dtb=socfpga_stratix10_socdk.dtb console=ttyS0,115200 root=/dev/mmcb

Nota: Pastikan imej Linux dan dtb disimpan dalam kad SD.

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

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4Sejarah Semakan Dokumen untuk Panduan Pengguna Pemuat But UEFI Intel Stratix 10 SoC

Versi Dokumen Perubahan
2020.06.19 Mengemas kini bahagian berikut:
  • Keperluan Perkakasan Minimum
  • Keperluan Perisian Minimum
  • Memasang Rangkaian Alat Pengkompil
  • Konfigurasi Pengguna
  • Mendapatkan Kod Sumber Perisian Tegar Arm Trusted
  • Membina ATF
  • Mendapatkan Kod Sumber UEFI
  • Mendapatkan Kod Sumber Platform edk2
  • Menyusun Kod Sumber UEFI dengan Rantaian Alat Linaro
  • UEFI Dijana Files
  • Hasilkan .sof file dengan ATF
  • Mencipta Imej Kad SD
  • Menyahpepijat dengan DS
  • Boot dari Shell UEFI
2019.03.28
  • Menambah bahagian baharu: Membina Monitor Selamat untuk menerangkan but baru stage dan but selamat.
  • Bahagian dikemas kini: UEFI Dijana Files.
  • Menambah bahagian baharu: Menjalankan UEFI pada Perkakasan Intel Stratix 10.
2017.06.19 Keluaran awal.

Perbadanan Intel. Hak cipta terpelihara. Intel, logo Intel dan tanda Intel lain ialah tanda dagangan Intel Corporation atau anak syarikatnya. Intel menjamin prestasi produk FPGA dan semikonduktornya mengikut spesifikasi semasa menurut waranti standard Intel tetapi berhak untuk membuat perubahan pada mana-mana produk dan perkhidmatan pada bila-bila masa tanpa notis. Intel tidak memikul tanggungjawab atau liabiliti yang timbul daripada aplikasi atau penggunaan mana-mana maklumat, produk atau perkhidmatan yang diterangkan di sini kecuali seperti yang dipersetujui secara bertulis oleh Intel. Pelanggan Intel dinasihatkan untuk mendapatkan versi terkini spesifikasi peranti sebelum bergantung pada sebarang maklumat yang diterbitkan dan sebelum membuat pesanan untuk produk atau perkhidmatan. *Nama dan jenama lain boleh dituntut sebagai hak milik orang lain.

ID: 683134
Versi: 2020.06.19

Dokumen / Sumber

intel UG-20080 Stratix 10 SoC UEFI Pemuat But [pdf] Panduan Pengguna
UG-20080 Stratix 10 SoC UEFI Pemuat But, UG-20080, Stratix 10 SoC UEFI Pemuat But, 10 SoC UEFI Pemuat But, UEFI Pemuat But

Rujukan

Tinggalkan komen

Alamat e-mel anda tidak akan diterbitkan. Medan yang diperlukan ditanda *