All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.