]> git.proxmox.com Git - mirror_edk2.git/blob - EmbeddedPkg/Include/Protocol/EmbeddedDevice.h
EmbeddedPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / EmbeddedPkg / Include / Protocol / EmbeddedDevice.h
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 //
28 // Protocol GUID
29 //
30 // BF4B9D10-13EC-43dd-8880-E90B718F27DE
31
32 #define EMBEDDED_DEVICE_PROTOCOL_GUID \
33 { 0xbf4b9d10, 0x13ec, 0x43dd, { 0x88, 0x80, 0xe9, 0xb, 0x71, 0x8f, 0x27, 0xde } }
34
35
36
37 typedef struct {
38 UINT16 VendorId;
39 UINT16 DeviceId;
40 UINT16 RevisionId;
41 UINT16 SubsystemId;
42 UINT16 SubsystemVendorId;
43 UINT8 ClassCode[3];
44 UINT8 HeaderSize;
45 UINTN BaseAddress;
46 } EMBEDDED_DEVICE_PROTOCOL;
47
48 extern EFI_GUID gEmbeddedDeviceGuid;
49
50 #endif
51
52