[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH RFC v2 02/12] hw/pci: Determine if rombar is explicitly enabled
From: |
Akihiko Odaki |
Subject: |
[PATCH RFC v2 02/12] hw/pci: Determine if rombar is explicitly enabled |
Date: |
Sun, 10 Dec 2023 13:05:45 +0900 |
vfio determines if rombar is explicitly enabled by inspecting QDict.
Inspecting QDict is not nice because QDict is untyped and depends on the
details on the external interface. Add an infrastructure to determine if
rombar is explicitly enabled to hw/pci. PCIDevice::rom_bar is changed to
have -1 by the default to tell rombar is explicitly enabled. It is
consistent with other properties like addr and romsize.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
include/hw/pci/pci_device.h | 5 +++++
hw/pci/pci.c | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/hw/pci/pci_device.h b/include/hw/pci/pci_device.h
index d3dd0f64b2..54fa0676ab 100644
--- a/include/hw/pci/pci_device.h
+++ b/include/hw/pci/pci_device.h
@@ -205,6 +205,11 @@ static inline uint16_t pci_get_bdf(PCIDevice *dev)
return PCI_BUILD_BDF(pci_bus_num(pci_get_bus(dev)), dev->devfn);
}
+static inline bool pci_rom_bar_explicitly_enabled(PCIDevice *dev)
+{
+ return dev->rom_bar && dev->rom_bar != -1;
+}
+
uint16_t pci_requester_id(PCIDevice *dev);
/* DMA access functions */
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 4cf31128ba..31e8f413a6 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -71,7 +71,7 @@ static Property pci_props[] = {
DEFINE_PROP_PCI_DEVFN("addr", PCIDevice, devfn, -1),
DEFINE_PROP_STRING("romfile", PCIDevice, romfile),
DEFINE_PROP_UINT32("romsize", PCIDevice, romsize, -1),
- DEFINE_PROP_UINT32("rombar", PCIDevice, rom_bar, 1),
+ DEFINE_PROP_UINT32("rombar", PCIDevice, rom_bar, -1),
DEFINE_PROP_BIT("multifunction", PCIDevice, cap_present,
QEMU_PCI_CAP_MULTIFUNCTION_BITNR, false),
DEFINE_PROP_BIT("x-pcie-lnksta-dllla", PCIDevice, cap_present,
--
2.43.0
- [PATCH RFC v2 00/12] virtio-net: add support for SR-IOV emulation, Akihiko Odaki, 2023/12/09
- [PATCH RFC v2 01/12] hw/pci: Initialize PCI multifunction after realization, Akihiko Odaki, 2023/12/09
- [PATCH RFC v2 02/12] hw/pci: Determine if rombar is explicitly enabled,
Akihiko Odaki <=
- [PATCH RFC v2 03/12] hw/pci: Do not add ROM BAR for SR-IOV VF, Akihiko Odaki, 2023/12/09
- [PATCH RFC v2 04/12] vfio: Avoid inspecting option QDict for rombar, Akihiko Odaki, 2023/12/09
- [PATCH RFC v2 05/12] hw/qdev: Remove opts member, Akihiko Odaki, 2023/12/09
- [PATCH RFC v2 06/12] pcie_sriov: Reuse SR-IOV VF device instances, Akihiko Odaki, 2023/12/09
- [PATCH RFC v2 07/12] pcie_sriov: Release VFs failed to realize, Akihiko Odaki, 2023/12/09
- [PATCH RFC v2 08/12] pcie_sriov: Ensure PF and VF are mutually exclusive, Akihiko Odaki, 2023/12/09
- [PATCH RFC v2 09/12] pcie_sriov: Check PCI Express for SR-IOV PF, Akihiko Odaki, 2023/12/09
- [PATCH RFC v2 10/12] pcie_sriov: Allow user to create SR-IOV device, Akihiko Odaki, 2023/12/09