Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/8] configs/raspberrypi*: install missing dtb
@ 2024-07-16  5:43 Gaël PORTAY
  2024-07-16  5:43 ` [Buildroot] [PATCH 1/8] configs/raspberrypi: install Raspberry Pi rev 1.0 device-tree blob Gaël PORTAY
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Gaël PORTAY @ 2024-07-16  5:43 UTC (permalink / raw)
  To: buildroot; +Cc: Gaël PORTAY, Martin Bark, Julien Grossholtz

Hello,

This patch serie installs the missing device-tree blobs according to
their hardware's defconfig and it cleans up the defconfigs so they look
similar.

I noticed the defconfig files slighly differ while I was diff'ing them
together.

Also, I noticed that they are several device-tree blobs that are not
installed by the defconfigs (various variants).

Here is the list of the downstream bcm27xx generated dtbs:
 - bcm2708-rpi-b-plus.dtb
 - bcm2708-rpi-b-rev1.dtb (not installed; Raspberry Pi)
 - bcm2708-rpi-b.dtb
 - bcm2708-rpi-cm.dtb
 - bcm2708-rpi-zero-w.dtb
 - bcm2708-rpi-zero.dtb
 - bcm2709-rpi-2-b.dtb
 - bcm2709-rpi-cm2.dtb (note: there is no Compute Module 2 available,
   prototype?)
 - bcm2710-rpi-2-b.dtb (not installed; Raspberry Pi 2 rev 1.2, using
   BCM2837 instead of BCM2836)
 - bcm2710-rpi-3-b-plus.dtb
 - bcm2710-rpi-3-b.dtb
 - bcm2710-rpi-cm3.dtb (not installed on raspberrypi3_64_defconfig,
   installed on raspberrypi3_{,qt5we_}defconfig)
 - bcm2710-rpi-zero-2-w.dtb
 - bcm2710-rpi-zero-2.dtb (note: there is no Raspberry Pi Zero 2,
   prototype?)
 - bcm2711-rpi-4-b.dtb
 - bcm2711-rpi-400.dtb (not installed; Raspberry Pi 400)
 - bcm2711-rpi-cm4-io.dtb (upstream dtb)
 - bcm2711-rpi-cm4.dtb (not installed on raspberrypi4{,_64}_defconfig;
   installed on rasperrypicm4io{,_64}_defconfig; Compute Module 4)
 - bcm2711-rpi-cm4s.dtb (not installed on raspberrypi4{,_64}_defconfig;
   installed on rasperrypicm4io{,_64}_defconfig; Compute Module 4s)
 - bcm2712-rpi-5-b.dtb
 - bcm2712-rpi-cm5-cm4io.dtb (note: there is no Compute Module 5, yet?)
 - bcm2712-rpi-cm5-cm5io.dtb (note: there is no Compute Module 5, yet?)
 - bcm2712d0-rpi-5-b.dtb (not installed on raspberrypi5_defconfig; new
   release of Raspberry Pi 5 or Compute Module 5?)

The first seven commits installs (remove) the device-tree blobs by
appending (removing) them to (from) BR2_LINUX_KERNEL_INTREE_DTS_NAME:
  - Raspberry Pi rev 1.0 (bcm2708-rpi-b-rev1) -> raspberrypi_defconfig
  - Raspberry Pi 2 rev 1.2 (bcm2710-rpi-2-b) -> raspberrypi2_defconfig
  - Compute Module 3 (bcm2710-rpi-cm3) -> raspberrypi3_64_defconfig
  - Raspberry Pi 400 (bcm2711-rpi-400) -> raspberrypi4{,_64}_defconfig
  - Compute Module 4/4s (bcm2711-rpi-cm4{,s}) -> raspberrypi4{,_64}_defconfig
  - Raspberry Pi 5 BCM2712D0 (bcm2712d0-rpi-5-b) -> raspberrypi5_defconfig

It exists two kinds of device-tree blobs (up to the Raspberry Pi 3)[1]:
 - the downstream dtbs are named after the die name (i.e. BCM27xx)
 - the upstream dtbs are name after the package name (i.e. BCM283x)
Every defconfigs install exclusively the downstream device-tree blob, at
the exception of the raspberrypi3_64_defconfig that installs both since
the begining. The fourth patch removes the upstream device-tree blob.
The firmware selects the downstream dtb unless upstream_kernel=1 is
set[2].

The last patch moves some configs in the defconfigs and removes some
comments so the defconfig files look similar and it makes a diff easy.

Question: I am a bit perplex by installing the Raspberry Pi 2 rev 1.2 in
the raspberrypi2_defconfig since its switched from BCM2836 (cortex-a7)
to BCM2837 (cortex-a53, the same as pi3 and pizero2w).

I think it makes sense to install its dtb using its board's defconfig
(rasperrypi2_defconfig) at the cost of "performance" because it loses
its true architecture.

Also, it makes sense to install its dtb from the raspberrypi3_defconfig
as it uses the same SoC at the cost of "consistency" because the
defconfig for pi3 installs things for the pi2 1.2 (and add its dts to
raspberrypi3_64_defconfig as well since BCM2837 is 64-bit).

Alternatively, it can be installed on both, or (but terrible), two more
defconfigs can be added for that specific case:
 - raspberrypi2_1.2_defconfig
 - raspberrypi2_1.2_64_defconfig

What is your opinion?

[1]: https://github.com/raspberrypi/linux/issues/3237
[2]: https://www.raspberrypi.com/documentation/computers/legacy_config_txt.html#upstream_kernel
[3]: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#flagship-series

Regards,
Gaël PORTAY (8):
  configs/raspberrypi: install Raspberry Pi rev 1.0 device-tree blob
  configs/raspberrypi2: install Raspberry Pi 2 rev 1.2 device-tree blob
  configs/raspberrypi3_64: install Compute Module 3 device-tree blob
  configs/raspberrypi3_64: remove upstream device-tree blob
  configs/raspberrypi4*: install Raspberry Pi 400 device-tree blob
  configs/raspberrypi4*: install Compute Module 4/4s device-tree blobs
  configs/raspberrypi5: install BCM2712D0 device-tree blob
  configs/raspberrypi*: sort some configs

 board/raspberrypi/readme.txt          |  6 +++++-
 configs/raspberrypi0_defconfig        |  3 ---
 configs/raspberrypi0w_defconfig       |  1 +
 configs/raspberrypi2_defconfig        |  8 +++-----
 configs/raspberrypi3_64_defconfig     |  8 +++-----
 configs/raspberrypi3_defconfig        |  6 ++----
 configs/raspberrypi3_qt5we_defconfig  | 15 +++++++--------
 configs/raspberrypi4_64_defconfig     |  8 +++-----
 configs/raspberrypi4_defconfig        |  8 +++-----
 configs/raspberrypi5_defconfig        | 13 ++++++-------
 configs/raspberrypi_defconfig         |  4 +---
 configs/raspberrypicm4io_64_defconfig |  6 ++----
 configs/raspberrypicm4io_defconfig    |  6 ++----
 configs/raspberrypizero2w_defconfig   |  5 +++--
 14 files changed, 41 insertions(+), 56 deletions(-)

-- 
2.45.2

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

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

end of thread, other threads:[~2024-07-17 21:21 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-16  5:43 [Buildroot] [PATCH 0/8] configs/raspberrypi*: install missing dtb Gaël PORTAY
2024-07-16  5:43 ` [Buildroot] [PATCH 1/8] configs/raspberrypi: install Raspberry Pi rev 1.0 device-tree blob Gaël PORTAY
2024-07-16  5:43 ` [Buildroot] [PATCH 2/8] configs/raspberrypi2: install Raspberry Pi 2 rev 1.2 " Gaël PORTAY
2024-07-16  5:43 ` [Buildroot] [PATCH 3/8] configs/raspberrypi3_64: install Compute Module 3 " Gaël PORTAY
2024-07-17 21:20   ` Thomas Petazzoni via buildroot
2024-07-16  5:43 ` [Buildroot] [PATCH 4/8] configs/raspberrypi3_64: remove upstream " Gaël PORTAY
2024-07-17 21:21   ` Thomas Petazzoni via buildroot
2024-07-16  5:43 ` [Buildroot] [PATCH 5/8] configs/raspberrypi4*: install Raspberry Pi 400 " Gaël PORTAY
2024-07-16  5:43 ` [Buildroot] [PATCH 6/8] configs/raspberrypi4*: install Compute Module 4/4s device-tree blobs Gaël PORTAY
2024-07-16  5:43 ` [Buildroot] [PATCH 7/8] configs/raspberrypi5: install BCM2712D0 device-tree blob Gaël PORTAY
2024-07-16  5:43 ` [Buildroot] [PATCH 8/8] configs/raspberrypi*: sort some configs Gaël PORTAY
2024-07-17 21:19 ` [Buildroot] [PATCH 0/8] configs/raspberrypi*: install missing dtb Thomas Petazzoni via buildroot

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