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が次の図のように各アプリケーションを起動します。
Linuxシステムが起動するまでに次のアプリケーションが起動されます。
つまり、これらのアプリケーションをあらかじめ用意しておくか、ビルドする必要があります。
さらにこれらのアプリケーションはバージョン依存があるので2019.2という
FSBL(First Stage Boot Loader)はVivadoで生成できるXSAファイルに含まれるpsu_init_gpl.cを元にZynqMPSoCを起動する最低限の設定などを行います。
FSBLはVitisでビルドします。
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はYocto Projectでビルドします。
ARM Trusted Firmwareの理解を深めるのなら次のドキュメントを読むことになるのでしょう。
u-bootはLinux Kernelを起動するためのBoot Loaderです。
FSBLがあるのでSecond Stage Boot Loaderとも呼ばれたりすることもあるみたいです。
u-bootはYocto Projectでビルドします。
Linux KernelはLinuxシステムのOSにあたります。
Linux KernelもYocto Projectでビルドします。
次回は「FSBLのビルド」を勉強しましょう。
Tweet write: 2020/01/13/ 00:00:00