summaryrefslogtreecommitdiff
path: root/hw/pci
diff options
context:
space:
mode:
authorDmitry Fleytman <dmitry.fleytman@ravellosystems.com>2016-06-01 11:23:34 +0300
committerJason Wang <jasowang@redhat.com>2016-06-02 10:42:26 +0800
commitb56b9285e4b58a0b8fe8b011d48dbf7e2afba785 (patch)
treefb2f97d52f06022b5827d2608dc54418e2a47225 /hw/pci
parent6383292ac884f01be609f69d888f54c099af622e (diff)
downloadqemu-b56b9285e4b58a0b8fe8b011d48dbf7e2afba785.tar.gz
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/pci')
-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);
+}