1 | /** @file
|
---|
2 | Deal with devices that just exist in memory space.
|
---|
3 |
|
---|
4 | To follow the EFI driver model you need a root handle to start with. An
|
---|
5 | EFI driver will have a driver binding protocol (Supported, Start, Stop)
|
---|
6 | that is used to layer on top of a handle via a gBS->ConnectController.
|
---|
7 | The first handle has to just be in the system to make that work. For
|
---|
8 | PCI it is a PCI Root Bridge IO protocol that provides the root.
|
---|
9 |
|
---|
10 | On an embedded system with MMIO device we need a handle to just
|
---|
11 | show up. That handle will have this protocol and a device path
|
---|
12 | protocol on it.
|
---|
13 |
|
---|
14 | For an ethernet device the device path must contain a MAC address device path
|
---|
15 | node.
|
---|
16 |
|
---|
17 | Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
---|
18 |
|
---|
19 | SPDX-License-Identifier: BSD-2-Clause-Patent
|
---|
20 |
|
---|
21 | **/
|
---|
22 |
|
---|
23 | #ifndef __EMBEDDED_DEVICE_PROTOCOL_H__
|
---|
24 | #define __EMBEDDED_DEVICE_PROTOCOL_H__
|
---|
25 |
|
---|
26 | //
|
---|
27 | // Protocol GUID
|
---|
28 | //
|
---|
29 | // BF4B9D10-13EC-43dd-8880-E90B718F27DE
|
---|
30 |
|
---|
31 | #define EMBEDDED_DEVICE_PROTOCOL_GUID \
|
---|
32 | { 0xbf4b9d10, 0x13ec, 0x43dd, { 0x88, 0x80, 0xe9, 0xb, 0x71, 0x8f, 0x27, 0xde } }
|
---|
33 |
|
---|
34 | typedef struct {
|
---|
35 | UINT16 VendorId;
|
---|
36 | UINT16 DeviceId;
|
---|
37 | UINT16 RevisionId;
|
---|
38 | UINT16 SubsystemId;
|
---|
39 | UINT16 SubsystemVendorId;
|
---|
40 | UINT8 ClassCode[3];
|
---|
41 | UINT8 HeaderSize;
|
---|
42 | UINTN BaseAddress;
|
---|
43 | } EMBEDDED_DEVICE_PROTOCOL;
|
---|
44 |
|
---|
45 | extern EFI_GUID gEmbeddedDeviceGuid;
|
---|
46 |
|
---|
47 | #endif
|
---|