[RFC PATCH V4 6/6] riscv: soc: Add Allwinner SoC kconfig option

Randy Dunlap rdunlap at infradead.org
Mon Sep 13 20:06:19 PDT 2021


On 9/13/21 7:34 PM, Guo Ren wrote:
> On Tue, Sep 14, 2021 at 2:49 AM Randy Dunlap <rdunlap at 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 at cerno.tech> wrote:
>>>>
>>>> Hi,
>>>>
>>>> On Sat, Sep 11, 2021 at 05:21:39PM +0800, guoren at kernel.org wrote:
>>>>> From: Liu Shaohua <liush at 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.
>>>>>
>>>>> Signed-off-by: Liu Shaohua <liush at allwinnertech.com>
>>>>> Signed-off-by: Guo Ren <guoren at linux.alibaba.com>
>>>>> Signed-off-by: Wei Fu <wefu at redhat.com>
>>>>> Cc: Anup Patel <anup.patel at wdc.com>
>>>>> Cc: Atish Patra <atish.patra at wdc.com>
>>>>> Cc: Christoph Hellwig <hch at lst.de>
>>>>> Cc: Chen-Yu Tsai <wens at csie.org>
>>>>> Cc: Drew Fustini <drew at beagleboard.org>
>>>>> Cc: Maxime Ripard <maxime at cerno.tech>
>>>>> Cc: Palmer Dabbelt <palmerdabbelt at google.com>
>>>>> Cc: Wei Wu <lazyparser at gmail.com>
>>>>> ---
>>>>>    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.
>>> 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?
> 
>   @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.

Hi,

I certainly did not understand your purpose with the patch being
able to build a kernel that would run on multiple platforms.
Still, I would not expect to see one platform cause unnecessary
drivers to be built for platforms that don't need them.

Kconfig.socs in arch/riscv/ is a bit of an unusual Kconfig file
IMO -- I suppose what you want to do fits into its style.

AFAIK the suggestion to use a defconfig (at least my suggestion)
was expecting to have a defconfig for each platform, but that
would not give you a boot image that could run on all platforms.

Anyway, it's Palmer's choice.

thanks.
-- 
~Randy




More information about the linux-riscv mailing list