ARM: bcm: Add support for BCM2711 SoC
authorStefan Wahren <wahrenst@gmx.net>
Mon, 30 Sep 2019 18:29:12 +0000 (20:29 +0200)
committerStefan Wahren <wahrenst@gmx.net>
Thu, 10 Oct 2019 17:21:03 +0000 (19:21 +0200)
Add the BCM2711 to ARCH_BCM2835, but use new machine board code
because of the differences.

Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Florian Fanelli <f.fainelli@gmail.com>
arch/arm/mach-bcm/Kconfig
arch/arm/mach-bcm/Makefile
arch/arm/mach-bcm/bcm2711.c [new file with mode: 0644]
arch/arm64/Kconfig.platforms

index 5e5f1fa..e4e25f2 100644 (file)
@@ -161,6 +161,8 @@ config ARCH_BCM2835
        select GPIOLIB
        select ARM_AMBA
        select ARM_ERRATA_411920 if ARCH_MULTI_V6
+       select ARM_GIC if ARCH_MULTI_V7
+       select ZONE_DMA if ARCH_MULTI_V7
        select ARM_TIMER_SP804
        select HAVE_ARM_ARCH_TIMER if ARCH_MULTI_V7
        select TIMER_OF
@@ -169,7 +171,7 @@ config ARCH_BCM2835
        select PINCTRL_BCM2835
        select MFD_CORE
        help
-         This enables support for the Broadcom BCM2835 and BCM2836 SoCs.
+         This enables support for the Broadcom BCM2711 and BCM283x SoCs.
          This SoC is used in the Raspberry Pi and Roku 2 devices.
 
 config ARCH_BCM_53573
index b59c813..7baa8c9 100644 (file)
@@ -42,8 +42,9 @@ obj-$(CONFIG_ARCH_BCM_MOBILE_L2_CACHE) += kona_l2_cache.o
 obj-$(CONFIG_ARCH_BCM_MOBILE_SMC) += bcm_kona_smc.o
 
 # BCM2835
-obj-$(CONFIG_ARCH_BCM2835)     += board_bcm2835.o
 ifeq ($(CONFIG_ARCH_BCM2835),y)
+obj-y                          += board_bcm2835.o
+obj-y                          += bcm2711.o
 ifeq ($(CONFIG_ARM),y)
 obj-$(CONFIG_SMP)              += platsmp.o
 endif
diff --git a/arch/arm/mach-bcm/bcm2711.c b/arch/arm/mach-bcm/bcm2711.c
new file mode 100644 (file)
index 0000000..dbe2967
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 Stefan Wahren
+ */
+
+#include <linux/of_address.h>
+
+#include <asm/mach/arch.h>
+
+#include "platsmp.h"
+
+static const char * const bcm2711_compat[] = {
+#ifdef CONFIG_ARCH_MULTI_V7
+       "brcm,bcm2711",
+#endif
+};
+
+DT_MACHINE_START(BCM2711, "BCM2711")
+#ifdef CONFIG_ZONE_DMA
+       .dma_zone_size  = SZ_1G,
+#endif
+       .dt_compat = bcm2711_compat,
+       .smp = smp_ops(bcm2836_smp_ops),
+MACHINE_END
index 16d7614..63b463b 100644 (file)
@@ -37,11 +37,12 @@ config ARCH_BCM2835
        select PINCTRL
        select PINCTRL_BCM2835
        select ARM_AMBA
+       select ARM_GIC
        select ARM_TIMER_SP804
        select HAVE_ARM_ARCH_TIMER
        help
-         This enables support for the Broadcom BCM2837 SoC.
-         This SoC is used in the Raspberry Pi 3 device.
+         This enables support for the Broadcom BCM2837 and BCM2711 SoC.
+         These SoCs are used in the Raspberry Pi 3 and 4 devices.
 
 config ARCH_BCM_IPROC
        bool "Broadcom iProc SoC Family"