Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

Raspberry Pi Compute Module 4とブート関係の復習

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

先週、Raspberry Pi Compute Module 4がアナウンスされましたね。

 Wireless の有無、RAMサイズ、eMMCサイズによってお値段違う。

ざっくり、

Wirelessなし、1GBRAM/8GB-eMMCで30ドル
Wireless有+5ドル, RAM8GB+45ドル,eMMC32GB+10ドル
= 30 + 5 + 45 + 10 = 90ドル

感じ。

コネクタには、PCIe Gen2 x1 が出ているようで、下記のブログには、Compute Module 4 IO Boardなるものもあって、しっかり、PCIe x1 のコネクタもついていた。

www.raspberrypi.org

ということは、昨日紹介した、Google EdgeTPU Accelerator Module を PCIe Gen2 x1経由で接続できるということだ。

EdgeTPUが載ったI/Oボードがもう出てきた。ただしお値段180ドルなので、親分より2倍以上高い。。あまり意味ないな。。。

 

ちなみに、RasPi って、最初はGPUがブートして、いろいろと初期設定してからCPUをブートするんだよね。下記のツイートでRasPi 3はCortex-A72と書いたけど、RasPi 3はCortex-A53。Cortex-A72はRasPi 4ね。

 RasPi4 も RasPi 3と同じブートシーケンスだと思ったが、GPUが2番目に起動するbootcode.binではなく、onboardEPROMにあるコードに変わったようですね。そのEPROMへのアップデートの手順もチャンと載っていますね。

 RasPiのブート関係のドキュメントを読み直してみたら、いろいろと更新されていた。

例えば、これ。初期のRasPi 2には BCM2836が載っていて、CPUコアはCorex-A7。なので、32ビットLinuxのみ利用可能。その後のRasPi 3では BCM2837 になり、CPUコアはCortex-A53なので 64ビットLinuxで利用可能。RasPi 2も BCM2837に更新。

RasPi 4では、BCM2711になり、CPUコアが Cortex-A53からCortex-72になり高速になった。

 それに、これ。armstub 。これも興味深い。

 RasPi 4はの32ビットLinuxでは、ドキュメントによると、

  • Large Physical Address Extension (LPAE)

により、8GBメモリをサポートしているっぽい。ただし各プロセスは32ビットなので4GBが最大だよね。

 

それから、

ssh or ssh.txt
When this file is present, SSH will be enabled on boot. The contents don't matter, it can be empty. SSH is otherwise disabled by default.

 とかあって、ブート時から ssh ができちゃうんだね。

 

64ビットLinuxでは、省エネのシステムがPSCIというのがお決まりですが、RasPi の 64ビットLinuxでは PSCI をサポートしていません。Linux Kernel の dts (bcm2711.dts)を見ると、PSCIのエントリがないんですよね。。

enable-method = "spin-table";