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>
This commit is contained in:
Gaël PORTAY
2025-05-20 17:59:46 +02:00
committed by Julien Olivain
parent db1b8130c7
commit fd5628e5dc
4 changed files with 97 additions and 0 deletions

View File

@@ -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

View File

@@ -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
board/raspberrypicm5io Symbolic link
View File

@@ -0,0 +1 @@
raspberrypi

View File

@@ -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