]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/Include/IndustryStandard/QemuPciBridgeCapabilities.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / OvmfPkg / Include / IndustryStandard / QemuPciBridgeCapabilities.h
1 /** @file
2 Macro and type definitions for QEMU's Red Hat vendor-specific PCI
3 capabilities that provide various hints about PCI Bridges.
4
5 Refer to "docs/pcie_pci_bridge.txt" in the QEMU source directory.
6
7 Copyright (C) 2017, Red Hat, Inc.
8
9 SPDX-License-Identifier: BSD-2-Clause-Patent
10 **/
11
12 #ifndef __QEMU_PCI_BRIDGE_CAPABILITIES_H__
13 #define __QEMU_PCI_BRIDGE_CAPABILITIES_H__
14
15 #include <IndustryStandard/Pci23.h>
16
17 //
18 // The hints apply to PCI Bridges whose PCI_DEVICE_INDEPENDENT_REGION.VendorId
19 // equals the following value.
20 //
21 #define QEMU_PCI_BRIDGE_VENDOR_ID_REDHAT 0x1B36
22
23 //
24 // Common capability header for all hints.
25 //
26 #pragma pack (1)
27 typedef struct {
28 EFI_PCI_CAPABILITY_VENDOR_HDR VendorHdr;
29 UINT8 Type;
30 } QEMU_PCI_BRIDGE_CAPABILITY_HDR;
31 #pragma pack ()
32
33 //
34 // Values defined for QEMU_PCI_BRIDGE_CAPABILITY_HDR.Type.
35 //
36 #define QEMU_PCI_BRIDGE_CAPABILITY_TYPE_RESOURCE_RESERVATION 0x01
37
38 //
39 // PCI Resource Reservation structure for when
40 // QEMU_PCI_BRIDGE_CAPABILITY_HDR.Type equals
41 // QEMU_PCI_BRIDGE_CAPABILITY_TYPE_RESOURCE_RESERVATION.
42 //
43 #pragma pack (1)
44 typedef struct {
45 QEMU_PCI_BRIDGE_CAPABILITY_HDR BridgeHdr;
46 UINT32 BusNumbers;
47 UINT64 Io;
48 UINT32 NonPrefetchable32BitMmio;
49 UINT32 Prefetchable32BitMmio;
50 UINT64 Prefetchable64BitMmio;
51 } QEMU_PCI_BRIDGE_CAPABILITY_RESOURCE_RESERVATION;
52 #pragma pack ()
53
54 #endif