Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 0/2] Add support for Pi5
@ 2023-12-11 15:59 Gaël PORTAY
  2023-12-11 15:59 ` [Buildroot] [PATCH v2 1/2] arch: add support 16k page size on ARM64 Gaël PORTAY
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Gaël PORTAY @ 2023-12-11 15:59 UTC (permalink / raw)
  To: buildroot
  Cc: Gaël PORTAY, Julien Grossholtz, Thomas Petazzoni,
	Martin Bark

Dear maintainers,

This two patches 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 last patch 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]. 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].

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)

[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 (4):
  arch: add support 16k page size on ARM64
  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  | 14 ++++++++++++
 board/raspberrypi/readme.txt    |  6 +++++
 board/raspberrypi5              |  1 +
 configs/raspberrypi5_defconfig  | 40 +++++++++++++++++++++++++++++++++
 linux/linux.mk                  |  4 ++++
 8 files changed, 71 insertions(+), 1 deletion(-)
 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.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v2 1/2] arch: add support 16k page size on ARM64
  2023-12-11 15:59 [Buildroot] [PATCH v2 0/2] Add support for Pi5 Gaël PORTAY
@ 2023-12-11 15:59 ` Gaël PORTAY
  2024-01-19 20:24   ` Yann E. MORIN
  2023-12-11 15:59 ` [Buildroot] [PATCH v2 2/2] configs: add raspberrypi 5 defconfig Gaël PORTAY
  2024-01-19 20:13 ` [Buildroot] [PATCH v2 0/2] Add support for Pi5 Yann E. MORIN
  2 siblings, 1 reply; 11+ messages in thread
From: Gaël PORTAY @ 2023-12-11 15:59 UTC (permalink / raw)
  To: buildroot
  Cc: Gaël PORTAY, Julien Grossholtz, Thomas Petazzoni,
	Martin Bark

The BCM2712 of the RaspberryPi 5 supports for 16KB page size.

This adds support for 16 KB on ARM64.

Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
---
 arch/Config.in.arm | 4 ++++
 arch/arch.mk       | 2 +-
 linux/linux.mk     | 4 ++++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/arch/Config.in.arm b/arch/Config.in.arm
index 78621e321c..b44a164e03 100644
--- a/arch/Config.in.arm
+++ b/arch/Config.in.arm
@@ -781,6 +781,9 @@ choice
 config BR2_ARM64_PAGE_SIZE_4K
 	bool "4KB"
 
+config BR2_ARM64_PAGE_SIZE_16K
+	bool "16KB"
+
 config BR2_ARM64_PAGE_SIZE_64K
 	bool "64KB"
 
@@ -789,6 +792,7 @@ endchoice
 config BR2_ARM64_PAGE_SIZE
 	string
 	default "4K" if BR2_ARM64_PAGE_SIZE_4K
+	default "16K" if BR2_ARM64_PAGE_SIZE_16K
 	default "64K" if BR2_ARM64_PAGE_SIZE_64K
 
 config BR2_ARCH
diff --git a/arch/arch.mk b/arch/arch.mk
index 2e737b92ac..4174d33df5 100644
--- a/arch/arch.mk
+++ b/arch/arch.mk
@@ -23,7 +23,7 @@ ifeq ($(BR2_ARC_PAGE_SIZE_4K)$(BR2_ARM64_PAGE_SIZE_4K),y)
 ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096
 else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y)
 ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192 -Wl,-z,common-page-size=8192
-else ifeq ($(BR2_ARC_PAGE_SIZE_16K),y)
+else ifeq ($(BR2_ARC_PAGE_SIZE_16K)$(BR2_ARM64_PAGE_SIZE_16K),y)
 ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384
 else ifeq ($(BR2_ARM64_PAGE_SIZE_64K),y)
 ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=65536 -Wl,-z,common-page-size=65536
diff --git a/linux/linux.mk b/linux/linux.mk
index 1db5c6046d..53e2ad6d48 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -411,6 +411,10 @@ define LINUX_KCONFIG_FIXUP_CMDS
 		$(call KCONFIG_ENABLE_OPT,CONFIG_ARM64_4K_PAGES)
 		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_16K_PAGES)
 		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_64K_PAGES))
+	$(if $(BR2_ARM64_PAGE_SIZE_16K),
+		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_4K_PAGES)
+		$(call KCONFIG_ENABLE_OPT,CONFIG_ARM64_16K_PAGES)
+		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_64K_PAGES))
 	$(if $(BR2_ARM64_PAGE_SIZE_64K),
 		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_4K_PAGES)
 		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_16K_PAGES)
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v2 2/2] configs: add raspberrypi 5 defconfig
  2023-12-11 15:59 [Buildroot] [PATCH v2 0/2] Add support for Pi5 Gaël PORTAY
  2023-12-11 15:59 ` [Buildroot] [PATCH v2 1/2] arch: add support 16k page size on ARM64 Gaël PORTAY
@ 2023-12-11 15:59 ` Gaël PORTAY
  2024-01-19 20:35   ` Yann E. MORIN
  2024-01-19 20:13 ` [Buildroot] [PATCH v2 0/2] Add support for Pi5 Yann E. MORIN
  2 siblings, 1 reply; 11+ messages in thread
From: Gaël PORTAY @ 2023-12-11 15:59 UTC (permalink / raw)
  To: buildroot
  Cc: Gaël PORTAY, Julien Grossholtz, Thomas Petazzoni,
	Martin Bark

This configuration builds an image for the RaspberryPi 5.

Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
---
 board/raspberrypi/cmdline_5.txt |  1 +
 board/raspberrypi/config_5.txt  | 14 ++++++++++++
 board/raspberrypi/readme.txt    |  6 +++++
 board/raspberrypi5              |  1 +
 configs/raspberrypi5_defconfig  | 40 +++++++++++++++++++++++++++++++++
 5 files changed, 62 insertions(+)
 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

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/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..b8cc686ef3
--- /dev/null
+++ b/configs/raspberrypi5_defconfig
@@ -0,0 +1,40 @@
+BR2_aarch64=y
+BR2_cortex_a76_a55=y
+BR2_ARM_FPU_VFPV4=y
+BR2_ARM64_PAGE_SIZE_16K=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_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"
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v2 0/2] Add support for Pi5
  2023-12-11 15:59 [Buildroot] [PATCH v2 0/2] Add support for Pi5 Gaël PORTAY
  2023-12-11 15:59 ` [Buildroot] [PATCH v2 1/2] arch: add support 16k page size on ARM64 Gaël PORTAY
  2023-12-11 15:59 ` [Buildroot] [PATCH v2 2/2] configs: add raspberrypi 5 defconfig Gaël PORTAY
@ 2024-01-19 20:13 ` Yann E. MORIN
  2024-01-20  8:10   ` Gaël PORTAY
  2 siblings, 1 reply; 11+ messages in thread
From: Yann E. MORIN @ 2024-01-19 20:13 UTC (permalink / raw)
  To: Gaël PORTAY
  Cc: Martin Bark, Thomas Petazzoni, Julien Grossholtz, buildroot

Gaël, All,

On 2023-12-11 16:59 +0100, Gaël PORTAY spake thusly:
> Dear maintainers,
> 
> This two patches 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].

I have two comments about that:
 1. the referenced linked does not mention the page size
 2. are 16K pages required at all?

The issue with using 16K pages, is that it would prec;ude using existing
external prebuilt toolchains, which most probably have been built with
4K pages, and as far as I understand, mixing objects built for 4K pages
and objects built for 16K pages, is not supported.

So, unless 16K is a requirement, I think using 4K pages would be better.

And of course, we currently have no indication whether an external
library was built for $k, 15K, or even 64K pages, so this is somethingwe
need to implement somehow...

Regards,
Yann E. MORIN.

> The last patch 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]. 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].
> 
> 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)
> 
> [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 (4):
>   arch: add support 16k page size on ARM64
>   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  | 14 ++++++++++++
>  board/raspberrypi/readme.txt    |  6 +++++
>  board/raspberrypi5              |  1 +
>  configs/raspberrypi5_defconfig  | 40 +++++++++++++++++++++++++++++++++
>  linux/linux.mk                  |  4 ++++
>  8 files changed, 71 insertions(+), 1 deletion(-)
>  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.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v2 1/2] arch: add support 16k page size on ARM64
  2023-12-11 15:59 ` [Buildroot] [PATCH v2 1/2] arch: add support 16k page size on ARM64 Gaël PORTAY
@ 2024-01-19 20:24   ` Yann E. MORIN
  0 siblings, 0 replies; 11+ messages in thread
From: Yann E. MORIN @ 2024-01-19 20:24 UTC (permalink / raw)
  To: Gaël PORTAY
  Cc: Martin Bark, Thomas Petazzoni, Julien Grossholtz, buildroot

Gaël, All,

On 2023-12-11 16:59 +0100, Gaël PORTAY spake thusly:
> The BCM2712 of the RaspberryPi 5 supports for 16KB page size.
> 
> This adds support for 16 KB on ARM64.
> 
> Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  arch/Config.in.arm | 4 ++++
>  arch/arch.mk       | 2 +-
>  linux/linux.mk     | 4 ++++
>  3 files changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/Config.in.arm b/arch/Config.in.arm
> index 78621e321c..b44a164e03 100644
> --- a/arch/Config.in.arm
> +++ b/arch/Config.in.arm
> @@ -781,6 +781,9 @@ choice
>  config BR2_ARM64_PAGE_SIZE_4K
>  	bool "4KB"
>  
> +config BR2_ARM64_PAGE_SIZE_16K
> +	bool "16KB"
> +
>  config BR2_ARM64_PAGE_SIZE_64K
>  	bool "64KB"
>  
> @@ -789,6 +792,7 @@ endchoice
>  config BR2_ARM64_PAGE_SIZE
>  	string
>  	default "4K" if BR2_ARM64_PAGE_SIZE_4K
> +	default "16K" if BR2_ARM64_PAGE_SIZE_16K
>  	default "64K" if BR2_ARM64_PAGE_SIZE_64K
>  
>  config BR2_ARCH
> diff --git a/arch/arch.mk b/arch/arch.mk
> index 2e737b92ac..4174d33df5 100644
> --- a/arch/arch.mk
> +++ b/arch/arch.mk
> @@ -23,7 +23,7 @@ ifeq ($(BR2_ARC_PAGE_SIZE_4K)$(BR2_ARM64_PAGE_SIZE_4K),y)
>  ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096
>  else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y)
>  ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192 -Wl,-z,common-page-size=8192
> -else ifeq ($(BR2_ARC_PAGE_SIZE_16K),y)
> +else ifeq ($(BR2_ARC_PAGE_SIZE_16K)$(BR2_ARM64_PAGE_SIZE_16K),y)
>  ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384
>  else ifeq ($(BR2_ARM64_PAGE_SIZE_64K),y)
>  ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=65536 -Wl,-z,common-page-size=65536
> diff --git a/linux/linux.mk b/linux/linux.mk
> index 1db5c6046d..53e2ad6d48 100644
> --- a/linux/linux.mk
> +++ b/linux/linux.mk
> @@ -411,6 +411,10 @@ define LINUX_KCONFIG_FIXUP_CMDS
>  		$(call KCONFIG_ENABLE_OPT,CONFIG_ARM64_4K_PAGES)
>  		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_16K_PAGES)
>  		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_64K_PAGES))
> +	$(if $(BR2_ARM64_PAGE_SIZE_16K),
> +		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_4K_PAGES)
> +		$(call KCONFIG_ENABLE_OPT,CONFIG_ARM64_16K_PAGES)
> +		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_64K_PAGES))
>  	$(if $(BR2_ARM64_PAGE_SIZE_64K),
>  		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_4K_PAGES)
>  		$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_16K_PAGES)
> -- 
> 2.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] configs: add raspberrypi 5 defconfig
  2023-12-11 15:59 ` [Buildroot] [PATCH v2 2/2] configs: add raspberrypi 5 defconfig Gaël PORTAY
@ 2024-01-19 20:35   ` Yann E. MORIN
  2024-01-20  3:11     ` Adam Duskett
  0 siblings, 1 reply; 11+ messages in thread
From: Yann E. MORIN @ 2024-01-19 20:35 UTC (permalink / raw)
  To: Gaël PORTAY
  Cc: Martin Bark, Thomas Petazzoni, Julien Grossholtz, buildroot

Gaël, All,

On 2023-12-11 16:59 +0100, Gaël PORTAY spake thusly:
> This configuration builds an image for the RaspberryPi 5.
> 
> Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
[--SNIP--]
> --- /dev/null
> +++ b/configs/raspberrypi5_defconfig
> @@ -0,0 +1,40 @@
> +BR2_aarch64=y
> +BR2_cortex_a76_a55=y
> +BR2_ARM_FPU_VFPV4=y
> +BR2_ARM64_PAGE_SIZE_16K=y

So, we choose 16K for the userland page alignment, because...

[--SNIP--]
> +BR2_LINUX_KERNEL=y
> +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"

... the bcm2712_defconfig in the kernel tree default to use 16K pages:
    CONFIG_ARM64_16K_PAGES=y

This is all a little bit murky for me, but the kernel help for
CONFIG_ARM64_16K_PAGES states:

  The system will use 16KB pages support. AArch32 emulation
  requires applications compiled with 16K (or a multiple of 16K)
  aligned segments.

But we are not doing 32-on-64 in Buildroot, we're only doing pure
64-bit.

If I interret the kernel help text correctly, aarch64 userland is not
impacted by the page size the kernel uses, so we can still use 4K pages
in userland.

Or do we just want to avoid any confusion at all, and always consider
that the userland and kernel page size must match? Or did I just
misinterpret the kernel help text, and the two *must* match?

If I missed something, or am wrong somewhere, just yell! ;-)

Regards,
Yann E. MORIN.

> +# 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"
> -- 
> 2.43.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] configs: add raspberrypi 5 defconfig
  2024-01-19 20:35   ` Yann E. MORIN
@ 2024-01-20  3:11     ` Adam Duskett
  2024-01-20  8:01       ` Gaël PORTAY
  0 siblings, 1 reply; 11+ messages in thread
From: Adam Duskett @ 2024-01-20  3:11 UTC (permalink / raw)
  To: Yann E. MORIN
  Cc: Julien Grossholtz, Gaël PORTAY, Martin Bark,
	Thomas Petazzoni, buildroot

Hello;


On Fri, Jan 19, 2024 at 1:36 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>
> Gaël, All,
>
> On 2023-12-11 16:59 +0100, Gaël PORTAY spake thusly:
> > This configuration builds an image for the RaspberryPi 5.
> >
> > Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
> [--SNIP--]
> > --- /dev/null
> > +++ b/configs/raspberrypi5_defconfig
> > @@ -0,0 +1,40 @@
> > +BR2_aarch64=y
> > +BR2_cortex_a76_a55=y
> > +BR2_ARM_FPU_VFPV4=y
> > +BR2_ARM64_PAGE_SIZE_16K=y
>
> So, we choose 16K for the userland page alignment, because...
>
> [--SNIP--]
> > +BR2_LINUX_KERNEL=y
> > +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"
>
> ... the bcm2712_defconfig in the kernel tree default to use 16K pages:
>     CONFIG_ARM64_16K_PAGES=y
>
> This is all a little bit murky for me, but the kernel help for
> CONFIG_ARM64_16K_PAGES states:
>
>   The system will use 16KB pages support. AArch32 emulation
>   requires applications compiled with 16K (or a multiple of 16K)
>   aligned segments.
>
> But we are not doing 32-on-64 in Buildroot, we're only doing pure
> 64-bit.
>
> If I interpret the kernel help text correctly, aarch64 userland is not
> impacted by the page size the kernel uses, so we can still use 4K pages
> in userland.
>
> Or do we just want to avoid any confusion at all, and always consider
> that the userland and kernel page size must match? Or did I just
> misinterpret the kernel help text, and the two *must* match?
>
> If I missed something or am wrong somewhere, just yell! ;-)
>
> Regards,
> Yann E. MORIN.
>

Yes, you are correct. I created board/raspberrypi/rpi5-linux.fragment with the
following line:
CONFIG_ARM64_4K_PAGES=y

I built this config using a Bootlin toolchain, and everything works properly
on my personal RPI5!

Adam

> > +# 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"
> > --
> > 2.43.0
> >
> > _______________________________________________
> > buildroot mailing list
> > buildroot@buildroot.org
> > https://lists.buildroot.org/mailman/listinfo/buildroot
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] configs: add raspberrypi 5 defconfig
  2024-01-20  3:11     ` Adam Duskett
@ 2024-01-20  8:01       ` Gaël PORTAY
  2024-01-20  8:53         ` Yann E. MORIN
  0 siblings, 1 reply; 11+ messages in thread
From: Gaël PORTAY @ 2024-01-20  8:01 UTC (permalink / raw)
  To: Adam Duskett, Yann E. MORIN
  Cc: Julien Grossholtz, Martin Bark, Thomas Petazzoni, buildroot

Yann, Adam,

On Sat Jan 20, 2024 at 4:11 AM CET, Adam Duskett wrote:
> Hello;
>
>
> On Fri, Jan 19, 2024 at 1:36 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> >
> > Gaël, All,
> >
> > On 2023-12-11 16:59 +0100, Gaël PORTAY spake thusly:
> > > This configuration builds an image for the RaspberryPi 5.
> > >
> > > Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
> > [--SNIP--]
> > > --- /dev/null
> > > +++ b/configs/raspberrypi5_defconfig
> > > @@ -0,0 +1,40 @@
> > > +BR2_aarch64=y
> > > +BR2_cortex_a76_a55=y
> > > +BR2_ARM_FPU_VFPV4=y
> > > +BR2_ARM64_PAGE_SIZE_16K=y
> >
> > So, we choose 16K for the userland page alignment, because...
> >
> > [--SNIP--]
> > > +BR2_LINUX_KERNEL=y
> > > +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"
> >
> > ... the bcm2712_defconfig in the kernel tree default to use 16K pages:
> >     CONFIG_ARM64_16K_PAGES=y
> >

... and because BCM2712 support 16k. Otherwise I would have chosen the
bcm2711_defconfig that is 4K.

> > This is all a little bit murky for me, but the kernel help for
> > CONFIG_ARM64_16K_PAGES states:
> >
> >   The system will use 16KB pages support. AArch32 emulation
> >   requires applications compiled with 16K (or a multiple of 16K)
> >   aligned segments.
> >
> > But we are not doing 32-on-64 in Buildroot, we're only doing pure
> > 64-bit.
> >

Indeed.

> > If I interpret the kernel help text correctly, aarch64 userland is not
> > impacted by the page size the kernel uses, so we can still use 4K pages
> > in userland.
> >
> > Or do we just want to avoid any confusion at all, and always consider
> > that the userland and kernel page size must match? Or did I just
> > misinterpret the kernel help text, and the two *must* match?
> >
> > If I missed something or am wrong somewhere, just yell! ;-)
> >
> > Regards,
> > Yann E. MORIN.
> >

IIRC, I have built with:

- the (internal) buildroot toolchain and it works (16k indeed).
- the external Bootlin toolchain and it fails to run init (4k according
  to Thomas).
- the external Arm AArch64 toolchain and it works (16k I guess ???).

And thus, I suspect both userland and kernel page size must match.

>
> Yes, you are correct. I created board/raspberrypi/rpi5-linux.fragment with the
> following line:
> CONFIG_ARM64_4K_PAGES=y
>
> I built this config using a Bootlin toolchain, and everything works properly
> on my personal RPI5!
>
> Adam

Thanks for this test.

---

So, if the assomption is right (i.e. userland and kernel page sizes must
match), I guess it would be interesting to filter-in (or to filter-out)
the external toolchains that match the config because buildroot prompts
for all the external toolchain; but some of them fail at runtime because
of a mismatch page-size.

What about introducing BR2_TOOLCHAIN_HAS_PAGE_SIZE_{4,16,64}K?

Or, I am totally wrong :/

Regards,
Gaël

PS: Also, BR could have two configs for pi5:
 - raspberrypi5_defconfig: 4k
   BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
   # BR2_ARM64_PAGE_SIZE_4K=y
 - raspberrypi5-16k_defconfig: 16k
   BR2_LINUX_KERNEL_DEFCONFIG="bcm2712"
   BR2_ARM64_PAGE_SIZE_16K=y
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v2 0/2] Add support for Pi5
  2024-01-19 20:13 ` [Buildroot] [PATCH v2 0/2] Add support for Pi5 Yann E. MORIN
@ 2024-01-20  8:10   ` Gaël PORTAY
  2024-01-20  8:57     ` Yann E. MORIN
  0 siblings, 1 reply; 11+ messages in thread
From: Gaël PORTAY @ 2024-01-20  8:10 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: Martin Bark, Thomas Petazzoni, Julien Grossholtz, buildroot

Yann,

On Fri Jan 19, 2024 at 9:13 PM CET, Yann E. MORIN wrote:
> Gaël, All,
>
> On 2023-12-11 16:59 +0100, Gaël PORTAY spake thusly:
> > Dear maintainers,
> > 
> > This two patches 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].
>
> I have two comments about that:
>  1. the referenced linked does not mention the page size
>  2. are 16K pages required at all?
>
> The issue with using 16K pages, is that it would prec;ude using existing
> external prebuilt toolchains, which most probably have been built with
> 4K pages, and as far as I understand, mixing objects built for 4K pages
> and objects built for 16K pages, is not supported.
>

(indeed, that my conclusion by testing different configurations; I am no
expert at all).

> So, unless 16K is a requirement, I think using 4K pages would be better.
>
> And of course, we currently have no indication whether an external
> library was built for $k, 15K, or even 64K pages, so this is somethingwe
> need to implement somehow...
>
> Regards,
> Yann E. MORIN.

So you are suggesting to have a raspberrypi5_defconfig uses a 4k page
size in a first place (as bcm2712 works with 4k too).

And to have probably a raspberrypi5-16k_defconfig that will use a 16k
page size later once BR have enough bits to filter-out external
toolchains that do not support for 16k page size?

Regards,
Gaël
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] configs: add raspberrypi 5 defconfig
  2024-01-20  8:01       ` Gaël PORTAY
@ 2024-01-20  8:53         ` Yann E. MORIN
  0 siblings, 0 replies; 11+ messages in thread
From: Yann E. MORIN @ 2024-01-20  8:53 UTC (permalink / raw)
  To: Gaël PORTAY
  Cc: Adam Duskett, Julien Grossholtz, Martin Bark, Thomas Petazzoni,
	buildroot

Gaël, All,

On 2024-01-20 09:01 +0100, Gaël PORTAY spake thusly:
> On Sat Jan 20, 2024 at 4:11 AM CET, Adam Duskett wrote:
> > On Fri, Jan 19, 2024 at 1:36 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > > On 2023-12-11 16:59 +0100, Gaël PORTAY spake thusly:
> > > > This configuration builds an image for the RaspberryPi 5.
> > > > +BR2_ARM64_PAGE_SIZE_16K=y
> > > So, we choose 16K for the userland page alignment, because...
> > > > +BR2_LINUX_KERNEL_DEFCONFIG="bcm2712"
> > > ... the bcm2712_defconfig in the kernel tree default to use 16K pages:
> > >     CONFIG_ARM64_16K_PAGES=y
> ... and because BCM2712 support 16k.

Yes, it _supports_ 16K pages, but it also supports 4K and 64K, so there
is no reason to shoose 16K or 64K over 4K, except for the fact that the
kernel defconfig uses 16K pages.

> Otherwise I would have chosen the
> bcm2711_defconfig that is 4K.

Isn't bcm2711_defconfig for the rpi4? It would be weird to use th rpi4
defconfig for the rpi5. Presumably, also, the rpi4 defconfig does not
enmable the drivers for the rpi5-only rp1 IOs...

So, using bcm2712_defconfig is understandable...

[--SNIP--]
> IIRC, I have built with:
> 
> - the (internal) buildroot toolchain and it works (16k indeed).
> - the external Bootlin toolchain and it fails to run init (4k according
>   to Thomas).
> - the external Arm AArch64 toolchain and it works (16k I guess ???).
> 
> And thus, I suspect both userland and kernel page size must match.

Now I read buildroot/arch/Config.in.arm, which states:

    ... the kernel
    configuration must match this choice. If your kernel is
    built by Buildroot, the kernel configuration is
    automatically adjusted, ...

So, it currently works, because:

  - the toolchain is built by buildroot,
  - the kernel is built by buildroot

So, if we were to set BR2_ARM64_PAGE_SIZE_4K instead, then it would
*also* work.

Which is my point. We should not be doing 16K pages on the rpi5 by
default.

The tests Adam did (thanks!), was to use your defconfig, and just switch
to the bootlin toolchain, which uncovered the two issues at hand.

> So, if the assomption is right (i.e. userland and kernel page sizes must
> match), I guess it would be interesting to filter-in (or to filter-out)
> the external toolchains that match the config because buildroot prompts
> for all the external toolchain; but some of them fail at runtime because
> of a mismatch page-size.
> 
> What about introducing BR2_TOOLCHAIN_HAS_PAGE_SIZE_{4,16,64}K?

Yes, we'll have to do so.

The thing is, we are passing the proper ld flags in our wrapper (e.g.
for 16K):

    ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384

so we would eventually generated binaries that are 16K-enabled.

The problem is that the C library in an external toolchain will have
been built with an arbitrary page size, and we need to be able to find
out, if we want to check that.

For preconfigured toolchains, that's OK: all those we now ahve are
configured for 4K pages. They have to be, because nothing in Buildroot
enables non-4K pages for now.

But for a custom external toolchain, the user may not know, so we need
to validate that their choice is correct, e.g. lie we do for the type of
C library, the gcc or kernel headers versions, etc...

So, we need to:

 1. add a depends on BR2_ARM64_PAGE_SIZE_4K to all current external
    pre-configured aarch64 toolchains; ditto for arc; indeed, we should
    simply hide the toolchains that do not have the page size the user
    selected.

 2. introduce BR2_TOOLCHAIN_EXTERNAL_PAGE_SIZE_{4,8,16,64}K  (8K is for
    arc) and BR2_TOOLCHAIN_EXTERNAL_PAGE_SIZE="{4,8,16,64}K" in
    toolchain/toolchain-external/toolchain-external-custom/Config.in.options
    and add a checkpage_size helper in toolchain/helpers.mk, that
    validates that the C library was indeed built with the page size
    BR2_TOOLCHAIN_EXTERNAL_PAGE_SIZE.

The last item, checking the page size a .so was built for, is not
something I know how to do, though... Any idea?

Note that 1. and 2. are separate, and doing 1. should be relatively
easy, and does not require 2.

> Or, I am totally wrong :/

Hehe! I am happy I would not walk alone! :-)

> Regards,
> Gaël
> 
> PS: Also, BR could have two configs for pi5:
>  - raspberrypi5_defconfig: 4k
>    BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
>    # BR2_ARM64_PAGE_SIZE_4K=y
>  - raspberrypi5-16k_defconfig: 16k
>    BR2_LINUX_KERNEL_DEFCONFIG="bcm2712"
>    BR2_ARM64_PAGE_SIZE_16K=y

Not sure it would make much sense, if all the above proves to be
correct.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v2 0/2] Add support for Pi5
  2024-01-20  8:10   ` Gaël PORTAY
@ 2024-01-20  8:57     ` Yann E. MORIN
  0 siblings, 0 replies; 11+ messages in thread
From: Yann E. MORIN @ 2024-01-20  8:57 UTC (permalink / raw)
  To: Gaël PORTAY
  Cc: Julien Grossholtz, Martin Bark, Thomas Petazzoni, buildroot

Gaël, All,

On 2024-01-20 09:10 +0100, Gaël PORTAY spake thusly:
> On Fri Jan 19, 2024 at 9:13 PM CET, Yann E. MORIN wrote:
> > On 2023-12-11 16:59 +0100, Gaël PORTAY spake thusly:
> > > The first patch enables MMU 16K page-size on ARM64 as the Raspberry Pi 5
> > > supports 16K page-size[1].
> > So, unless 16K is a requirement, I think using 4K pages would be better.
> So you are suggesting to have a raspberrypi5_defconfig uses a 4k page
> size in a first place (as bcm2712 works with 4k too).

Yes.

> And to have probably a raspberrypi5-16k_defconfig that will use a 16k
> page size later once BR have enough bits to filter-out external
> toolchains that do not support for 16k page size?

Or just revert the rpi5 defconfig to 16K pages, because then we'd be
protected against a mis-configuration, so all would end well.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-01-20  8:58 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-11 15:59 [Buildroot] [PATCH v2 0/2] Add support for Pi5 Gaël PORTAY
2023-12-11 15:59 ` [Buildroot] [PATCH v2 1/2] arch: add support 16k page size on ARM64 Gaël PORTAY
2024-01-19 20:24   ` Yann E. MORIN
2023-12-11 15:59 ` [Buildroot] [PATCH v2 2/2] configs: add raspberrypi 5 defconfig Gaël PORTAY
2024-01-19 20:35   ` Yann E. MORIN
2024-01-20  3:11     ` Adam Duskett
2024-01-20  8:01       ` Gaël PORTAY
2024-01-20  8:53         ` Yann E. MORIN
2024-01-19 20:13 ` [Buildroot] [PATCH v2 0/2] Add support for Pi5 Yann E. MORIN
2024-01-20  8:10   ` Gaël PORTAY
2024-01-20  8:57     ` Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox