]> git.proxmox.com Git - mirror_edk2.git/blob - Vlv2TbltDevicePkg/Include/Protocol/MmioDevice.h
3c0eb5201a22b88ea3c61fe311291e83f4a43a97
[mirror_edk2.git] / Vlv2TbltDevicePkg / Include / Protocol / MmioDevice.h
1 /*++
2
3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
4
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7
8
9 **/
10
11 #ifndef __MMIO_DEVICE_H__
12 #define __MMIO_DEVICE_H__
13
14 //
15 // Protocol to define for the MMIO device
16 //
17 typedef struct {
18 //
19 // Address of a GUID
20 //
21 EFI_GUID *Guid;
22
23 //
24 // Context for the protocol
25 //
26 VOID *Context;
27 } EFI_MMIO_DEVICE_PROTOCOL_ITEM;
28
29
30 typedef struct _EFI_MMIO_DEVICE_PROTOCOL EFI_MMIO_DEVICE_PROTOCOL;
31
32 //
33 // The MMIO device protocol defines a memory mapped I/O device
34 // for use by the system.
35 //
36 struct _EFI_MMIO_DEVICE_PROTOCOL {
37 //
38 // Pointer to an ACPI_EXTENDED_HID_DEVICE_PATH structure
39 // containing HID/HidStr and CID/CidStr values.
40 //
41 // See the note below associated with the UnitIdentification
42 // field.
43 //
44 CONST ACPI_EXTENDED_HID_DEVICE_PATH *AcpiPath;
45
46 //
47 // Allow the use of a shared template for the AcpiPath.
48 //
49 // If this value is non-zero UID value then the AcpiPath must
50 // be a template which contains only the HID/HidStr and CID/CidStr
51 // values. The UID/UidStr values in the AcpiPath must be zero!
52 //
53 // If this value is zero then the AcpiPath is not shared and
54 // must contain either a non-zero UID value or a UidStr value.
55 //
56 UINT32 UnitIdentification;
57
58 //
59 // Hardware revision - ACPI _HRV value
60 //
61 UINT32 HardwareRevision;
62
63 //
64 // Pointer to a data structure containing the controller
65 // resources and configuration. At a minimum this points
66 // to an EFI_PHYSICAL_ADDRESS for the base address of the
67 // MMIO device.
68 //
69 CONST VOID *DriverResources;
70
71 //
72 // Number of protocols in the array
73 //
74 UINTN ProtocolCount;
75
76 //
77 // List of protocols to define
78 //
79 CONST EFI_MMIO_DEVICE_PROTOCOL_ITEM *ProtocolArray;
80 };
81
82 extern EFI_GUID gEfiMmioDeviceProtocolGuid;
83
84 #endif // __MMIO_DEVICE_H__