blob: b7cd63427c5bf75b0b46e1b67cf15d42e520e750 [file] [log] [blame]
Appukuttan V Ke527e952024-05-15 23:12:44 +05301/** @file
2
3 Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11**/
12#ifndef _FSP_PRODUCER_DATA_HEADER_H_
13#define _FSP_PRODUCER_DATA_HEADER_H_
14
15#include <Guid/FspHeaderFile.h>
16
17#define BUILD_TIME_STAMP_SIZE 12
18
19//
20// FSP Header Data structure from FspHeader driver.
21//
22#pragma pack(1)
23///
24/// FSP Producer Data Subtype - 1
25///
26typedef struct {
27 ///
28 /// Byte 0x00: Length of this FSP producer data type record.
29 ///
30 UINT16 Length;
31 ///
32 /// Byte 0x02: FSP producer data type.
33 ///
34 UINT8 Type;
35 ///
36 /// Byte 0x03: Revision of this FSP producer data type.
37 ///
38 UINT8 Revision;
39 ///
40 /// Byte 0x04: 4 byte field of RC version which is used to build this FSP image.
41 ///
42 UINT32 RcVersion;
43 ///
44 /// Byte 0x08: Represents the build time stamp "YYYYMMDDHHMM".
45 ///
46 UINT8 BuildTimeStamp[BUILD_TIME_STAMP_SIZE];
47} FSP_PRODUCER_DATA_TYPE1;
48
49///
50/// FSP Producer Data Subtype - 2
51///
52typedef struct {
53 ///
54 /// Byte 0x00: Length of this FSP producer data type record.
55 ///
56 UINT16 Length;
57 ///
58 /// Byte 0x02: FSP producer data type.
59 ///
60 UINT8 Type;
61 ///
62 /// Byte 0x03: Revision of this FSP producer data type.
63 ///
64 UINT8 Revision;
65 ///
66 /// Byte 0x04: 4 byte field of Mrc version which is used to build this FSP image.
67 ///
68 UINT8 MrcVersion [4];
69} FSP_PRODUCER_DATA_TYPE2;
70
71typedef struct {
72 FSP_INFO_HEADER FspInfoHeader;
73 FSP_INFO_EXTENDED_HEADER FspInfoExtendedHeader;
74 FSP_PRODUCER_DATA_TYPE1 FspProduceDataType1;
75 FSP_PRODUCER_DATA_TYPE2 FspProduceDataType2;
76 FSP_PATCH_TABLE FspPatchTable;
77} FSP_PRODUCER_DATA_TABLES;
78#pragma pack()
79
80#endif // _FSP_PRODUCER_DATA_HEADER_H