[Skiboot] [PATCH 01/14] hdat: Add new fields to IPL params structure

Vasant Hegde hegdevasant at linux.vnet.ibm.com
Thu Jan 12 17:11:24 AEDT 2017


On 01/12/2017 11:37 AM, Vasant Hegde wrote:
> On 01/12/2017 09:24 AM, Oliver O'Halloran wrote:
>> From: Vasant Hegde <hegdevasant at linux.vnet.ibm.com>
>>
>> Add new fields to sys params structure and update sys family for p9.
>>
>> In P9 the compatible string is supplied by hostboot through the HDAT.
>> This patch add support for using these strings to set the compatible
>> property in the device tree rather than using the machine ID number
>> scheme traditionally used in the HDAT.
>>
>> [removed ibm,firenze from, add some prints - Oliver]
>> Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
>> [Folded Oliver's changes to original patch - Vasant]
>> Signed-off-by: Vasant Hegde <hegdevasant at linux.vnet.ibm.com>
>> ---
>>   hdata/spira.c | 63 +++++++++++++++++++++++++++++++++++++----------------------
>>   hdata/spira.h | 28 +++++++++++++++++++++++++-
>>   2 files changed, 67 insertions(+), 24 deletions(-)
>>
>> diff --git a/hdata/spira.c b/hdata/spira.c
>> index f87aa2712023..a19b4db92a8a 100644
>> --- a/hdata/spira.c
>> +++ b/hdata/spira.c
>> @@ -756,8 +756,6 @@ static void add_nx(void)
>>   static void add_iplparams_sys_params(const void *iplp, struct dt_node *node)
>>   {
>>       const struct iplparams_sysparams *p;
>> -    u32 sys_type;
>> -    const char *sys_family;
>>       const struct HDIF_common_hdr *hdif = iplp;
>>       u16 version = be16_to_cpu(hdif->version);
>>
>> @@ -776,29 +774,48 @@ static void add_iplparams_sys_params(const void *iplp,
>> struct dt_node *node)
>>
>>       dt_add_property_nstr(node, "ibm,sys-model", p->sys_model, 4);
>>
>> -    /* Compatible is 2 entries: ibm,powernv and ibm,<platform>
>> +    /*
>> +     * Compatible has up to three entries:
>> +     *    "ibm,powernv", the system family and system type.
>> +     *
>> +     * On P9 and above the family and type strings come from the HDAT
>> +     * directly. On P8 we find it from the system ID numbers.
>>        */
>> -    sys_type = be32_to_cpu(p->system_type);
>> -    switch(sys_type >> 28) {
>> -    case 0:
>> -        sys_family = "ibm,squadrons";
>> -        break;
>> -    case 1:
>> -        sys_family = "ibm,eclipz";
>> -        break;
>> -    case 2:
>> -        sys_family = "ibm,apollo";
>> -        break;
>> -    case 3:
>> -        sys_family = "ibm,firenze";
>> -        break;
>> -    default:
>> -        sys_family = NULL;
>> -        prerror("IPLPARAMS: Unknown system family\n");
>> -        break;
>> +    if (proc_gen >= proc_gen_p9) {
>> +        dt_add_property_strings(dt_root, "compatible", "ibm,powernv",
>> +                    p->sys_family_str, p->sys_type_str);
>> +
>> +        prlog(PR_INFO, "IPLPARAMS: v0x70 Platform family/type: %s/%s\n",
>> +              p->sys_family_str, p->sys_type_str);
>> +    } else {
>> +        u32 sys_type = be32_to_cpu(p->system_type);
>> +        const char *sys_family;
>> +
>> +        switch (sys_type >> 28) {
>> +        case 0:
>> +            sys_family = "ibm,squadrons";
>> +            break;
>> +        case 1:
>> +            sys_family = "ibm,eclipz";
>> +            break;
>> +        case 2:
>> +            sys_family = "ibm,apollo";
>> +            break;
>> +        case 3:
>> +            sys_family = "ibm,firenze";
>> +            break;
>> +        default:
>> +            sys_family = NULL;
>> +            prerror("IPLPARAMS: Unknown system family\n");
>> +            break;
>> +        }
>> +
>> +        dt_add_property_strings(dt_root, "compatible", "ibm,powernv",
>> +                    sys_family);
>> +        prlog(PR_INFO,
>> +              "IPLPARAMS: Legacy platform family: %s"
>> +              " (sys_type=0x%08x)\n", sys_family, sys_type);
>
> Now like me you are also started breaking test cases ;-)
>
> Can you please update test case?

Actually we have to fix hdata/test/p8-840-spira.dt as well.

-Vasant



More information about the Skiboot mailing list