Message ID | 1622970249-50770-14-git-send-email-guoren@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | riscv: Add DMA_COHERENT support for Allwinner D1 | expand |
Hi, On Sun, Jun 06, 2021 at 09:04:08AM +0000, guoren@kernel.org wrote: > From: Guo Ren <guoren@linux.alibaba.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. > > Signed-off-by: Guo Ren <guoren@linux.alibaba.com> > Co-Developed-by: Liu Shaohua <liush@allwinnertech.com> > Signed-off-by: Liu Shaohua <liush@allwinnertech.com> > Cc: Anup Patel <anup.patel@wdc.com> > Cc: Atish Patra <atish.patra@wdc.com> > Cc: Christoph Hellwig <hch@lst.de> > Cc: Chen-Yu Tsai <wens@csie.org> > Cc: Drew Fustini <drew@beagleboard.org> > Cc: Maxime Ripard <maxime@cerno.tech> > Cc: Palmer Dabbelt <palmerdabbelt@google.com> > Cc: Wei Fu <wefu@redhat.com> > Cc: Wei Wu <lazyparser@gmail.com> > --- > arch/riscv/Kconfig.socs | 12 ++++++++++++ > arch/riscv/configs/defconfig | 1 + > 2 files changed, 13 insertions(+) > > diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs > index ed96376..055fb3e 100644 > --- a/arch/riscv/Kconfig.socs > +++ b/arch/riscv/Kconfig.socs > @@ -69,4 +69,16 @@ config SOC_CANAAN_K210_DTB_SOURCE > > endif > > +config SOC_SUNXI > + bool "Allwinner SoCs" > + depends on MMU > + select DWMAC_GENERIC > + 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. > + We probably don't want to select DWMAC, STMMAC_ETH and the 8250 options, looks good otherwise. Maxime
On Mon, Jun 7, 2021 at 9:20 AM Maxime Ripard <maxime@cerno.tech> wrote: > On Sun, Jun 06, 2021 at 09:04:08AM +0000, guoren@kernel.org wrote: > > diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs > > index ed96376..055fb3e 100644 > > --- a/arch/riscv/Kconfig.socs > > +++ b/arch/riscv/Kconfig.socs > > @@ -69,4 +69,16 @@ config SOC_CANAAN_K210_DTB_SOURCE > > > > endif > > > > +config SOC_SUNXI > > + bool "Allwinner SoCs" > > + depends on MMU > > + select DWMAC_GENERIC > > + 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. > > + > > We probably don't want to select DWMAC, STMMAC_ETH and the 8250 options, > looks good otherwise. Correct: those subsystems may be completely disabled, which would lead to a build failure, and a platform should not force-enable drivers or subsystems unless those are build time dependencies. Arnd
On Mon, Jun 7, 2021 at 3:19 PM Maxime Ripard <maxime@cerno.tech> wrote: > > Hi, > > On Sun, Jun 06, 2021 at 09:04:08AM +0000, guoren@kernel.org wrote: > > From: Guo Ren <guoren@linux.alibaba.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. > > > > Signed-off-by: Guo Ren <guoren@linux.alibaba.com> > > Co-Developed-by: Liu Shaohua <liush@allwinnertech.com> > > Signed-off-by: Liu Shaohua <liush@allwinnertech.com> > > Cc: Anup Patel <anup.patel@wdc.com> > > Cc: Atish Patra <atish.patra@wdc.com> > > Cc: Christoph Hellwig <hch@lst.de> > > Cc: Chen-Yu Tsai <wens@csie.org> > > Cc: Drew Fustini <drew@beagleboard.org> > > Cc: Maxime Ripard <maxime@cerno.tech> > > Cc: Palmer Dabbelt <palmerdabbelt@google.com> > > Cc: Wei Fu <wefu@redhat.com> > > Cc: Wei Wu <lazyparser@gmail.com> > > --- > > arch/riscv/Kconfig.socs | 12 ++++++++++++ > > arch/riscv/configs/defconfig | 1 + > > 2 files changed, 13 insertions(+) > > > > diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs > > index ed96376..055fb3e 100644 > > --- a/arch/riscv/Kconfig.socs > > +++ b/arch/riscv/Kconfig.socs > > @@ -69,4 +69,16 @@ config SOC_CANAAN_K210_DTB_SOURCE > > > > endif > > > > +config SOC_SUNXI > > + bool "Allwinner SoCs" > > + depends on MMU > > + select DWMAC_GENERIC > > + 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. > > + > > We probably don't want to select DWMAC, STMMAC_ETH and the 8250 options, > looks good otherwise. > > Maxime Remove DWMAC, STMMAC_ETH is okay. But I think we still need: select SERIAL_8250_DW if SERIAL_8250
On Mon, Jun 7, 2021 at 3:29 PM Arnd Bergmann <arnd@arndb.de> wrote: > > On Mon, Jun 7, 2021 at 9:20 AM Maxime Ripard <maxime@cerno.tech> wrote: > > On Sun, Jun 06, 2021 at 09:04:08AM +0000, guoren@kernel.org wrote: > > > > diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs > > > index ed96376..055fb3e 100644 > > > --- a/arch/riscv/Kconfig.socs > > > +++ b/arch/riscv/Kconfig.socs > > > @@ -69,4 +69,16 @@ config SOC_CANAAN_K210_DTB_SOURCE > > > > > > endif > > > > > > +config SOC_SUNXI > > > + bool "Allwinner SoCs" > > > + depends on MMU > > > + select DWMAC_GENERIC > > > + 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. > > > + > > > > We probably don't want to select DWMAC, STMMAC_ETH and the 8250 options, > > looks good otherwise. > > Correct: those subsystems may be completely disabled, which would lead to a > build failure, and a platform should not force-enable drivers or > subsystems unless > those are build time dependencies. > > Arnd I see, thx. how about just leave. I think the user would make mistakes and waste time here. select SERIAL_8250_DW if SERIAL_8250
On Mon, Jun 07, 2021 at 03:43:03PM +0800, Guo Ren wrote: > On Mon, Jun 7, 2021 at 3:19 PM Maxime Ripard <maxime@cerno.tech> wrote: > > > > Hi, > > > > On Sun, Jun 06, 2021 at 09:04:08AM +0000, guoren@kernel.org wrote: > > > From: Guo Ren <guoren@linux.alibaba.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. > > > > > > Signed-off-by: Guo Ren <guoren@linux.alibaba.com> > > > Co-Developed-by: Liu Shaohua <liush@allwinnertech.com> > > > Signed-off-by: Liu Shaohua <liush@allwinnertech.com> > > > Cc: Anup Patel <anup.patel@wdc.com> > > > Cc: Atish Patra <atish.patra@wdc.com> > > > Cc: Christoph Hellwig <hch@lst.de> > > > Cc: Chen-Yu Tsai <wens@csie.org> > > > Cc: Drew Fustini <drew@beagleboard.org> > > > Cc: Maxime Ripard <maxime@cerno.tech> > > > Cc: Palmer Dabbelt <palmerdabbelt@google.com> > > > Cc: Wei Fu <wefu@redhat.com> > > > Cc: Wei Wu <lazyparser@gmail.com> > > > --- > > > arch/riscv/Kconfig.socs | 12 ++++++++++++ > > > arch/riscv/configs/defconfig | 1 + > > > 2 files changed, 13 insertions(+) > > > > > > diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs > > > index ed96376..055fb3e 100644 > > > --- a/arch/riscv/Kconfig.socs > > > +++ b/arch/riscv/Kconfig.socs > > > @@ -69,4 +69,16 @@ config SOC_CANAAN_K210_DTB_SOURCE > > > > > > endif > > > > > > +config SOC_SUNXI > > > + bool "Allwinner SoCs" > > > + depends on MMU > > > + select DWMAC_GENERIC > > > + 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. > > > + > > > > We probably don't want to select DWMAC, STMMAC_ETH and the 8250 options, > > looks good otherwise. > > > > Maxime > Remove DWMAC, STMMAC_ETH is okay. > > But I think we still need: > select SERIAL_8250_DW if SERIAL_8250 Well, even the UART is optional. Just enable them in the defconfig Maxime
On Mon, Jun 7, 2021 at 8:12 PM Maxime Ripard <maxime@cerno.tech> wrote: > > On Mon, Jun 07, 2021 at 03:43:03PM +0800, Guo Ren wrote: > > On Mon, Jun 7, 2021 at 3:19 PM Maxime Ripard <maxime@cerno.tech> wrote: > > > > > > Hi, > > > > > > On Sun, Jun 06, 2021 at 09:04:08AM +0000, guoren@kernel.org wrote: > > > > From: Guo Ren <guoren@linux.alibaba.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. > > > > > > > > Signed-off-by: Guo Ren <guoren@linux.alibaba.com> > > > > Co-Developed-by: Liu Shaohua <liush@allwinnertech.com> > > > > Signed-off-by: Liu Shaohua <liush@allwinnertech.com> > > > > Cc: Anup Patel <anup.patel@wdc.com> > > > > Cc: Atish Patra <atish.patra@wdc.com> > > > > Cc: Christoph Hellwig <hch@lst.de> > > > > Cc: Chen-Yu Tsai <wens@csie.org> > > > > Cc: Drew Fustini <drew@beagleboard.org> > > > > Cc: Maxime Ripard <maxime@cerno.tech> > > > > Cc: Palmer Dabbelt <palmerdabbelt@google.com> > > > > Cc: Wei Fu <wefu@redhat.com> > > > > Cc: Wei Wu <lazyparser@gmail.com> > > > > --- > > > > arch/riscv/Kconfig.socs | 12 ++++++++++++ > > > > arch/riscv/configs/defconfig | 1 + > > > > 2 files changed, 13 insertions(+) > > > > > > > > diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs > > > > index ed96376..055fb3e 100644 > > > > --- a/arch/riscv/Kconfig.socs > > > > +++ b/arch/riscv/Kconfig.socs > > > > @@ -69,4 +69,16 @@ config SOC_CANAAN_K210_DTB_SOURCE > > > > > > > > endif > > > > > > > > +config SOC_SUNXI > > > > + bool "Allwinner SoCs" > > > > + depends on MMU > > > > + select DWMAC_GENERIC > > > > + 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. > > > > + > > > > > > We probably don't want to select DWMAC, STMMAC_ETH and the 8250 options, > > > looks good otherwise. > > > > > > Maxime > > Remove DWMAC, STMMAC_ETH is okay. > > > > But I think we still need: > > select SERIAL_8250_DW if SERIAL_8250 > > Well, even the UART is optional. Just enable them in the defconfig Okay
diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs index ed96376..055fb3e 100644 --- a/arch/riscv/Kconfig.socs +++ b/arch/riscv/Kconfig.socs @@ -69,4 +69,16 @@ config SOC_CANAAN_K210_DTB_SOURCE endif +config SOC_SUNXI + bool "Allwinner SoCs" + depends on MMU + select DWMAC_GENERIC + 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. + endmenu diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig index 1f2be23..9e83d14 100644 --- a/arch/riscv/configs/defconfig +++ b/arch/riscv/configs/defconfig @@ -15,6 +15,7 @@ CONFIG_BLK_DEV_INITRD=y CONFIG_EXPERT=y CONFIG_BPF_SYSCALL=y CONFIG_SOC_SIFIVE=y +CONFIG_SOC_SUNXI=y CONFIG_SOC_VIRT=y CONFIG_SOC_MICROCHIP_POLARFIRE=y CONFIG_SMP=y