13 #ifndef __PCI_ROOT_BRIDGE_IO_H__ 14 #define __PCI_ROOT_BRIDGE_IO_H__ 20 #define EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID \ 22 0x2f707ebb, 0x4a1a, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 87 #define EFI_PCI_ATTRIBUTE_ISA_MOTHERBOARD_IO 0x0001 88 #define EFI_PCI_ATTRIBUTE_ISA_IO 0x0002 89 #define EFI_PCI_ATTRIBUTE_VGA_PALETTE_IO 0x0004 90 #define EFI_PCI_ATTRIBUTE_VGA_MEMORY 0x0008 91 #define EFI_PCI_ATTRIBUTE_VGA_IO 0x0010 92 #define EFI_PCI_ATTRIBUTE_IDE_PRIMARY_IO 0x0020 93 #define EFI_PCI_ATTRIBUTE_IDE_SECONDARY_IO 0x0040 94 #define EFI_PCI_ATTRIBUTE_MEMORY_WRITE_COMBINE 0x0080 95 #define EFI_PCI_ATTRIBUTE_MEMORY_CACHED 0x0800 96 #define EFI_PCI_ATTRIBUTE_MEMORY_DISABLE 0x1000 97 #define EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE 0x8000 98 #define EFI_PCI_ATTRIBUTE_ISA_IO_16 0x10000 99 #define EFI_PCI_ATTRIBUTE_VGA_PALETTE_IO_16 0x20000 100 #define EFI_PCI_ATTRIBUTE_VGA_IO_16 0x40000 102 #define EFI_PCI_ATTRIBUTE_VALID_FOR_ALLOCATE_BUFFER (EFI_PCI_ATTRIBUTE_MEMORY_WRITE_COMBINE | EFI_PCI_ATTRIBUTE_MEMORY_CACHED | EFI_PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE) 104 #define EFI_PCI_ATTRIBUTE_INVALID_FOR_ALLOCATE_BUFFER (~EFI_PCI_ATTRIBUTE_VALID_FOR_ALLOCATE_BUFFER) 106 #define EFI_PCI_ADDRESS(bus, dev, func, reg) \ 108 (((UINTN) bus) << 24) | \ 109 (((UINTN) dev) << 16) | \ 110 (((UINTN) func) << 8) | \ 111 (((UINTN) (reg)) < 256 ? ((UINTN) (reg)) : (UINT64) (LShiftU64 ((UINT64) (reg), 32)))) EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ALLOCATE_BUFFER AllocateBuffer
A read operation from system memory by a bus master that is capable of producing PCI dual address cyc...
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FLUSH Flush
128 bit buffer containing a unique identifier value.
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Mem
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINT64 Mask, IN UINT64 Value, IN UINT64 Delay, OUT UINT64 *Result)
Reads from the I/O space of a PCI Root Bridge.
EFI_HANDLE ParentHandle
The EFI_HANDLE of the PCI Host Bridge of which this PCI Root Bridge is a member.
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_UNMAP Unmap
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FREE_BUFFER FreeBuffer
EFI_GUID gEfiPciRootBridgeIoProtocolGuid
A write operation to system memory by a bus master that is capable of producing PCI dual address cycl...
UINT64 EFI_PHYSICAL_ADDRESS
64-bit physical memory address.
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_CONFIGURATION Configuration
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_SET_ATTRIBUTES)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN UINT64 Attributes, IN OUT UINT64 *ResourceBase, IN OUT UINT64 *ResourceLength)
Sets attributes for a resource range on a PCI root bridge.
EFI_MEMORY_TYPE
Enumeration of memory types introduced in UEFI.
Provides both read and write access to system memory by both the processor and a bus master that is c...
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_IO_MEM Write
Write PCI controller registers in the PCI root bridge memory space.
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH
Provides string functions, linked list functions, math functions, synchronization functions,...
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Io
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS Pci
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM PollIo
UINT32 SegmentNumber
The segment number that this PCI root bridge resides.
SEGOFF16_t Buffer
Buffer address.
A write operation from system memory by a bus master that is not capable of producing PCI dual addres...
UINT64 UINTN
Unsigned value of native width.
A read operation from system memory by a bus master that is not capable of producing PCI dual address...
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_UNMAP)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN VOID *Mapping)
Completes the Map() operation and releases any corresponding resources.
#define VOID
Undeclared type.
unsigned long long UINT64
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_OPERATION
Provides both read and write access to system memory by both the processor and a bus master that is n...
Provides the basic Memory, I/O, PCI configuration, and DMA interfaces that are used to abstract acces...
EFI_ALLOCATE_TYPE
Enumeration of EFI memory allocation types.
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_SET_ATTRIBUTES SetAttributes
FILE_LICENCE(BSD2_PATENT)
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FLUSH)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This)
Flushes all PCI posted write transactions from a PCI host bridge to system memory.
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GET_ATTRIBUTES GetAttributes
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_CONFIGURATION)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, OUT VOID **Resources)
Retrieves the current resource settings of this PCI root bridge in the form of a set of ACPI resource...
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_COPY_MEM CopyMem
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_ALLOCATE_BUFFER)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_ALLOCATE_TYPE Type, IN EFI_MEMORY_TYPE MemoryType, IN UINTN Pages, IN OUT VOID **HostAddress, IN UINT64 Attributes)
Allocates pages that are suitable for an EfiPciOperationBusMasterCommonBuffer or EfiPciOperationBusMa...
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_IO_MEM Read
Read PCI controller registers in the PCI root bridge memory space.
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_COPY_MEM)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, IN UINT64 DestAddress, IN UINT64 SrcAddress, IN UINTN Count)
Enables a PCI driver to copy one region of PCI root bridge memory space to another region of PCI root...
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_POLL_IO_MEM PollMem
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_FREE_BUFFER)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN UINTN Pages, IN VOID *HostAddress)
Frees memory that was allocated with AllocateBuffer().
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_MAP)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_OPERATION Operation, IN VOID *HostAddress, IN OUT UINTN *NumberOfBytes, OUT EFI_PHYSICAL_ADDRESS *DeviceAddress, OUT VOID **Mapping)
Provides the PCI controller-specific addresses required to access system memory from a DMA bus master...
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_MAP Map
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_IO_MEM)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_WIDTH Width, IN UINT64 Address, IN UINTN Count, IN OUT VOID *Buffer)
Enables a PCI driver to access PCI controller registers in the PCI root bridge memory space.
EFI_STATUS(EFIAPI * EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GET_ATTRIBUTES)(IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This, OUT UINT64 *Supports, OUT UINT64 *Attributes)
Gets the attributes that a PCI root bridge supports setting with SetAttributes(), and the attributes ...