From: Arnd Bergmann <arnd@arndb.de> To: Guo Ren <guoren@kernel.org> Cc: "Randy Dunlap" <rdunlap@infradead.org>, "Arnd Bergmann" <arnd@arndb.de>, "Maxime Ripard" <maxime@cerno.tech>, "Anup Patel" <anup.patel@wdc.com>, "Atish Patra" <atish.patra@wdc.com>, "Palmer Dabbelt" <palmerdabbelt@google.com>, "Christoph Müllner" <christoph.muellner@vrull.eu>, philipp.tomsich@vrull.eu, "Christoph Hellwig" <hch@lst.de>, liush <liush@allwinnertech.com>, wefu@redhat.com, "Wei Wu (吴伟)" <lazyparser@gmail.com>, "Drew Fustini" <drew@beagleboard.org>, linux-riscv <linux-riscv@lists.infradead.org>, "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>, taiten.peng@canonical.com, aniket.ponkshe@canonical.com, heinrich.schuchardt@canonical.com, gordan.markus@canonical.com, "Guo Ren" <guoren@linux.alibaba.com>, "Chen-Yu Tsai" <wens@csie.org> Subject: Re: [RFC PATCH V4 6/6] riscv: soc: Add Allwinner SoC kconfig option Date: Tue, 14 Sep 2021 11:29:41 +0200 [thread overview] Message-ID: <CAK8P3a1TY+XT1vF=wAh0XA5BXU5Z6Ab1d4DekXbVsN9aj3aL5w@mail.gmail.com> (raw) In-Reply-To: <CAJF2gTTVj2J6_rCXAG81PB3vJZO2TTwpD03vAE2q+K=9zh_TzQ@mail.gmail.com> On Tue, Sep 14, 2021 at 4:36 AM Guo Ren <guoren@kernel.org> wrote: > On Tue, Sep 14, 2021 at 2:49 AM Randy Dunlap <rdunlap@infradead.org> wrote: > > On 9/13/21 2:20 AM, Guo Ren wrote: > > > On Mon, Sep 13, 2021 at 4:45 PM Maxime Ripard <maxime@cerno.tech> wrote: > > >> On Sat, Sep 11, 2021 at 05:21:39PM +0800, guoren@kernel.org wrote: > > >>> From: Liu Shaohua <liush@allwinnertech.com> > > >>> > > >>> Add Allwinner kconfig option which selects SoC specific and common > > >>> drivers that is required for this SoC. > > >>> > > >>> Allwinner D1 uses custom PTE attributes to solve non-coherency SOC > > >>> interconnect issues for dma synchronization, so we set the default > > >>> value when SOC_SUNXI selected. > > >>> > > >>> > > >>> +config SOC_SUNXI > > >>> + bool "Allwinner SoCs" > > >>> + depends on MMU > > >>> + select DWMAC_GENERIC > > >>> + select ERRATA_THEAD > > >>> + select RISCV_DMA_NONCOHERENT > > >>> + select RISCV_ERRATA_ALTERNATIVE > > >>> + select SERIAL_8250 > > >>> + select SERIAL_8250_CONSOLE > > >>> + select SERIAL_8250_DW > > >>> + select SIFIVE_PLIC > > >>> + select STMMAC_ETH > > >>> + help > > >>> + This enables support for Allwinner SoC platforms like the D1. > > >>> + > > >> > > >> I'm not sure we should select the drivers there. We could very well > > >> imagine a board without UART, or even more so without ethernet. > > > We just want people could bring D1 up easier, 8250 is the basic component. > > > > > > > > >> > > >> These options should be in the defconfig. > > > > Agreed, using a defconfig is the right way to do this. > Put 8250 related configs into arch/riscv/configs/defconfig? I think that would be best, as well as the STMMAC_ETH and DWMAC_GENERIC options. If all RISC-V chips are required to have a 8250 compatible uart, selecting it from CONFIG_RISCV would work as well, but for consistency I'd give users the option to leave it out, just like any other driver that is not required to have a useful system. > @Palmer Dabbelt @Arnd Bergmann, How do you think about that? > (defconfig or Kconfig.soc) > My purpose is when people make the Image from riscv/defconfig, then > the Image could run on all platforms include D1. I would try to keep the Kconfig.soc as short as possible. As a general rule, only use 'select' to enable symbols that are otherwise not user visible, such as the specific errata if you want to hide them. For individual SoCs, I prefer not having separate Kconfig options, but instead have those per driver. We have some SoC families that have part specific options elsewhere, e.g. drivers/soc/renesas/Kconfig, but I'd only add those if you can't avoid it. Having it in drivers/soc/ may be better for sunxi than spreading them over arch/{arm,arm64,riscv}. Some subsystem maintainers want drivers to be selected by the SoC option, this is why you need the 'select SIFIVE_PLIC', but usually the drivers are selectable with a 'depends on ARCH_SUNXI || COMPILE_TEST' and enabled in the defconfig. If you want to get fancy, you can use something like: config RESET_SUNXI bool "Allwinner SoCs Reset Driver" if COMPILE_TEST && !ARCH_SUNXI default ARCH_SUNXI This will make an option that - always enabled when the platform is built-in - user selectable when compile-testing for any other platform - always disabled otherwise Arnd
WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de> To: Guo Ren <guoren@kernel.org> Cc: "Randy Dunlap" <rdunlap@infradead.org>, "Arnd Bergmann" <arnd@arndb.de>, "Maxime Ripard" <maxime@cerno.tech>, "Anup Patel" <anup.patel@wdc.com>, "Atish Patra" <atish.patra@wdc.com>, "Palmer Dabbelt" <palmerdabbelt@google.com>, "Christoph Müllner" <christoph.muellner@vrull.eu>, philipp.tomsich@vrull.eu, "Christoph Hellwig" <hch@lst.de>, liush <liush@allwinnertech.com>, wefu@redhat.com, "Wei Wu (吴伟)" <lazyparser@gmail.com>, "Drew Fustini" <drew@beagleboard.org>, linux-riscv <linux-riscv@lists.infradead.org>, "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>, taiten.peng@canonical.com, aniket.ponkshe@canonical.com, heinrich.schuchardt@canonical.com, gordan.markus@canonical.com, "Guo Ren" <guoren@linux.alibaba.com>, "Chen-Yu Tsai" <wens@csie.org> Subject: Re: [RFC PATCH V4 6/6] riscv: soc: Add Allwinner SoC kconfig option Date: Tue, 14 Sep 2021 11:29:41 +0200 [thread overview] Message-ID: <CAK8P3a1TY+XT1vF=wAh0XA5BXU5Z6Ab1d4DekXbVsN9aj3aL5w@mail.gmail.com> (raw) In-Reply-To: <CAJF2gTTVj2J6_rCXAG81PB3vJZO2TTwpD03vAE2q+K=9zh_TzQ@mail.gmail.com> On Tue, Sep 14, 2021 at 4:36 AM Guo Ren <guoren@kernel.org> wrote: > On Tue, Sep 14, 2021 at 2:49 AM Randy Dunlap <rdunlap@infradead.org> wrote: > > On 9/13/21 2:20 AM, Guo Ren wrote: > > > On Mon, Sep 13, 2021 at 4:45 PM Maxime Ripard <maxime@cerno.tech> wrote: > > >> On Sat, Sep 11, 2021 at 05:21:39PM +0800, guoren@kernel.org wrote: > > >>> From: Liu Shaohua <liush@allwinnertech.com> > > >>> > > >>> Add Allwinner kconfig option which selects SoC specific and common > > >>> drivers that is required for this SoC. > > >>> > > >>> Allwinner D1 uses custom PTE attributes to solve non-coherency SOC > > >>> interconnect issues for dma synchronization, so we set the default > > >>> value when SOC_SUNXI selected. > > >>> > > >>> > > >>> +config SOC_SUNXI > > >>> + bool "Allwinner SoCs" > > >>> + depends on MMU > > >>> + select DWMAC_GENERIC > > >>> + select ERRATA_THEAD > > >>> + select RISCV_DMA_NONCOHERENT > > >>> + select RISCV_ERRATA_ALTERNATIVE > > >>> + select SERIAL_8250 > > >>> + select SERIAL_8250_CONSOLE > > >>> + select SERIAL_8250_DW > > >>> + select SIFIVE_PLIC > > >>> + select STMMAC_ETH > > >>> + help > > >>> + This enables support for Allwinner SoC platforms like the D1. > > >>> + > > >> > > >> I'm not sure we should select the drivers there. We could very well > > >> imagine a board without UART, or even more so without ethernet. > > > We just want people could bring D1 up easier, 8250 is the basic component. > > > > > > > > >> > > >> These options should be in the defconfig. > > > > Agreed, using a defconfig is the right way to do this. > Put 8250 related configs into arch/riscv/configs/defconfig? I think that would be best, as well as the STMMAC_ETH and DWMAC_GENERIC options. If all RISC-V chips are required to have a 8250 compatible uart, selecting it from CONFIG_RISCV would work as well, but for consistency I'd give users the option to leave it out, just like any other driver that is not required to have a useful system. > @Palmer Dabbelt @Arnd Bergmann, How do you think about that? > (defconfig or Kconfig.soc) > My purpose is when people make the Image from riscv/defconfig, then > the Image could run on all platforms include D1. I would try to keep the Kconfig.soc as short as possible. As a general rule, only use 'select' to enable symbols that are otherwise not user visible, such as the specific errata if you want to hide them. For individual SoCs, I prefer not having separate Kconfig options, but instead have those per driver. We have some SoC families that have part specific options elsewhere, e.g. drivers/soc/renesas/Kconfig, but I'd only add those if you can't avoid it. Having it in drivers/soc/ may be better for sunxi than spreading them over arch/{arm,arm64,riscv}. Some subsystem maintainers want drivers to be selected by the SoC option, this is why you need the 'select SIFIVE_PLIC', but usually the drivers are selectable with a 'depends on ARCH_SUNXI || COMPILE_TEST' and enabled in the defconfig. If you want to get fancy, you can use something like: config RESET_SUNXI bool "Allwinner SoCs Reset Driver" if COMPILE_TEST && !ARCH_SUNXI default ARCH_SUNXI This will make an option that - always enabled when the platform is built-in - user selectable when compile-testing for any other platform - always disabled otherwise Arnd _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2021-09-14 9:30 UTC|newest] Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-11 9:21 [RFC PATCH V4 0/6] riscv: Add PBMT & DMA for D1 bringup guoren 2021-09-11 9:21 ` guoren 2021-09-11 9:21 ` [RFC PATCH V4 1/6] riscv: pgtable: Add custom protection_map init guoren 2021-09-11 9:21 ` guoren 2021-09-15 7:45 ` Christoph Hellwig 2021-09-15 7:45 ` Christoph Hellwig 2021-09-15 23:52 ` Guo Ren 2021-09-15 23:52 ` Guo Ren 2021-09-11 9:21 ` [RFC PATCH V4 2/6] riscv: errata: pgtable: Add custom Svpbmt supported for Allwinner D1 guoren 2021-09-11 9:21 ` guoren 2021-09-15 7:47 ` Christoph Hellwig 2021-09-15 7:47 ` Christoph Hellwig 2021-09-16 0:48 ` Guo Ren 2021-09-16 0:48 ` Guo Ren 2021-09-16 7:31 ` Atish Patra 2021-09-16 7:31 ` Atish Patra 2021-09-11 9:21 ` [RFC PATCH V4 3/6] RISC-V: Support a new config option for non-coherent DMA guoren 2021-09-11 9:21 ` guoren 2021-09-15 7:48 ` Christoph Hellwig 2021-09-15 7:48 ` Christoph Hellwig 2021-09-16 1:20 ` Guo Ren 2021-09-16 1:20 ` Guo Ren 2021-09-16 4:39 ` Atish Patra 2021-09-16 4:39 ` Atish Patra 2021-09-16 6:09 ` Guo Ren 2021-09-16 6:09 ` Guo Ren 2021-09-11 9:21 ` [RFC PATCH V4 4/6] RISC-V: Implement arch_sync_dma* functions guoren 2021-09-11 9:21 ` guoren 2021-09-15 7:50 ` Christoph Hellwig 2021-09-15 7:50 ` Christoph Hellwig 2021-09-16 1:32 ` Guo Ren 2021-09-16 1:32 ` Guo Ren 2021-09-16 4:24 ` Anup Patel 2021-09-16 4:24 ` Anup Patel 2021-09-16 4:42 ` Atish Patra 2021-09-16 4:42 ` Atish Patra 2021-09-11 9:21 ` [RFC PATCH V4 5/6] riscv: errata: Support T-HEAD custom dcache ops guoren 2021-09-11 9:21 ` guoren 2021-09-11 9:21 ` [RFC PATCH V4 6/6] riscv: soc: Add Allwinner SoC kconfig option guoren 2021-09-11 9:21 ` guoren 2021-09-13 8:45 ` Maxime Ripard 2021-09-13 8:45 ` Maxime Ripard 2021-09-13 9:20 ` Guo Ren 2021-09-13 9:20 ` Guo Ren 2021-09-13 18:48 ` Randy Dunlap 2021-09-13 18:48 ` Randy Dunlap 2021-09-14 2:34 ` Guo Ren 2021-09-14 2:34 ` Guo Ren 2021-09-14 3:06 ` Randy Dunlap 2021-09-14 3:06 ` Randy Dunlap 2021-09-14 5:16 ` Anup Patel 2021-09-14 5:16 ` Anup Patel 2021-09-14 5:20 ` Randy Dunlap 2021-09-14 5:20 ` Randy Dunlap 2021-09-14 9:29 ` Arnd Bergmann [this message] 2021-09-14 9:29 ` Arnd Bergmann 2021-09-14 10:07 ` Krzysztof Kozlowski 2021-09-14 10:07 ` Krzysztof Kozlowski 2021-09-14 10:13 ` Maxime Ripard 2021-09-14 10:13 ` Maxime Ripard 2021-09-14 12:09 ` Krzysztof Kozlowski 2021-09-14 12:09 ` Krzysztof Kozlowski 2021-09-14 13:02 ` Arnd Bergmann 2021-09-14 13:02 ` Arnd Bergmann 2021-09-16 6:37 ` Guo Ren 2021-09-16 6:37 ` Guo Ren 2021-09-14 3:49 ` Heinrich Schuchardt 2021-09-14 3:49 ` Heinrich Schuchardt 2021-09-14 5:16 ` Samuel Holland 2021-09-14 5:16 ` Samuel Holland 2021-09-14 6:30 ` Heinrich Schuchardt 2021-09-14 6:30 ` Heinrich Schuchardt 2021-09-14 7:20 ` Maxime Ripard 2021-09-14 7:20 ` Maxime Ripard 2021-09-14 9:26 ` Ben Dooks 2021-09-14 9:26 ` Ben Dooks
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CAK8P3a1TY+XT1vF=wAh0XA5BXU5Z6Ab1d4DekXbVsN9aj3aL5w@mail.gmail.com' \ --to=arnd@arndb.de \ --cc=aniket.ponkshe@canonical.com \ --cc=anup.patel@wdc.com \ --cc=atish.patra@wdc.com \ --cc=christoph.muellner@vrull.eu \ --cc=drew@beagleboard.org \ --cc=gordan.markus@canonical.com \ --cc=guoren@kernel.org \ --cc=guoren@linux.alibaba.com \ --cc=hch@lst.de \ --cc=heinrich.schuchardt@canonical.com \ --cc=lazyparser@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-riscv@lists.infradead.org \ --cc=liush@allwinnertech.com \ --cc=maxime@cerno.tech \ --cc=palmerdabbelt@google.com \ --cc=philipp.tomsich@vrull.eu \ --cc=rdunlap@infradead.org \ --cc=taiten.peng@canonical.com \ --cc=wefu@redhat.com \ --cc=wens@csie.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.