diff options
author | Pierre-Olivier Huard <pierre-olivier.huard@rtone.fr> | 2024-02-15 13:01:09 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2024-02-16 13:01:20 +0100 |
commit | 749e11023eb8dacd994cae7b0c286b03bc090ffc (patch) | |
tree | ec917b0c7df0a5914d7f3dd0637db78b7d72c45e | |
parent | 59aab0bebb1b6b064a75e02279d6e90a8c30e2fb (diff) | |
download | barebox-749e11023eb8.tar.gz barebox-749e11023eb8.tar.xz |
ARM: dts: rpi4: add DT for CM4S
CM4S is close to the CM4, and thus is herited from it, with some
minor changes:
* The uart1 node (mini UART) does not need the clock to be forced to
500MHz.
* The compatible field needs to be updated to match the CM4S
There is still an issue with the dwc2 driver in timeout.
Boot log:
Board: Raspberry Pi Compute Module 4S IO Board
deep-probe: supported due to raspberrypi,4-compute-module-s
bcm2835_mci fe300000.mmc@7e300000.of: registered as mci0
WARNING: dwc2 fe980000.usb@7e980000.of: dwc2_core_reset: Timeout! Waiting for Core Soft Reset
ERROR: dwc2 fe980000.usb@7e980000.of: probe failed: Connection timed out
bcm2835_mci fe340000.mmc@7e340000.of: registered as mci1
malloc space: 0x1f17ca80 -> 0x3e2f94ff (size 497.5 MiB)
no /dev/disk0.0 or /dev/mmc0.0. using default env
no '/hat' node found in vc fdt
environment load /dev/env0: No such file or directory
Maybe you have to create the partition.
Hit any to stop autoboot: 3
Signed-off-by: Pierre-Olivier Huard <pierre-olivier.huard@rtone.fr>
Link: https://lore.barebox.org/20240215120109.23242-1-pierre-olivier.huard@rtone.fr
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/arm/boards/raspberry-pi/lowlevel.c | 3 | ||||
-rw-r--r-- | arch/arm/dts/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/dts/bcm2711-rpi-cm4s-io.dts | 20 |
3 files changed, 24 insertions, 1 deletions
diff --git a/arch/arm/boards/raspberry-pi/lowlevel.c b/arch/arm/boards/raspberry-pi/lowlevel.c index a1e195d811..b3727d930f 100644 --- a/arch/arm/boards/raspberry-pi/lowlevel.c +++ b/arch/arm/boards/raspberry-pi/lowlevel.c @@ -73,6 +73,7 @@ extern char __dtb_z_bcm2837_rpi_cm3_start[]; extern char __dtb_z_bcm2711_rpi_4_start[]; extern char __dtb_z_bcm2711_rpi_400_start[]; extern char __dtb_z_bcm2711_rpi_cm4_io_start[]; +extern char __dtb_z_bcm2711_rpi_cm4s_io_start[]; RPI_ENTRY_FUNCTION(start_raspberry_pi1, SZ_128M, fdt) { @@ -139,6 +140,8 @@ static void *rpi_get_board_fdt(int rev) return DT_IF_ENABLED(__dtb_z_bcm2711_rpi_400_start, CONFIG_MACH_RPI4); case BCM2711_BOARD_REV_CM4: return DT_IF_ENABLED(__dtb_z_bcm2711_rpi_cm4_io_start, CONFIG_MACH_RPI4); + case BCM2711_BOARD_REV_CM4_S: + return DT_IF_ENABLED(__dtb_z_bcm2711_rpi_cm4s_io_start, CONFIG_MACH_RPI4); } return NULL; diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 301014eaff..34ebc3c419 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -123,7 +123,7 @@ lwl-$(CONFIG_MACH_RPI) += bcm2835-rpi.dtb.o lwl-$(CONFIG_MACH_RPI2) += bcm2836-rpi-2.dtb.o lwl-$(CONFIG_MACH_RPI3) += bcm2837-rpi-3.dtb.o lwl-$(CONFIG_MACH_RPI_CM3) += bcm2837-rpi-cm3.dtb.o -lwl-$(CONFIG_MACH_RPI4) += bcm2711-rpi-4.dtb.o bcm2711-rpi-400.dtb.o bcm2711-rpi-cm4-io.dtb.o +lwl-$(CONFIG_MACH_RPI4) += bcm2711-rpi-4.dtb.o bcm2711-rpi-400.dtb.o bcm2711-rpi-cm4-io.dtb.o bcm2711-rpi-cm4s-io.dtb.o lwl-$(CONFIG_MACH_SABRELITE) += imx6q-sabrelite.dtb.o imx6dl-sabrelite.dtb.o lwl-$(CONFIG_MACH_SABRESD) += imx6q-sabresd.dtb.o imx6qp-sabresd.dtb.o lwl-$(CONFIG_MACH_FREESCALE_IMX6SX_SABRESDB) += imx6sx-sdb.dtb.o diff --git a/arch/arm/dts/bcm2711-rpi-cm4s-io.dts b/arch/arm/dts/bcm2711-rpi-cm4s-io.dts new file mode 100644 index 0000000000..8302523e47 --- /dev/null +++ b/arch/arm/dts/bcm2711-rpi-cm4s-io.dts @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include "bcm2711-rpi-cm4-io.dts" + +&{/memory@0} { + reg = <0x0 0x0 0x0>; +}; + +/ { + compatible = "raspberrypi,4-compute-module-s", "brcm,bcm2711"; + model = "Raspberry Pi Compute Module 4S IO Board"; + + chosen { + stdout-path = "serial0:115200n8"; + }; +}; + +&uart1 { + /delete-property/ clock-frequency; +}; |