ARM: bcm: Backport BCM2711 support from upstream
authorStefan Wahren <wahrenst@gmx.net>
Fri, 27 Dec 2019 10:40:56 +0000 (11:40 +0100)
committerpopcornmix <popcornmix@gmail.com>
Wed, 1 Jul 2020 15:33:15 +0000 (16:33 +0100)
Make the BCM2711 a different machine, but keep it in board_bcm2835.

Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
arch/arm/mach-bcm/Kconfig
arch/arm/mach-bcm/board_bcm2835.c
arch/arm64/Kconfig.platforms

index e25dfc9..6ff7c56 100644 (file)
@@ -161,7 +161,7 @@ config ARCH_BCM2835
        select GPIOLIB
        select ARM_AMBA
        select ARM_ERRATA_411920 if ARCH_MULTI_V6
-       select ARM_GIC
+       select ARM_GIC if ARCH_MULTI_V7
        select ARM_TIMER_SP804
        select HAVE_ARM_ARCH_TIMER if ARCH_MULTI_V7
        select TIMER_OF
@@ -175,7 +175,7 @@ config ARCH_BCM2835
        select ZONE_DMA if ARM_LPAE
        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 0ec49d8..b7491dd 100644 (file)
@@ -109,6 +109,19 @@ static const char * const bcm2835_compat[] = {
 #ifdef CONFIG_ARCH_MULTI_V7
        "brcm,bcm2836",
        "brcm,bcm2837",
+#endif
+       NULL
+};
+
+DT_MACHINE_START(BCM2835, "BCM2835")
+       .map_io = bcm2835_map_io,
+       .init_machine = bcm2835_init,
+       .dt_compat = bcm2835_compat,
+       .smp = smp_ops(bcm2836_smp_ops),
+MACHINE_END
+
+static const char * const bcm2711_compat[] = {
+#ifdef CONFIG_ARCH_MULTI_V7
        "brcm,bcm2711",
        // Temporary, for backwards-compatibility with old DTBs
        "brcm,bcm2838",
@@ -116,12 +129,12 @@ static const char * const bcm2835_compat[] = {
        NULL
 };
 
-DT_MACHINE_START(BCM2835, "BCM2835")
+DT_MACHINE_START(BCM2711, "BCM2711")
 #if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
        .dma_zone_size  = SZ_1G,
 #endif
        .map_io = bcm2835_map_io,
        .init_machine = bcm2835_init,
-       .dt_compat = bcm2835_compat,
+       .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"