]> git.proxmox.com Git - mirror_edk2.git/blob - Vlv2TbltDevicePkg/Include/Protocol/MmioDevice.h
Upload BSD-licensed Vlv2TbltDevicePkg and Vlv2DeviceRefCodePkg to
[mirror_edk2.git] / Vlv2TbltDevicePkg / Include / Protocol / MmioDevice.h
1 /*++
2
3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
4
5 This program and the accompanying materials are licensed and made available under
6 the terms and conditions of the BSD License that accompanies this distribution.
7 The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php.
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13
14 **/
15
16 #ifndef __MMIO_DEVICE_H__
17 #define __MMIO_DEVICE_H__
18
19 //
20 // Protocol to define for the MMIO device
21 //
22 typedef struct {
23 //
24 // Address of a GUID
25 //
26 EFI_GUID *Guid;
27
28 //
29 // Context for the protocol
30 //
31 VOID *Context;
32 } EFI_MMIO_DEVICE_PROTOCOL_ITEM;
33
34
35 typedef struct _EFI_MMIO_DEVICE_PROTOCOL EFI_MMIO_DEVICE_PROTOCOL;
36
37 //
38 // The MMIO device protocol defines a memory mapped I/O device
39 // for use by the system.
40 //
41 struct _EFI_MMIO_DEVICE_PROTOCOL {
42 //
43 // Pointer to an ACPI_EXTENDED_HID_DEVICE_PATH structure
44 // containing HID/HidStr and CID/CidStr values.
45 //
46 // See the note below associated with the UnitIdentification
47 // field.
48 //
49 CONST ACPI_EXTENDED_HID_DEVICE_PATH *AcpiPath;
50
51 //
52 // Allow the use of a shared template for the AcpiPath.
53 //
54 // If this value is non-zero UID value then the AcpiPath must
55 // be a template which contains only the HID/HidStr and CID/CidStr
56 // values. The UID/UidStr values in the AcpiPath must be zero!
57 //
58 // If this value is zero then the AcpiPath is not shared and
59 // must contain either a non-zero UID value or a UidStr value.
60 //
61 UINT32 UnitIdentification;
62
63 //
64 // Hardware revision - ACPI _HRV value
65 //
66 UINT32 HardwareRevision;
67
68 //
69 // Pointer to a data structure containing the controller
70 // resources and configuration. At a minimum this points
71 // to an EFI_PHYSICAL_ADDRESS for the base address of the
72 // MMIO device.
73 //
74 CONST VOID *DriverResources;
75
76 //
77 // Number of protocols in the array
78 //
79 UINTN ProtocolCount;
80
81 //
82 // List of protocols to define
83 //
84 CONST EFI_MMIO_DEVICE_PROTOCOL_ITEM *ProtocolArray;
85 };
86
87 extern EFI_GUID gEfiMmioDeviceProtocolGuid;
88
89 #endif // __MMIO_DEVICE_H__