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

Randy Dunlap rdunlap at infradead.org
Wed Jun 21 11:40:31 PDT 2023



On 6/21/23 11:31, Conor Dooley wrote:
> 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?

Yes. and Yes.
Thanks.

for your patch:
Reviewed-by: Randy Dunlap <rdunlap at infradead.org>
Tested-by: Randy Dunlap <rdunlap at infradead.org> # build-tested

> 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

-- 
~Randy



More information about the linux-riscv mailing list