Skip to content

Commit e856c9c

Browse files
committed
ARM: bcm: Backport BCM2711 support from upstream
Make the BCM2711 a different machine, but keep it in board_bcm2835. Signed-off-by: Stefan Wahren <[email protected]>
1 parent 568882d commit e856c9c

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

arch/arm/mach-bcm/Kconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ config ARCH_BCM2835
161161
select GPIOLIB
162162
select ARM_AMBA
163163
select ARM_ERRATA_411920 if ARCH_MULTI_V6
164-
select ARM_GIC
164+
select ARM_GIC if ARCH_MULTI_V7
165165
select ARM_TIMER_SP804
166166
select HAVE_ARM_ARCH_TIMER if ARCH_MULTI_V7
167167
select TIMER_OF
@@ -175,7 +175,7 @@ config ARCH_BCM2835
175175
select ZONE_DMA if ARM_LPAE
176176
select MFD_CORE
177177
help
178-
This enables support for the Broadcom BCM2835 and BCM2836 SoCs.
178+
This enables support for the Broadcom BCM2711 and BCM283x SoCs.
179179
This SoC is used in the Raspberry Pi and Roku 2 devices.
180180

181181
config ARCH_BCM_53573

arch/arm/mach-bcm/board_bcm2835.c

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,19 +109,32 @@ static const char * const bcm2835_compat[] = {
109109
#ifdef CONFIG_ARCH_MULTI_V7
110110
"brcm,bcm2836",
111111
"brcm,bcm2837",
112+
#endif
113+
NULL
114+
};
115+
116+
DT_MACHINE_START(BCM2835, "BCM2835")
117+
.map_io = bcm2835_map_io,
118+
.init_machine = bcm2835_init,
119+
.dt_compat = bcm2835_compat,
120+
.smp = smp_ops(bcm2836_smp_ops),
121+
MACHINE_END
122+
123+
static const char * const bcm2711_compat[] = {
124+
#ifdef CONFIG_ARCH_MULTI_V7
112125
"brcm,bcm2711",
113126
// Temporary, for backwards-compatibility with old DTBs
114127
"brcm,bcm2838",
115128
#endif
116129
NULL
117130
};
118131

119-
DT_MACHINE_START(BCM2835, "BCM2835")
132+
DT_MACHINE_START(BCM2711, "BCM2711")
120133
#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
121134
.dma_zone_size = SZ_1G,
122135
#endif
123136
.map_io = bcm2835_map_io,
124137
.init_machine = bcm2835_init,
125-
.dt_compat = bcm2835_compat,
138+
.dt_compat = bcm2711_compat,
126139
.smp = smp_ops(bcm2836_smp_ops),
127140
MACHINE_END

arch/arm64/Kconfig.platforms

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,12 @@ config ARCH_BCM2835
3737
select PINCTRL
3838
select PINCTRL_BCM2835
3939
select ARM_AMBA
40+
select ARM_GIC
4041
select ARM_TIMER_SP804
4142
select HAVE_ARM_ARCH_TIMER
4243
help
43-
This enables support for the Broadcom BCM2837 SoC.
44-
This SoC is used in the Raspberry Pi 3 device.
44+
This enables support for the Broadcom BCM2837 and BCM2711 SoC.
45+
These SoCs are used in the Raspberry Pi 3 and 4 devices.
4546

4647
config ARCH_BCM_IPROC
4748
bool "Broadcom iProc SoC Family"

0 commit comments

Comments
 (0)