Browse Source

configs/raspberrypicm5io: new defconfig

This configuration builds an image for the Compute Module 5 IO Board.

Note: Unlike the Raspberry Pi 5 and its dedicated debug uart connector,
the kernel console on Compute Module 5 IO Board is back to UART0
(ttyAMA0) on PIN8 (GPIO14, TX, yellow) and PIN10 (GPIO15, RX, orange) on
the 40-pin header, as the former version of the Raspberry Pi.

Signed-off-by: Gaël PORTAY <gael.portay+rtone@gmail.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
Gaël PORTAY 2 tháng trước cách đây
mục cha
commit
fd5628e5dc

+ 24 - 0
board/raspberrypi/config_cm5io.txt

@@ -0,0 +1,24 @@
+# Please note that this is only a sample, we recommend you to change it to fit
+# your needs.
+# You should override this file using BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE.
+# See http://buildroot.org/manual.html#rootfs-custom
+# and http://elinux.org/RPiconfig for a description of config.txt syntax
+
+kernel=Image
+
+# To use an external initramfs file
+#initramfs rootfs.cpio.gz
+
+# Disable overscan assuming the display supports displaying the full resolution
+# If the text shown on the screen disappears off the edge, comment this out
+disable_overscan=1
+
+# enable RTC
+dtparam=i2c_vc=on
+dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi
+
+# enable dwc2 USB controller (USB 2.0)
+dtoverlay=dwc2,dr_mode=host
+
+# Enable UART0 for serial console on ttyAMA0
+dtparam=uart0_console=on

+ 37 - 0
board/raspberrypi/readme.txt

@@ -20,6 +20,7 @@ These instructions apply to all models of the Raspberry Pi:
   - the model CM4s (aka Raspberry Pi Compute Module 4s).
   - the model B5 (aka Raspberry Pi 5).
   - the model 500 (aka Raspberry Pi 500).
+  - the model CM5 (aka Raspberry Pi Compute Module 5 and IO Board).
 
 How to build it
 ===============
@@ -86,6 +87,10 @@ For model 5 B and 500:
 
   $ make raspberrypi5_defconfig
 
+For model CM5 (on IO Board):
+
+  $ make raspberrypicm5io_defconfig
+
 Build the rootfs
 ----------------
 
@@ -123,6 +128,8 @@ After building, you should obtain this tree:
     +-- bcm2712-rpi-5-b.dtb         [1]
     +-- bcm2712d0-rpi-5-b.dtb       [1]
     +-- bcm2712-rpi-500.dtb         [1]
+    +-- bcm2712-rpi-cm5-cm5io       [1]
+    +-- bcm2712-rpi-cm5l-cm5io      [1]
     +-- boot.vfat
     +-- rootfs.ext4
     +-- rpi-firmware/
@@ -197,3 +204,33 @@ for CM4 modules with eMMC memory proceed as following:
 - power down CM4/IO Board
 - remove jumper on IO Board header J2 to re-enable eMMC boot
 - power up CM4/IO Board
+
+CM5 debug UART
+==============
+
+The debug UART header is not assembled on the Compute Module 5.
+
+	2.23. Debug UART
+
+	Space is provided for the user to fit a debug UART connector. This
+	connector provides the same functionality as Raspberry Pi 5. The
+	connector is a three-pin 1mm pitch JST-SH connector, Part number
+	BM03B-SRSS-TB. The signals are replicated on the bottom as test points.
+
+	Appendix B: Test Points
+
+	| Reference | X   | Y    | NAME          |
+	| TP35      | 11  | 37.8 | DEBUG_UART_TX |
+	| TP36      | 8.5 | 37.1 | DEBUG_UART_RX |
+
+	Debug UART
+
+	TP35 and TP36 are a TX and RX of the debug UART. TP46 should be used as
+	the ground. It is very useful to have access to these pins during
+	programming and initial boot.
+
+See https://datasheets.raspberrypi.com/cm5/cm5-datasheet.pdf.
+
+The signals are not wired up to 100-pin headers either. And thus, it is
+impossible to output early boot traces in the EEPROM firmware without
+assembling a JST-SH connector (or using the test points).

+ 1 - 0
board/raspberrypicm5io

@@ -0,0 +1 @@
+raspberrypi

+ 35 - 0
configs/raspberrypicm5io_defconfig

@@ -0,0 +1,35 @@
+BR2_aarch64=y
+BR2_cortex_a76=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y
+BR2_GLOBAL_PATCH_DIR="board/raspberrypi/patches"
+BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
+BR2_SYSTEM_DHCP="eth0"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypicm5io/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypicm5io/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
+BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,cd231d4775b14f228606c09f219b48308f6ab3aa)/linux-cd231d4775b14f228606c09f219b48308f6ab3aa.tar.gz"
+BR2_LINUX_KERNEL_DEFCONFIG="bcm2712"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/raspberrypi/linux-4k-page-size.fragment"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2712-rpi-cm5-cm5io broadcom/bcm2712-rpi-cm5l-cm5io"
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+BR2_PACKAGE_XZ=y
+BR2_PACKAGE_RPI_FIRMWARE=y
+BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypicm5io/config_cm5io.txt"
+BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE="board/raspberrypicm5io/cmdline.txt"
+BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS=y
+BR2_PACKAGE_KMOD=y
+BR2_PACKAGE_KMOD_TOOLS=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_KMOD_XZ=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_PACKAGE_HOST_RASPBERRYPI_USBBOOT=y