Vitisなんか勉強したくない(2日目・おまけ)

ZYNQ UltraScale+を動かすファイルはたくさんあるけど…

どんな風にブートするんだろう?

そういえば、BOOT.BINの中身ってどんな風にブートするんだろう?

  1. CSUがBOOT.BINを読み出して、FSBL(First Stage Boot Loader)とPMU(pmufw.elf: Platform Management Unit Firmware)をロードする。
  2. FSBLはAPUまたはRPUにロードして実行
  3. PMUはPMUロードして実行
  4. ATF(bl31.elf: ARM Trusted Firmware)をロードして実行
  5. u-bootをロードして実行
  6. u-bootがLinux(image.ub)をロードして実行

PMU:Platform Management Unitの略

CSU:Configuration Security Unitの略

RPU:Realtime Processing Unitの略

APU:Application Processing Unitの略

u-bootってなんのためにあるの?

u-bootは高機能なブートローダと紹介されることが多いけど、ZYNQのブートにあたってなにか役に立ってる?

LinuxをネットワークブートやUSBブートするなら役に立つけど、ZYNQを使う約99%の人がu-bootを無駄に使ってない。

他のマイコンだと、FSBLで大きなファイルをロードできないからセカンドブートローダ(u-bootなど)にLinuxが格納されているデバイスのドライバを持たせて、Linuxをセカンドブートするというのは非常に理解できる。

ZYNQの場合、BOOT.BINを読み込んでいる時点でNAND Flash MemoryやSDKカード、eMMCなどをファイルシステムで読み込めてしまうのでu-bootの存在意義があまりない。

ただ単にブートのレイテンシを稼いでいるだけだと思う。

Linuxを直接、起動すればいいじゃないの?

write: 2021/01/22/ 23:00:01