Re: [RFC PATCH V4 6/6] riscv: soc: Add Allwinner SoC kconfig option
From: Heinrich Schuchardt
Date: Mon Sep 13 2021 - 23:50:05 EST
On 9/13/21 10:45 AM, Maxime Ripard wrote:
Hi,
On Sat, Sep 11, 2021 at 05:21:39PM +0800, guoren@xxxxxxxxxx wrote:
From: Liu Shaohua <liush@xxxxxxxxxxxxxxxxx>
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: Liu Shaohua <liush@xxxxxxxxxxxxxxxxx>
Signed-off-by: Guo Ren <guoren@xxxxxxxxxxxxxxxxx>
Signed-off-by: Wei Fu <wefu@xxxxxxxxxx>
Cc: Anup Patel <anup.patel@xxxxxxx>
Cc: Atish Patra <atish.patra@xxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: Chen-Yu Tsai <wens@xxxxxxxx>
Cc: Drew Fustini <drew@xxxxxxxxxxxxxxx>
Cc: Maxime Ripard <maxime@xxxxxxxxxx>
Cc: Palmer Dabbelt <palmerdabbelt@xxxxxxxxxx>
Cc: Wei Wu <lazyparser@xxxxxxxxx>
---
arch/riscv/Kconfig.socs | 15 +++++++++++++++
arch/riscv/configs/defconfig | 1 +
2 files changed, 16 insertions(+)
diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs
index 30676ebb16eb..8721c000ef23 100644
--- a/arch/riscv/Kconfig.socs
+++ b/arch/riscv/Kconfig.socs
@@ -70,4 +70,19 @@ config SOC_CANAAN_K210_DTB_SOURCE
endif
+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.
The draft of the RISC-V platform specification is available here:
https://github.com/riscv/riscv-platform-specs/blob/main/riscv-platform-spec.adoc#uartserial-console
The specification requires in section "2.1.5.1. UART/Serial Console"
that on platforms with a rich operating system (e.g. Linux) you have a
serial console. Hence requiring 8250 support for the D1 CPU is justified.
In the riscv defconfig as of v5.14 we have:
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_SERIAL_8250_DW is not set
(Support for Synopsys DesignWare 8250 quirks)
CONFIG_SERIAL_8250_DW should be enabled (=y) in the defconfig.
As the specification requires a 16550 UART and marks 8250 as deprecated
I expect that future Allwinner SoCs will move to 16550. Calling a
Kconfig menu item "Allwinner SoCs" which includes all future Allwinner
SoCs irritates me. How about CONFIG_SOC_SUNXI_D1 instead?
Why does the patch use 'depends on MMU' and does not 'select MMU'?
Best regards
Heinrich
These options should be in the defconfig.
Maxime