[Buildroot] [v1 0/4] [PATCH 0/3] Add support for Pi5

Gaël PORTAY gael.portay at rtone.fr
Tue Nov 21 19:34:44 UTC 2023


Dear maintainers,

This patch series adds the support for the Raspberry Pi 5[0].

The first patch enables MMU 16K page-size on ARM64 as the Raspberry Pi 5
supports 16K page-size[1].

The two following patches bump the packages rpi-firmware and linux.
 - The package rpi-firmware bumps the dtb overlays to the commit
   7e9c2063fc15274fbc4dab1ca614f9228834d881[2]. The commit states "Add
   support for PI 5" and it bumps the kernel files. The firmware files
   transferred to the VideoCore GPU are left untouched since they are
   self-contained in the bootloader EEPROM of the Raspberry Pi 5
   firmware[3].
 - The package linux bumps to the raspberrypi kernel to 6.1.55 up to the
   commit[4]. The branch rpi-6.1.y supports the Raspberry Pi 5.

The last patch adds the raspberrypi5_defconfig for the Raspberry Pi 5
64-bit. It uses the defconfig bcm2712_defconfig[5] and the device-tree
source bcm2712-rpi-5-b.dts[6]. The Raspberry Pi 5 has now a dedicated
debug UART connector[7] (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[8].

The output boots fine and it runs getty on uart and virtual tty if it is
built using the toolchain built by buildroot.

The output boots the kernel but the kernel cannot run the init process
if it is built using the bootlin prebuilt toolchain. Something is broken
due to the 16k MMU page-size :(

Question: the device-tree overlays are taken from the rpi-firmware; is
there a plan to compile the one from the downstream kernel sources
instead? by tweaking the linux.mk maybe?

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

[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/firmware/commit/7e9c2063fc15274fbc4dab1ca614f9228834d881
[3]: https://www.raspberrypi.com/documentation/computers/config_txt.html#start_file-fixup_file
[4]: https://github.com/raspberrypi/linux/commit/feb4ea51e77af09c1a4c7c3e5dd33237750f95cd
[5]: https://github.com/raspberrypi/linux/commit/9cfb379147f803b0362b0fe249e5b145d232bea3
[6]: https://github.com/raspberrypi/linux/commit/1196bf1a7736ff0ab79f5012fa84082e298031a7
[7]: https://www.raspberrypi.com/documentation/computers/raspberry-pi-5.html#uart-connector
[8]: https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit

Kind Regards,
Gaël PORTAY (4):
  arch: add support 16k page size on ARM64
  package/rpi-firmware: bump version for pi5 support
  configs/raspberrypi*: bump kernel version to feb4ea5 (6.1.55)
  configs: add raspberrypi 5 defconfig

 arch/Config.in.arm                     |  4 +++
 arch/arch.mk                           |  2 +-
 board/raspberrypi/cmdline_5.txt        |  1 +
 board/raspberrypi/config_5.txt         | 24 ++++++++++++++++
 board/raspberrypi/readme.txt           |  8 +++++-
 board/raspberrypi5                     |  1 +
 configs/raspberrypi0_defconfig         |  2 +-
 configs/raspberrypi0w_defconfig        |  2 +-
 configs/raspberrypi2_defconfig         |  2 +-
 configs/raspberrypi3_64_defconfig      |  2 +-
 configs/raspberrypi3_defconfig         |  2 +-
 configs/raspberrypi3_qt5we_defconfig   |  2 +-
 configs/raspberrypi4_64_defconfig      |  2 +-
 configs/raspberrypi4_defconfig         |  2 +-
 configs/raspberrypi5_defconfig         | 39 ++++++++++++++++++++++++++
 configs/raspberrypi_defconfig          |  2 +-
 configs/raspberrypicm4io_64_defconfig  |  2 +-
 configs/raspberrypicm4io_defconfig     |  2 +-
 configs/raspberrypizero2w_defconfig    |  2 +-
 linux/linux.mk                         |  4 +++
 package/rpi-firmware/rpi-firmware.hash |  2 +-
 package/rpi-firmware/rpi-firmware.mk   |  2 +-
 22 files changed, 95 insertions(+), 16 deletions(-)
 create mode 100644 board/raspberrypi/cmdline_5.txt
 create mode 100644 board/raspberrypi/config_5.txt
 create mode 120000 board/raspberrypi5
 create mode 100644 configs/raspberrypi5_defconfig

--
2.42.1




More information about the buildroot mailing list