blob: f7861710aff1ad0b47db532852805b9240863b5a [file] [log] [blame]
Kilari Raasi6a7703f2023-05-30 12:36:36 +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
Kilari Raasi9c28ab12023-06-19 16:26:21 +053017#define BUILD_TIME_STAMP_SIZE 12
Kilari Raasi6a7703f2023-05-30 12:36:36 +053018//
19// FSP Header Data structure from FspHeader driver.
20//
21#pragma pack(1)
22///
23/// FSP Producer Data Subtype - 1
24///
25typedef struct {
26 ///
27 /// Byte 0x00: Length of this FSP producer data type record.
28 ///
29 UINT16 Length;
30 ///
31 /// Byte 0x02: FSP producer data type.
32 ///
33 UINT8 Type;
34 ///
35 /// Byte 0x03: Revision of this FSP producer data type.
36 ///
37 UINT8 Revision;
38 ///
39 /// Byte 0x04: 4 byte field of RC version which is used to build this FSP image.
40 ///
41 UINT32 RcVersion;
42 ///
43 /// Byte 0x08: Represents the build time stamp "YYYYMMDDHHMM".
44 ///
45 UINT8 BuildTimeStamp[BUILD_TIME_STAMP_SIZE];
46} FSP_PRODUCER_DATA_TYPE1;
47
48///
49/// FSP Producer Data Subtype - 2
50///
51typedef struct {
52 ///
53 /// Byte 0x00: Length of this FSP producer data type record.
54 ///
55 UINT16 Length;
56 ///
57 /// Byte 0x02: FSP producer data type.
58 ///
59 UINT8 Type;
60 ///
61 /// Byte 0x03: Revision of this FSP producer data type.
62 ///
63 UINT8 Revision;
64 ///
65 /// Byte 0x04: 4 byte field of Mrc version which is used to build this FSP image.
66 ///
67 UINT8 MrcVersion [4];
68} FSP_PRODUCER_DATA_TYPE2;
69
70typedef struct {
71 FSP_INFO_HEADER FspInfoHeader;
72 FSP_INFO_EXTENDED_HEADER FspInfoExtendedHeader;
73 FSP_PRODUCER_DATA_TYPE1 FspProduceDataType1;
74 FSP_PRODUCER_DATA_TYPE2 FspProduceDataType2;
75 FSP_PATCH_TABLE FspPatchTable;
76} FSP_PRODUCER_DATA_TABLES;
77#pragma pack()
78
79#endif // _FSP_PRODUCER_DATA_HEADER_H