@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそ、すべては、SystemC v0.9公開から始まった
はじめに
今日は、github のとあるところで見つけた、Apple A13 (iPhone 11 Pro) の Device Tree を探っていきます。
Device Treeって、Linux では、arch/arm64/boot/dts の下にあるようなファイルです。Linux では、ARMより前に、PowerPCの方が先で 昔流行った kurobox の dts ファイルの最初のバージョンは、10 Feb 2007 になっています。あたしが Linux に興味を持ったのは、1997年頃なのでそれよりも10年経ってからですね。
Device Tree は、Linuxでは PowerPCの方が先ですが、もっと古い情報は、ここ にありました。この 3ページ目にあるものを以下に引用します。
- Sun Microsystems - Open Boot / OpenFirmware (1988)
- Used in SPARC systems
- Uses DT to describe hardware
- IEEE-1275 formalized specification (1994) Documents DT
- Apple adopts Open Firmware on Power Mac 7200 (1995) using DT
- Common Hardware Reference Platform (CHRP) specifies DT (1995)
- ePAPR specifies DT (2008)
これを見ると、PowerPCの前がSunですね。Open Boot / OpenFirmware ですね。あたしもこの頃、Sun 関連をやっていましたが、そういうものがあるねという程度だったんですよね。
その後、Linuxでお世話になるとは思いもよらなかったです。
Apple A13 (iPhone 11 Pro) の Device Tree
Apple の製品でも、Device Tree が使われているのを知ったので、Google 君にいろいろと聞いてみたら、見つけました。
この Device Tree からわかったことは、
- CPU 関連
- eCore の方が CPUの番号とClusterの番号が若い
- eCore の L2は4MB、pCore の L2は8MB (公開情報)
- BootするCPUは、CPU-0 なので、eCore
- Memory 関連
- メモリは、0x8_0000_0000 から
- Hynix製
- pram (Parameter RAM/NVRAM) や Video RAM も メモリにある
- Coprocessor の命令コードも メモリにある
- 各種アクセラレータ
- I/O
終わりに
Device Tree からある程度ハードウェアの構成が分かります。この情報と、テカナリエレポートの分解解析レポートをにらめっこしながらいろいろと妄想すると、めっちゃ面白いですよ。
Apple M1の Device Tree も見たいのですが、Boot Message をパブリックにするのって、規約違反なんでしょうかね。
What happens when an M1 Mac starts up? に、Boot Message の一部が載っていましたが、全部知りたいです。