[PATCH] powerpc/rtas: use correct function name for resetting TCE tables

Nathan Lynch nathanl at linux.ibm.com
Sat Feb 24 03:46:06 AEDT 2024


Michael Ellerman <mpe at ellerman.id.au> writes:
> Nathan Lynch via B4 Relay <devnull+nathanl.linux.ibm.com at kernel.org>
> writes:
>> From: Nathan Lynch <nathanl at linux.ibm.com>
>>
>> The PAPR spec spells the function name as
>>
>>   "ibm,reset-pe-dma-windows"
>>
>> but in practice firmware uses the singular form:
>
> Just to be clear, you're talking about IBM firmware on PowerVM
> machines.

Yes, although I did check Qemu too.

>> diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
>> index 7e793b503e29..8064d9c3de86 100644
>> --- a/arch/powerpc/kernel/rtas.c
>> +++ b/arch/powerpc/kernel/rtas.c
>> @@ -375,8 +375,13 @@ static struct rtas_function rtas_function_table[] __ro_after_init = {
>>  	[RTAS_FNIDX__IBM_REMOVE_PE_DMA_WINDOW] = {
>>  		.name = "ibm,remove-pe-dma-window",
>>  	},
>> -	[RTAS_FNIDX__IBM_RESET_PE_DMA_WINDOWS] = {
>> -		.name = "ibm,reset-pe-dma-windows",
>> +	[RTAS_FNIDX__IBM_RESET_PE_DMA_WINDOW] = {
>> +		/*
>> +		 * Note: PAPR+ v2.13 7.3.31.4.1 spells this as
>> +		 * "ibm,reset-pe-dma-windows" (plural), but RTAS
>> +		 * implementations use the singular form in practice.
>> +		 */
>> +		.name = "ibm,reset-pe-dma-window",
>
> Qemu also spells it that way:
>
> $ grep -C 12 ibm,reset-pe-dma-window hw/ppc/spapr_rtas_ddw.c
> static void spapr_rtas_ddw_init(void)
> {
>     spapr_rtas_register(RTAS_IBM_QUERY_PE_DMA_WINDOW,
>                         "ibm,query-pe-dma-window",
>                         rtas_ibm_query_pe_dma_window);
>     spapr_rtas_register(RTAS_IBM_CREATE_PE_DMA_WINDOW,
>                         "ibm,create-pe-dma-window",
>                         rtas_ibm_create_pe_dma_window);
>     spapr_rtas_register(RTAS_IBM_REMOVE_PE_DMA_WINDOW,
>                         "ibm,remove-pe-dma-window",
>                         rtas_ibm_remove_pe_dma_window);
>     spapr_rtas_register(RTAS_IBM_RESET_PE_DMA_WINDOW,
>                         "ibm,reset-pe-dma-window",
>                         rtas_ibm_reset_pe_dma_window);
> }
>
> There's no version in SLOF, it delegates to Qemu.
>
> The old platforms that use RTAS won't implement this call at all, so
> there's no issue with the naming there.

Thanks for checking. I've added SLOF to my checklist for things like
this.


More information about the Linuxppc-dev mailing list