summaryrefslogtreecommitdiffstats
path: root/hw
diff options
context:
space:
mode:
authorDmitry Fleytman2016-06-01 10:23:34 +0200
committerJason Wang2016-06-02 04:42:26 +0200
commitb56b9285e4b58a0b8fe8b011d48dbf7e2afba785 (patch)
treefb2f97d52f06022b5827d2608dc54418e2a47225 /hw
parentpcie: Add support for PCIe CAP v1 (diff)
downloadqemu-b56b9285e4b58a0b8fe8b011d48dbf7e2afba785.tar.gz
qemu-b56b9285e4b58a0b8fe8b011d48dbf7e2afba785.tar.xz
qemu-b56b9285e4b58a0b8fe8b011d48dbf7e2afba785.zip
pcie: Introduce function for DSN capability creation
Signed-off-by: Dmitry Fleytman <dmitry.fleytman@ravellosystems.com> Signed-off-by: Leonid Bloch <leonid.bloch@ravellosystems.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/pci/pcie.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c
index 24cfc3bcda..9599fdef57 100644
--- a/hw/pci/pcie.c
+++ b/hw/pci/pcie.c
@@ -695,3 +695,13 @@ void pcie_ari_init(PCIDevice *dev, uint16_t offset, uint16_t nextfn)
offset, PCI_ARI_SIZEOF);
pci_set_long(dev->config + offset + PCI_ARI_CAP, (nextfn & 0xff) << 8);
}
+
+void pcie_dev_ser_num_init(PCIDevice *dev, uint16_t offset, uint64_t ser_num)
+{
+ static const int pci_dsn_ver = 1;
+ static const int pci_dsn_cap = 4;
+
+ pcie_add_capability(dev, PCI_EXT_CAP_ID_DSN, pci_dsn_ver, offset,
+ PCI_EXT_CAP_DSN_SIZEOF);
+ pci_set_quad(dev->config + offset + pci_dsn_cap, ser_num);
+}