diff mbox series

[v3,1/1] configs: add raspberrypi 5 defconfig

Message ID 20240209204545.86221-1-gael.portay@rtone.fr
State Not Applicable
Headers show
Series [v3,1/1] configs: add raspberrypi 5 defconfig | expand

Commit Message

Gaël PORTAY Feb. 9, 2024, 8:45 p.m. UTC
This configuration builds an image for the RaspberryPi 5.

Cc: Adam Duskett <adam.duskett@amarulasolutions.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
---
Dear maintainers,

That change adds the raspberrypi5_defconfig for the Raspberry Pi 5
64-bit.

It uses the defconfig bcm2712_defconfig[2] and the device-tree source
bcm2712-rpi-5-b.dts[3].

Note: The kernel defconfig defaults to 16k page-size; a kernel fragment
is added to use a 4k page-size to compile and run using all toolchains.

The Raspberry Pi 5 has now a dedicated debug UART connector[4] (it is
always active and enabled; there is no more need to enable_uart=1 in the
file config.txt).

The UART device name changes to ttyAMA10 and the command line has to be
updated in the file cmdline.txt.

The Raspberry Pi 5 only supports 64-bit kernel[5].

Tested on internal toolchain:

	[    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2023.11-1117-g95a905918c) 12.3.0, GNU ld (GNU Binutils) 2.40) #1 SMP PREEMPT Fri Feb  9 20:09:08 CET 2024
	(...)
	# grep PageSize /proc/1/smaps | sort -u
	KernelPageSize:        4 kB
	MMUPageSize:           4 kB

Tested on external Bootlin toolchain:

	[    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-linux-gcc.br_real (Buildroot 2021.11-10014-g6257e8c) 13.2.0, GNU ld (GNU Binutils) 2.41) #1 SMP PREEMPT Fri Feb  9 20:54:08 CET 2024
	(...)
	# grep PageSize /proc/1/smaps | sort -u
	KernelPageSize:        4 kB
	MMUPageSize:           4 kB

Tested on external ARM toolchain:

	[    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009, GNU ld (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 2.41.0.20231009) #1 SMP PREEMPT Fri Feb  9 21:00:24 CET 2024
	(...)
	# grep PageSize /proc/1/smaps | sort -u
	KernelPageSize:        4 kB
	MMUPageSize:           4 kB

Changes since RFC:
 - Update README to add model Pi 5 B
 - Add support for 64K MMU page-size for ARM64 and Raspberry Pi 5
 - Add Raspberry Pi 5 specific cmdline_5.txt to set its console on its
   debug uart (ttyAMA10 instead of ttyAMA0)
 - Remove 32-bit variant since Raspberry Pi 5 supports booting a 64-bit
   kernel only
 - Remove the property arm_64bit=1 from config_5_64bit.txt
 - Remove the _64bit suffix
 - Remove unecessary Pi 5 variant from package rpi-firmware

Changes since v1:
 - Rebase on top of master
 - Remove the bumps for the rpi-firmware and linux packages
 - Bump the kernel to linux-17f135b742c4edb340afb365873c3a574f7e16cb
   (6.1.61, i.e. the same version as the other raspberrypi defconfigs)

Changes since v2:
 - Rebase on top of master (remove applied patch)
 - Add a kernel fragment to force 4k page-size
 - Remove BR2_ARM64_PAGE_SIZE_16K from the board's defconfig

[0]: https://www.raspberrypi.com/documentation/computers/raspberry-pi-5.html#introduction
[1]: https://www.raspberrypi.com/documentation/computers/config_txt.html#kernel
[2]: https://github.com/raspberrypi/linux/commit/9cfb379147f803b0362b0fe249e5b145d232bea3
[3]: https://github.com/raspberrypi/linux/commit/1196bf1a7736ff0ab79f5012fa84082e298031a7
[4]: https://www.raspberrypi.com/documentation/computers/raspberry-pi-5.html#uart-connector
[5]: https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit

Kind Regards,
Gaël PORTAY

 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                | 47 +++++++++++++++++++
 6 files changed, 70 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

--
2.43.0

Comments

Gaël PORTAY Feb. 9, 2024, 8:50 p.m. UTC | #1
Sorry for that double post.

On Fri Feb 9, 2024 at 9:45 PM CET, Gaël PORTAY wrote:
> This configuration builds an image for the RaspberryPi 5.
>
> Cc: Adam Duskett <adam.duskett@amarulasolutions.com>
> Cc: Yann E. MORIN <yann.morin.1998@free.fr>
> Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
> ---
> Dear maintainers,
>
> That change adds the raspberrypi5_defconfig for the Raspberry Pi 5
> 64-bit.
>
> It uses the defconfig bcm2712_defconfig[2] and the device-tree source
> bcm2712-rpi-5-b.dts[3].
>
> Note: The kernel defconfig defaults to 16k page-size; a kernel fragment
> is added to use a 4k page-size to compile and run using all toolchains.
>
> The Raspberry Pi 5 has now a dedicated debug UART connector[4] (it is
> always active and enabled; there is no more need to enable_uart=1 in the
> file config.txt).
>
> The UART device name changes to ttyAMA10 and the command line has to be
> updated in the file cmdline.txt.
>
> The Raspberry Pi 5 only supports 64-bit kernel[5].
>
> Tested on internal toolchain:
>
> 	[    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2023.11-1117-g95a905918c) 12.3.0, GNU ld (GNU Binutils) 2.40) #1 SMP PREEMPT Fri Feb  9 20:09:08 CET 2024
> 	(...)
> 	# grep PageSize /proc/1/smaps | sort -u
> 	KernelPageSize:        4 kB
> 	MMUPageSize:           4 kB
>
> Tested on external Bootlin toolchain:
>
> 	[    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-linux-gcc.br_real (Buildroot 2021.11-10014-g6257e8c) 13.2.0, GNU ld (GNU Binutils) 2.41) #1 SMP PREEMPT Fri Feb  9 20:54:08 CET 2024
> 	(...)
> 	# grep PageSize /proc/1/smaps | sort -u
> 	KernelPageSize:        4 kB
> 	MMUPageSize:           4 kB
>
> Tested on external ARM toolchain:
>
> 	[    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009, GNU ld (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 2.41.0.20231009) #1 SMP PREEMPT Fri Feb  9 21:00:24 CET 2024
> 	(...)
> 	# grep PageSize /proc/1/smaps | sort -u
> 	KernelPageSize:        4 kB
> 	MMUPageSize:           4 kB
>
> Changes since RFC:
>  - Update README to add model Pi 5 B
>  - Add support for 64K MMU page-size for ARM64 and Raspberry Pi 5
>  - Add Raspberry Pi 5 specific cmdline_5.txt to set its console on its
>    debug uart (ttyAMA10 instead of ttyAMA0)
>  - Remove 32-bit variant since Raspberry Pi 5 supports booting a 64-bit
>    kernel only
>  - Remove the property arm_64bit=1 from config_5_64bit.txt
>  - Remove the _64bit suffix
>  - Remove unecessary Pi 5 variant from package rpi-firmware
>
> Changes since v1:
>  - Rebase on top of master
>  - Remove the bumps for the rpi-firmware and linux packages
>  - Bump the kernel to linux-17f135b742c4edb340afb365873c3a574f7e16cb
>    (6.1.61, i.e. the same version as the other raspberrypi defconfigs)
>
> Changes since v2:
>  - Rebase on top of master (remove applied patch)
>  - Add a kernel fragment to force 4k page-size
>  - Remove BR2_ARM64_PAGE_SIZE_16K from the board's defconfig
>
> [0]: https://www.raspberrypi.com/documentation/computers/raspberry-pi-5.html#introduction
> [1]: https://www.raspberrypi.com/documentation/computers/config_txt.html#kernel
> [2]: https://github.com/raspberrypi/linux/commit/9cfb379147f803b0362b0fe249e5b145d232bea3
> [3]: https://github.com/raspberrypi/linux/commit/1196bf1a7736ff0ab79f5012fa84082e298031a7
> [4]: https://www.raspberrypi.com/documentation/computers/raspberry-pi-5.html#uart-connector
> [5]: https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit
>
> Kind Regards,
> Gaël PORTAY
>
>  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                | 47 +++++++++++++++++++
>  6 files changed, 70 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..d0760824bd
> --- /dev/null
> +++ b/configs/raspberrypi5_defconfig
> @@ -0,0 +1,47 @@
> +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
> --
> 2.43.0
Gaël PORTAY Feb. 26, 2024, 11:43 a.m. UTC | #2
Yann, all,

Any chance to get it merged for the upcomming release? No offence :)

Regards,
Gaël

On Fri Feb 9, 2024 at 9:50 PM CET, Gaël PORTAY wrote:
> Sorry for that double post.
>
> On Fri Feb 9, 2024 at 9:45 PM CET, Gaël PORTAY wrote:
> > This configuration builds an image for the RaspberryPi 5.
> >
> > Cc: Adam Duskett <adam.duskett@amarulasolutions.com>
> > Cc: Yann E. MORIN <yann.morin.1998@free.fr>
> > Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
> > ---
> > Dear maintainers,
> >
> > That change adds the raspberrypi5_defconfig for the Raspberry Pi 5
> > 64-bit.
> >
> > It uses the defconfig bcm2712_defconfig[2] and the device-tree source
> > bcm2712-rpi-5-b.dts[3].
> >
> > Note: The kernel defconfig defaults to 16k page-size; a kernel fragment
> > is added to use a 4k page-size to compile and run using all toolchains.
> >
> > The Raspberry Pi 5 has now a dedicated debug UART connector[4] (it is
> > always active and enabled; there is no more need to enable_uart=1 in the
> > file config.txt).
> >
> > The UART device name changes to ttyAMA10 and the command line has to be
> > updated in the file cmdline.txt.
> >
> > The Raspberry Pi 5 only supports 64-bit kernel[5].
> >
> > Tested on internal toolchain:
> >
> > 	[    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2023.11-1117-g95a905918c) 12.3.0, GNU ld (GNU Binutils) 2.40) #1 SMP PREEMPT Fri Feb  9 20:09:08 CET 2024
> > 	(...)
> > 	# grep PageSize /proc/1/smaps | sort -u
> > 	KernelPageSize:        4 kB
> > 	MMUPageSize:           4 kB
> >
> > Tested on external Bootlin toolchain:
> >
> > 	[    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-linux-gcc.br_real (Buildroot 2021.11-10014-g6257e8c) 13.2.0, GNU ld (GNU Binutils) 2.41) #1 SMP PREEMPT Fri Feb  9 20:54:08 CET 2024
> > 	(...)
> > 	# grep PageSize /proc/1/smaps | sort -u
> > 	KernelPageSize:        4 kB
> > 	MMUPageSize:           4 kB
> >
> > Tested on external ARM toolchain:
> >
> > 	[    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009, GNU ld (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 2.41.0.20231009) #1 SMP PREEMPT Fri Feb  9 21:00:24 CET 2024
> > 	(...)
> > 	# grep PageSize /proc/1/smaps | sort -u
> > 	KernelPageSize:        4 kB
> > 	MMUPageSize:           4 kB
> >
> > Changes since RFC:
> >  - Update README to add model Pi 5 B
> >  - Add support for 64K MMU page-size for ARM64 and Raspberry Pi 5
> >  - Add Raspberry Pi 5 specific cmdline_5.txt to set its console on its
> >    debug uart (ttyAMA10 instead of ttyAMA0)
> >  - Remove 32-bit variant since Raspberry Pi 5 supports booting a 64-bit
> >    kernel only
> >  - Remove the property arm_64bit=1 from config_5_64bit.txt
> >  - Remove the _64bit suffix
> >  - Remove unecessary Pi 5 variant from package rpi-firmware
> >
> > Changes since v1:
> >  - Rebase on top of master
> >  - Remove the bumps for the rpi-firmware and linux packages
> >  - Bump the kernel to linux-17f135b742c4edb340afb365873c3a574f7e16cb
> >    (6.1.61, i.e. the same version as the other raspberrypi defconfigs)
> >
> > Changes since v2:
> >  - Rebase on top of master (remove applied patch)
> >  - Add a kernel fragment to force 4k page-size
> >  - Remove BR2_ARM64_PAGE_SIZE_16K from the board's defconfig
> >
> > [0]: https://www.raspberrypi.com/documentation/computers/raspberry-pi-5.html#introduction
> > [1]: https://www.raspberrypi.com/documentation/computers/config_txt.html#kernel
> > [2]: https://github.com/raspberrypi/linux/commit/9cfb379147f803b0362b0fe249e5b145d232bea3
> > [3]: https://github.com/raspberrypi/linux/commit/1196bf1a7736ff0ab79f5012fa84082e298031a7
> > [4]: https://www.raspberrypi.com/documentation/computers/raspberry-pi-5.html#uart-connector
> > [5]: https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit
> >
> > Kind Regards,
> > Gaël PORTAY
> >
> >  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                | 47 +++++++++++++++++++
> >  6 files changed, 70 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..d0760824bd
> > --- /dev/null
> > +++ b/configs/raspberrypi5_defconfig
> > @@ -0,0 +1,47 @@
> > +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
> > --
> > 2.43.0
Adam Duskett March 23, 2024, 9:08 p.m. UTC | #3
Reviewed-by: Adam Duskett <adam.duskett@amarulasolutions.com>
Tested-by: Adam Duskett <adam.duskett@amarulasolutions.com>

In fact, this was used at FOSDEM, and works with Flutter.

On Mon, Feb 26, 2024 at 4:43 AM Gaël PORTAY <gael.portay@rtone.fr> wrote:
>
> Yann, all,
>
> Any chance to get it merged for the upcomming release? No offence :)
>
> Regards,
> Gaël
>
> On Fri Feb 9, 2024 at 9:50 PM CET, Gaël PORTAY wrote:
> > Sorry for that double post.
> >
> > On Fri Feb 9, 2024 at 9:45 PM CET, Gaël PORTAY wrote:
> > > This configuration builds an image for the RaspberryPi 5.
> > >
> > > Cc: Adam Duskett <adam.duskett@amarulasolutions.com>
> > > Cc: Yann E. MORIN <yann.morin.1998@free.fr>
> > > Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
> > > ---
> > > Dear maintainers,
> > >
> > > That change adds the raspberrypi5_defconfig for the Raspberry Pi 5
> > > 64-bit.
> > >
> > > It uses the defconfig bcm2712_defconfig[2] and the device-tree source
> > > bcm2712-rpi-5-b.dts[3].
> > >
> > > Note: The kernel defconfig defaults to 16k page-size; a kernel fragment
> > > is added to use a 4k page-size to compile and run using all toolchains.
> > >
> > > The Raspberry Pi 5 has now a dedicated debug UART connector[4] (it is
> > > always active and enabled; there is no more need to enable_uart=1 in the
> > > file config.txt).
> > >
> > > The UART device name changes to ttyAMA10 and the command line has to be
> > > updated in the file cmdline.txt.
> > >
> > > The Raspberry Pi 5 only supports 64-bit kernel[5].
> > >
> > > Tested on internal toolchain:
> > >
> > >     [    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2023.11-1117-g95a905918c) 12.3.0, GNU ld (GNU Binutils) 2.40) #1 SMP PREEMPT Fri Feb  9 20:09:08 CET 2024
> > >     (...)
> > >     # grep PageSize /proc/1/smaps | sort -u
> > >     KernelPageSize:        4 kB
> > >     MMUPageSize:           4 kB
> > >
> > > Tested on external Bootlin toolchain:
> > >
> > >     [    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-linux-gcc.br_real (Buildroot 2021.11-10014-g6257e8c) 13.2.0, GNU ld (GNU Binutils) 2.41) #1 SMP PREEMPT Fri Feb  9 20:54:08 CET 2024
> > >     (...)
> > >     # grep PageSize /proc/1/smaps | sort -u
> > >     KernelPageSize:        4 kB
> > >     MMUPageSize:           4 kB
> > >
> > > Tested on external ARM toolchain:
> > >
> > >     [    0.000000] Linux version 6.1.61-v8_16k (gportay@archlinux) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 13.2.1 20231009, GNU ld (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 2.41.0.20231009) #1 SMP PREEMPT Fri Feb  9 21:00:24 CET 2024
> > >     (...)
> > >     # grep PageSize /proc/1/smaps | sort -u
> > >     KernelPageSize:        4 kB
> > >     MMUPageSize:           4 kB
> > >
> > > Changes since RFC:
> > >  - Update README to add model Pi 5 B
> > >  - Add support for 64K MMU page-size for ARM64 and Raspberry Pi 5
> > >  - Add Raspberry Pi 5 specific cmdline_5.txt to set its console on its
> > >    debug uart (ttyAMA10 instead of ttyAMA0)
> > >  - Remove 32-bit variant since Raspberry Pi 5 supports booting a 64-bit
> > >    kernel only
> > >  - Remove the property arm_64bit=1 from config_5_64bit.txt
> > >  - Remove the _64bit suffix
> > >  - Remove unecessary Pi 5 variant from package rpi-firmware
> > >
> > > Changes since v1:
> > >  - Rebase on top of master
> > >  - Remove the bumps for the rpi-firmware and linux packages
> > >  - Bump the kernel to linux-17f135b742c4edb340afb365873c3a574f7e16cb
> > >    (6.1.61, i.e. the same version as the other raspberrypi defconfigs)
> > >
> > > Changes since v2:
> > >  - Rebase on top of master (remove applied patch)
> > >  - Add a kernel fragment to force 4k page-size
> > >  - Remove BR2_ARM64_PAGE_SIZE_16K from the board's defconfig
> > >
> > > [0]: https://www.raspberrypi.com/documentation/computers/raspberry-pi-5.html#introduction
> > > [1]: https://www.raspberrypi.com/documentation/computers/config_txt.html#kernel
> > > [2]: https://github.com/raspberrypi/linux/commit/9cfb379147f803b0362b0fe249e5b145d232bea3
> > > [3]: https://github.com/raspberrypi/linux/commit/1196bf1a7736ff0ab79f5012fa84082e298031a7
> > > [4]: https://www.raspberrypi.com/documentation/computers/raspberry-pi-5.html#uart-connector
> > > [5]: https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit
> > >
> > > Kind Regards,
> > > Gaël PORTAY
> > >
> > >  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                | 47 +++++++++++++++++++
> > >  6 files changed, 70 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..d0760824bd
> > > --- /dev/null
> > > +++ b/configs/raspberrypi5_defconfig
> > > @@ -0,0 +1,47 @@
> > > +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
> > > --
> > > 2.43.0
>
diff mbox series

Patch

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..d0760824bd
--- /dev/null
+++ b/configs/raspberrypi5_defconfig
@@ -0,0 +1,47 @@ 
+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