From d9a0954288c43c01633343a4a701692de8068cba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Fri, 9 Feb 2024 21:44:39 +0100 Subject: [PATCH] configs: add raspberrypi 5 defconfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This configuration builds an image for the RaspberryPi 5. Cc: Adam Duskett Cc: Yann E. MORIN Signed-off-by: Gaƫl PORTAY [yann.morin.1998@free.fr: check hashes] Signed-off-by: Yann E. MORIN --- board/raspberrypi/cmdline_5.txt | 1 + board/raspberrypi/config_5.txt | 14 ++++++ board/raspberrypi/linux-4k-page-size.fragment | 1 + board/raspberrypi/readme.txt | 6 +++ board/raspberrypi5 | 1 + configs/raspberrypi5_defconfig | 50 +++++++++++++++++++ 6 files changed, 73 insertions(+) create mode 100644 board/raspberrypi/cmdline_5.txt create mode 100644 board/raspberrypi/config_5.txt create mode 100644 board/raspberrypi/linux-4k-page-size.fragment create mode 120000 board/raspberrypi5 create mode 100644 configs/raspberrypi5_defconfig diff --git a/board/raspberrypi/cmdline_5.txt b/board/raspberrypi/cmdline_5.txt new file mode 100644 index 0000000000..ac457353e2 --- /dev/null +++ b/board/raspberrypi/cmdline_5.txt @@ -0,0 +1 @@ +root=/dev/mmcblk0p2 rootwait console=tty1 console=ttyAMA10,115200 diff --git a/board/raspberrypi/config_5.txt b/board/raspberrypi/config_5.txt new file mode 100644 index 0000000000..bbed19fe46 --- /dev/null +++ b/board/raspberrypi/config_5.txt @@ -0,0 +1,14 @@ +# 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 diff --git a/board/raspberrypi/linux-4k-page-size.fragment b/board/raspberrypi/linux-4k-page-size.fragment new file mode 100644 index 0000000000..5df91df1aa --- /dev/null +++ b/board/raspberrypi/linux-4k-page-size.fragment @@ -0,0 +1 @@ +CONFIG_ARM64_4K_PAGES=y diff --git a/board/raspberrypi/readme.txt b/board/raspberrypi/readme.txt index 9202b5ff37..aa6421ea01 100644 --- a/board/raspberrypi/readme.txt +++ b/board/raspberrypi/readme.txt @@ -10,6 +10,7 @@ These instructions apply to all models of the Raspberry Pi: - the model B3 (aka Raspberry Pi 3). - the model B4 (aka Raspberry Pi 4). - the model CM4 (aka Raspberry Pi Compute Module 4 and IO Board). + - the model B5 (aka Raspberry Pi 5). How to build it =============== @@ -64,6 +65,10 @@ or for CM4 (on IO Board - 64 bit): $ make raspberrypicm4io_64_defconfig +For model 5 B: + + $ make raspberrypi5_defconfig + Build the rootfs ---------------- @@ -94,6 +99,7 @@ After building, you should obtain this tree: +-- bcm2710-rpi-cm3.dtb [1] +-- bcm2711-rpi-4-b.dtb [1] +-- bcm2711-rpi-cm4.dtb [1] + +-- bcm2712-rpi-5-b.dtb [1] +-- bcm2837-rpi-3-b.dtb [1] +-- boot.vfat +-- rootfs.ext4 diff --git a/board/raspberrypi5 b/board/raspberrypi5 new file mode 120000 index 0000000000..fcdafc81ed --- /dev/null +++ b/board/raspberrypi5 @@ -0,0 +1 @@ +raspberrypi \ No newline at end of file diff --git a/configs/raspberrypi5_defconfig b/configs/raspberrypi5_defconfig new file mode 100644 index 0000000000..73592c4a1a --- /dev/null +++ b/configs/raspberrypi5_defconfig @@ -0,0 +1,50 @@ +BR2_aarch64=y +BR2_cortex_a76_a55=y +BR2_ARM_FPU_VFPV4=y + +BR2_TOOLCHAIN_BUILDROOT_CXX=y + +BR2_SYSTEM_DHCP="eth0" + +# Linux headers same as kernel, a 6.1 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y + +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/raspberrypi/linux-4k-page-size.fragment" +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,17f135b742c4edb340afb365873c3a574f7e16cb)/linux-17f135b742c4edb340afb365873c3a574f7e16cb.tar.gz" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2712" + +# Build the DTB from the kernel sources +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2712-rpi-5-b" + +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi5/config_5.txt" +BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE="board/raspberrypi5/cmdline_5.txt" +# BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS is not set + +# Required tools to create the SD image +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Filesystem / image +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_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi5/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi5/post-image.sh" + +# Enable compressed kernel module support +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_KMOD_TOOLS=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_KMOD=y +BR2_PACKAGE_HOST_KMOD_XZ=y + +BR2_DOWNLOAD_FORCE_CHECK_HASHES=y +BR2_GLOBAL_PATCH_DIR="board/raspberrypi5/patches"