Message ID | 1464817421-8519-2-git-send-email-kraxel@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 06/01/2016 02:43 PM, Gerd Hoffmann wrote: > From: Eric Anholt <eric@anholt.net> > > Signed-off-by: Eric Anholt <eric@anholt.net> > > [ kraxel: copy some selects from arm to arm64 ] > [ kraxel: add CONFIG_ARCH_BCM, needed for some "depends on ARCH_BCM" ] > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > --- > arch/arm/mach-bcm/Kconfig | 2 +- > arch/arm64/Kconfig.platforms | 20 ++++++++++++++++++++ > 2 files changed, 21 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig > index 68ab641..21f0e43 100644 > --- a/arch/arm/mach-bcm/Kconfig > +++ b/arch/arm/mach-bcm/Kconfig > @@ -136,7 +136,7 @@ comment "Other Architectures" > > config ARCH_BCM2835 > bool "Broadcom BCM2835 family" > - depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 > + depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 || ARM64 Humm, what does that achieve? > select ARCH_REQUIRE_GPIOLIB > select ARM_AMBA > select ARM_ERRATA_411920 if ARCH_MULTI_V6 > diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms > index 7ef1d05..32aba6b 100644 > --- a/arch/arm64/Kconfig.platforms > +++ b/arch/arm64/Kconfig.platforms > @@ -13,8 +13,28 @@ config ARCH_ALPINE > This enables support for the Annapurna Labs Alpine > Soc family. > > +config ARCH_BCM > + bool "Broadcom SoC Support" > + help > + This enables support for Broadcom ARM based SoC chips menuconfig maybe? > + > +config ARCH_BCM2835 > + bool "Broadcom BCM2835 family" > + depends on ARCH_BCM > + select ARCH_REQUIRE_GPIOLIB > + select CLKSRC_OF > + select PINCTRL > + select PINCTRL_BCM2835 > + select ARM_AMBA > + 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. > + > config ARCH_BCM_IPROC > bool "Broadcom iProc SoC Family" > + depends on ARCH_BCM Does not seem necessary nor adding anything here.
> > config ARCH_BCM2835 > > bool "Broadcom BCM2835 family" > > - depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 > > + depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 || ARM64 > > Humm, what does that achieve? Nothing ;) Slipped through unnoticed, I'll drop it. > > +config ARCH_BCM > > + bool "Broadcom SoC Support" > > + help > > + This enables support for Broadcom ARM based SoC chips > > menuconfig maybe? There isn't any in arch/arm64/Kconfig.platforms right now, so I didn't feel like introducing one. Also the dependency should have pretty much the same effect ... > > +config ARCH_BCM2835 > > + bool "Broadcom BCM2835 family" > > + depends on ARCH_BCM > > + select ARCH_REQUIRE_GPIOLIB > > + select CLKSRC_OF > > + select PINCTRL > > + select PINCTRL_BCM2835 > > + select ARM_AMBA > > + 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. > > + > > config ARCH_BCM_IPROC > > bool "Broadcom iProc SoC Family" > > + depends on ARCH_BCM > > Does not seem necessary nor adding anything here. Added for consistency. When we add ARCH_BCM all ARCH_BCM_* should depend on it ... We could also do it the other way around: make ARCH_BCM a hidden bool and have ARCH_BCM_* select it. cheers, Gerd
On 6/1/2016 11:45 PM, Gerd Hoffmann wrote: >>> config ARCH_BCM2835 >>> bool "Broadcom BCM2835 family" >>> - depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 >>> + depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 || ARM64 >> >> Humm, what does that achieve? > > Nothing ;) > > Slipped through unnoticed, I'll drop it. > >>> +config ARCH_BCM >>> + bool "Broadcom SoC Support" >>> + help >>> + This enables support for Broadcom ARM based SoC chips >> >> menuconfig maybe? > > There isn't any in arch/arm64/Kconfig.platforms right now, so I didn't > feel like introducing one. Also the dependency should have pretty much > the same effect ... > >>> +config ARCH_BCM2835 >>> + bool "Broadcom BCM2835 family" >>> + depends on ARCH_BCM >>> + select ARCH_REQUIRE_GPIOLIB >>> + select CLKSRC_OF >>> + select PINCTRL >>> + select PINCTRL_BCM2835 >>> + select ARM_AMBA >>> + 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. >>> + >>> config ARCH_BCM_IPROC >>> bool "Broadcom iProc SoC Family" >>> + depends on ARCH_BCM >> >> Does not seem necessary nor adding anything here. > > Added for consistency. When we add ARCH_BCM all ARCH_BCM_* should > depend on it ... > > We could also do it the other way around: make ARCH_BCM a hidden bool > and have ARCH_BCM_* select it. Yes, this is probably better. ARCH_BCM_IPROC is currently enabled in arch/arm64/configs/defconfig. By adding a dependency here without enabling ARCH_BCM in arm64 defconfig, this effectively disables ARCH_BCM_IPROC from arm64 defconfig. > > cheers, > Gerd >
Reply inline. On 16-06-02 09:25 AM, Ray Jui wrote: > > > On 6/1/2016 11:45 PM, Gerd Hoffmann wrote: >>>> config ARCH_BCM2835 >>>> bool "Broadcom BCM2835 family" >>>> - depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 >>>> + depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 || ARM64 >>> >>> Humm, what does that achieve? >> >> Nothing ;) >> >> Slipped through unnoticed, I'll drop it. >> >>>> +config ARCH_BCM >>>> + bool "Broadcom SoC Support" >>>> + help >>>> + This enables support for Broadcom ARM based SoC chips >>> >>> menuconfig maybe? >> >> There isn't any in arch/arm64/Kconfig.platforms right now, so I didn't >> feel like introducing one. Also the dependency should have pretty much >> the same effect . No need to add ARCH_BCM . >> >>>> +config ARCH_BCM2835 >>>> + bool "Broadcom BCM2835 family" >>>> + depends on ARCH_BCM >>>> + select ARCH_REQUIRE_GPIOLIB >>>> + select CLKSRC_OF >>>> + select PINCTRL >>>> + select PINCTRL_BCM2835 >>>> + select ARM_AMBA >>>> + 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. >>>> + >>>> config ARCH_BCM_IPROC >>>> bool "Broadcom iProc SoC Family" >>>> + depends on ARCH_BCM >>> >>> Does not seem necessary nor adding anything here. >> >> Added for consistency. When we add ARCH_BCM all ARCH_BCM_* should >> depend on it ... >> >> We could also do it the other way around: make ARCH_BCM a hidden bool >> and have ARCH_BCM_* select it. > > Yes, this is probably better. > > ARCH_BCM_IPROC is currently enabled in arch/arm64/configs/defconfig. By > adding a dependency here without enabling ARCH_BCM in arm64 defconfig, > this effectively disables ARCH_BCM_IPROC from arm64 defconfig. There is no need to add ARCH_BCM though? > >> >> cheers, >> Gerd >>
> There is no need to add ARCH_BCM though?
There are Makefile(s) with
obj-$(CONFIG_ARCH_BCM) += bcm/
in drivers/pinctrl for example, maybe more, didn't check the whole tree.
So without ARCH_BCM some drivers are dropped from the build ...
cheers,
Gerd
On 16-06-02 10:12 AM, Gerd Hoffmann wrote: >> There is no need to add ARCH_BCM though? > > There are Makefile(s) with > > obj-$(CONFIG_ARCH_BCM) += bcm/ > > in drivers/pinctrl for example, maybe more, didn't check the whole tree. > > So without ARCH_BCM some drivers are dropped from the build ... I see that now. Quite bizarre how the NS2 pinctl driver (used on a arm64 SoC) gets built right now.... Yes, adding the select with hidden option seems like what needs to be done. The ARM Maintainers did not like multi-level ARCH_BCM being added in the arm64 Kconfig previously so we dropped it. > > cheers, > Gerd > Thanks, Scott
On Thu, Jun 02, 2016 at 08:45:36AM +0200, Gerd Hoffmann wrote: > > > +config ARCH_BCM2835 > > > + bool "Broadcom BCM2835 family" > > > + depends on ARCH_BCM > > > + select ARCH_REQUIRE_GPIOLIB > > > + select CLKSRC_OF > > > + select PINCTRL > > > + select PINCTRL_BCM2835 > > > + select ARM_AMBA > > > + 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. > > > + > > > config ARCH_BCM_IPROC > > > bool "Broadcom iProc SoC Family" > > > + depends on ARCH_BCM > > > > Does not seem necessary nor adding anything here. > > Added for consistency. When we add ARCH_BCM all ARCH_BCM_* should > depend on it ... For arm64, I prefer to keep Kconfig.platforms to SoC families only. I don't think we have any single-SoC Kconfig entry left now.
On 06/02/2016 10:21 AM, Scott Branden wrote: > > > On 16-06-02 10:12 AM, Gerd Hoffmann wrote: >>> There is no need to add ARCH_BCM though? >> >> There are Makefile(s) with >> >> obj-$(CONFIG_ARCH_BCM) += bcm/ >> >> in drivers/pinctrl for example, maybe more, didn't check the whole tree. >> >> So without ARCH_BCM some drivers are dropped from the build ... > > I see that now. Quite bizarre how the NS2 pinctl driver (used on a > arm64 SoC) gets built right now.... > > Yes, adding the select with hidden option seems like what needs to be > done. The ARM Maintainers did not like multi-level ARCH_BCM being added > in the arm64 Kconfig previously so we dropped it. We should always recusrse into that directory and build the respective pinctrl drivers within drivers/pinctrl/bcm, only for the enabled platforms, it makes no sense to have this kind of config symbol gating that. I can submit a patch doing just that unless somebody wants to do it as part of this patch series.
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index 68ab641..21f0e43 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig @@ -136,7 +136,7 @@ comment "Other Architectures" config ARCH_BCM2835 bool "Broadcom BCM2835 family" - depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 + depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 || ARM64 select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select ARM_ERRATA_411920 if ARCH_MULTI_V6 diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 7ef1d05..32aba6b 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -13,8 +13,28 @@ config ARCH_ALPINE This enables support for the Annapurna Labs Alpine Soc family. +config ARCH_BCM + bool "Broadcom SoC Support" + help + This enables support for Broadcom ARM based SoC chips + +config ARCH_BCM2835 + bool "Broadcom BCM2835 family" + depends on ARCH_BCM + select ARCH_REQUIRE_GPIOLIB + select CLKSRC_OF + select PINCTRL + select PINCTRL_BCM2835 + select ARM_AMBA + 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. + config ARCH_BCM_IPROC bool "Broadcom iProc SoC Family" + depends on ARCH_BCM select COMMON_CLK_IPROC select PINCTRL select ARCH_REQUIRE_GPIOLIB