Skip to content

Commit

Permalink
vfio/pci: Add pba_offset PCI quirk for BAIDU KUNLUN AI processor
Browse files Browse the repository at this point in the history
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 <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[aw: comment & whitespace tuning]
Signed-off-by: Alex Williamson <[email protected]>
  • Loading branch information
caihuoqing1990 authored and awilliam committed Jul 14, 2021
1 parent 936555b commit 1bd9f1b
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
8 changes: 8 additions & 0 deletions hw/vfio/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 for KUNLUN AI processor
* return an incorrect value of 0x460000 for the VF PBA offset while
* the BAR itself is only 0x10000. The correct value is 0xb400.
*/
} 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");
Expand Down
3 changes: 3 additions & 0 deletions include/hw/pci/pci_ids.h
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,9 @@
#define PCI_VENDOR_ID_FREESCALE 0x1957
#define PCI_DEVICE_ID_MPC8533E 0x0030

#define PCI_VENDOR_ID_BAIDU 0x1d22
#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
Expand Down

0 comments on commit 1bd9f1b

Please sign in to comment.