EmbeddedDevice.h 1.4 KB

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