[Skiboot] [PATCH] hdata/memory.c: Fix "Inconsistent MSAREA" warnings

Klaus Heinrich Kiwi klaus at linux.vnet.ibm.com
Mon Apr 27 07:54:13 AEST 2020


Oliver,

  I was thinking a bit about this and decided to send a simple 'trivial 
fix' since a more complete one would require some re-work I think 
(besides, a trivial fix should apply cleanly on skiboot-6.6).

Right we're creating memory-buffer@<min-addr> nodes under root, and 
those min-addr are calculated as part of the mmio ranges structure.

If we wanted to add a add_memory_controller_p9p() function, wouldn't we 
want to re-use the same memory-buffer@ nodes to add the address-range 
attributes? The amount of rework for us to be able to do that seems 
significant and not so clear unless we join add_memory_controller_p9p() 
with add_memory_buffer_mmio()

Perhaps we should make things clearer and add 
memory-buffer@<physical-chip-id> when parsing the address range array, 
and add mmio@<min-addr> nodes underneath them when parsing the mmio range?

If you agree, I can try helping with that implementation..

Thanks,

  -Klaus

On 4/26/2020 4:45 PM, Klaus Heinrich Kiwi wrote:
> add_memory_buffer_mmio() should be exclusive to P9P (AXONE).
> Running it on non P9P systems resulted in warnings such as:
> 
> MS AREA: Inconsistent MSAREA version 40 for P9P system
> 
> So check for PVR and quietly return if not P9P.
> 
> Fixes: 38b5c3179 (Add support for memory-buffer mmio)
> Cc: skiboot-stable at lists.ozlabs.org
> Cc: Oliver O'Halloran <oohall at gmail.com>
> Signed-off-by: Klaus Heinrich Kiwi <klaus at linux.vnet.ibm.com>
> ---
>   hdata/memory.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/hdata/memory.c b/hdata/memory.c
> index 7ce927502..f2c440540 100755
> --- a/hdata/memory.c
> +++ b/hdata/memory.c
> @@ -514,6 +514,9 @@ static void add_memory_buffer_mmio(const struct HDIF_common_hdr *msarea)
>   	struct dt_node *membuf;
>   	uint64_t *reg, *flags;
> 
> +	if (PVR_TYPE(mfspr(SPR_PVR)) != PVR_TYPE_P9P)
> +		return;
> +
>   	if (be32_to_cpu(msarea->version) < 0x50) {
>   		prlog(PR_WARNING, "MS AREA: Inconsistent MSAREA version %x for P9P system",
>   			be32_to_cpu(msarea->version));
> 

-- 
Klaus Heinrich Kiwi <klaus at linux.vnet.ibm.com>


More information about the Skiboot mailing list