From: Alex Williamson <alex.williamson@redhat.com>
To: Cai Huoqing <caihuoqing@baidu.com>
Cc: qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [PATCH] vfio/pci: Add pba_offset PCI quirk for BAIDU KUNLUN AI processor
Date: Mon, 12 Jul 2021 13:49:22 -0600 [thread overview]
Message-ID: <20210712134922.510d0cff.alex.williamson@redhat.com> (raw)
In-Reply-To: <20210712033655.390-1-caihuoqing@baidu.com>
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
next prev parent reply other threads:[~2021-07-12 19:53 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 [this message]
2021-07-13 1:22 ` Cai,Huoqing
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=20210712134922.510d0cff.alex.williamson@redhat.com \
--to=alex.williamson@redhat.com \
--cc=caihuoqing@baidu.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.