#pragma once

#include <FspUpd.h>

#pragma pack(1)

/** Fsp S Configuration
**/
typedef struct {
  /** Offset 0x0118 - BMP Logo Data Size
    BMP logo data buffer size. 0x00000000(Default).
  **/
  UINT32    LogoSize;

  /** Offset 0x011C - BMP Logo Data Pointer
    BMP logo data pointer to a BMP format buffer. 0x00000000(Default).
  **/
  UINT32    LogoPtr;

  /** Offset 0x0120 - Graphics Configuration Data Pointer
    Graphics configuration data used for initialization. 0x00000000(Default).
  **/
  UINT32    GraphicsConfigPtr;

  /** Offset 0x0124 - PCI GFX Temporary MMIO Base
    PCI Temporary PCI GFX Base used before full PCI enumeration. 0x80000000(Default).
  **/
  UINT32    PciTempResourceBase;

  /** Offset 0x0128
  **/
  UINT8     UnusedUpdSpace1[3];

  /** Offset 0x012B
  **/
  UINT8     ReservedFspsUpd;
} FSP_S_CONFIG;

/** Fsp S UPD Configuration
**/
typedef struct {
  /** Offset 0x0000
  **/
  FSP_UPD_HEADER    FspUpdHeader;

  /** Offset 0x00F8
  **/
  FSPS_ARCH_UPD     FspsArchUpd;

  /** Offset 0x0118
  **/
  FSP_S_CONFIG      FspsConfig;

  /** Offset 0x012C
  **/
  UINT8             UnusedUpdSpace2[2];

  /** Offset 0x012E
  **/
  UINT16            UpdTerminator;
} FSPS_UPD;

#pragma pack()
