blob: dc3f94608f11a34135eb85d60393abcbf7977033 [file] [log] [blame]
Marshall Dawson31ef5692019-07-18 13:09:05 -06001/** @file
2 *
3 * C99 common FSP definitions from
4 * Intel Firmware Support Package External Architecture Specification v2.0
5 *
6 * These definitions come in a format that is usable outside an EFI environment.
7 **/
8#ifndef FSP_H_C99_H
9#define FSP_H_C99_H
10
11#include <stdint.h>
12
13enum {
14 FSP_STATUS_RESET_REQUIRED_COLD = 0x40000001,
15 FSP_STATUS_RESET_REQUIRED_WARM = 0x40000002,
16 FSP_STATUS_RESET_REQUIRED_3 = 0x40000003,
17 FSP_STATUS_RESET_REQUIRED_4 = 0x40000004,
18 FSP_STATUS_RESET_REQUIRED_5 = 0x40000005,
19 FSP_STATUS_RESET_REQUIRED_6 = 0x40000006,
20 FSP_STATUS_RESET_REQUIRED_7 = 0x40000007,
21 FSP_STATUS_RESET_REQUIRED_8 = 0x40000008,
22};
23
24typedef enum {
25 EnumInitPhaseAfterPciEnumeration = 0x20,
26 EnumInitPhaseReadyToBoot = 0x40,
27 EnumInitPhaseEndOfFirmware = 0xF0
28} FSP_INIT_PHASE;
29
30typedef struct {
31 uint64_t Signature;
32 uint8_t Revision;
33 uint8_t Reserved[23];
34} FSP_UPD_HEADER;
35
36_Static_assert(sizeof(FSP_UPD_HEADER) == 32, "FSP_UPD_HEADER not packed");
37
38typedef struct {
39 uint8_t Revision;
40 uint8_t Reserved[3];
41 void *NvsBufferPtr;
42 void *StackBase;
43 uint32_t StackSize;
44 uint32_t BootLoaderTolumSize;
45 uint32_t BootMode;
46 uint8_t Reserved1[8];
47} FSPM_ARCH_UPD;
48
49_Static_assert(sizeof(FSPM_ARCH_UPD) == 32, "FSPM_ARCH_UPD not packed");
50
51#endif /* FSP_H_C99_H */