hc
2024-03-22 a0752693d998599af469473b8dc239ef973a012f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/** @file
  uba config database head file
 
  @copyright
  Copyright 2012 - 2021 Intel Corporation. <BR>
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
 
#ifndef _UBA_CONFIG_DATABASE_HOB_H_
#define _UBA_CONFIG_DATABASE_HOB_H_
 
 
#define UBA_CONFIG_HOB_SIGNATURE    SIGNATURE_32('U', 'B', 'A', 'H')
#define UBA_CONFIG_HOB_VERSION      0x01
 
#define UBA_BOARD_SIGNATURE         SIGNATURE_32('S', 'K', 'U', 'D')
#define UBA_BOARD_VERSION           0x01
 
//
// Interface data between PEI & DXE
// Should keep same align
//
#pragma pack (1)
 
typedef struct _UBA_CONFIG_HOB_FIELD {
  UINT32                  Signature;
  UINT32                  Version;
  EFI_GUID                ResId;
  UINT64                  DataOffset;
  UINT32                  Size;
} UBA_CONFIG_HOB_FIELD;
 
typedef struct _UBA_CONFIG_HOB_HEADER {
  UINT32                  Signature;
  UINT32                  Version;
  EFI_GUID                DataGuid;
  UINT32                  HobLength;
  UINT32                  BoardId;
  EFI_GUID                BoardGuid;
  CHAR8                   BoardName[16];
  UINT32                  DataCount;
  UBA_CONFIG_HOB_FIELD    HobField[1];
} UBA_CONFIG_HOB_HEADER;
 
 
typedef struct _UBA_BOARD_NODE {
  UINT32                  Signature;
  UINT32                  Version;
  LIST_ENTRY              DataLinkHead;
 
  UINT32                  BoardId;
  EFI_GUID                BoardGuid;
  CHAR8                   BoardName[16];
  UINT32                  DataCount;
} UBA_BOARD_NODE;
 
typedef struct _UBA_CONFIG_NODE {
  UINT32                  Signature;
  UINT32                  Version;
  LIST_ENTRY              DataLink;
 
  EFI_HANDLE              Handle;
  EFI_GUID                ResId;
  UINT32                  Size;
  VOID                    *Data;
} UBA_CONFIG_NODE;
 
#pragma pack ()
 
#define BOARD_NODE_INSTANCE_FROM_THIS(p)       CR(p, UBA_BOARD_NODE, DataLinkHead, UBA_BOARD_SIGNATURE)
#define CONFIG_NODE_INSTANCE_FROM_THIS(p)      CR(p, UBA_CONFIG_NODE, DataLink, UBA_BOARD_SIGNATURE)
 
#endif // _UBA_CONFIG_DATABASE_HOB_H_