BiosInfo.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /** @file
  2. @copyright
  3. Copyright 2011 - 2021 Intel Corporation.
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #ifndef _BIOS_INFO_H_
  7. #define _BIOS_INFO_H_
  8. #undef BIOS_INFO_STRUCT_SIZE
  9. #define BIOS_INFO_STRUCT_SIZE 4
  10. //
  11. // BIOS INFO data structure
  12. // This is self contained data structure for BIOS info for TXT
  13. //
  14. #pragma pack (1)
  15. #define BIOS_INFO_SIGNATURE SIGNATURE_64 ('$', 'B', 'I', 'O', 'S', 'I', 'F', '$')
  16. typedef struct {
  17. UINT64 Signature;
  18. UINT32 EntryCount;
  19. UINT32 Reserved;
  20. } BIOS_INFO_HEADER;
  21. //
  22. // BIOS_INFO_STRUCT attributes
  23. // bits[0:3] means general attributes
  24. // bits[4:7] means type specific attributes
  25. //
  26. #define BIOS_INFO_STRUCT_ATTRIBUTE_GENERAL_EXCLUDE_FROM_FIT 0x01
  27. #define BIOS_INFO_STRUCT_ATTRIBUTE_MICROCODE_WHOLE_REGION 0x10
  28. #define BIOS_INFO_STRUCT_ATTRIBUTE_BIOS_POST_IBB 0x10
  29. #define BIOS_INFO_STRUCT_ATTRIBUTE_BIOS_NON_IBB 0x20
  30. typedef struct {
  31. //
  32. // FitTable entry type
  33. //
  34. UINT8 Type;
  35. //
  36. // BIOS_INFO_STRUCT attributes
  37. //
  38. UINT8 Attributes;
  39. //
  40. // FitTable entry version
  41. //
  42. UINT16 Version;
  43. //
  44. // FitTable entry real size
  45. //
  46. UINT32 Size;
  47. //
  48. // FitTable entry address
  49. //
  50. UINT64 Address;
  51. } BIOS_INFO_STRUCT;
  52. typedef struct {
  53. BIOS_INFO_HEADER Header;
  54. BIOS_INFO_STRUCT Entry[BIOS_INFO_STRUCT_SIZE];
  55. } BIOS_INFO;
  56. #pragma pack ()
  57. #endif