[PATCH] PPC/CAS Add support for power9 in ibm_architecture_vec

Denis Kirjanov kda at linux-powerpc.org
Tue Nov 29 23:33:11 AEDT 2016


On 11/29/16, Balbir Singh <bsingharora at 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 at 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
>
>


More information about the Linuxppc-dev mailing list