All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Cai,Huoqing" <caihuoqing@baidu.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"mst@redhat.com" <mst@redhat.com>
Subject: RE: [PATCH] vfio/pci: Add pba_offset PCI quirk for BAIDU KUNLUN AI processor
Date: Tue, 13 Jul 2021 01:22:10 +0000	[thread overview]
Message-ID: <cf1583335b6146359196869434efed56@baidu.com> (raw)
In-Reply-To: <20210712134922.510d0cff.alex.williamson@redhat.com>

Sure I will check these issue in our hardware
Then ,send patch-v2 

-----Original Message-----
From: Alex Williamson <alex.williamson@redhat.com> 
Sent: 2021年7月13日 3:49
To: Cai,Huoqing <caihuoqing@baidu.com>
Cc: mst@redhat.com; marcel.apfelbaum@gmail.com; qemu-devel@nongnu.org
Subject: Re: [PATCH] vfio/pci: Add pba_offset PCI quirk for BAIDU KUNLUN AI processor

On Mon, 12 Jul 2021 11:36:55 +0800
Cai Huoqing <caihuoqing@baidu.com> wrote:

> Fix pba_offset initialization value for BAIDU KUNLUN Virtual Function 
> device. The KUNLUN hardware returns an incorrect value for the VF PBA 
> offset, and add a quirk to instead return a hardcoded value of 0xb400.
> 
> Signed-off-by: Cai Huoqing <caihuoqing@baidu.com>
> ---
>  hw/vfio/pci.c            | 8 ++++++++
>  include/hw/pci/pci_ids.h | 4 ++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 
> ab4077aad2..72b7abf623 100644
> --- a/hw/vfio/pci.c
> +++ b/hw/vfio/pci.c
> @@ -1499,6 +1499,14 @@ static void vfio_msix_early_setup(VFIOPCIDevice *vdev, Error **errp)
>          if (vdev->vendor_id == PCI_VENDOR_ID_CHELSIO &&
>              (vdev->device_id & 0xff00) == 0x5800) {
>              msix->pba_offset = 0x1000;
> +        /*
> +         * BAIDU KUNLUN Virtual Function devices are encoded as 0x3685 for
> +         * KUNLUN AI processor. The KUNLUN hardware returns an incorrect
> +         * value for the VF PBA offset. The correct value is 0xb400.
> +         */

What is the incorrect value and what is the BAR size?  This information in the comment could help debugging later.

> +        } else if (vdev->vendor_id == PCI_VENDOR_ID_BAIDU &&
> +                   vdev->device_id == PCI_DEVICE_ID_KUNLUN_VF) {

Since we don't have an "encoding" like the previous quirk, we can use
vfio_pci_is() here:

        } else if (vfio_pci_is(vdev, PCI_VENDOR_ID_BAIDU,
                               PCI_DEVICE_ID_KUNLUN_VF)) {

> +            msix->pba_offset = 0xb400;
>          } else if (vdev->msix_relo == OFF_AUTOPCIBAR_OFF) {
>              error_setg(errp, "hardware reports invalid configuration, "
>                         "MSIX PBA outside of specified BAR"); diff 
> --git a/include/hw/pci/pci_ids.h b/include/hw/pci/pci_ids.h index 
> 5c14681b82..bc73c50277 100644
> --- a/include/hw/pci/pci_ids.h
> +++ b/include/hw/pci/pci_ids.h
> @@ -227,6 +227,10 @@
>  #define PCI_VENDOR_ID_FREESCALE          0x1957
>  #define PCI_DEVICE_ID_MPC8533E           0x0030
>  
> +#define PCI_VENDOR_ID_BAIDU              0x1d22
> +#define PCI_DEVICE_ID_KUNLUN             0x3684

Let's not add a device ID that we don't use elsewhere in the code, we only use the vendor ID and the VF ID below.  Thanks,

Alex

> +#define PCI_DEVICE_ID_KUNLUN_VF          0x3685
> +
>  #define PCI_VENDOR_ID_INTEL              0x8086
>  #define PCI_DEVICE_ID_INTEL_82378        0x0484
>  #define PCI_DEVICE_ID_INTEL_82441        0x1237


      reply	other threads:[~2021-07-13  1:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-12  3:36 [PATCH] vfio/pci: Add pba_offset PCI quirk for BAIDU KUNLUN AI processor Cai Huoqing
2021-07-12 19:49 ` Alex Williamson
2021-07-13  1:22   ` Cai,Huoqing [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cf1583335b6146359196869434efed56@baidu.com \
    --to=caihuoqing@baidu.com \
    --cc=alex.williamson@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.