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 |
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>
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>
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 --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"