You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/hw/pci
Marcin Juszkiewicz 449dca6ac9 pcie: enable Extended tag field support
>From what I read PCI has 32 transactions, PCI Express devices can handle
256 with Extended tag enabled (spec mentions also larger values but I
lack PCIe knowledge).

QEMU leaves 'Extended tag field' with 0 as value:

Capabilities: [e0] Express (v1) Root Complex Integrated Endpoint, IntMsgNum 0
        DevCap: MaxPayload 128 bytes, PhantFunc 0
                ExtTag- RBE+ FLReset- TEE-IO-

SBSA ACS has test 824 which checks for PCIe device capabilities. BSA
specification [1] (SBSA is on top of BSA) in section F.3.2 lists
expected values for Device Capabilities Register:

Device Capabilities Register     Requirement
Role based error reporting       RCEC and RCiEP: Hardwired to 1
Endpoint L0s acceptable latency  RCEC and RCiEP: Hardwired to 0
L1 acceptable latency            RCEC and RCiEP: Hardwired to 0
Captured slot power limit scale  RCEC and RCiEP: Hardwired to 0
Captured slot power limit value  RCEC and RCiEP: Hardwired to 0
Max payload size                 value must be compliant with PCIe spec
Phantom functions                RCEC and RCiEP: Recommendation is to
                                 hardwire this bit to 0.
Extended tag field               Hardwired to 1

1. https://developer.arm.com/documentation/den0094/c/

This change enables Extended tag field. All versioned platforms should
have it disabled for older versions (tested with Arm/virt).

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Message-Id: <20241023113820.486017-1-marcin.juszkiewicz@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
4 weeks ago
..
Kconfig kconfig: Add PCIe devices to s390x machines 1 year ago
meson.build meson: remove CONFIG_ALL 11 months ago
msi.c hw/pci/msi: Restrict xen_is_pirq_msi() call to Xen 9 months ago
msix.c hw/pci: Constify VMState 11 months ago
pci-hmp-cmds.c hw/pci/pci-hmp-cmds: Avoid displaying bogus size in 'info pci' 3 months ago
pci-internal.h hw/pci/aer: Make PCIE AER error injection facility available for other emulation to use. 2 years ago
pci-qmp-cmds.c pci: Move QMP commands to new hw/pci/pci-qmp-cmds.c 2 years ago
pci-stub.c hw/pci: remove return after g_assert_not_reached() 2 months ago
pci.c pcie: enable Extended tag field support 4 weeks ago
pci_bridge.c virtio-pci: fix memory_region_find for VirtIOPCIRegion's MR 4 weeks ago
pci_host.c Revert "hw/pci: Rename has_power to enabled" 4 months ago
pcie.c pcie: enable Extended tag field support 4 weeks ago
pcie_aer.c hw/pci: Constify VMState 11 months ago
pcie_doe.c hw/pci: PCIe Data Object Exchange emulation 2 years ago
pcie_host.c include/hw/pci: Split pci_device.h off pci.h 2 years ago
pcie_port.c hw/pci: Remove unused pcie_chassis_find_slot 2 months ago
pcie_sriov.c Revert "pcie_sriov: Do not manually unrealize" 4 months ago
shpc.c hw/pci: add some convenient trace-events for pcie and shpc hotplug 9 months ago
slotid_cap.c include/hw/pci: Split pci_device.h off pci.h 2 years ago
trace-events Revert "pcie_sriov: Remove num_vfs from PCIESriovPF" 4 months ago
trace.h trace: switch position of headers to what Meson requires 4 years ago