はじめに
Raspberry Pi 5のSoCはBCM2712です。Raspberry Pi 4のSoCであるBCM2711とどこが違うのかを調べてみました。
BCM2712
arch/arm/boot/dts/bcm2712.dtsi を下記のように整理してみました。
- bcm2712-hvs (vc4) : 割り込み 2835-hvs, 2711-hvs, 2712-hvs
- bcm2712-mop (vc4) : 2835-txp, 2712-mop, 2712-moplet
- bcm2712-moplet (vc4) : 2835-txp, 2712-mop, 2712-moplet
- bcm2712-aon-pinctrl
- bcm2712-pinctrl
- bcm2712-pm : 2835-pm-wdt, 2835-pm, 2711-pm, 2712-pm ("v3d", "peri_image", "h264", "isp")
- bcm2712-hdmi0 : 2835-hdmi, 2711-hdmi0, 2711-hdmi1, 2712-hdmi0, 2712-hdmi1
- bcm2712-hdmi1
- bcm2711-l2-intc : 7271-l2-intc, 2711-l2-intc
- bcm2712-vc6 : cygnus-vc4, 2835, 2711-vc5, 2712-vc6 (VC4 GenX)
- brcm,2712-v3d : 7278, 7268, 2711, 2712
- bcm2712-iommu
- bcm2712-iommuc
- bcm2712-dma : 2835, 2711, 2712
- bcm2712-pcie : pcie0 (x1), pcie1 (x1), pcie2 (x4) : 2711, 2712, 7211, 7278
- bcm7216-pcie-sata-rescal
- bcm2712-mip-intc : mip0, mip1
- bcm2711-genet-v5 : GbE(rgmii) gnet-v1, v2, v3, v4, v5, 7712, 2711, 2712
- brcm,syscon-piarbctl
- raspberrypi,rpivid-vid-decoder
- bcm2712-sdhci : sdio1, sdio2 7425, 7445, 7216, 2712
- bcm2711-emmc2 : sdio0 2835-sdhci, 2711-emmc2, 7211a0-sdhci, sdhci-iproc
- brcmstb-reset
- raspberrypi,pispbe
- brcm2711-dvp : DVP clock制御
- bcm2711-i2c : i2c0, 3, 4, 5, 6, 8
- bcm2711-cprman
- bcm2711-rng200
- bcm2711-avs-monitor
- arm,pl011 : uart0, 2, 3, 4, 5
- bcm2835-system-timer
- bcm2835-mbox
- bcm2835-usb
- bcm2835-sdhost
- bcm2835-pwm : pwm0, 1
- bcm2835-i2s
- bcm2835-spi : spi0, 3, 4, 5, 6
- bcm7038-pwm
- bcm7271-uart : uarta, uartb, uartc
- brcmstb-i2c : ddc0, 1bscd
- brcmstb-gpio
2712 が付いているものは、下記のものです。Raspberry Pi 5 で使われている部分 (VideoCore, HDMI, SDHC/SDIOI) が多いです。
- bcm2712-hvs (vc4) : 割り込み 2835-hvs, 2711-hvs, 2712-hvs
- bcm2712-mop (vc4) : 2835-txp, 2712-mop, 2712-moplet
- bcm2712-moplet (vc4) : 2835-txp, 2712-mop, 2712-moplet
- bcm2712-aon-pinctrl
- bcm2712-pinctrl
- bcm2712-pm : 2835-pm-wdt, 2835-pm, 2711-pm, 2712-pm
- bcm2712-hdmi0 : 2835-hdmi, 2711-hdmi0, 2711-hdmi1, 2712-hdmi0, 2712-hdmi1
- bcm2712-hdmi1
- bcm2712-vc6 : cygnus-vc4, 2835, 2711-vc5, 2712-vc6 (VC4 GenX)
- brcm,2712-v3d : 7278, 7268, 2711, 2712
- bcm2712-iommu
- bcm2712-iommuc
- bcm2712-dma : 2835, 2711, 2712
- bcm2712-pcie : pcie0 (x1), pcie1 (x1), pcie2 (x4) : 2711, 2712, 7211, 7278
- bcm2712-mip-intc : mip0, mip1
- bcm2712-sdhci : sdio1, sdio2 7425, 7445, 7216, 2712
新規は下記だけで、少ないです。
- bcm2712-aon-pinctrl
- bcm2712-pinctrl
- bcm2712-iommu
- bcm2712-iommuc
I/O MMU が追加されました。
- iommu2 : PISP-BE, HEVC; H264 accelerators
- iommu4 : HVS, MPL/TXP ; Unicam, PISP-FE, MiniBVN
- iommu5 : PCIe2 (RP1); and (unused) BSTM
PCIe
BCM2711 では、PCIe RootComplex は 1つ (x1) ですが、BCM2712 では、PCIe Root Complex は 3つです。
- pcie0 : x1
- pcie1 : x1 (ボード上のコネクタ)
- pcie2 ; x4 => RP1 との接続
Gen3 のようです。
おわりに
BCM2712単体でも使えるようですが、RP1と一緒に使うとより機能を増やせる感じですかね。また、BCM2712 単体でもそれなりの機能があるのでもしかしたら、BCM2712 単体のボードも出てくるかもしれませんね。