Vengineerの戯言

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

Raspberry Pi 5の I/O chip、RP1 とは

はじめに

Raspberry Pi 5 にはメインとなるSoCである BCM2712 の他に I/O chip である RP1 なるものも載っています。

今回は、RP1 について調べてみました。

RP1

arch/arm/boot/dts/rp1.dtsi の中を覗いてみたら、下記のような機能が入っていました。

  • raspberrypi,rp1-clocks
  • pl011-axi : rp1_uart0, 1, 2, 3, 4, 5
  • snps,dw-apb-ssi" : rp1_spi0, 1, 2, 3, 4(target/slave), 5, (6), 7, 8
  • snps,designware-i2c : rp1_i2c0, 1, 2, 3, 4, 5, 6
  • raspberrypi,rp1-pwm : rp1_pwm0, 1
  • snps,designware-i2s : rp1_i2s0, 1, 2
  • raspberrypi,rp1-sdio-clk : rp1_sdio_clk0, 1
  • raspberrypi,rp1-adc : rp1_adc
  • raspberrypi,rp1-gpio :
  • cdns,macb : rp1_eth
  • raspberrypi,rp1-cfe : rp1_csi0, 1
  • snps,dwcmshc-sdhci : rp1_mmc0, 1
  • snps,axi-dma-1.01a : rp1_dma
  • snps,dwc3 : rp1_usb0, 1
  • rp1_gpio
  • drm
  • raspberrypi,rp1dsi : rp1_dsi0, 1
  • raspberrypi,rp1vec : rp1_vec
  • raspberrypi,rp1dpi : rp1_dpi

この中で使っている機能は、

  • i2c0: &rp1_i2c0 { };
  • i2c1: &rp1_i2c1 { };
  • i2c2: &rp1_i2c2 { };
  • i2c3: &rp1_i2c3 { };
  • i2c4: &rp1_i2c4 { };
  • i2c5: &rp1_i2c5 { };
  • i2c6: &rp1_i2c6 { };
  • i2s: &rp1_i2s0 { };
  • i2s_clk_producer: &rp1_i2s0 { };
  • i2s_clk_consumer: &rp1_i2s1 { };
  • pwm0: &rp1_pwm0 { };
  • pwm1: &rp1_pwm1 { };
  • spi0: &rp1_spi0 { };
  • spi1: &rp1_spi1 { };
  • spi2: &rp1_spi2 { };
  • spi3: &rp1_spi3 { };
  • spi4: &rp1_spi4 { };
  • spi5: &rp1_spi5 { };
  • csi0: &rp1_csi0 { };
  • csi1: &rp1_csi1 { };
  • dsi0: &rp1_dsi0 { };
  • dsi1: &rp1_dsi1 { };
  • dpi: &rp1_dpi { };
  • vec: &rp1_vec { };

まとめると、

  • USB3 x 2
  • GbE
  • I2C
  • I2S
  • SPI
  • GPIO
  • PWM
  • CSI (MIPI)
  • DSI (MIPI)

です。

下図は、ここ から説明のために引用します。

左側にあるのが RP1 です。RP1からGbEコネクタとUSB 3 (x2)コネクタへ配線しているのが見えます。また、CSI/DSIの2個のコネクタも RP1 と接続しています。

BCM2712 と RP1 は、PCIe Gen2 x4 で接続しています。

おわりに

BCM2712は 28nm、RP1は 40nmで開発したようです。BCM2712 の PCIe は Gen3 ですが、RP1 の PCIe は Gen2 のようです。

追記)、2023.10.07

RP1 の資料

なんと、Cortex M3が2個載っている。下図を説明のために引用します。

Raspberry Pi Nanoに載っているのは、Broadcom BCM2835

追記)、2023.10.10

www.raspberrypi.com

追記)、2023.10.12

RP1のfirmwareはI2C経由でダウンロードされ初期化されるまでは PCIe が使えない。。。この部分の公開の予定は無さそう。