Let's Vitis(4) - ZynqMPSoCのブート

Linuxディストリビューションを作成する前に、ZynqMPSoCのブート手順などを確認してみました。

ZynqMPSoCには次の3つのCPUと1つのユニットがあります。

  • Cortex-A53×4

  • Cortex-R5×2

  • Power Management Unit(MicroBlaze)

  • Configuration Security Unit

このうち、ブートはCortex-A53、Power Management Unit、Configuration Security Unitが次の図のように各アプリケーションを起動します。

ZynqMPSoCのブート

Linuxシステムが起動するまでに次のアプリケーションが起動されます。

  • FSBL(First Stage Boot Loader)
  • PMU Firmware
  • ARM Trusted Firmware
  • u-boot
  • Linux Kernel

つまり、これらのアプリケーションをあらかじめ用意しておくか、ビルドする必要があります。

さらにこれらのアプリケーションはバージョン依存があるので2019.2という

FSBL

FSBL(First Stage Boot Loader)はVivadoで生成できるXSAファイルに含まれるpsu_init_gpl.cを元にZynqMPSoCを起動する最低限の設定などを行います。

FSBLはVitisでビルドします。

PMU Firmware

PMU FirmwareはPMUを実行するアプリケーションです。

2018.3まではVivado SDKでビルドしていましたが2019.1からはYocto Projectでビルドします。

PMUの理解を深めるのなら次のドキュメントを読むことになるのでしょう。

「Zynq Power Management Framework User Guide - For Zynq UltraScale+ MPSoC Devices」

https://www.xilinx.com/support/documentation/user_guides/ug1199-zynq-power-management.pdf

ARM Trusted Firmware

ARM Trusted FirmwareはYocto Projectでビルドします。

ARM Trusted Firmwareの理解を深めるのなら次のドキュメントを読むことになるのでしょう。

http://infocenter.arm.com/help/topic/com.arm.doc.dui0928e/DUI0928E_juno_arm_development_platform_gsg.pdf

u-boot

u-bootはLinux Kernelを起動するためのBoot Loaderです。

FSBLがあるのでSecond Stage Boot Loaderとも呼ばれたりすることもあるみたいです。

u-bootはYocto Projectでビルドします。

Linux Kernel

Linux KernelはLinuxシステムのOSにあたります。

Linux KernelもYocto Projectでビルドします。

次回予告

次回は「FSBLのビルド」を勉強しましょう。

write: 2020/01/13/ 00:00:00