diff mbox series

[U-Boot] ARM: defconfig: add unified config for RPi3 and RPi4

Message ID 20191106144104.28177-1-matthias.bgg@kernel.org
State Accepted
Commit 5694090670e262b038377bf196188d8089dc90c4
Delegated to: Matthias Brugger
Headers show
Series [U-Boot] ARM: defconfig: add unified config for RPi3 and RPi4 | expand

Commit Message

Matthias Brugger Nov. 6, 2019, 2:41 p.m. UTC
From: Matthias Brugger <mbrugger@suse.com>

Provide a defconfig which allows us to boot Raspberrry Pi 4
and Raspberry Pi 3 Model B/B+
Instead of using the embedded DTB as done in RPi3 we use the
devicetree provided by the firmware.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>

---
This patch is based on the series to enable one binary for
RPi3 and RPi4:
https://patchwork.ozlabs.org/project/uboot/list/?series=140696

 arch/arm/mach-bcm283x/Kconfig |  7 ++++++
 configs/rpi_arm64_defconfig   | 45 +++++++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+)
 create mode 100644 configs/rpi_arm64_defconfig

Comments

Heinrich Schuchardt Nov. 6, 2019, 6:06 p.m. UTC | #1
On 11/6/19 3:41 PM, matthias.bgg@kernel.org wrote:
> From: Matthias Brugger <mbrugger@suse.com>
>
> Provide a defconfig which allows us to boot Raspberrry Pi 4
> and Raspberry Pi 3 Model B/B+
> Instead of using the embedded DTB as done in RPi3 we use the
> devicetree provided by the firmware.

How different are the DTBs provided by different firmware releases?

Could we run into problems because some elder or newer firmware releases
are not supported by U-Boot? - This prospect is what makes your patch a
bit scary to me.

Which different firmware releases did you test against?

Do you plan to keep the existing defconfigs and dtbs?

Best regards

Heinrich
Matthias Brugger Nov. 6, 2019, 7:40 p.m. UTC | #2
On 06/11/2019 19:06, Heinrich Schuchardt wrote:
> On 11/6/19 3:41 PM, matthias.bgg@kernel.org wrote:
>> From: Matthias Brugger <mbrugger@suse.com>
>>
>> Provide a defconfig which allows us to boot Raspberrry Pi 4
>> and Raspberry Pi 3 Model B/B+
>> Instead of using the embedded DTB as done in RPi3 we use the
>> devicetree provided by the firmware.
> 
> How different are the DTBs provided by different firmware releases?
> 
> Could we run into problems because some elder or newer firmware releases
> are not supported by U-Boot? - This prospect is what makes your patch a
> bit scary to me.
That could happen, but I suppose especially for older releases. Newer releases
tend to change in the direction of upstream.

> 
> Which different firmware releases did you test against?
> 
> Do you plan to keep the existing defconfigs and dtbs?
> 

I didn't do any extensive testing to be honest. We are using the DTB from the
firmware on RPi4 already, and I expect that newer firmwares won't break U-Boot.

My idea is to keep the existing defconfigs. Apart from being a good fallback
option if really something breaks, there might be some distros use U-Boot with
this config files and I don't want to break the setup for them.

Regards,
Matthias
diff mbox series

Patch

diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig
index e8e0ff0eb4..00419bf254 100644
--- a/arch/arm/mach-bcm283x/Kconfig
+++ b/arch/arm/mach-bcm283x/Kconfig
@@ -188,6 +188,13 @@  config TARGET_RPI_4
 	  This option creates a build targeting the ARMv8/AArch64 ISA.
 	select BCM2711_64B
 
+config TARGET_RPI_ARM64
+	bool "Raspberry Pi one binary 64-bit build"
+	help
+	  Support for all armv8 based Raspberry Pi variants, such as
+	  the RPi 4 model B, in AArch64 (64-bit) mode.
+	select ARM64
+
 endchoice
 
 config SYS_BOARD
diff --git a/configs/rpi_arm64_defconfig b/configs/rpi_arm64_defconfig
new file mode 100644
index 0000000000..f4e113f58c
--- /dev/null
+++ b/configs/rpi_arm64_defconfig
@@ -0,0 +1,45 @@ 
+CONFIG_ARM=y
+CONFIG_ARM64=y
+CONFIG_TARGET_RPI_ARM64=y
+CONFIG_ARCH_BCM283X=y
+CONFIG_SYS_TEXT_BASE=0x00080000
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_NR_DRAM_BANKS=2
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_USE_PREBOOT=y
+CONFIG_PREBOOT="usb start"
+CONFIG_MISC_INIT_R=y
+# CONFIG_DISPLAY_CPUINFO is not set
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_SYS_PROMPT="U-Boot> "
+# CONFIG_CMD_FLASH is not set
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_FS_UUID=y
+CONFIG_OF_BOARD=y
+CONFIG_ENV_FAT_INTERFACE="mmc"
+CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_DM_KEYBOARD=y
+CONFIG_DM_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_BCM2835=y
+CONFIG_PHYLIB=y
+CONFIG_DM_ETH=y
+CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_GENERIC is not set
+# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_DWC2=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_HOST_ETHER=y
+CONFIG_USB_ETHER_LAN78XX=y
+CONFIG_USB_ETHER_SMSC95XX=y
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_CONSOLE_SCROLL_LINES=10
+CONFIG_PHYS_TO_BUS=y
+CONFIG_OF_LIBFDT_OVERLAY=y