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
|
---|