Hi Geert, On Thu, Aug 31, 2023 at 2:24 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > Hi Prabhakar, > > On Thu, Aug 31, 2023 at 3:02 PM Lad, Prabhakar > <prabhakar.csengg@xxxxxxxxx> wrote: > > On Thu, Aug 31, 2023 at 1:01 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > > On Thu, Aug 31, 2023 at 1:54 PM Lad, Prabhakar > > > <prabhakar.csengg@xxxxxxxxx> wrote: > > > > On Thu, Aug 31, 2023 at 12:34 PM Conor Dooley > > > > <conor.dooley@xxxxxxxxxxxxx> wrote: > > > > > On Thu, Aug 31, 2023 at 12:22:50PM +0100, Lad, Prabhakar wrote: > > > > > > On Thu, Aug 31, 2023 at 10:44 AM Conor Dooley > > > > > > <conor.dooley@xxxxxxxxxxxxx> wrote: <snip> > > Currently ARCH_R9A07G043 selects DMA_GLOBAL_POOL and we have > > RISCV_DMA_NONCOHERENT selecting DMA_DIRECT_REMAP which causes below > > build issue when MMU is disabled: > > > > kernel/dma/pool.c: In function 'atomic_pool_expand': > > kernel/dma/pool.c:105:44: error: implicit declaration of function > > 'pgprot_dmacoherent' [-Werror=implicit-function-declaration] > > 105 | > > pgprot_dmacoherent(PAGE_KERNEL), > > | ^~~~~~~~~~~~~~~~~~ > > kernel/dma/pool.c:105:44: error: incompatible type for argument 3 of > > 'dma_common_contiguous_remap' > > 105 | > > pgprot_dmacoherent(PAGE_KERNEL), > > | > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > | | > > | int > > In file included from kernel/dma/pool.c:8: > > Hmm, kernel/dma/mapping.c has its use of pgprot_dmacoherent() inside > an #ifdef CONFIG_MMU block. > kernel/dma/pool.c has it inside an #ifdef CONFIG_DMA_DIRECT_REMAP block. > > I guess that select should get a dependency on MMU: > > config RISCV_DMA_NONCOHERENT > select DMA_DIRECT_REMAP if MMU > > For comparison, m68k does take that into account: > > select DMA_DIRECT_REMAP if HAS_DMA && MMU && !COLDFIRE > Thanks for the pointer. With this changes we dont get an unmet dependencies warning. arch/riscv/errata/andes/errata.c: In function 'ax45mp_iocp_sw_workaround': arch/riscv/errata/andes/errata.c:29:23: error: storage size of 'ret' isn't known 29 | struct sbiret ret; | ^~~ arch/riscv/errata/andes/errata.c:35:15: error: implicit declaration of function 'sbi_ecall' [-Werror=implicit-function-declaration] 35 | ret = sbi_ecall(ANDESTECH_SBI_EXT_ANDES, ANDES_SBI_EXT_IOCP_SW_WORKAROUND, | ^~~~~~~~~ arch/riscv/errata/andes/errata.c:29:23: warning: unused variable 'ret' [-Wunused-variable] 29 | struct sbiret ret; | ^~~ arch/riscv/errata/andes/errata.c:39:1: error: control reaches end of non-void function [-Werror=return-type] 39 | } | ^ cc1: some warnings being treated as errors To fix the above build issue reported by the bot, adding a dependency for RISCV_SBI in ERRATA_ANDES won't help as ARCH_R9A07G043 is explicitly selecting it. To avoid imply should explicitly select based on dependency something like below? diff --git a/arch/riscv/Kconfig.errata b/arch/riscv/Kconfig.errata index 92c779764b27..566bcefeab50 100644 --- a/arch/riscv/Kconfig.errata +++ b/arch/riscv/Kconfig.errata @@ -2,7 +2,7 @@ menu "CPU errata selection" config ERRATA_ANDES bool "Andes AX45MP errata" - depends on RISCV_ALTERNATIVE + depends on RISCV_ALTERNATIVE && RISCV_SBI help All Andes errata Kconfig depend on this Kconfig. Disabling this Kconfig will disable all Andes errata. Please say "Y" @@ -12,7 +12,7 @@ config ERRATA_ANDES config ERRATA_ANDES_CMO bool "Apply Andes cache management errata" - depends on ERRATA_ANDES && MMU && ARCH_R9A07G043 + depends on ERRATA_ANDES && ARCH_R9A07G043 select RISCV_DMA_NONCOHERENT default y help diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig index 67604f24973e..543300fe9862 100644 --- a/drivers/soc/renesas/Kconfig +++ b/drivers/soc/renesas/Kconfig @@ -334,10 +334,10 @@ if RISCV config ARCH_R9A07G043 bool "RISC-V Platform support for RZ/Five" select ARCH_RZG2L - select AX45MP_L2_CACHE + select AX45MP_L2_CACHE if RISCV_DMA_NONCOHERENT select DMA_GLOBAL_POOL - select ERRATA_ANDES - select ERRATA_ANDES_CMO + select ERRATA_ANDES if RISCV_SBI + select ERRATA_ANDES_CMO if ERRATA_ANDES help This enables support for the Renesas RZ/Five SoC. Or am I missing a simpler way to fix this. Cheers, Prabhakar