intel-лагатып

Загрузнік Intel UG-20080 Stratix 10 SoC UEFI

intel-UG-20080-Stratix-10-SoC -Загрузны-прадукт

Скончанаview

У гэтым дакуменце прадстаўлена вычарпальная інфармацыя аб загрузніку Unified Extensible Firmware Interface (UEFI) для Intel Stratix 10 SoC. Intel Stratix 10 SoC забяспечвае бяспечны паток загрузкі, які складаецца з

  • Загрузны дыск
  • Дыспетчар бяспечных прылад (SDM)
  • Бяспечны манітор
  • Загрузнік UEFI

Бяспечны паток загрузкі Intel Stratix 10 SoC гарантуе, што загрузнік сістэмы падпісаны крыптаграфічным ключом, пацверджаным прашыўкай. Бяспечны манітор stage таксама рэалізуе мадэль бяспечнага падзелу TrustZone*. Гэтая мадэль дзеліць праграмнае асяроддзе на дзве ізаляваныя часткі, якія называюцца бяспечным і небяспечным светам. Два светы могуць мець зносіны адзін з адным толькі праз Secure Monitor. Двайковы вобраз загрузніка UEFI можна захоўваць на флэш-карце SD/MMC Quad SPI. Пры ўключэнні харчавання дыспетчар бяспечных прылад (SDM) загружае бяспечны манітор непасрэдна ў аператыўную памяць жорсткага працэсара (HPS). Затым Secure Monitor загружае загрузчык UEFI у памяць HPS DDR.

Задачы Secure Monitor ўключаюць

  • Ініцыялізацыя памяці DDR SDRAM
  • Канфігурацыя апаратнага забеспячэння нізкага ўзроўню, такога як PLL, IO і pin MUX, неабходнае для неабароненага праграмнага забеспячэння

Задачы загрузніка UEFI ўключаюць у сябе

  • Забеспячэнне падтрымкі Ethernet
  • Падтрымка асноўных функцый дыягностыкі абсталявання
  • Атрыманне праграмнага забеспячэння для наступнай загрузкі, напрыклад пакета аперацыйнай сістэмы або выявы ядра.

Заўвага: Для неабароненай загрузкі пакет аперацыйнай сістэмы можа ўключаць вобраз ядра, блоб дрэва прылад і fileсістэма. Для бяспечнай загрузкі гэта можа быць бяспечнае ядро.

Паток загрузкі UEFI завершаныview

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

Сістэмныя патрабаванні

Каб загрузіць і запусціць загрузнік Intel Stratix 10 SoC Unified Extensible Firmware Interface (UEFI), ваша сістэма павінна адпавядаць наступным патрабаванням.

Мінімальныя патрабаванні да абсталявання

  • Працоўная станцыя Linux з наступнай канфігурацыяй:
    • Паслядоўны тэрмінал, напрыклад Minicom для Linux
    • Слот для карты microSD або прылада запісу для карты microSD або прылада запісу з падтрымкай SD з пераўтваральнікам SD у microSD

Магчымасці платформы

  Linux
Магчымасць кампіляцыі загрузніка UEFI так
Магчымасць кампіляцыі Secure Monitor так

Мінімальныя патрабаванні да праграмнага забеспячэння

  • Intel® SoC FPGA Embedded Development Suite (SoC EDS) v18.1 і вышэй
  • Ланцужок інструментаў Linaro aarch64-linux-gnu-gcc

Пачатак працы

Ўстаноўка праграмных кампанентаў

Ўстаноўка Intel SoC EDS

  • Вы павінны ўсталяваць Intel SoC EDS на сваёй машыне.
  • Спампуйце Intel SoC EDS з Цэнтра загрузкі FPGA.

Устаноўка кампілятара Toolchain

Вы кампілюеце загрузнік UEFI і Secure Monitor з GNU Toolchain (выпуск EABI) для працэсараў Arm*. Вы можаце спампаваць GNU Toolchain са старонкі загрузкі Arm.

  • Linux: gcc-arm-8.3-2019.03-x86_64-aarch64-Linux-gnu.tar.xz
Стварэнне бяспечнага манітора

Па меры таго, як бяспека становіцца ўсё больш і больш важнай, абароненае рашэнне для загрузкі становіцца абавязковым патрабаваннем у свеце ўбудаваных праграм. Каб забяспечыць поўную бяспеку і надзейную платформу, неабходны бяспечны раздзел. Прылада Intel Stratix 10 забяспечвае бяспечнае раздзяленне за кошт укаранення мадэлі TrustZone з прашыўкай Arm Trusted Firmware (ATF). Мадэль TrustZone падзяляе вылічальнае асяроддзе на два ізаляваных свету, бяспечны свет і нармальны свет, якія злучаны праграмным маніторам пад назвай Secure Monitor. Два светы падзялілі лагічную адрасную прастору і перыферыйныя прылады. Сувязь паміж двума светамі магчымая толькі праз выклік прывілеяванай інструкцыі Secure Monitor Call (SMC).

Рашэнне поўнай бяспечнай загрузкі

  • BootRom
  • Дыспетчар бяспечных прылад
  • Бяспечны манітор
  • Uboot/UEFI
  • Гіпервізар
  • OS

Рэжым бяспечнага манітора - гэта прывілеяваны рэжым, які заўсёды бяспечны, незалежна ад стану біта NS. Secure Monitor - гэта код, які працуе ў рэжыме Secure Monitor і апрацоўвае пераключэнні ў бяспечны свет і з яго. Агульная бяспека праграмнага забеспячэння залежыць ад бяспекі гэтага кода разам з кодам бяспечнай загрузкі.

Звязаная інфармацыя

Агульная інфармацыя аб прашыўцы Arm Trusted

Канфігурацыя карыстальніка

Вы можаце знайсці ўсе канфігурацыі платформы ў arm-trusted-firmware/plat/intel/soc/stratix10/include/socfpga_plat_def.h. Для канфігурацыі карыстальніка вы павінны змяніць крыніцы загрузкі ў адпаведнасці з вашымі перавагамі. Вы выбіраеце BOOT_SOURCE_SDMMC пры загрузцы з SDMMC або выбіраеце BOOT_SOURCE_QSPI пры загрузцы з QSPI.

  • #define BOOT_SOURCE BOOT_SOURCE_SDMMC

Заўвага: Каб змяніць загрузку fileімя або зрушэнне, вы можаце змяніць #define у ​​гэтым file.

Атрыманне зыходнага кода прашыўкі Arm Trusted

Крыніца ATF знаходзіцца на GitHub. Каб атрымаць зыходны код ATF, проста выканайце наступныя дзеянні

  1. Адкрыйце тэрмінал.
  2. Стварыце новы каталог, каб праверыць зыходны код ATF з GitHub.
  3. Перайдзіце ў гэты працоўны каталог і клануйце крыніцу ATF з дрэў Git наступным чынам:
  4. Пасля завяршэння перайдзіце ў тэчку arm-trusted-firmware і выканайце праверку Git наступным чынам:
    • cd arm-trusted-прашыўка
    • git праверка socfpga_v2.1

Звязаная інфармацыя

  • Будаўніцтва ATF.
  • Кампіляцыя зыходнага кода UEFI з дапамогай ланцужка інструментаў Linaro.
  • Запуск бяспечнага манітора.

Будаўніцтва ATF

У гэтым раздзеле апісваецца, як стварыць ATF з дапамогай кампілятара Linaro GCC. Каб пачаць стварэнне ATF з кампілятарам Linaro GCC, проста выканайце наступныя крокі

  1. Зменіце свой каталог на размяшчэнне зыходнага кода ATF наступным чынам:
    • cd arm-trusted-прашыўка
  2. Усталюйце шлях GCC і зменную асяроддзя CROSS_COMPILE для крос-кампіляцыі Linaro наступным чынам: export PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • экспарт ARCH=arm64
    • экспарт CROSS_COMPILE=aarch64-linux-gnu-
  3. Выдаліце ​​​​дрэва зборкі цалкам наступным чынам:
    • зрабіць realclean
  4. Стварыце ATF з дапамогай наступнай каманды:
    • зрабіць PLAT=stratix10 bl2 bl31
  5. Наступныя паведамленні з'яўляюцца, калі зборка ATF праходзіць паспяховаintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-5
  6. У табліцы ніжэй пералічаны выхад Secure Monitor files.

Апісанне Secure Monitor Files

File Шлях і імя Апісанне
\build\stratix10\release\bl31.bin Згенераваны двайковы файл file
\build\stratix10\release\bl31\bl31.elf Створаны эльф file
\build\stratix10\release\bl2.bin Згенераваны двайковы файл file
\build\stratix10\release\bl2\bl2.elf Створаны эльф file

Стварэнне загрузчыка UEFI

Каб пабудаваць загрузнік UEFI, вы атрымаеце зыходны код UEFI і скампілюеце зыходны код UEFI з падтрымоўваным наборам інструментаў.

Уніфікаваны пашыраемы інтэрфейс прашыўкі (UEFI) - гэта стандартызаваная спецыфікацыя прашыўкі, якая спрашчае і забяспечвае ініцыялізацыю платформы і аперацыі загрузкі прашыўкі. У цяперашні час UEFI распрацоўваецца і падтрымліваецца прадстаўнікамі больш чым 250 вядучых тэхналагічных кампаній. Arm і Linaro Enterprise Group таксама прасоўваюць выкарыстанне UEFI на архітэктуры Arm, таму што спецыфікацыя UEFI дапамагае стандартызаваць працэс загрузкі для платформаў на аснове працэсараў Arm. Тэхналогія UEFI разлічана на будучыню праз стандартызацыю дызайну прашыўкі, а не прапрыетарнага дызайну прашыўкі. Спецыфікацыі UEFI спрыяюць дзелавой і тэхналагічнай эфектыўнасці, павышаюць прадукцыйнасць і бяспеку, палягчаюць узаемадзеянне паміж прыладамі, платформамі і сістэмамі і адпавядаюць тэхналогіям новага пакалення. Спецыфікацыя UEFI аднарангаваяviewвыдадзены і апублікаваны, што дазваляе распрацоўшчыкам пісаць убудаванае праграмнае забеспячэнне адзін раз для кожнай платформы і выкарыстоўваць яго паўторна без асаблівых змяненняў. Гэта паўторнае выкарыстанне прыводзіць да эканоміі сродкаў і часу падчас распрацоўкі загрузніка. Гэты фрэймворк выкарыстоўвае ліцэнзію BSD, што дазваляе вам па жаданні камерцыялізаваць сваю рэалізацыю з мінімальнымі юрыдычнымі праблемамі. Вы можаце скампіляваць зыходны код UEFI альбо ў сістэме Windows, альбо ў сістэме Linux.

Перадумовы

Стварэнне UEFI патрабуе дадатковых пакетаў Linux. У залежнасці ад вашага дыстрыбутыва Linux, каманда для ўстаноўкі пакетаў адрозніваецца:

Калі вы выкарыстоўваеце дыстрыбутыў Ubuntu, увядзіце

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

Калі вы выкарыстоўваеце дыстрыбутыў Fedora, увядзіце

  • sudo yum усталяваць uuid-devel libuuid-devel

Для стварэння UEFI патрабуецца пакет Python. Калі Python яшчэ не даступны ў вашай сістэме, выкананне каманд з убудаванай каманднай абалонкі SoC EDS забяспечвае неабходную залежнасць Python.

Атрыманне зыходнага кода UEFI

Зыходны код UEFI знаходзіцца ў GitHub. Наступныя крокі паказваюць, як атрымаць зыходны код UEFI.

  1. Адкрыйце тэрмінал.
  2. Клануйце крыніцу UEFI з дрэў Git.
  3. Пасля завяршэння перайдзіце ў тэчку edk2 і выканайце праверку Git.
    • cd edk2
    • git праверка socfpga_udk201905

Зыходны код платформы edk2 знаходзіцца на GitHub. Каб атрымаць зыходны код платформы edk2

Кампіляцыя зыходнага кода UEFI з дапамогай ланцужка інструментаў Linaro

У гэтым раздзеле тлумачыцца, як скампіляваць зыходны код UEFI з ланцужком інструментаў Linaro ў сістэме Linux

  1. Адкрыйце тэрмінал і ўвядзіце наступную каманду:
    • кд
    • экспарт PATH= /\gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/:$PATH
    • экспартаваць CROSS_COMPILE= aarch64-linux-gnu-
    • экспарт ARCH=arm64
    • экспарт GCC48_AARCH64_PREFIX=aarch64-linux-gnu-
  2. Наладзьце EDK_TOOLS_PATH:
    • экспарт EDK_TOOLS_PATH=$PWD/edk2/BaseTools
  3. Наладзьце PACKAGES_PATH, каб паказваць на размяшчэнне сховішчаў:
    • экспарт PACKAGES_PATH= $PWD/edk2:$PWD/edk2-платформы/
  4. Наладзьце ПРАЦОЎНУЮ ПРАСЛОГУ:
    • экспарт WORKSPACE = $PWD
  5. Наладзьце асяроддзе зборкі:
    • edk2/edksetup.sh
  6. Стварыце BaseTools (упэўніцеся, што інструменты Python усталяваны):
    • зрабіць -C edk2/BaseTools
  7. Скампілюйце загрузнік UEFI, увёўшы наступную каманду:
    • 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. Пасля паспяховай кампіляцыі UEFI ваш тэрмінал адлюстроўвае паведамленне «Зборка выканана».
Створаны UEFI Files

Кампіляцыя зыходнага кода UEFI стварае наступнае files у тэчцы /Build/ Stratix10SoCPkg/RELEASE_GCC48:

Створаны UEFI Files

File Апісанне
INTELSTRATIX10_EFI.fd гэта file гэта загрузнік UEFI для загрузкі абалонкі UEFI і ўключэння функцыі Ethernet або запуску прыкладання UEFI
Стварэнне FIP

FIP - гэта карысная нагрузка, якую BL2 ATF загружае ў аператыўную памяць і выконвае. FIP змяшчае двайковы файл для загрузніка BL31 і UEFI, а таксама кантэйнер, які распазнае BL2.

Каб пабудаваць FIP, выканайце наступныя каманды

  • экспарт ARCH = ARM64
  • экспартаваць CROSS_COMPILE= aarch64-linux-gnu-
  • кд

Стварыце FIP з дапамогай наступнай каманды

  • зрабіць fip BL33= /Build/Stratix10SoCPKG/\DEBUG_GCC48/FV/INTELSTRATIX10_EFI.fd fip PLAT=stratix10

Запуск UEFI на абсталяванні Intel Stratix 10

Запуск на фізічнай плаце з ATF і загрузчыкам UEFI

У гэтым раздзеле апісваецца, як запусціць Secure Monitor на фізічнай плаце.

Стварыць .sof file з ATF

  1. Атрымаць .sof file з каталога ўстаноўкі $SOCEDS_DEST_ROOT.
  2. Пераўтварыце двайковы код file bl2.bin, згенераваны ў Building the ATF.
    • aarch64-linux-gnu-objcopy -I binary -O ihex – \-change-addresses 0xffe00000 bl2.bin bl2.hex
  3. Уключыце загрузнік у файл .sof file наступным чынам:
    • 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

Звязаная інфармацыя

  • Будаўніцтва ATF.

Стварэнне выявы SD-карты

  1. Стварыце загрузчык UEFI і FIP, як у раздзеле "Стварэнне загрузніка UEFI і стварэнне FIP".
  2. Зборка Linux і root file сістэма на аснове інструкцый у Rocketboard.
  3. Стварыце вобраз SD-карты:
  • Атрымайце скрыпт пітона make_image і зрабіце яго выканальным
  • Падрыхтуйце змесціва тлушчавай перагародкі:
    • mkdir fat && cd fat
    • cp /linux-socfpga/arch/arm64/boot/Image
    • cp /linux-socfpga/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dtb
  • Нарыхтуйце корань file змест сістэмнага падзелу:
    • mkdir rootfs && cd rootfs
    • tar xf /gsrd-console-image-*.tar.xz
  • Стварыце вобраз 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
    • Выява,socfpga_stratix10_socdk.dtb,num=1,format=fat32,size=500M -s 2G -n sdimage.img
    • Заўвага: Калі ў вас ужо ёсць вобраз SD з раздзелам A2, вы можаце замяніць FIP file з дапамогай каманды ніжэй:
    • sudo dd if =arm-trusted-firmware/build/stratix10/release/fip.bin of=/dev/sdx3
Звязаная інфармацыя
  • Кампіляцыя зыходнага кода UEFI з дапамогай ланцужка інструментаў Linaro.
  • Стварэнне загрузчыка UEFI.

Запуск бяспечнага манітора

  1. Уключыце плату пасля ўстаўкі SD-карты.
  2. Адкрыйце праграміст Quartus і запраграмуйце плату з дапамогай .sof file згенераваны ў Стварэнне .sof File з ATF.

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

  • Плата загружаецца з ATF і аўтаматычна загружае загрузчык UEFI для загрузкі абалонкі UEFI.

Звязаная інфармацыя

  • Стварыць .sof file з ATF.
Адладка з DS

У гэтым раздзеле апісваецца, як загрузіць загрузнік ATF і UEFI на фізічную плату праз DS.

  1. Пераканайцеся, што вы ўсталявалі DS. Запусціце Eclipse з дапамогай наступнай каманды:
    • armds_ide &
  2. Наладзьце новае злучэнне для адладкі
    • Крок Ілюстрацыяintel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-8
  3. Пасля завяршэння канфігурацыі падключыцеся да мэты.
    • Заўвага: Вы павінны запраграмаваць плату з дапамогай ghrd_1sx280lu2f50e2vg_hps_debug.sof перад падключэннем да мэты.
  4. У каманднай кансолі DS вы можаце загрузіць скрыпт адладкі з наступным змесцівам для загрузкі загрузніка ATF і UEFI на фізічную плату.

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

Загрузка Linux

У гэтым раздзеле паказана, як загрузіць Linux пасля ўваходу UEFI ў абалонку UEFI.

Загрузка з абалонкі UEFI

  1. Загрузіце плату да абалонкі UEFI, як апісана ў раздзеле Запуск бяспечнага манітора.
  2. Пасля загрузкі абалонкі UEFI увядзіце наступную каманду для загрузкі Linux:
    • Выява dtb=socfpga_stratix10_socdk.dtb кансоль=ttyS0,115200 корань=/dev/mmcb

Заўвага: Пераканайцеся, што вобраз Linux і dtb захоўваюцца на SD-карце.

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

intel-UG-20080-Stratix-10-SoC -Boot-Loader-fig-4Гісторыя версій дакумента для Intel Stratix 10 SoC UEFI Boot Loader Кіраўніцтва карыстальніка

Версія дакумента Змены
2020.06.19 Абноўлены наступныя раздзелы:
  • Мінімальныя патрабаванні да абсталявання
  • Мінімальныя патрабаванні да праграмнага забеспячэння
  • Устаноўка кампілятара Toolchain
  • Канфігурацыя карыстальніка
  • Атрыманне зыходнага кода прашыўкі Arm Trusted
  • Будаўніцтва ATF
  • Атрыманне зыходнага кода UEFI
  • Атрыманне зыходнага кода платформы edk2
  • Кампіляцыя зыходнага кода UEFI з дапамогай ланцужка інструментаў Linaro
  • Створаны UEFI Files
  • Стварыць .sof file з ATF
  • Стварэнне выявы SD-карты
  • Адладка з DS
  • Загрузка з абалонкі UEFI
2019.03.28
  • Дададзены новы раздзел: Стварэнне бяспечнага манітора для апісання новых загрузных сtage і бяспечная загрузка.
  • Абноўлены раздзел: Створаны UEFI Files.
  • Дададзены новы раздзел: Запуск UEFI на абсталяванні Intel Stratix 10.
2017.06.19 Першапачатковы выпуск.

Карпарацыя Intel. Усе правы ахоўваюцца. Intel, лагатып Intel і іншыя знакі Intel з'яўляюцца гандлёвымі маркамі карпарацыі Intel або яе даччыных кампаній. Intel гарантуе прадукцыйнасць сваёй FPGA і паўправадніковай прадукцыі ў адпаведнасці з бягучымі спецыфікацыямі ў адпаведнасці са стандартнай гарантыяй Intel, але пакідае за сабой права ўносіць змены ў любыя прадукты і паслугі ў любы час без папярэдняга паведамлення. Intel не нясе ніякай адказнасці або абавязацельстваў, якія вынікаюць з прымянення або выкарыстання любой інфармацыі, прадукту або паслугі, апісаных тут, за выключэннем выпадкаў, прама ўзгодненых Intel у пісьмовай форме. Кліентам Intel рэкамендуецца атрымаць апошнюю версію спецыфікацый прылады, перш чым спадзявацца на любую апублікаваную інфармацыю і перад размяшчэннем заказаў на прадукты ці паслугі. *Іншыя назвы і брэнды могуць быць заяўлены як уласнасць іншых.

ID: 683134
Версія: 2020.06.19

Дакументы / Рэсурсы

Загрузнік Intel UG-20080 Stratix 10 SoC UEFI [pdfКіраўніцтва карыстальніка
UG-20080 Stratix 10 SoC UEFI Boot Loader, UG-20080, Stratix 10 SoC UEFI Boot Loader, 10 SoC UEFI Boot Loader, UEFI Boot Loader

Спасылкі

Пакінуць каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя для запаўнення палі пазначаны *