These were introduced in the PCIe Root registers patch series, but need to be duplicated for the ICH9 driver patch.
Signed-off-by: Jim MacArthur <[email protected]> --- hw/pci/pcie.c | 15 +++++++++++++++ include/hw/pci/pcie.h | 2 ++ include/hw/pci/pcie_regs.h | 4 ++++ 3 files changed, 21 insertions(+) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index bd00305ecc..7dfb0af801 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1389,6 +1389,21 @@ uint32_t pcie_pri_get_req_alloc(const PCIDevice *dev) return pci_get_long(dev->config + dev->exp.pri_cap + PCI_PRI_ALLOC_REQ); } +/* IDE (Integrity & Data Encryption) */ +void pcie_ide_init(PCIDevice *dev, uint16_t offset) +{ + pcie_add_capability(dev, PCI_EXT_CAP_ID_IDE, PCI_IDE_VER, + offset, PCI_IDE_SIZEOF); + uint32_t cap = PCI_IDE_CAP_SELECTIVE; + pci_set_byte(dev->config + offset + PCI_IDE_CAP, cap); +} + +void pcie_cap_tee_init(PCIDevice *dev) +{ + pci_long_test_and_set_mask(dev->config + dev->exp.exp_cap + PCI_EXP_DEVCAP, + PCI_EXP_DEVCAP_TEE); +} + bool pcie_pri_enabled(const PCIDevice *dev) { if (!pci_is_express(dev) || !dev->exp.pri_cap) { diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index ec25e7a7de..bdebbfffe9 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -161,6 +161,8 @@ void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, bool exec_perm, bool priv_mod); void pcie_pri_init(PCIDevice *dev, uint16_t offset, uint32_t outstanding_pr_cap, bool prg_response_pasid_req); +void pcie_ide_init(PCIDevice *dev, uint16_t offset); +void pcie_cap_tee_init(PCIDevice *dev); uint32_t pcie_pri_get_req_alloc(const PCIDevice *dev); bool pcie_pri_enabled(const PCIDevice *dev); diff --git a/include/hw/pci/pcie_regs.h b/include/hw/pci/pcie_regs.h index 33a22229fe..5f527abf35 100644 --- a/include/hw/pci/pcie_regs.h +++ b/include/hw/pci/pcie_regs.h @@ -182,4 +182,8 @@ typedef enum PCIExpLinkWidth { #define PCI_DOE_VER 0x1 #define PCI_DOE_SIZEOF 24 +/* IDE Fields */ +#define PCI_IDE_VER 0x1 +#define PCI_IDE_SIZEOF 12 + #endif /* QEMU_PCIE_REGS_H */ -- 2.43.0
