1/** @file
2  Intel Firmware Version Info (FVI) related definitions.
3
4  @todo update document/spec reference
5
6  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
7  This program and the accompanying materials
8  are licensed and made available under the terms and conditions of the BSD License
9  which accompanies this distribution.  The full text of the license may be found at
10  http://opensource.org/licenses/bsd-license.php
11
12  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15@par Specification Reference:
16  System Management BIOS (SMBIOS) Reference Specification v3.0.0 dated 2015-Feb-12
17  http://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.0.0.pdf
18
19**/
20
21#ifndef __FIRMWARE_VERSION_INFO_H__
22#define __FIRMWARE_VERSION_INFO_H__
23
24#include <IndustryStandard/SmBios.h>
25
26#define INTEL_FIRMWARE_VERSION_INFO_GROUP_NAME    "Firmware Version Info"
27
28#pragma pack(1)
29
30///
31/// Firmware Version Structure
32///
33typedef struct {
34  UINT8                       MajorVersion;
35  UINT8                       MinorVersion;
36  UINT8                       Revision;
37  UINT16                      BuildNumber;
38} INTEL_FIRMWARE_VERSION;
39
40///
41/// Firmware Version Info (FVI) Structure
42///
43typedef struct {
44  SMBIOS_TABLE_STRING         ComponentName;  ///< String Index of Component Name
45  SMBIOS_TABLE_STRING         VersionString;  ///< String Index of Version String
46  INTEL_FIRMWARE_VERSION      Version;        ///< Firmware version
47} INTEL_FIRMWARE_VERSION_INFO;
48
49///
50/// SMBIOS OEM Type Intel Firmware Version Info (FVI) Structure
51///
52typedef struct {
53  SMBIOS_STRUCTURE            Header;         ///< SMBIOS structure header
54  UINT8                       Count;          ///< Number of FVI entries in this structure
55  INTEL_FIRMWARE_VERSION_INFO Fvi[1];         ///< FVI structure(s)
56} SMBIOS_TABLE_TYPE_OEM_INTEL_FVI;
57
58#pragma pack()
59
60#endif
61