diff mbox

[PULL,01/28] target-ppc: Use sensible POWER8/POWER8E versions

Message ID 1453684527-23564-2-git-send-email-david@gibson.dropbear.id.au
State New, archived
Headers show

Commit Message

David Gibson Jan. 25, 2016, 1:15 a.m. UTC
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>

We never released anything older than POWER8 DD2.0 and POWER8E DD2.1,
so let's use these versions, without that some firmware or Linux code
might fail to use some HW features that were non functional in earlier
internal only spins of the chip.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 target-ppc/cpu-models.c | 12 ++++++------
 target-ppc/cpu-models.h |  4 ++--
 2 files changed, 8 insertions(+), 8 deletions(-)

Comments

Alexander Graf Jan. 25, 2016, 7:14 p.m. UTC | #1
On 01/25/2016 02:15 AM, David Gibson wrote:
> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>
> We never released anything older than POWER8 DD2.0 and POWER8E DD2.1,
> so let's use these versions, without that some firmware or Linux code
> might fail to use some HW features that were non functional in earlier
> internal only spins of the chip.
>
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
>   target-ppc/cpu-models.c | 12 ++++++------
>   target-ppc/cpu-models.h |  4 ++--
>   2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/target-ppc/cpu-models.c b/target-ppc/cpu-models.c
> index 4d5ab4b..349783e 100644
> --- a/target-ppc/cpu-models.c
> +++ b/target-ppc/cpu-models.c
> @@ -1138,10 +1138,10 @@
>                   "POWER7 v2.3")
>       POWERPC_DEF("POWER7+_v2.1",  CPU_POWERPC_POWER7P_v21,            POWER7,
>                   "POWER7+ v2.1")
> -    POWERPC_DEF("POWER8E_v1.0",  CPU_POWERPC_POWER8E_v10,            POWER8,
> -                "POWER8E v1.0")
> -    POWERPC_DEF("POWER8_v1.0",   CPU_POWERPC_POWER8_v10,             POWER8,
> -                "POWER8 v1.0")

Removing those breaks -cpu host on 1.0 machines, no?


Alex

> +    POWERPC_DEF("POWER8E_v2.1",  CPU_POWERPC_POWER8E_v21,            POWER8,
> +                "POWER8E v2.1")
> +    POWERPC_DEF("POWER8_v2.0",   CPU_POWERPC_POWER8_v20,             POWER8,
> +                "POWER8 v2.0")
>       POWERPC_DEF("970_v2.2",      CPU_POWERPC_970_v22,                970,
>                   "PowerPC 970 v2.2")
>       POWERPC_DEF("970fx_v1.0",    CPU_POWERPC_970FX_v10,              970,
> @@ -1389,8 +1389,8 @@ PowerPCCPUAlias ppc_cpu_aliases[] = {
>       { "POWER5gs", "POWER5+_v2.1" },
>       { "POWER7", "POWER7_v2.3" },
>       { "POWER7+", "POWER7+_v2.1" },
> -    { "POWER8E", "POWER8E_v1.0" },
> -    { "POWER8", "POWER8_v1.0" },
> +    { "POWER8E", "POWER8E_v2.1" },
> +    { "POWER8", "POWER8_v2.0" },
>       { "970", "970_v2.2" },
>       { "970fx", "970fx_v3.1" },
>       { "970mp", "970mp_v1.1" },
> diff --git a/target-ppc/cpu-models.h b/target-ppc/cpu-models.h
> index 9d80e72..2992427 100644
> --- a/target-ppc/cpu-models.h
> +++ b/target-ppc/cpu-models.h
> @@ -557,9 +557,9 @@ enum {
>       CPU_POWERPC_POWER7P_BASE       = 0x004A0000,
>       CPU_POWERPC_POWER7P_v21        = 0x004A0201,
>       CPU_POWERPC_POWER8E_BASE       = 0x004B0000,
> -    CPU_POWERPC_POWER8E_v10        = 0x004B0100,
> +    CPU_POWERPC_POWER8E_v21        = 0x004B0201,
>       CPU_POWERPC_POWER8_BASE        = 0x004D0000,
> -    CPU_POWERPC_POWER8_v10         = 0x004D0100,
> +    CPU_POWERPC_POWER8_v20         = 0x004D0200,
>       CPU_POWERPC_970_v22            = 0x00390202,
>       CPU_POWERPC_970FX_v10          = 0x00391100,
>       CPU_POWERPC_970FX_v20          = 0x003C0200,
Thomas Huth Jan. 25, 2016, 7:26 p.m. UTC | #2
On 25.01.2016 20:14, Alexander Graf wrote:
> 
> 
> On 01/25/2016 02:15 AM, David Gibson wrote:
>> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>>
>> We never released anything older than POWER8 DD2.0 and POWER8E DD2.1,
>> so let's use these versions, without that some firmware or Linux code
>> might fail to use some HW features that were non functional in earlier
>> internal only spins of the chip.
>>
>> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
>> ---
>>   target-ppc/cpu-models.c | 12 ++++++------
>>   target-ppc/cpu-models.h |  4 ++--
>>   2 files changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/target-ppc/cpu-models.c b/target-ppc/cpu-models.c
>> index 4d5ab4b..349783e 100644
>> --- a/target-ppc/cpu-models.c
>> +++ b/target-ppc/cpu-models.c
>> @@ -1138,10 +1138,10 @@
>>                   "POWER7 v2.3")
>>       POWERPC_DEF("POWER7+_v2.1",  CPU_POWERPC_POWER7P_v21,           
>> POWER7,
>>                   "POWER7+ v2.1")
>> -    POWERPC_DEF("POWER8E_v1.0",  CPU_POWERPC_POWER8E_v10,           
>> POWER8,
>> -                "POWER8E v1.0")
>> -    POWERPC_DEF("POWER8_v1.0",   CPU_POWERPC_POWER8_v10,            
>> POWER8,
>> -                "POWER8 v1.0")
> 
> Removing those breaks -cpu host on 1.0 machines, no?

I don't think so. The code in kvm_ppc_register_host_cpu_type()
explicitly registers a "host" CPU type with the PVR of the current host.

Apart from that, as mentioned in the patch description, v1.0 chips
apparently have never been released into the wild - and I guess the
unreleased v1.0 chips have all already scrapped nowadays ... so the
patch should be fine, I think.

 Thomas
Alexander Graf Jan. 25, 2016, 8:20 p.m. UTC | #3
On 01/25/2016 08:26 PM, Thomas Huth wrote:
> On 25.01.2016 20:14, Alexander Graf wrote:
>>
>> On 01/25/2016 02:15 AM, David Gibson wrote:
>>> From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>>>
>>> We never released anything older than POWER8 DD2.0 and POWER8E DD2.1,
>>> so let's use these versions, without that some firmware or Linux code
>>> might fail to use some HW features that were non functional in earlier
>>> internal only spins of the chip.
>>>
>>> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>>> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
>>> ---
>>>    target-ppc/cpu-models.c | 12 ++++++------
>>>    target-ppc/cpu-models.h |  4 ++--
>>>    2 files changed, 8 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/target-ppc/cpu-models.c b/target-ppc/cpu-models.c
>>> index 4d5ab4b..349783e 100644
>>> --- a/target-ppc/cpu-models.c
>>> +++ b/target-ppc/cpu-models.c
>>> @@ -1138,10 +1138,10 @@
>>>                    "POWER7 v2.3")
>>>        POWERPC_DEF("POWER7+_v2.1",  CPU_POWERPC_POWER7P_v21,
>>> POWER7,
>>>                    "POWER7+ v2.1")
>>> -    POWERPC_DEF("POWER8E_v1.0",  CPU_POWERPC_POWER8E_v10,
>>> POWER8,
>>> -                "POWER8E v1.0")
>>> -    POWERPC_DEF("POWER8_v1.0",   CPU_POWERPC_POWER8_v10,
>>> POWER8,
>>> -                "POWER8 v1.0")
>> Removing those breaks -cpu host on 1.0 machines, no?
> I don't think so. The code in kvm_ppc_register_host_cpu_type()
> explicitly registers a "host" CPU type with the PVR of the current host.

Ah, right, it used to only search for a fitting one, but I think we 
changed it to account for cpu families. So all is safe :).


Alex
Stewart Smith Jan. 29, 2016, 6:15 a.m. UTC | #4
Thomas Huth <thuth@redhat.com> writes:
> Apart from that, as mentioned in the patch description, v1.0 chips
> apparently have never been released into the wild - and I guess the
> unreleased v1.0 chips have all already scrapped nowadays ... so the
> patch should be fine, I think.

Not only not in the wild, but I'm pretty sure there's < 1.0 of them left
inside IBM. Literally 0 users who expect *anything* to work.
diff mbox

Patch

diff --git a/target-ppc/cpu-models.c b/target-ppc/cpu-models.c
index 4d5ab4b..349783e 100644
--- a/target-ppc/cpu-models.c
+++ b/target-ppc/cpu-models.c
@@ -1138,10 +1138,10 @@ 
                 "POWER7 v2.3")
     POWERPC_DEF("POWER7+_v2.1",  CPU_POWERPC_POWER7P_v21,            POWER7,
                 "POWER7+ v2.1")
-    POWERPC_DEF("POWER8E_v1.0",  CPU_POWERPC_POWER8E_v10,            POWER8,
-                "POWER8E v1.0")
-    POWERPC_DEF("POWER8_v1.0",   CPU_POWERPC_POWER8_v10,             POWER8,
-                "POWER8 v1.0")
+    POWERPC_DEF("POWER8E_v2.1",  CPU_POWERPC_POWER8E_v21,            POWER8,
+                "POWER8E v2.1")
+    POWERPC_DEF("POWER8_v2.0",   CPU_POWERPC_POWER8_v20,             POWER8,
+                "POWER8 v2.0")
     POWERPC_DEF("970_v2.2",      CPU_POWERPC_970_v22,                970,
                 "PowerPC 970 v2.2")
     POWERPC_DEF("970fx_v1.0",    CPU_POWERPC_970FX_v10,              970,
@@ -1389,8 +1389,8 @@  PowerPCCPUAlias ppc_cpu_aliases[] = {
     { "POWER5gs", "POWER5+_v2.1" },
     { "POWER7", "POWER7_v2.3" },
     { "POWER7+", "POWER7+_v2.1" },
-    { "POWER8E", "POWER8E_v1.0" },
-    { "POWER8", "POWER8_v1.0" },
+    { "POWER8E", "POWER8E_v2.1" },
+    { "POWER8", "POWER8_v2.0" },
     { "970", "970_v2.2" },
     { "970fx", "970fx_v3.1" },
     { "970mp", "970mp_v1.1" },
diff --git a/target-ppc/cpu-models.h b/target-ppc/cpu-models.h
index 9d80e72..2992427 100644
--- a/target-ppc/cpu-models.h
+++ b/target-ppc/cpu-models.h
@@ -557,9 +557,9 @@  enum {
     CPU_POWERPC_POWER7P_BASE       = 0x004A0000,
     CPU_POWERPC_POWER7P_v21        = 0x004A0201,
     CPU_POWERPC_POWER8E_BASE       = 0x004B0000,
-    CPU_POWERPC_POWER8E_v10        = 0x004B0100,
+    CPU_POWERPC_POWER8E_v21        = 0x004B0201,
     CPU_POWERPC_POWER8_BASE        = 0x004D0000,
-    CPU_POWERPC_POWER8_v10         = 0x004D0100,
+    CPU_POWERPC_POWER8_v20         = 0x004D0200,
     CPU_POWERPC_970_v22            = 0x00390202,
     CPU_POWERPC_970FX_v10          = 0x00391100,
     CPU_POWERPC_970FX_v20          = 0x003C0200,