[Skiboot] [PATCH 5/7] npu2: Add checks to npu2-only codepaths

Andrew Donnellan ajd at linux.ibm.com
Mon Jun 17 15:03:49 AEST 2019


On 13/6/19 7:08 am, Reza Arbab wrote:
> To prepare for npu3, add a few checks in codepaths that are only for
> npu2. Compare against PVR_TYPE_P9, as npu3 will be in systems of
> PVR_TYPE_P9P (or greater). Alternatively, check for dt compatibility
> with "ibm,power9-npu" because npu3 will use "ibm,power9-npu3".
> 
> Signed-off-by: Reza Arbab <arbab at linux.ibm.com>


Some of these seem unnecessary but can't hurt.

Reviewed-by: Andrew Donnellan <ajd at linux.ibm.com>

> ---
>   core/hmi.c       | 4 ++++
>   hdata/spira.c    | 6 +++---
>   hw/npu2-common.c | 4 ++++
>   3 files changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/core/hmi.c b/core/hmi.c
> index 5cde67138109..2202bfba9ca2 100644
> --- a/core/hmi.c
> +++ b/core/hmi.c
> @@ -636,6 +636,10 @@ static void find_npu2_checkstop_reason(int flat_chip_id,
>   	int total_errors = 0;
>   	const char *loc;
>   
> +	/* NPU2 only */
> +	if (PVR_TYPE(mfspr(SPR_PVR)) != PVR_TYPE_P9)
> +		return;
> +
>   	/* Find the NPU on the chip associated with the HMI. */
>   	for_each_phb(phb) {
>   		/* NOTE: if a chip ever has >1 NPU this will need adjusting */
> diff --git a/hdata/spira.c b/hdata/spira.c
> index 6891a9c71bdf..804d90da34a1 100644
> --- a/hdata/spira.c
> +++ b/hdata/spira.c
> @@ -1506,7 +1506,8 @@ static void add_npus(void)
>   	int phb_index = 7; /* Start counting from 7, for no reason */
>   	int npu_index = 0;
>   
> -	if (proc_gen < proc_gen_p9)
> +	/* Only consult HDAT for npu2 */
> +	if (cpu_type != PVR_TYPE_P9)
>   		return;
>   
>   	dt_for_each_compatible(dt_root, xscom, "ibm,xscom") {
> @@ -1633,8 +1634,7 @@ int parse_hdat(bool is_opal)
>   	io_parse();
>   
>   	/* Add NPU nodes */
> -	if (proc_gen >= proc_gen_p9)
> -		add_npus();
> +	add_npus();
>   
>   	/* Parse VPD */
>   	vpd_parse();
> diff --git a/hw/npu2-common.c b/hw/npu2-common.c
> index f3f2f45a10d4..776030759693 100644
> --- a/hw/npu2-common.c
> +++ b/hw/npu2-common.c
> @@ -654,6 +654,10 @@ void probe_npu2(void)
>   	struct dt_node *np;
>   	const char *zcal;
>   
> +	/* npu2 only */
> +	if (!dt_find_compatible_node(dt_root, NULL, "ibm,power9-npu"))
> +		return;
> +
>   	/* Abort if we're running on POWER9C DD1 (P9N DD1 is not supported) */
>   	if (chip &&
>   	    chip->type == PROC_CHIP_P9_CUMULUS &&
> 

-- 
Andrew Donnellan              OzLabs, ADL Canberra
ajd at linux.ibm.com             IBM Australia Limited



More information about the Skiboot mailing list