Vengineerの妄想(準備期間)

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

Tesla FSD (HW4)

はじめに

Twitterを眺めていたら、見つけました。Tesla FSD 、HW4のボード写真。記録として残します。

FSD HW3

このブログでも FSD については、下記のようにアップしています。

vengineer.hatenablog.com

vengineer.hatenablog.com

FSD HW4

CPUコアが 4 コア x 3 クラスターの12コアから 4コア x 5 クラスターの20コアに。アクセラレータ(NPU)も2個から3個に

下図は上記のTweetからの説明のために引用します。

バイス・ツリーは、ここにあるようです。

pastebin.com

GPU は、Arm Mali-midgard です。

     mali0@27100000 {
            compatible = "arm,mali-midgard";
            reg = <0x00 0x27100000 0x00 0x5000>;
            interrupts = <0x00 0x1ea 0x04 0x00 0x1eb 0x04 0x00 0x1ec 0x04>;
            interrupt-names = "JOB\0MMU\0GPU";
            clocks = <0x62 0x01>;
            clock-names = "clk_gpu";
            system-coherency = <0x01>;
            status = "okay";
            low-latency;
        };

HW3の時は、Mali-T880-MP16 のようでした。

Mali C71 なるものも2つあります。各C71に対して、4コア + Memory Controller の割り込みがあるようです。

Mali C71AE : オートモーティブおよび産業用アプリケーション対応のイメージ信号処理

     isp@0x22840000 {
            compatible = "arm,mali-c71";
            reg = <0x00 0x22840000 0x00 0x20000>;
            reg-names = "isp_reg";
            interrupts = <0x00 0x6e 0x04 0x00 0x6f 0x04 0x00 0x70 0x04 0x00 0x71 0x04 0x00 0x72 0x04 0x00 0x73 0x04>;
            interrupt-names = "CORE0\0CORE1\0CORE2\0CORE3\0MEM_ECC1\0MEM_ECC2";
            clocks = <0x7f 0x01>;
            clock-names = "clock_isp0";
            iommus = <0x80 0x00>;
            status = "okay";
        };
 
        isp@0x22C40000 {
            compatible = "arm,mali-c71";
            reg = <0x00 0x22c40000 0x00 0x20000>;
            reg-names = "isp_reg";
            interrupts = <0x00 0x82 0x04 0x00 0x83 0x04 0x00 0x84 0x04 0x00 0x85 0x04 0x00 0x86 0x04 0x00 0x87 0x04>;
            interrupt-names = "CORE0\0CORE1\0CORE2\0CORE3\0MEM_ECC1\0MEM_ECC2";
            clocks = <0x81 0x01>;
            clock-names = "clock_isp1";
            iommus = <0x82 0x00>;
            status = "okay";
        };

Mali-C71デバイスドライバここにありました。

メモリは、LPDDR4 から GDDR6 になったようです。表と裏に各4個。2個2GBのようなので、16GB。

PCI Express、Endpoint だけじゃなくて、Root Complex もあります。アドレスは同じなので、PCI Express の IP は全部で4つのようです。PHYは2個で、PCIe IP2個で1つのPHYになっているっぽいです。

     pcierc0 = "/soc/pcie@7F800000";
        pcieep0 = "/soc/pcie_ep@7F800000";
        pcierc1 = "/soc/pcie@7F900000";
        pcieep1 = "/soc/pcie_ep@7F900000";
        pcierc2 = "/soc/pcie@7FA00000";
        pcieep2 = "/soc/pcie_ep@7FA00000";
        pcierc3 = "/soc/pcie@7FB00000";
        pcieep3 = "/soc/pcie_ep@7FB00000";
        pciephy0 = "/soc/pcie-phy@7FC60000";
        pciephy1 = "/soc/pcie-phy@7FC70000";

ホストシステムはAMDベースのようで、PCI Express で繋がっているんでしょうかね。

おわりに

HW4の真ん中下にICがあるんですが、これはなんでしょうかね。