Re: linux-next: Tree for Jun 21 (riscv/errata/thead)

From: Conor Dooley
Date: Wed Jun 21 2023 - 14:31:48 EST


On Wed, Jun 21, 2023 at 11:25:14AM -0700, Randy Dunlap wrote:
>
>
> On 6/20/23 21:59, Stephen Rothwell wrote:
> > Hi all,
> >
> > Changes since 20230620:
> >
>
> on riscv 32-bit:

Is XIP_KERNEL enabled? And if so, does this fix it?
diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs
index ce10a38dff37..6833d01e2e70 100644
--- a/arch/riscv/Kconfig.socs
+++ b/arch/riscv/Kconfig.socs
@@ -43,6 +43,7 @@ config ARCH_SUNXI

config ARCH_THEAD
bool "T-HEAD RISC-V SoCs"
+ depends on MMU && !XIP_KERNEL
select ERRATA_THEAD
help
This enables support for the RISC-V based T-HEAD SoCs.
(whitespace damaged)

Cheers,
Conor.

>
>
> WARNING: unmet direct dependencies detected for ERRATA_THEAD
> Depends on [n]: RISCV_ALTERNATIVE [=n]
> Selected by [y]:
> - ARCH_THEAD [=y]
>
> WARNING: unmet direct dependencies detected for ERRATA_THEAD
> Depends on [n]: RISCV_ALTERNATIVE [=n]
> Selected by [y]:
> - ARCH_THEAD [=y]
>
> WARNING: unmet direct dependencies detected for ERRATA_THEAD
> Depends on [n]: RISCV_ALTERNATIVE [=n]
> Selected by [y]:
> - ARCH_THEAD [=y]
>
> ../arch/riscv/errata/thead/errata.c: In function 'errata_probe_pbmt':
> ../arch/riscv/errata/thead/errata.c:29:22: error: 'RISCV_ALTERNATIVES_EARLY_BOOT' undeclared (first use in this function)
> 29 | if (stage == RISCV_ALTERNATIVES_EARLY_BOOT ||
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../arch/riscv/errata/thead/errata.c:29:22: note: each undeclared identifier is reported only once for each function it appears in
> ../arch/riscv/errata/thead/errata.c:30:22: error: 'RISCV_ALTERNATIVES_MODULE' undeclared (first use in this function)
> 30 | stage == RISCV_ALTERNATIVES_MODULE)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> ../arch/riscv/errata/thead/errata.c: In function 'errata_probe_cmo':
> ../arch/riscv/errata/thead/errata.c:45:22: error: 'RISCV_ALTERNATIVES_EARLY_BOOT' undeclared (first use in this function)
> 45 | if (stage == RISCV_ALTERNATIVES_EARLY_BOOT)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../arch/riscv/errata/thead/errata.c: In function 'errata_probe_pmu':
> ../arch/riscv/errata/thead/errata.c:63:22: error: 'RISCV_ALTERNATIVES_EARLY_BOOT' undeclared (first use in this function)
> 63 | if (stage == RISCV_ALTERNATIVES_EARLY_BOOT)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../arch/riscv/errata/thead/errata.c: At top level:
> ../arch/riscv/errata/thead/errata.c:86:37: warning: 'struct alt_entry' declared inside parameter list will not be visible outside of this definition or declaration
> 86 | void thead_errata_patch_func(struct alt_entry *begin, struct alt_entry *end,
> | ^~~~~~~~~
> ../arch/riscv/errata/thead/errata.c: In function 'thead_errata_patch_func':
> ../arch/riscv/errata/thead/errata.c:95:41: error: increment of pointer to an incomplete type 'struct alt_entry'
> 95 | for (alt = begin; alt < end; alt++) {
> | ^~
> ../arch/riscv/errata/thead/errata.c:96:24: error: invalid use of undefined type 'struct alt_entry'
> 96 | if (alt->vendor_id != THEAD_VENDOR_ID)
> | ^~
> ../arch/riscv/errata/thead/errata.c:98:24: error: invalid use of undefined type 'struct alt_entry'
> 98 | if (alt->patch_id >= ERRATA_THEAD_NUMBER)
> | ^~
> ../arch/riscv/errata/thead/errata.c:101:33: error: invalid use of undefined type 'struct alt_entry'
> 101 | tmp = (1U << alt->patch_id);
> | ^~
> ../arch/riscv/errata/thead/errata.c:103:34: error: implicit declaration of function 'ALT_OLD_PTR' [-Werror=implicit-function-declaration]
> 103 | oldptr = ALT_OLD_PTR(alt);
> | ^~~~~~~~~~~
> ../arch/riscv/errata/thead/errata.c:103:32: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
> 103 | oldptr = ALT_OLD_PTR(alt);
> | ^
> ../arch/riscv/errata/thead/errata.c:104:34: error: implicit declaration of function 'ALT_ALT_PTR' [-Werror=implicit-function-declaration]
> 104 | altptr = ALT_ALT_PTR(alt);
> | ^~~~~~~~~~~
> ../arch/riscv/errata/thead/errata.c:104:32: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
> 104 | altptr = ALT_ALT_PTR(alt);
> | ^
> ../arch/riscv/errata/thead/errata.c:107:38: error: 'RISCV_ALTERNATIVES_EARLY_BOOT' undeclared (first use in this function)
> 107 | if (stage == RISCV_ALTERNATIVES_EARLY_BOOT) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../arch/riscv/errata/thead/errata.c:108:59: error: invalid use of undefined type 'struct alt_entry'
> 108 | memcpy(oldptr, altptr, alt->alt_len);
> | ^~
> ../arch/riscv/errata/thead/errata.c:111:70: error: invalid use of undefined type 'struct alt_entry'
> 111 | patch_text_nosync(oldptr, altptr, alt->alt_len);
> | ^~
> cc1: some warnings being treated as errors
>
>
> --
> ~Randy

Attachment: signature.asc
Description: PGP signature