[Skiboot] [PATCH] Suppress XSCOM chiplet-offline errors on P9
Stewart Smith
stewart at linux.vnet.ibm.com
Tue Oct 31 14:37:55 AEDT 2017
Vasant Hegde <hegdevasant at linux.vnet.ibm.com> writes:
> On 10/24/2017 03:28 AM, Stewart Smith wrote:
>> Workaround on P9: PRD does operations it *knows* will fail with this
>> error to work around a hardware issue where accesses via the PIB
>> (FSI or OCC) work as expected, accesses via the ADU (what xscom goes
>> through) do not. The chip logic will always return all FFs if there
>> is any error on the scom.
>>
>> Suggested-by: Daniel M Crowell <dcrowell at us.ibm.com>
>> Signed-off-by: Stewart Smith <stewart at linux.vnet.ibm.com>
>> ---
>> hw/xscom.c | 22 +++++++++++++++++++++-
>> 1 file changed, 21 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/xscom.c b/hw/xscom.c
>> index 716cb73675fc..5b3bd8895210 100644
>> --- a/hw/xscom.c
>> +++ b/hw/xscom.c
>> @@ -1,4 +1,4 @@
>> -/* Copyright 2013-2014 IBM Corp.
>> +/* Copyright 2013-2017 IBM Corp.
>> *
>> * Licensed under the Apache License, Version 2.0 (the "License");
>> * you may not use this file except in compliance with the License.
>> @@ -284,6 +284,16 @@ static int __xscom_read(uint32_t gcid, uint32_t pcb_addr, uint64_t *val)
>> if (xscom_is_multicast_addr(pcb_addr) && ret == OPAL_XSCOM_CHIPLET_OFF)
>> return ret;
>>
>> + /*
>> + * Workaround on P9: PRD does operations it *knows* will fail with this
>> + * error to work around a hardware issue where accesses via the PIB
>> + * (FSI or OCC) work as expected, accesses via the ADU (what xscom goes
>> + * through) do not. The chip logic will always return all FFs if there
>> + * is any error on the scom.
>> + */
>> + if (proc_gen == proc_gen_p9 && ret == OPAL_XSCOM_CHIPLET_OFF)
>> + return ret;
>> +
>> prerror("XSCOM: Read failed, ret = %lld\n", ret);
>> return ret;
>> }
>> @@ -324,6 +334,16 @@ static int __xscom_write(uint32_t gcid, uint32_t pcb_addr, uint64_t val)
>> if (xscom_is_multicast_addr(pcb_addr) && ret == OPAL_XSCOM_CHIPLET_OFF)
>> return ret;
>>
>> + /*
>> + * Workaround on P9: PRD does operations it *knows* will fail with this
>> + * error to work around a hardware issue where accesses via the PIB
>> + * (FSI or OCC) work as expected, accesses via the ADU (what xscom goes
>> + * through) do not. The chip logic will always return all FFs if there
>> + * is any error on the scom.
>> + */
>> + if (proc_gen == proc_gen_p9 && ret == OPAL_XSCOM_CHIPLET_OFF)
>
> So this is superset of previous if condition. May be just fix previous
> one ?
I was wanting to show the different reasoning at least, and that this
*specific* one was a workaround for P9.
--
Stewart Smith
OPAL Architect, IBM.
More information about the Skiboot
mailing list