Message ID | 20220712164235.40293-1-f.fainelli@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: Kconfig.platforms: Re-organized Broadcom menu | expand |
On Tue, Jul 12, 2022 at 6:42 PM Florian Fainelli <f.fainelli@gmail.com> wrote: > > There are now multiple Broadcom SoCs supported so group them under their > own menu such that the selection is visually more appealing and we can > easily add new platforms there in the future. This allows us to move > ARCH_BRCMSTB back to its siblings. > > No functional changes introduced. > > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> > --- > > Note this is based on "arm64: bcmbca: add arch bcmbca machine entry" Hi Florian, So far, we have tried to keep the Kconfig.platforms file rather coarse-grained, mainly limiting it to company names and high-level families, but avoiding sub-menus or adding too many sub-families. If we add per-vendor submenus, we should probably first decide how we want to structure this across vendors. I've added maintainers and lists to Cc for a couple of the ones that are in a similar situation. I can see a couple of ways we can do this: a) keep the list of platforms as short as possible, combining related SoC families from a single vendor wherever possible, but no sub-menus (same as today) b) Always use sub-menus when there is more than one family, but keep relatively coarse platform selection. c) Use sub-menus and also move to a more fine-grained SoC selection, similar to what we have on 32-bit arm. I would not really want to go to c), but a) and b) both make sense to me as long as do it consistently across all platforms. Any other ideas or opinions? Arnd
On 13/07/2022 10:25, Arnd Bergmann wrote: > On Tue, Jul 12, 2022 at 6:42 PM Florian Fainelli <f.fainelli@gmail.com> wrote: >> >> There are now multiple Broadcom SoCs supported so group them under their >> own menu such that the selection is visually more appealing and we can >> easily add new platforms there in the future. This allows us to move >> ARCH_BRCMSTB back to its siblings. >> >> No functional changes introduced. >> >> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> >> --- >> >> Note this is based on "arm64: bcmbca: add arch bcmbca machine entry" > > Hi Florian, > > So far, we have tried to keep the Kconfig.platforms file rather coarse-grained, > mainly limiting it to company names and high-level families, but avoiding > sub-menus or adding too many sub-families. > > If we add per-vendor submenus, we should probably first decide how we > want to structure this across vendors. I've added maintainers and lists to > Cc for a couple of the ones that are in a similar situation. > > I can see a couple of ways we can do this: > > a) keep the list of platforms as short as possible, combining related > SoC families from a single vendor wherever possible, but no sub-menus > (same as today) > > b) Always use sub-menus when there is more than one family, but > keep relatively coarse platform selection. > > c) Use sub-menus and also move to a more fine-grained SoC > selection, similar to what we have on 32-bit arm. > > I would not really want to go to c), but a) and b) both make sense to > me as long as do it consistently across all platforms. > > Any other ideas or opinions? Whatever we decide here, the SoC can override in drivers/soc, just like Renesas did. I think Renesas chose option c), but made it in drivers/soc. I would vote to have consistent policy, so if arch/arm64 is a) or b), sub-archs should not redefine it in drivers/soc. Or we could choose d) d) keep arch/arm64 list of platforms as short as possible, but sub-archs can do whatever they like on drivers/soc. Personally, I find fine-grained SoC selection a bit ridiculous optimization, like compiling kernel, Glibc and userspace with -O3, -funroll-loops and many other flags. One gets smaller size but looses multi-platform and ability to test one kernel on different boards. Therefore I would vote for b) with disallowing drivers/soc defining more ARCH_ and more SOC_. Best regards, Krzysztof
Hi Krzysztof, On Wed, Jul 13, 2022 at 10:40 AM Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote: > On 13/07/2022 10:25, Arnd Bergmann wrote: > > On Tue, Jul 12, 2022 at 6:42 PM Florian Fainelli <f.fainelli@gmail.com> wrote: > >> There are now multiple Broadcom SoCs supported so group them under their > >> own menu such that the selection is visually more appealing and we can > >> easily add new platforms there in the future. This allows us to move > >> ARCH_BRCMSTB back to its siblings. > >> > >> No functional changes introduced. > >> > >> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> > >> --- > >> > >> Note this is based on "arm64: bcmbca: add arch bcmbca machine entry" > > > > Hi Florian, > > > > So far, we have tried to keep the Kconfig.platforms file rather coarse-grained, > > mainly limiting it to company names and high-level families, but avoiding > > sub-menus or adding too many sub-families. > > > > If we add per-vendor submenus, we should probably first decide how we > > want to structure this across vendors. I've added maintainers and lists to > > Cc for a couple of the ones that are in a similar situation. > > > > I can see a couple of ways we can do this: > > > > a) keep the list of platforms as short as possible, combining related > > SoC families from a single vendor wherever possible, but no sub-menus > > (same as today) > > > > b) Always use sub-menus when there is more than one family, but > > keep relatively coarse platform selection. > > > > c) Use sub-menus and also move to a more fine-grained SoC > > selection, similar to what we have on 32-bit arm. > > > > I would not really want to go to c), but a) and b) both make sense to > > me as long as do it consistently across all platforms. > > > > Any other ideas or opinions? > > Whatever we decide here, the SoC can override in drivers/soc, just like > Renesas did. I think Renesas chose option c), but made it in > drivers/soc. I would vote to have consistent policy, so if arch/arm64 is > a) or b), sub-archs should not redefine it in drivers/soc. We did so because of the "only a single symbol in arch/arm64/Kconfig.platforms"-policy. > Or we could choose d) > d) keep arch/arm64 list of platforms as short as possible, but sub-archs > can do whatever they like on drivers/soc. > > Personally, I find fine-grained SoC selection a bit ridiculous > optimization, like compiling kernel, Glibc and userspace with -O3, > -funroll-loops and many other flags. One gets smaller size but looses > multi-platform and ability to test one kernel on different boards. > Therefore I would vote for b) with disallowing drivers/soc defining more > ARCH_ and more SOC_. No one prevents you from selecting multiple SoCs, they are not mutually-exclusive... With arm64 (or risc-v ;-) instead of arm32 being used for all new SoCs, I expect the real small ones (with a few MiB of embedded SRAM) to enter the arm64 realm soon. No point in including e.g. all pinctrl drivers from the vendor if you have barely enough RAM to run Linux and your app... Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
On 7/13/22 02:17, Geert Uytterhoeven wrote: > Hi Krzysztof, > > On Wed, Jul 13, 2022 at 10:40 AM Krzysztof Kozlowski > <krzysztof.kozlowski@linaro.org> wrote: >> On 13/07/2022 10:25, Arnd Bergmann wrote: >>> On Tue, Jul 12, 2022 at 6:42 PM Florian Fainelli <f.fainelli@gmail.com> wrote: >>>> There are now multiple Broadcom SoCs supported so group them under their >>>> own menu such that the selection is visually more appealing and we can >>>> easily add new platforms there in the future. This allows us to move >>>> ARCH_BRCMSTB back to its siblings. >>>> >>>> No functional changes introduced. >>>> >>>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> >>>> --- >>>> >>>> Note this is based on "arm64: bcmbca: add arch bcmbca machine entry" >>> >>> Hi Florian, >>> >>> So far, we have tried to keep the Kconfig.platforms file rather coarse-grained, >>> mainly limiting it to company names and high-level families, but avoiding >>> sub-menus or adding too many sub-families. >>> >>> If we add per-vendor submenus, we should probably first decide how we >>> want to structure this across vendors. I've added maintainers and lists to >>> Cc for a couple of the ones that are in a similar situation. >>> >>> I can see a couple of ways we can do this: >>> >>> a) keep the list of platforms as short as possible, combining related >>> SoC families from a single vendor wherever possible, but no sub-menus >>> (same as today) >>> >>> b) Always use sub-menus when there is more than one family, but >>> keep relatively coarse platform selection. >>> >>> c) Use sub-menus and also move to a more fine-grained SoC >>> selection, similar to what we have on 32-bit arm. >>> >>> I would not really want to go to c), but a) and b) both make sense to >>> me as long as do it consistently across all platforms. >>> >>> Any other ideas or opinions? >> >> Whatever we decide here, the SoC can override in drivers/soc, just like >> Renesas did. I think Renesas chose option c), but made it in >> drivers/soc. I would vote to have consistent policy, so if arch/arm64 is >> a) or b), sub-archs should not redefine it in drivers/soc. > > We did so because of the "only a single symbol in > arch/arm64/Kconfig.platforms"-policy. I was not aware of that rule. It is a bit of a mixed situation with Broadcom SoCs but in essence, each Kconfig entry denotes a deeply different SoC architecture at the memory subsystem, bus, security or product space that you might not want to enable in your kernel. There is definitively sharing of drivers between all of the platforms and a lot of cross pollination too but usually these are deeply different that different kernel images do make sense. The itch that I wanted to calm was that ARCH_BRCMSTB was after the other Broadcom platforms separated by ARCH_BERLIN. if you prefer a pair of KConfig comments to delineate them and flatten the platform selection, that works for me, too.
On 7/13/22 15:05, Florian Fainelli wrote: > On 7/13/22 02:17, Geert Uytterhoeven wrote: >> Hi Krzysztof, >> >> On Wed, Jul 13, 2022 at 10:40 AM Krzysztof Kozlowski >> <krzysztof.kozlowski@linaro.org> wrote: >>> On 13/07/2022 10:25, Arnd Bergmann wrote: >>>> On Tue, Jul 12, 2022 at 6:42 PM Florian Fainelli >>>> <f.fainelli@gmail.com> wrote: >>>>> There are now multiple Broadcom SoCs supported so group them under >>>>> their >>>>> own menu such that the selection is visually more appealing and we can >>>>> easily add new platforms there in the future. This allows us to move >>>>> ARCH_BRCMSTB back to its siblings. >>>>> >>>>> No functional changes introduced. >>>>> >>>>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> >>>>> --- >>>>> >>>>> Note this is based on "arm64: bcmbca: add arch bcmbca machine entry" >>>> >>>> Hi Florian, >>>> >>>> So far, we have tried to keep the Kconfig.platforms file rather >>>> coarse-grained, >>>> mainly limiting it to company names and high-level families, but >>>> avoiding >>>> sub-menus or adding too many sub-families. >>>> >>>> If we add per-vendor submenus, we should probably first decide how we >>>> want to structure this across vendors. I've added maintainers and >>>> lists to >>>> Cc for a couple of the ones that are in a similar situation. >>>> >>>> I can see a couple of ways we can do this: >>>> >>>> a) keep the list of platforms as short as possible, combining related >>>> SoC families from a single vendor wherever possible, but no >>>> sub-menus >>>> (same as today) >>>> >>>> b) Always use sub-menus when there is more than one family, but >>>> keep relatively coarse platform selection. >>>> >>>> c) Use sub-menus and also move to a more fine-grained SoC >>>> selection, similar to what we have on 32-bit arm. >>>> >>>> I would not really want to go to c), but a) and b) both make sense to >>>> me as long as do it consistently across all platforms. >>>> >>>> Any other ideas or opinions? >>> >>> Whatever we decide here, the SoC can override in drivers/soc, just like >>> Renesas did. I think Renesas chose option c), but made it in >>> drivers/soc. I would vote to have consistent policy, so if arch/arm64 is >>> a) or b), sub-archs should not redefine it in drivers/soc. >> >> We did so because of the "only a single symbol in >> arch/arm64/Kconfig.platforms"-policy. > > I was not aware of that rule. > > It is a bit of a mixed situation with Broadcom SoCs but in essence, each > Kconfig entry denotes a deeply different SoC architecture at the memory > subsystem, bus, security or product space that you might not want to > enable in your kernel. There is definitively sharing of drivers between > all of the platforms and a lot of cross pollination too but usually > these are deeply different that different kernel images do make sense. > > The itch that I wanted to calm was that ARCH_BRCMSTB was after the other > Broadcom platforms separated by ARCH_BERLIN. if you prefer a pair of > KConfig comments to delineate them and flatten the platform selection, > that works for me, too. There are 2 Marvell-based platforms (Berlin and mvebu) as well as two NXP-based platforms (MXC and S32), would it be better to also group them under an ARCH_MARVELL and ARCH_NXP menuconfig symbol the same way this patch does it for Broadcom-based SoCs?
On Mon, Aug 15, 2022 at 7:15 PM Florian Fainelli <f.fainelli@gmail.com> wrote: > On 7/13/22 15:05, Florian Fainelli wrote: > > On 7/13/22 02:17, Geert Uytterhoeven wrote: > > > > The itch that I wanted to calm was that ARCH_BRCMSTB was after the other > > Broadcom platforms separated by ARCH_BERLIN. if you prefer a pair of > > KConfig comments to delineate them and flatten the platform selection, > > that works for me, too. > > There are 2 Marvell-based platforms (Berlin and mvebu) as well as two > NXP-based platforms (MXC and S32), would it be better to also group them > under an ARCH_MARVELL and ARCH_NXP menuconfig symbol the same way this > patch does it for Broadcom-based SoCs? Berlin is now Synaptics after Marvell sold them the business unit, so that one should probably stay separate. For NXP, there is also Layerscape. I agree it would be nice to group the three NXP together. Arnd
From: lkft@linaro.org
LKFT test farm found that Linux next-20220906 onwards the Broadcom DTB
builds are not happening. And after bisecting we found this patch is
the reason [1].
Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
FYI, We have not changed any kernel configs.
[1] http://ix.io/49Wq
--
Linaro LKFT
https://lkft.linaro.org
On 9/8/2022 4:04 AM, Naresh Kamboju wrote: > From: lkft@linaro.org > > LKFT test farm found that Linux next-20220906 onwards the Broadcom DTB > builds are not happening. And after bisecting we found this patch is > the reason [1]. > > Reported-by: Linux Kernel Functional Testing <lkft@linaro.org> > > FYI, We have not changed any kernel configs. > [1] http://ix.io/49Wq Fixed with: https://lore.kernel.org/all/20220906033957.4377-1-f.fainelli@gmail.com/ sorry about the breakage and thanks for reporting!
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 88ddc2e5b152..c8c15f611d4e 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -33,6 +33,11 @@ config ARCH_APPLE This enables support for Apple's in-house ARM SoC family, starting with the Apple M1. +menuconfig ARCH_BCM + bool "Broadcom SoC Support" + +if ARCH_BCM + config ARCH_BCM2835 bool "Broadcom BCM2835 family" select TIMER_OF @@ -72,6 +77,16 @@ config ARCH_BCMBCA This enables support for Broadcom BCA ARM-based broadband chipsets, including the DSL, PON and Wireless family of chips. +config ARCH_BRCMSTB + bool "Broadcom Set-Top-Box SoCs" + select ARCH_HAS_RESET_CONTROLLER + select GENERIC_IRQ_CHIP + select PINCTRL + help + This enables support for Broadcom's ARMv8 Set Top Box SoCs + +endif + config ARCH_BERLIN bool "Marvell Berlin SoC Family" select DW_APB_ICTL @@ -86,14 +101,6 @@ config ARCH_BITMAIN help This enables support for the Bitmain SoC Family. -config ARCH_BRCMSTB - bool "Broadcom Set-Top-Box SoCs" - select ARCH_HAS_RESET_CONTROLLER - select GENERIC_IRQ_CHIP - select PINCTRL - help - This enables support for Broadcom's ARMv8 Set Top Box SoCs - config ARCH_EXYNOS bool "ARMv8 based Samsung Exynos SoC family" select COMMON_CLK_SAMSUNG
There are now multiple Broadcom SoCs supported so group them under their own menu such that the selection is visually more appealing and we can easily add new platforms there in the future. This allows us to move ARCH_BRCMSTB back to its siblings. No functional changes introduced. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- Note this is based on "arm64: bcmbca: add arch bcmbca machine entry" arch/arm64/Kconfig.platforms | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-)