Message ID | 1429639796-2169-8-git-send-email-eric@anholt.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tuesday 21 April 2015 11:09:54 Eric Anholt wrote: > @@ -116,17 +122,19 @@ config ARCH_BCM283X > config ARCH_BCM2835 > bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 > select ARCH_BCM283X > - select ARCH_REQUIRE_GPIOLIB > - select ARM_AMBA > select ARM_ERRATA_411920 > select ARM_TIMER_SP804 > - select CLKSRC_OF > - select PINCTRL > - select PINCTRL_BCM2835 > help > This enables support for the Broadcom BCM2835 SoC. This SoC is > used in the Raspberry Pi and Roku 2 devices. > > +config ARCH_BCM2836 > + bool "Broadcom BCM2836 family" if ARCH_MULTI_V7 > + select ARCH_BCM283X > + help > + This enables support for the Broadcom BCM2836 SoC. This SoC is > + used in the Raspberry Pi 2 > + The description for the first one says "Broadcom BCM2835 family", and I guess they are both in the same family. How about leaving the CONFIG_BCM2835 symbol to mean one of them, and just duplicating the DEBUG_LL symbols? You could do something like config ARCH_BCM2835 bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 || ARCH_MULTI_V7 select ARCH_BCM283X select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select ARM_ERRATA_411920 if ARCH_MULTI_V6 select ARM_TIMER_SP804 if ARCH_MULTI_V6 select CLKSRC_OF select PINCTRL select PINCTRL_BCM2835 help This enables support for the Broadcom BCM2835 and BCM2836 SoCs. These SoCs is used in the Raspberry Pi and Roku 2 devices. That should make it less confusing to the user, because they don't have to know which specific SoC they are building for, other than enabling the right architecture level. Arnd
Arnd Bergmann <arnd@arndb.de> writes: > On Tuesday 21 April 2015 11:09:54 Eric Anholt wrote: >> @@ -116,17 +122,19 @@ config ARCH_BCM283X >> config ARCH_BCM2835 >> bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 >> select ARCH_BCM283X >> - select ARCH_REQUIRE_GPIOLIB >> - select ARM_AMBA >> select ARM_ERRATA_411920 >> select ARM_TIMER_SP804 >> - select CLKSRC_OF >> - select PINCTRL >> - select PINCTRL_BCM2835 >> help >> This enables support for the Broadcom BCM2835 SoC. This SoC is >> used in the Raspberry Pi and Roku 2 devices. >> >> +config ARCH_BCM2836 >> + bool "Broadcom BCM2836 family" if ARCH_MULTI_V7 >> + select ARCH_BCM283X >> + help >> + This enables support for the Broadcom BCM2836 SoC. This SoC is >> + used in the Raspberry Pi 2 >> + > > The description for the first one says "Broadcom BCM2835 family", and I > guess they are both in the same family. How about leaving the > CONFIG_BCM2835 symbol to mean one of them, and just duplicating the > DEBUG_LL symbols? > > You could do something like > > config ARCH_BCM2835 > bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 || ARCH_MULTI_V7 > select ARCH_BCM283X > select ARCH_REQUIRE_GPIOLIB > select ARM_AMBA > select ARM_ERRATA_411920 if ARCH_MULTI_V6 > select ARM_TIMER_SP804 if ARCH_MULTI_V6 > select CLKSRC_OF > select PINCTRL > select PINCTRL_BCM2835 > help > This enables support for the Broadcom BCM2835 and BCM2836 SoCs. > These SoCs is used in the Raspberry Pi and Roku 2 devices. > > That should make it less confusing to the user, because they don't have > to know which specific SoC they are building for, other than enabling > the right architecture level. Seems reasonable to me. What do the 2835 maintainers think?
On 04/21/2015 02:38 PM, Eric Anholt wrote: > Arnd Bergmann <arnd@arndb.de> writes: >> On Tuesday 21 April 2015 11:09:54 Eric Anholt wrote: >>> @@ -116,17 +122,19 @@ config ARCH_BCM283X config ARCH_BCM2835 >>> bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 select >>> ARCH_BCM283X - select ARCH_REQUIRE_GPIOLIB - select >>> ARM_AMBA select ARM_ERRATA_411920 select ARM_TIMER_SP804 - >>> select CLKSRC_OF - select PINCTRL - select >>> PINCTRL_BCM2835 help This enables support for the Broadcom >>> BCM2835 SoC. This SoC is used in the Raspberry Pi and Roku 2 >>> devices. >>> >>> +config ARCH_BCM2836 + bool "Broadcom BCM2836 family" if >>> ARCH_MULTI_V7 + select ARCH_BCM283X + help + >>> This enables support for the Broadcom BCM2836 SoC. This SoC is >>> + used in the Raspberry Pi 2 + >> >> The description for the first one says "Broadcom BCM2835 family", >> and I guess they are both in the same family. How about leaving >> the CONFIG_BCM2835 symbol to mean one of them, and just >> duplicating the DEBUG_LL symbols? >> >> You could do something like >> >> config ARCH_BCM2835 bool "Broadcom BCM2835 family" if >> ARCH_MULTI_V6 || ARCH_MULTI_V7 select ARCH_BCM283X select >> ARCH_REQUIRE_GPIOLIB select ARM_AMBA select ARM_ERRATA_411920 if >> ARCH_MULTI_V6 select ARM_TIMER_SP804 if ARCH_MULTI_V6 select >> CLKSRC_OF select PINCTRL select PINCTRL_BCM2835 help This enables >> support for the Broadcom BCM2835 and BCM2836 SoCs. These SoCs is >> used in the Raspberry Pi and Roku 2 devices. >> >> That should make it less confusing to the user, because they >> don't have to know which specific SoC they are building for, >> other than enabling the right architecture level. > > Seems reasonable to me. What do the 2835 maintainers think? Yes, sounds reasonable to me.
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 970de75..7da2061 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -137,6 +137,11 @@ choice depends on ARCH_BCM2835 select DEBUG_UART_PL01X + config DEBUG_BCM2836 + bool "Kernel low-level debugging on BCM2836 PL011 UART" + depends on ARCH_BCM2836 + select DEBUG_UART_PL01X + config DEBUG_BCM_5301X bool "Kernel low-level debugging on BCM5301X UART1" depends on ARCH_BCM_5301X @@ -1369,6 +1374,7 @@ config DEBUG_UART_PHYS default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3 default 0x20201000 if DEBUG_BCM2835 + default 0x3f201000 if DEBUG_BCM2836 default 0x3e000000 if DEBUG_BCM_KONA_UART default 0x4000e400 if DEBUG_LL_UART_EFM32 default 0x40090000 if ARCH_LPC32XX @@ -1450,7 +1456,7 @@ config DEBUG_UART_VIRT default 0xf0000be0 if ARCH_EBSA110 default 0xf0010000 if DEBUG_ASM9260_UART default 0xf01fb000 if DEBUG_NOMADIK_UART - default 0xf0201000 if DEBUG_BCM2835 + default 0xf0201000 if DEBUG_BCM2835 || DEBUG_BCM2836 default 0xf1000300 if DEBUG_BCM_5301X default 0xf1002000 if DEBUG_MT8127_UART0 default 0xf1006000 if DEBUG_MT6589_UART0 diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index a1c776b..72b476d 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -52,6 +52,8 @@ dtb-$(CONFIG_ARCH_AXXIA) += \ dtb-$(CONFIG_ARCH_BCM2835) += \ bcm2835-rpi-b.dtb \ bcm2835-rpi-b-plus.dtb +dtb-$(CONFIG_ARCH_BCM2836) += \ + bcm2836-rpi-2-b.dtb dtb-$(CONFIG_ARCH_BCM_5301X) += \ bcm4708-buffalo-wzr-1750dhp.dtb \ bcm4708-luxul-xwc-1000.dtb \ diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index 7c438b2..751ea08 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig @@ -109,6 +109,12 @@ comment "Other Architectures" config ARCH_BCM283X bool + select ARCH_REQUIRE_GPIOLIB + select ARM_AMBA + select PINCTRL + select PINCTRL_BCM2835 + select CLKSRC_OF + select CLKSRC_MMIO help This option should be selected by the 2835 and 2836 chips to enable common platform features. @@ -116,17 +122,19 @@ config ARCH_BCM283X config ARCH_BCM2835 bool "Broadcom BCM2835 family" if ARCH_MULTI_V6 select ARCH_BCM283X - select ARCH_REQUIRE_GPIOLIB - select ARM_AMBA select ARM_ERRATA_411920 select ARM_TIMER_SP804 - select CLKSRC_OF - select PINCTRL - select PINCTRL_BCM2835 help This enables support for the Broadcom BCM2835 SoC. This SoC is used in the Raspberry Pi and Roku 2 devices. +config ARCH_BCM2836 + bool "Broadcom BCM2836 family" if ARCH_MULTI_V7 + select ARCH_BCM283X + help + This enables support for the Broadcom BCM2836 SoC. This SoC is + used in the Raspberry Pi 2 + config ARCH_BCM_63XX bool "Broadcom BCM63xx DSL SoC" if ARCH_MULTI_V7 depends on MMU
This port to the Raspberry Pi 2 comes up with SD card and network working. It doesn't yet support SMP, the ARM local timer, or PMU events, and serial is fixed in a follow-on patch. Signed-off-by: Eric Anholt <eric@anholt.net> --- arch/arm/Kconfig.debug | 8 +++++++- arch/arm/boot/dts/Makefile | 2 ++ arch/arm/mach-bcm/Kconfig | 18 +++++++++++++----- 3 files changed, 22 insertions(+), 6 deletions(-)