diff mbox

PPC/CAS Add support for power9 in ibm_architecture_vec

Message ID 9b7467b2-a9f3-07a2-f32c-4f8d64735057@gmail.com (mailing list archive)
State Changes Requested
Headers show

Commit Message

Balbir Singh Nov. 29, 2016, 12:11 p.m. UTC
The PVR list has been updated and IBM_ARCH_VEC_NRCORES_OFFSET.
This provides the cpu versions supported to the hypervisor and in this case
tells the hypervisor that the guest supports ISA 3.0 and Power9.

Signed-off-by: Balbir Singh <bsingharora@gmail.com>
---
 arch/powerpc/include/asm/prom.h | 2 ++
 arch/powerpc/kernel/prom_init.c | 7 +++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

Comments

Denis Kirjanov Nov. 29, 2016, 12:33 p.m. UTC | #1
On 11/29/16, Balbir Singh <bsingharora@gmail.com> wrote:
>
>
> The PVR list has been updated and IBM_ARCH_VEC_NRCORES_OFFSET.
> This provides the cpu versions supported to the hypervisor and in this case
> tells the hypervisor that the guest supports ISA 3.0 and Power9.
>
> Signed-off-by: Balbir Singh <bsingharora@gmail.com>

Michael rewrote the code so you have to update the patch.
See https://patchwork.ozlabs.org/patch/658627/
> ---
>  arch/powerpc/include/asm/prom.h | 2 ++
>  arch/powerpc/kernel/prom_init.c | 7 +++++--
>  2 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/prom.h
> b/arch/powerpc/include/asm/prom.h
> index 7f436ba..785bc6b 100644
> --- a/arch/powerpc/include/asm/prom.h
> +++ b/arch/powerpc/include/asm/prom.h
> @@ -121,6 +121,8 @@ struct of_drconf_cell {
>  #define OV1_PPC_2_06		0x02	/* set if we support PowerPC 2.06 */
>  #define OV1_PPC_2_07		0x01	/* set if we support PowerPC 2.07 */
>
> +#define OV1_PPC_3_00		0x80	/* set if we support PowerPC 3.00 */
> +
>  /* Option vector 2: Open Firmware options supported */
>  #define OV2_REAL_MODE		0x20	/* set if we want OF in real mode */
>
> diff --git a/arch/powerpc/kernel/prom_init.c
> b/arch/powerpc/kernel/prom_init.c
> index 88ac964..2a8d6b0 100644
> --- a/arch/powerpc/kernel/prom_init.c
> +++ b/arch/powerpc/kernel/prom_init.c
> @@ -659,6 +659,8 @@ unsigned char ibm_architecture_vec[] = {
>  	W(0xffff0000), W(0x004b0000),	/* POWER8E */
>  	W(0xffff0000), W(0x004c0000),   /* POWER8NVL */
>  	W(0xffff0000), W(0x004d0000),	/* POWER8 */
> +	W(0xffff0000), W(0x004e0000),	/* POWER9 */
> +	W(0xffffffff), W(0x0f000005),	/* all 3.00-compliant */
>  	W(0xffffffff), W(0x0f000004),	/* all 2.07-compliant */
>  	W(0xffffffff), W(0x0f000003),	/* all 2.06-compliant */
>  	W(0xffffffff), W(0x0f000002),	/* all 2.05-compliant */
> @@ -666,10 +668,11 @@ unsigned char ibm_architecture_vec[] = {
>  	NUM_VECTORS(6),			/* 6 option vectors */
>
>  	/* option vector 1: processor architectures supported */
> -	VECTOR_LENGTH(2),		/* length */
> +	VECTOR_LENGTH(3),		/* length */
>  	0,				/* don't ignore, don't halt */
>  	OV1_PPC_2_00 | OV1_PPC_2_01 | OV1_PPC_2_02 | OV1_PPC_2_03 |
>  	OV1_PPC_2_04 | OV1_PPC_2_05 | OV1_PPC_2_06 | OV1_PPC_2_07,
> +	OV1_PPC_3_00,
>
>  	/* option vector 2: Open Firmware options supported */
>  	VECTOR_LENGTH(33),		/* length */
> @@ -720,7 +723,7 @@ unsigned char ibm_architecture_vec[] = {
>  	 * must match by the macro below. Update the definition if
>  	 * the structure layout changes.
>  	 */
> -#define IBM_ARCH_VEC_NRCORES_OFFSET	133
> +#define IBM_ARCH_VEC_NRCORES_OFFSET	150
>  	W(NR_CPUS),			/* number of cores supported */
>  	0,
>  	0,
> --
> 2.5.5
>
>
Michael Ellerman Nov. 30, 2016, 8:09 a.m. UTC | #2
Denis Kirjanov <kda@linux-powerpc.org> writes:

> On 11/29/16, Balbir Singh <bsingharora@gmail.com> wrote:
>>
>>
>> The PVR list has been updated and IBM_ARCH_VEC_NRCORES_OFFSET.
>> This provides the cpu versions supported to the hypervisor and in this case
>> tells the hypervisor that the guest supports ISA 3.0 and Power9.
>>
>> Signed-off-by: Balbir Singh <bsingharora@gmail.com>
>
> Michael rewrote the code so you have to update the patch.
> See https://patchwork.ozlabs.org/patch/658627/

Yeah, but no one reviewed it ...

But yep I've merged it anyway.

I would just fix this up on top of that, but I don't have a good way to
test it, so Balbir I will bounce this back to you to rebase on top of my
patch.

cheers
diff mbox

Patch

diff --git a/arch/powerpc/include/asm/prom.h b/arch/powerpc/include/asm/prom.h
index 7f436ba..785bc6b 100644
--- a/arch/powerpc/include/asm/prom.h
+++ b/arch/powerpc/include/asm/prom.h
@@ -121,6 +121,8 @@  struct of_drconf_cell {
 #define OV1_PPC_2_06		0x02	/* set if we support PowerPC 2.06 */
 #define OV1_PPC_2_07		0x01	/* set if we support PowerPC 2.07 */
 
+#define OV1_PPC_3_00		0x80	/* set if we support PowerPC 3.00 */
+
 /* Option vector 2: Open Firmware options supported */
 #define OV2_REAL_MODE		0x20	/* set if we want OF in real mode */
 
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 88ac964..2a8d6b0 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -659,6 +659,8 @@  unsigned char ibm_architecture_vec[] = {
 	W(0xffff0000), W(0x004b0000),	/* POWER8E */
 	W(0xffff0000), W(0x004c0000),   /* POWER8NVL */
 	W(0xffff0000), W(0x004d0000),	/* POWER8 */
+	W(0xffff0000), W(0x004e0000),	/* POWER9 */
+	W(0xffffffff), W(0x0f000005),	/* all 3.00-compliant */
 	W(0xffffffff), W(0x0f000004),	/* all 2.07-compliant */
 	W(0xffffffff), W(0x0f000003),	/* all 2.06-compliant */
 	W(0xffffffff), W(0x0f000002),	/* all 2.05-compliant */
@@ -666,10 +668,11 @@  unsigned char ibm_architecture_vec[] = {
 	NUM_VECTORS(6),			/* 6 option vectors */
 
 	/* option vector 1: processor architectures supported */
-	VECTOR_LENGTH(2),		/* length */
+	VECTOR_LENGTH(3),		/* length */
 	0,				/* don't ignore, don't halt */
 	OV1_PPC_2_00 | OV1_PPC_2_01 | OV1_PPC_2_02 | OV1_PPC_2_03 |
 	OV1_PPC_2_04 | OV1_PPC_2_05 | OV1_PPC_2_06 | OV1_PPC_2_07,
+	OV1_PPC_3_00,
 
 	/* option vector 2: Open Firmware options supported */
 	VECTOR_LENGTH(33),		/* length */
@@ -720,7 +723,7 @@  unsigned char ibm_architecture_vec[] = {
 	 * must match by the macro below. Update the definition if
 	 * the structure layout changes.
 	 */
-#define IBM_ARCH_VEC_NRCORES_OFFSET	133
+#define IBM_ARCH_VEC_NRCORES_OFFSET	150
 	W(NR_CPUS),			/* number of cores supported */
 	0,
 	0,