diff mbox series

[V3,6/8] ARM: bcm: Add support for BCM2711 SoC

Message ID 1569672435-19823-7-git-send-email-wahrenst@gmx.net (mailing list archive)
State New, archived
Headers show
Series ARM: Add minimal Raspberry Pi 4 support | expand

Commit Message

Stefan Wahren Sept. 28, 2019, 12:07 p.m. UTC
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>
---
 arch/arm/mach-bcm/Kconfig    |  3 ++-
 arch/arm/mach-bcm/Makefile   |  3 ++-
 arch/arm/mach-bcm/bcm2711.c  | 24 ++++++++++++++++++++++++
 arch/arm64/Kconfig.platforms |  5 +++--
 4 files changed, 31 insertions(+), 4 deletions(-)
 create mode 100644 arch/arm/mach-bcm/bcm2711.c

--
2.7.4

Comments

Florian Fainelli Sept. 28, 2019, 7:16 p.m. UTC | #1
On 9/28/2019 5:07 AM, Stefan Wahren wrote:
> 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>
> ---
>  arch/arm/mach-bcm/Kconfig    |  3 ++-
>  arch/arm/mach-bcm/Makefile   |  3 ++-
>  arch/arm/mach-bcm/bcm2711.c  | 24 ++++++++++++++++++++++++
>  arch/arm64/Kconfig.platforms |  5 +++--
>  4 files changed, 31 insertions(+), 4 deletions(-)
>  create mode 100644 arch/arm/mach-bcm/bcm2711.c
> 
> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
> index 5e5f1fa..39bcbea 100644
> --- a/arch/arm/mach-bcm/Kconfig
> +++ b/arch/arm/mach-bcm/Kconfig
> @@ -161,6 +161,7 @@ config ARCH_BCM2835
>  	select GPIOLIB
>  	select ARM_AMBA
>  	select ARM_ERRATA_411920 if ARCH_MULTI_V6
> +	select ARM_GIC if ARCH_MULTI_V7
>  	select ARM_TIMER_SP804
>  	select HAVE_ARM_ARCH_TIMER if ARCH_MULTI_V7
>  	select TIMER_OF

Are not we missing a select ZONE_DMA here?

> @@ -169,7 +170,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
> diff --git a/arch/arm/mach-bcm/Makefile b/arch/arm/mach-bcm/Makefile
> index b59c813..7baa8c9 100644
> --- a/arch/arm/mach-bcm/Makefile
> +++ b/arch/arm/mach-bcm/Makefile
> @@ -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
> index 0000000..dbe2967
> --- /dev/null
> +++ b/arch/arm/mach-bcm/bcm2711.c
> @@ -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
> diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
> index 16d7614..b5d31dc 100644
> --- a/arch/arm64/Kconfig.platforms
> +++ b/arch/arm64/Kconfig.platforms
> @@ -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.
> +	  This SoC is used in the Raspberry Pi 3 and 4 device.

Nit:

These SoCs are used in the Raspberry Pi 3 and 4 devices.

With that:

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Stefan Wahren Sept. 28, 2019, 11:09 p.m. UTC | #2
Am 28.09.19 um 21:16 schrieb Florian Fainelli:
>
> On 9/28/2019 5:07 AM, Stefan Wahren wrote:
>> 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>
>> ---
>>  arch/arm/mach-bcm/Kconfig    |  3 ++-
>>  arch/arm/mach-bcm/Makefile   |  3 ++-
>>  arch/arm/mach-bcm/bcm2711.c  | 24 ++++++++++++++++++++++++
>>  arch/arm64/Kconfig.platforms |  5 +++--
>>  4 files changed, 31 insertions(+), 4 deletions(-)
>>  create mode 100644 arch/arm/mach-bcm/bcm2711.c
>>
>> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
>> index 5e5f1fa..39bcbea 100644
>> --- a/arch/arm/mach-bcm/Kconfig
>> +++ b/arch/arm/mach-bcm/Kconfig
>> @@ -161,6 +161,7 @@ config ARCH_BCM2835
>>  	select GPIOLIB
>>  	select ARM_AMBA
>>  	select ARM_ERRATA_411920 if ARCH_MULTI_V6
>> +	select ARM_GIC if ARCH_MULTI_V7
>>  	select ARM_TIMER_SP804
>>  	select HAVE_ARM_ARCH_TIMER if ARCH_MULTI_V7
>>  	select TIMER_OF
> Are not we missing a select ZONE_DMA here?
Yes. I think for arm and arm64.
>
>> @@ -169,7 +170,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
>> diff --git a/arch/arm/mach-bcm/Makefile b/arch/arm/mach-bcm/Makefile
>> index b59c813..7baa8c9 100644
>> --- a/arch/arm/mach-bcm/Makefile
>> +++ b/arch/arm/mach-bcm/Makefile
>> @@ -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
>> index 0000000..dbe2967
>> --- /dev/null
>> +++ b/arch/arm/mach-bcm/bcm2711.c
>> @@ -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
>> diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
>> index 16d7614..b5d31dc 100644
>> --- a/arch/arm64/Kconfig.platforms
>> +++ b/arch/arm64/Kconfig.platforms
>> @@ -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.
>> +	  This SoC is used in the Raspberry Pi 3 and 4 device.
> Nit:
>
> These SoCs are used in the Raspberry Pi 3 and 4 devices.
>
> With that:
>
> Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Nicolas Saenz Julienne Sept. 30, 2019, 8:21 a.m. UTC | #3
On Sun, 2019-09-29 at 01:09 +0200, Stefan Wahren wrote:
> Am 28.09.19 um 21:16 schrieb Florian Fainelli:
> > On 9/28/2019 5:07 AM, Stefan Wahren wrote:
> > > 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>
> > > ---
> > >  arch/arm/mach-bcm/Kconfig    |  3 ++-
> > >  arch/arm/mach-bcm/Makefile   |  3 ++-
> > >  arch/arm/mach-bcm/bcm2711.c  | 24 ++++++++++++++++++++++++
> > >  arch/arm64/Kconfig.platforms |  5 +++--
> > >  4 files changed, 31 insertions(+), 4 deletions(-)
> > >  create mode 100644 arch/arm/mach-bcm/bcm2711.c
> > > 
> > > diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
> > > index 5e5f1fa..39bcbea 100644
> > > --- a/arch/arm/mach-bcm/Kconfig
> > > +++ b/arch/arm/mach-bcm/Kconfig
> > > @@ -161,6 +161,7 @@ config ARCH_BCM2835
> > >  	select GPIOLIB
> > >  	select ARM_AMBA
> > >  	select ARM_ERRATA_411920 if ARCH_MULTI_V6
> > > +	select ARM_GIC if ARCH_MULTI_V7
> > >  	select ARM_TIMER_SP804
> > >  	select HAVE_ARM_ARCH_TIMER if ARCH_MULTI_V7
> > >  	select TIMER_OF
> > Are not we missing a select ZONE_DMA here?
> Yes. I think for arm and arm64.

No need in arm64, see arch/arm64/Kconfig:270.

> > > @@ -169,7 +170,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
> > > diff --git a/arch/arm/mach-bcm/Makefile b/arch/arm/mach-bcm/Makefile
> > > index b59c813..7baa8c9 100644
> > > --- a/arch/arm/mach-bcm/Makefile
> > > +++ b/arch/arm/mach-bcm/Makefile
> > > @@ -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
> > > index 0000000..dbe2967
> > > --- /dev/null
> > > +++ b/arch/arm/mach-bcm/bcm2711.c
> > > @@ -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
> > > diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
> > > index 16d7614..b5d31dc 100644
> > > --- a/arch/arm64/Kconfig.platforms
> > > +++ b/arch/arm64/Kconfig.platforms
> > > @@ -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.
> > > +	  This SoC is used in the Raspberry Pi 3 and 4 device.
> > Nit:
> > 
> > These SoCs are used in the Raspberry Pi 3 and 4 devices.
> > 
> > With that:
> > 
> > Acked-by: Florian Fainelli <f.fainelli@gmail.com>
diff mbox series

Patch

diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index 5e5f1fa..39bcbea 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -161,6 +161,7 @@  config ARCH_BCM2835
 	select GPIOLIB
 	select ARM_AMBA
 	select ARM_ERRATA_411920 if ARCH_MULTI_V6
+	select ARM_GIC if ARCH_MULTI_V7
 	select ARM_TIMER_SP804
 	select HAVE_ARM_ARCH_TIMER if ARCH_MULTI_V7
 	select TIMER_OF
@@ -169,7 +170,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
diff --git a/arch/arm/mach-bcm/Makefile b/arch/arm/mach-bcm/Makefile
index b59c813..7baa8c9 100644
--- a/arch/arm/mach-bcm/Makefile
+++ b/arch/arm/mach-bcm/Makefile
@@ -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
index 0000000..dbe2967
--- /dev/null
+++ b/arch/arm/mach-bcm/bcm2711.c
@@ -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
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index 16d7614..b5d31dc 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -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.
+	  This SoC is used in the Raspberry Pi 3 and 4 device.

 config ARCH_BCM_IPROC
 	bool "Broadcom iProc SoC Family"