[Skiboot] [PATCH] npu: Fix device binding error message

Alexey Kardashevskiy aik at ozlabs.ru
Thu Aug 8 17:35:49 AEST 2019



On 08/08/2019 03:17, Reza Arbab wrote:
> Helping someone troubleshoot a Garrison machine, I noticed some of the
> BDFs printed here are wrong:
> 
> npu_dev_bind_pci_dev: No PCI device for NPU device 0004:00:00.0 to bind to. If you expect a GPU to be there, this is a problem.
> npu_dev_bind_pci_dev: No PCI device for NPU device 0004:00:01.0 to bind to. If you expect a GPU to be there, this is a problem.
> npu_dev_bind_pci_dev: No PCI device for NPU device 0004:00:04.0 to bind to. If you expect a GPU to be there, this is a problem.
> npu_dev_bind_pci_dev: No PCI device for NPU device 0004:00:05.0 to bind to. If you expect a GPU to be there, this is a problem.
> 
> Change the prlog() call to print them correctly.
> 
> Signed-off-by: Reza Arbab <arbab at linux.ibm.com>
> ---
>   hw/npu.c | 8 ++++++--
>   1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/npu.c b/hw/npu.c
> index b0c23f76d53d..2466614ad95f 100644
> --- a/hw/npu.c
> +++ b/hw/npu.c
> @@ -385,8 +385,12 @@ static void npu_dev_bind_pci_dev(struct npu_dev *dev)
>   		}
>   	}
>   
> -	prlog(PR_INFO, "%s: No PCI device for NPU device %04x:00:%02x.0 to bind to. If you expect a GPU to be there, this is a problem.\n",
> -	      __func__, dev->npu->phb.opal_id, dev->index);
> +	prlog(PR_INFO, "%s: No PCI device for NPU device %04x:%02x:%02x.%x to bind to. If you expect a GPU to be there, this is a problem.\n",
> +	      __func__, dev->npu->phb.opal_id,
> +	      dev->pvd->bdfn >> 8 & 0xff,
> +	      dev->pvd->bdfn >> 3 & 0x1f,
> +	      dev->pvd->bdfn & 0x7);
> +

I wanted to suggest using PCI_BUS_NUM/PCI_SLOT/PCI_FUNC instead and then 
realized that skiboot simply does not have these or similar (copied from 
qemu):

#define PCI_BUS_NUM(x)          (((x) >> 8) & 0xff)
#define PCI_SLOT(devfn)         (((devfn) >> 3) & 0x1f)
#define PCI_FUNC(devfn)         ((devfn) & 0x07)

Oh well, the patch is absolutely correct then


Reviewed-by: Alexey Kardashevskiy <aik at ozlabs.ru>




>   }
>   
>   static struct lock pci_npu_phandle_lock = LOCK_UNLOCKED;
> 

-- 
Alexey


More information about the Skiboot mailing list