[coreboot-gerrit] New patch to review for coreboot: vendorcode/intel: Make directory structure more uniform

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Sun Apr 24 20:12:05 CEST 2016


Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14498

-gerrit

commit 1ef8ec133734807d7356660956a988a7005e694e
Author: Stefan Reinauer <stefan.reinauer at coreboot.org>
Date:   Sun Apr 24 11:09:19 2016 -0700

    vendorcode/intel: Make directory structure more uniform
    
    Right now, FSP 1.0 code is in src/vendorcode/intel/fsp1_0 whereas
    FSP 1.1 code is in src/vendorcode/intel/fsp/fsp1_1. Move all FSP
    code to src/vendorcode/intel/fsp to make the code structure easier
    to understand.
    
    Change-Id: Ic44f485ae98627e79cca157676b6597f52d0ef0d
    Signed-off-by: Stefan Reinauer <stefan.reinauer at coreboot.org>
---
 src/vendorcode/intel/Makefile.inc                  |   6 +-
 .../fsp/fsp1_0/baytrail/absf/minnowmax_1gb.absf    | 328 +++++++++++++
 .../fsp/fsp1_0/baytrail/absf/minnowmax_2gb.absf    | 328 +++++++++++++
 .../intel/fsp/fsp1_0/baytrail/include/azalia.h     |  66 +++
 .../intel/fsp/fsp1_0/baytrail/include/fsp.h        |  69 +++
 .../intel/fsp/fsp1_0/baytrail/include/fspapi.h     |  65 +++
 .../intel/fsp/fsp1_0/baytrail/include/fspffs.h     | 506 +++++++++++++++++++
 .../intel/fsp/fsp1_0/baytrail/include/fspfv.h      | 247 ++++++++++
 .../intel/fsp/fsp1_0/baytrail/include/fsphob.h     | 542 ++++++++++++++++++++
 .../fsp/fsp1_0/baytrail/include/fspinfoheader.h    |  62 +++
 .../fsp/fsp1_0/baytrail/include/fspplatform.h      |  78 +++
 .../intel/fsp/fsp1_0/baytrail/include/fsptypes.h   | 116 +++++
 .../intel/fsp/fsp1_0/baytrail/include/fspvpd.h     | 126 +++++
 .../intel/fsp/fsp1_0/baytrail/srx/board_fsp.c      | 186 +++++++
 .../intel/fsp/fsp1_0/baytrail/srx/fsphob.c         | 198 ++++++++
 .../intel/fsp/fsp1_0/broadwell_de/include/fsp.h    |  45 ++
 .../intel/fsp/fsp1_0/broadwell_de/include/fspapi.h | 107 ++++
 .../fsp/fsp1_0/broadwell_de/include/fspbootmode.h  |  45 ++
 .../intel/fsp/fsp1_0/broadwell_de/include/fspffs.h | 506 +++++++++++++++++++
 .../intel/fsp/fsp1_0/broadwell_de/include/fspfv.h  | 247 ++++++++++
 .../intel/fsp/fsp1_0/broadwell_de/include/fsphob.h | 427 ++++++++++++++++
 .../fsp1_0/broadwell_de/include/fspinfoheader.h    | 118 +++++
 .../fsp/fsp1_0/broadwell_de/include/fspplatform.h  |  75 +++
 .../fsp/fsp1_0/broadwell_de/include/fspsupport.h   | 118 +++++
 .../fsp/fsp1_0/broadwell_de/include/fsptypes.h     | 220 +++++++++
 .../intel/fsp/fsp1_0/broadwell_de/include/fspvpd.h | 146 ++++++
 .../intel/fsp/fsp1_0/broadwell_de/srx/fspsupport.c | 454 +++++++++++++++++
 .../fsp/fsp1_0/ivybridge_bd82x6x/include/fspapi.h  |  63 +++
 .../fsp/fsp1_0/ivybridge_bd82x6x/include/fspffs.h  | 506 +++++++++++++++++++
 .../fsp/fsp1_0/ivybridge_bd82x6x/include/fspfv.h   | 247 ++++++++++
 .../fsp/fsp1_0/ivybridge_bd82x6x/include/fsphob.h  | 507 +++++++++++++++++++
 .../ivybridge_bd82x6x/include/fspinfoheader.h      |  62 +++
 .../fsp1_0/ivybridge_bd82x6x/include/fspplatform.h |  63 +++
 .../fsp1_0/ivybridge_bd82x6x/include/fsptypes.h    | 116 +++++
 .../fsp1_0/ivybridge_bd82x6x/include/mem_config.h  | 131 +++++
 .../fsp/fsp1_0/ivybridge_bd82x6x/include/peifsp.h  |  42 ++
 .../fsp/fsp1_0/ivybridge_bd82x6x/srx/fsphob.c      | 207 ++++++++
 .../fsp/fsp1_0/ivybridge_i89xx/include/fsp_vpd.h   |  60 +++
 .../fsp/fsp1_0/ivybridge_i89xx/include/fspapi.h    |  49 ++
 .../fsp/fsp1_0/ivybridge_i89xx/include/fspffs.h    | 506 +++++++++++++++++++
 .../fsp/fsp1_0/ivybridge_i89xx/include/fspfv.h     | 247 ++++++++++
 .../fsp/fsp1_0/ivybridge_i89xx/include/fsphob.h    | 507 +++++++++++++++++++
 .../fsp1_0/ivybridge_i89xx/include/fspinfoheader.h |  62 +++
 .../fsp1_0/ivybridge_i89xx/include/fspplatform.h   |  52 ++
 .../fsp/fsp1_0/ivybridge_i89xx/include/fsptypes.h  | 116 +++++
 .../fsp1_0/ivybridge_i89xx/include/mem_config.h    | 131 +++++
 .../fsp/fsp1_0/ivybridge_i89xx/include/peifsp.h    |  42 ++
 .../intel/fsp/fsp1_0/ivybridge_i89xx/srx/fsphob.c  | 207 ++++++++
 .../intel/fsp/fsp1_0/rangeley/include/fspapi.h     |  67 +++
 .../fsp/fsp1_0/rangeley/include/fspbootmode.h      |  54 ++
 .../intel/fsp/fsp1_0/rangeley/include/fspffs.h     | 507 +++++++++++++++++++
 .../intel/fsp/fsp1_0/rangeley/include/fspfv.h      | 249 ++++++++++
 .../intel/fsp/fsp1_0/rangeley/include/fspguid.h    |  69 +++
 .../intel/fsp/fsp1_0/rangeley/include/fsphob.h     | 544 +++++++++++++++++++++
 .../fsp/fsp1_0/rangeley/include/fspinfoheader.h    |  62 +++
 .../fsp/fsp1_0/rangeley/include/fspplatform.h      | 114 +++++
 .../intel/fsp/fsp1_0/rangeley/include/fspsupport.h |  95 ++++
 .../intel/fsp/fsp1_0/rangeley/include/fsptypes.h   | 183 +++++++
 .../intel/fsp/fsp1_0/rangeley/include/fspvpd.h     |  89 ++++
 .../intel/fsp/fsp1_0/rangeley/srx/fsp_support.c    | 288 +++++++++++
 .../intel/fsp/fsp1_0/rangeley/srx/fsphob.c         | 204 ++++++++
 .../intel/fsp1_0/baytrail/absf/minnowmax_1gb.absf  | 328 -------------
 .../intel/fsp1_0/baytrail/absf/minnowmax_2gb.absf  | 328 -------------
 .../intel/fsp1_0/baytrail/include/azalia.h         |  66 ---
 src/vendorcode/intel/fsp1_0/baytrail/include/fsp.h |  69 ---
 .../intel/fsp1_0/baytrail/include/fspapi.h         |  65 ---
 .../intel/fsp1_0/baytrail/include/fspffs.h         | 506 -------------------
 .../intel/fsp1_0/baytrail/include/fspfv.h          | 247 ----------
 .../intel/fsp1_0/baytrail/include/fsphob.h         | 542 --------------------
 .../intel/fsp1_0/baytrail/include/fspinfoheader.h  |  62 ---
 .../intel/fsp1_0/baytrail/include/fspplatform.h    |  78 ---
 .../intel/fsp1_0/baytrail/include/fsptypes.h       | 116 -----
 .../intel/fsp1_0/baytrail/include/fspvpd.h         | 126 -----
 .../intel/fsp1_0/baytrail/srx/board_fsp.c          | 186 -------
 src/vendorcode/intel/fsp1_0/baytrail/srx/fsphob.c  | 198 --------
 .../intel/fsp1_0/broadwell_de/include/fsp.h        |  45 --
 .../intel/fsp1_0/broadwell_de/include/fspapi.h     | 107 ----
 .../fsp1_0/broadwell_de/include/fspbootmode.h      |  45 --
 .../intel/fsp1_0/broadwell_de/include/fspffs.h     | 506 -------------------
 .../intel/fsp1_0/broadwell_de/include/fspfv.h      | 247 ----------
 .../intel/fsp1_0/broadwell_de/include/fsphob.h     | 427 ----------------
 .../fsp1_0/broadwell_de/include/fspinfoheader.h    | 118 -----
 .../fsp1_0/broadwell_de/include/fspplatform.h      |  75 ---
 .../intel/fsp1_0/broadwell_de/include/fspsupport.h | 118 -----
 .../intel/fsp1_0/broadwell_de/include/fsptypes.h   | 220 ---------
 .../intel/fsp1_0/broadwell_de/include/fspvpd.h     | 146 ------
 .../intel/fsp1_0/broadwell_de/srx/fspsupport.c     | 454 -----------------
 .../fsp1_0/ivybridge_bd82x6x/include/fspapi.h      |  63 ---
 .../fsp1_0/ivybridge_bd82x6x/include/fspffs.h      | 506 -------------------
 .../intel/fsp1_0/ivybridge_bd82x6x/include/fspfv.h | 247 ----------
 .../fsp1_0/ivybridge_bd82x6x/include/fsphob.h      | 507 -------------------
 .../ivybridge_bd82x6x/include/fspinfoheader.h      |  62 ---
 .../fsp1_0/ivybridge_bd82x6x/include/fspplatform.h |  63 ---
 .../fsp1_0/ivybridge_bd82x6x/include/fsptypes.h    | 116 -----
 .../fsp1_0/ivybridge_bd82x6x/include/mem_config.h  | 131 -----
 .../fsp1_0/ivybridge_bd82x6x/include/peifsp.h      |  42 --
 .../intel/fsp1_0/ivybridge_bd82x6x/srx/fsphob.c    | 207 --------
 .../intel/fsp1_0/ivybridge_i89xx/include/fsp_vpd.h |  60 ---
 .../intel/fsp1_0/ivybridge_i89xx/include/fspapi.h  |  49 --
 .../intel/fsp1_0/ivybridge_i89xx/include/fspffs.h  | 506 -------------------
 .../intel/fsp1_0/ivybridge_i89xx/include/fspfv.h   | 247 ----------
 .../intel/fsp1_0/ivybridge_i89xx/include/fsphob.h  | 507 -------------------
 .../fsp1_0/ivybridge_i89xx/include/fspinfoheader.h |  62 ---
 .../fsp1_0/ivybridge_i89xx/include/fspplatform.h   |  52 --
 .../fsp1_0/ivybridge_i89xx/include/fsptypes.h      | 116 -----
 .../fsp1_0/ivybridge_i89xx/include/mem_config.h    | 131 -----
 .../intel/fsp1_0/ivybridge_i89xx/include/peifsp.h  |  42 --
 .../intel/fsp1_0/ivybridge_i89xx/srx/fsphob.c      | 207 --------
 .../intel/fsp1_0/rangeley/include/fspapi.h         |  67 ---
 .../intel/fsp1_0/rangeley/include/fspbootmode.h    |  54 --
 .../intel/fsp1_0/rangeley/include/fspffs.h         | 507 -------------------
 .../intel/fsp1_0/rangeley/include/fspfv.h          | 249 ----------
 .../intel/fsp1_0/rangeley/include/fspguid.h        |  69 ---
 .../intel/fsp1_0/rangeley/include/fsphob.h         | 544 ---------------------
 .../intel/fsp1_0/rangeley/include/fspinfoheader.h  |  62 ---
 .../intel/fsp1_0/rangeley/include/fspplatform.h    | 114 -----
 .../intel/fsp1_0/rangeley/include/fspsupport.h     |  95 ----
 .../intel/fsp1_0/rangeley/include/fsptypes.h       | 183 -------
 .../intel/fsp1_0/rangeley/include/fspvpd.h         |  89 ----
 .../intel/fsp1_0/rangeley/srx/fsp_support.c        | 288 -----------
 src/vendorcode/intel/fsp1_0/rangeley/srx/fsphob.c  | 204 --------
 121 files changed, 11877 insertions(+), 11875 deletions(-)

diff --git a/src/vendorcode/intel/Makefile.inc b/src/vendorcode/intel/Makefile.inc
index 1f9ef6d..cf06e36 100644
--- a/src/vendorcode/intel/Makefile.inc
+++ b/src/vendorcode/intel/Makefile.inc
@@ -13,15 +13,17 @@
 ## GNU General Public License for more details.
 ##
 
+# This is for FSP 1.0 and should be moved into fsp/fsp1_0
 ifneq ($(CONFIG_FSP_VENDORCODE_HEADER_PATH),)
 FSP_PATH := $(call strip_quotes,$(CONFIG_FSP_VENDORCODE_HEADER_PATH))
-FSP_SRC_FILES := $(wildcard src/vendorcode/intel/$(FSP_PATH)/srx/*.c)
-FSP_C_INPUTS := $(foreach file, $(FSP_SRC_FILES), $(FSP_PATH)/srx/$(notdir $(file)))
+FSP_SRC_FILES := $(wildcard src/vendorcode/intel/fsp/$(FSP_PATH)/srx/*.c)
+FSP_C_INPUTS := $(foreach file, $(FSP_SRC_FILES), fsp/$(FSP_PATH)/srx/$(notdir $(file)))
 ramstage-y += $(FSP_C_INPUTS)
 
 CFLAGS_x86_32 += -Isrc/vendorcode/intel/$(FSP_PATH)/include
 endif
 
+# This should be moved into edk2/uefi_2.4
 ifeq ($(CONFIG_UEFI_2_4_BINDING),y)
 # ProccessorBind.h provided in Ia32 directory. Types are derived from ia32.
 # It's possible to provide our own ProcessorBind.h using posix types. However,
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/absf/minnowmax_1gb.absf b/src/vendorcode/intel/fsp/fsp1_0/baytrail/absf/minnowmax_1gb.absf
new file mode 100644
index 0000000..66ab0d7
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/absf/minnowmax_1gb.absf
@@ -0,0 +1,328 @@
+//
+// This file contains an 'Intel Peripheral Driver' and is
+// licensed for Intel CPUs and chipsets under the terms of your
+// license agreement with Intel or your vendor.  This file must not
+// be modified by end users or could render the generated boot loader
+// inoperable.
+//
+// @file
+// Boot Setting File for Platform: Bayley Bay Platform
+//
+// Copyright (c) 2010-2013 Intel Corporation. All rights reserved
+// This software and associated documentation (if any) is furnished
+// under a license and may only be used or copied in accordance
+// with the terms of the license. Except as permitted by such
+// license, no part of this software or documentation may be
+// reproduced, stored in a retrieval system, or transmitted in any
+// form or by any means without the express written consent of
+// Intel Corporation.
+//
+//
+
+
+GlobalDataDef
+  SKUID = 0 $_AS_BUILT_ = 0x01 , "DEFAULT"
+EndGlobalData
+
+StructDef
+
+    Find "VLV2UPDR"
+    Skip 24 bytes
+    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitTsegSize        2 bytes $_AS_BUILT_ = 0x1, 0x0 $_DEFAULT_ = 0x0001
+    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitMmioSize        2 bytes $_AS_BUILT_ = 0x0, 0x8 $_DEFAULT_ = 0x0800
+    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr1        1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0xA0
+    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr2        1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0xA2
+    $gPlatformFspPkgTokenSpaceGuid_PcdeMMCBootMode           1 byte $_AS_BUILT_ = 0x3 $_DEFAULT_  = 2
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdio             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdcard           1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart0          1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart1          1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSpi              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableLan              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSata             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdSataMode               1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableAzalia           1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
+    $gPlatformFspPkgTokenSpaceGuid_AzaliaConfigPtr           4 bytes $_AS_BUILT_ = 0x0, 0x0, 0x0, 0x0 $_DEFAULT_  = 0
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableXhci             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableLpe              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdLpssSioEnablePciMode   1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C2             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C3             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C4             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C5             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C6             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsi              1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
+    $gPlatformFspPkgTokenSpaceGuid_PcdIgdDvmt50PreAlloc      1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
+    $gPlatformFspPkgTokenSpaceGuid_PcdApertureSize           1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
+    $gPlatformFspPkgTokenSpaceGuid_PcdGttSize                1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
+    $gPlatformFspPkgTokenSpaceGuid_ISPEnable                 1 bytes $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
+
+    Find "VLYVIEW1"
+    $gPlatformFspPkgTokenSpaceGuid_PcdImageRevision          4 bytes $_AS_BUILT_ = 0x2, 0x3, 0x0, 0x0 $_DEFAULT_ = 0x00000302
+    Skip 24 bytes
+    $gPlatformFspPkgTokenSpaceGuid_PcdPlatformType           1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSecureBoot       1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 2
+
+    $DIMM_MemDown             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 0
+    $DRAM_Speed               1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 2
+    $DRAM_Type                1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 1
+    $Rank_En_0_0              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 1
+    $Rank_En_1_0              1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
+    $DIMM_DWidth_0_0          1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 0
+    $DIMM_Density_0_0         1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 1
+    $DIMM_BusWidth_0_0        1 byte $_AS_BUILT_ = 0x3 $_DEFAULT_ = 3
+    $DIMM_Sides_0_0           1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
+    $tCL                      1 byte $_AS_BUILT_ = 0x7 $_DEFAULT_ = 9
+    $tRP_tRCD                 1 byte $_AS_BUILT_ = 0x7 $_DEFAULT_ = 9
+    $tWR                      1 byte $_AS_BUILT_ = 0x8 $_DEFAULT_ = 10
+    $tWTR                     1 byte $_AS_BUILT_ = 0x4 $_DEFAULT_ = 5
+    $tRRD                     1 byte $_AS_BUILT_ = 0x6 $_DEFAULT_ = 4
+    $tRTP                     1 byte $_AS_BUILT_ = 0x4 $_DEFAULT_ = 5
+    $tFAW                     1 byte $_AS_BUILT_ = 0x14 $_DEFAULT_ = 20
+
+EndStruct
+
+List &DRAMSPEED
+    Selection 0x0 , "800 MHz"
+    Selection 0x1 , "1066 MHz"
+    Selection 0x2 , "1333 MHz"
+    Selection 0x3 , "1600 MHz"
+EndList
+
+List &DRAMTYPE
+    Selection 0x0 , "DDR3"
+    Selection 0x1 , "DDR3L"
+    Selection 0x2 , "DDR3U"
+    //Selection 0x3 , "LPDDR2"
+    Selection 0x4 , "LPDDR2"
+    Selection 0x5 , "LPDDR3"
+    Selection 0x6 , "DDR4"
+EndList
+
+List &DIMMDWIDTH
+    Selection 0x0 , "x8"
+    Selection 0x1 , "x16"
+    Selection 0x2 , "x32"
+EndList
+
+List &DIMMDENSITY
+    Selection 0x0 , "1 Gbit"
+    Selection 0x1 , "2 Gbit"
+    Selection 0x2 , "4 Gbit"
+    Selection 0x3 , "8 Gbit"
+EndList
+
+List &DIMMBUSWIDTH
+    Selection 0x0 , "8 bits"
+    Selection 0x1 , "16 bits"
+    Selection 0x2 , "32 bits"
+    Selection 0x3 , "64 bits"
+EndList
+
+List &RANKPERDIMM
+    Selection 0x1 , "2 Ranks"
+    Selection 0x0 , "1 Rank"
+EndList
+
+List &SATA_MODE
+    Selection 0x1 , "AHCI"
+    Selection 0x0 , "IDE"
+EndList
+
+List &EMMC_MODES
+    Selection 0x0 , "Disabled"
+    Selection 0x1 , "Auto"
+    Selection 0x2 , "eMMC 4.1"
+    Selection 0x3 , "eMMC 4.5"
+EndList
+
+List &EN_DIS
+    Selection 0x1 , "Enabled"
+    Selection 0x0 , "Disabled"
+EndList
+
+List &EN_DIS_AUTO
+    Selection 0x2 , "Auto"
+    Selection 0x1 , "Enabled"
+    Selection 0x0 , "Disabled"
+EndList
+
+List &MMIO_SIZES
+    Selection 0x400, "1.0 GB"
+    Selection 0x600, "1.5 GB"
+    Selection 0x800, "2.0 GB"
+EndList
+
+List &TSEG_SIZES
+    Selection 0x01, "1 MB"
+    Selection 0x02, "2 MB"
+    Selection 0x04, "4 MB"
+    Selection 0x08, "8 MB"
+EndList
+
+List &IGDPREALLOC_SIZES
+    Selection 0x01, "32 MB"
+    Selection 0x02, "64 MB"
+    Selection 0x03, "96 MB"
+    Selection 0x04, "128 MB"
+    Selection 0x05, "160 MB"
+    Selection 0x06, "192 MB"
+    Selection 0x07, "224 MB"
+    Selection 0x08, "256 MB"
+    Selection 0x09, "288 MB"
+    Selection 0x0A, "320 MB"
+    Selection 0x0B, "352 MB"
+    Selection 0x0C, "384 MB"
+    Selection 0x0D, "416 MB"
+    Selection 0x0E, "448 MB"
+    Selection 0x0F, "480 MB"
+    Selection 0x10, "512 MB"
+EndList
+
+List &APERTURE_SIZES
+    Selection 0x1 , "128 MB"
+    Selection 0x2 , "256 MB"
+    Selection 0x3 , "512 MB"
+EndList
+
+List &GTT_SIZES
+    Selection 0x1 , "1 MB"
+    Selection 0x2 , "2 MB"
+EndList
+
+List &PCI_ACPI
+    Selection 0x2 , "ACPI Mode"
+    Selection 0x1 , "PCI Mode"
+    Selection 0x0 , "Disabled"
+EndList
+
+List &PLATFORM_TYPE
+    Selection 0x2 , "BayleyBay Platform Type"
+    Selection 0x3 , "BakerSport Platform (ECC) Type"
+EndList
+
+BeginInfoBlock
+  PPVer "1.0"
+  Description "MinnowMax"
+
+EndInfoBlock
+
+Page "Platform"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdPlatformType, "Platform Type", &PLATFORM_TYPE,
+                Help "Select Platform Type."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSecureBoot, "Enable Secure Boot", &EN_DIS_AUTO,
+                Help "Enable/disable secure boot. Auto by default."
+EndPage
+
+Page "North Complex"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitTsegSize, "Tseg Size", &TSEG_SIZES,
+				Help "Size of memory reserved for SMRAM, in MB."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitMmioSize, "Mmio Size", &MMIO_SIZES,
+                Help "Size of memory address space reserved for MMIO (Memory Mapped I/O), in GB."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdIgdDvmt50PreAlloc, "Internal Graphics Pre-allocated Memory ", &IGDPREALLOC_SIZES,
+                Help "Size of memory preallocated for internal graphics"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdApertureSize, "Aperture Size", &APERTURE_SIZES,
+                Help "Select the Aperture Size"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdGttSize, "GTT Size", &GTT_SIZES,
+                Help "Select the GTT Size"
+    EditNum $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr1, "DIMM 0 SPD SMBus Address", HEX,
+                Help "Address of DIMM 0. 8 bits"
+    EditNum $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr2, "DIMM 1 SPD SMBus Address", HEX,
+                Help "Address of DIMM 1. 8 bits"
+EndPage
+
+Page "Memory Down"
+    Combo $DIMM_MemDown, "Enable Memory Down", &EN_DIS,
+                Help "Enable = Memory Down, Disable = DIMM"
+    Combo $DRAM_Speed, "DRAM Speed", &DRAMSPEED,
+                Help "DRAM Speed"
+    Combo $DRAM_Type, "DRAM Type", &DRAMTYPE,
+                Help "DRAM Type"
+    Combo $Rank_En_0_0, "DIMM 0 Enable", &EN_DIS,
+                Help "Please populate DIMM slot 0 if only one DIMM is supported."
+    Combo $Rank_En_1_0, "DIMM 1 Enable", &EN_DIS,
+                Help "DIMM 1 has to be identical to DIMM 0."
+    Combo $DIMM_DWidth_0_0, "DIMM_DWidth", &DIMMDWIDTH,
+                Help "DRAM device data width."
+    Combo $DIMM_Density_0_0, "DIMM_Density", &DIMMDENSITY,
+                Help "DRAM device data density."
+    Combo $DIMM_BusWidth_0_0, "DIMM_BusWidth", &DIMMBUSWIDTH,
+                Help "DIMM Bus Width."
+    Combo $DIMM_Sides_0_0, "DIMM_Sides", &RANKPERDIMM,
+                Help "Ranks Per DIMM. "
+    EditNum $tCL, "tCL", DEC,
+                Help "tCL"
+    EditNum $tRP_tRCD, "tRP_tRCD", DEC,
+                Help "tRP and tRCD in DRAM clk - 5:12.5ns, 6:15ns, etc."
+    EditNum $tWR, "tWR", DEC,
+                Help "tWR in DRAM clk"
+    EditNum $tWTR, "tWTR", DEC,
+                Help "tWTR in DRAM clk"
+    EditNum $tRRD, "tRRD", DEC,
+                Help "tRRD in DRAM clk"
+    EditNum $tRTP, "tRTP", DEC,
+                Help "tRTP in DRAM clk"
+    EditNum $tFAW, "tFAW", DEC,
+                Help "tFAW in DRAM clk"
+EndPage
+
+Page "South Complex"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdSataMode, "Select SATA Mode", &SATA_MODE,
+                Help "Select SATA boot mode. AHCI by default."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableXhci, "Enable XHCI", &EN_DIS,
+                Help "Enable/disable XHCI. If enabled, all EHCI ports will be routed to XHCI and EHCI will be disabled."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdeMMCBootMode, "eMMC Boot Mode", &EMMC_MODES,
+                Help "Select EMMC Mode."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdio, "Enable SDIO", &EN_DIS,
+                Help "Enable/disable SDIO."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdcard, "Enable SD Card", &EN_DIS,
+                Help "Enable/disable the SD Card."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart0, "Enable HSUART0", &EN_DIS,
+                Help "Enable/disable HSUART0."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart1, "Enable HSUART1", &EN_DIS,
+                Help "Enable/disable HSUART1."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSpi, "Enable SPI", &EN_DIS,
+                Help "Enable/disable SPI."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableLan, "Enable LAN", &EN_DIS,
+                Help "Enable/disable LAN."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableAzalia, "Enable Azalia", &EN_DIS_AUTO,
+                Help "Enable/disable Azalia. Auto by default."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSata, "Enable SATA", &EN_DIS,
+                Help "Enable/disable SATA."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableLpe, "Enable LPE", &PCI_ACPI,
+                Help "Choose LPE Mode"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdLpssSioEnablePciMode, "Enable PCI mode for LPSS SIO devices", &EN_DIS,
+                Help "Enable PCI Mode for LPSS SIO devices. If disabled, LPSS SIO devices will run in ACPI mode."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma0, "Enable DMA0", &EN_DIS,
+                Help "Enable/disable DMA0"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma1, "Enable DMA1", &EN_DIS,
+                Help "Enable/disable DMA1"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C0, "Enable I2C0", &EN_DIS,
+                Help "Enable/disable I2C0"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C1, "Enable I2C1", &EN_DIS,
+                Help "Enable/disable I2C1"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C2, "Enable I2C2", &EN_DIS,
+                Help "Enable/disable I2C2"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C3, "Enable I2C3", &EN_DIS,
+                Help "Enable/disable I2C3"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C4, "Enable I2C4", &EN_DIS,
+                Help "Enable/disable I2C4"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C5, "Enable I2C5", &EN_DIS,
+                Help "Enable/disable I2C5"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C6, "Enable I2C6", &EN_DIS,
+                Help "Enable/disable I2C6"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm0, "Enable PWM0", &EN_DIS,
+                Help "Enable/disable PWM0"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm1, "Enable PWM1", &EN_DIS,
+                Help "Enable/disable PWM1"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsi, "Enable HSI", &EN_DIS,
+                Help "Enable/disable HSI"
+    Combo $gPlatformFspPkgTokenSpaceGuid_ISPEnable, "Enable ISP", &EN_DIS,
+                Help "Enable/disable ISP."
+EndPage
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/absf/minnowmax_2gb.absf b/src/vendorcode/intel/fsp/fsp1_0/baytrail/absf/minnowmax_2gb.absf
new file mode 100644
index 0000000..6992fe7
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/absf/minnowmax_2gb.absf
@@ -0,0 +1,328 @@
+//
+// This file contains an 'Intel Peripheral Driver' and is
+// licensed for Intel CPUs and chipsets under the terms of your
+// license agreement with Intel or your vendor.  This file must not
+// be modified by end users or could render the generated boot loader
+// inoperable.
+//
+// @file
+// Boot Setting File for Platform: Bayley Bay Platform
+//
+// Copyright (c) 2010-2013 Intel Corporation. All rights reserved
+// This software and associated documentation (if any) is furnished
+// under a license and may only be used or copied in accordance
+// with the terms of the license. Except as permitted by such
+// license, no part of this software or documentation may be
+// reproduced, stored in a retrieval system, or transmitted in any
+// form or by any means without the express written consent of
+// Intel Corporation.
+//
+//
+
+
+GlobalDataDef
+  SKUID = 0 $_AS_BUILT_ = 0x01 , "DEFAULT"
+EndGlobalData
+
+StructDef
+
+    Find "VLV2UPDR"
+    Skip 24 bytes
+    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitTsegSize        2 bytes $_AS_BUILT_ = 0x1, 0x0 $_DEFAULT_ = 0x0001
+    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitMmioSize        2 bytes $_AS_BUILT_ = 0x0, 0x8 $_DEFAULT_ = 0x0800
+    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr1        1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0xA0
+    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr2        1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0xA2
+    $gPlatformFspPkgTokenSpaceGuid_PcdeMMCBootMode           1 byte $_AS_BUILT_ = 0x3 $_DEFAULT_  = 2
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdio             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdcard           1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart0          1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart1          1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSpi              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableLan              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSata             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdSataMode               1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableAzalia           1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
+    $gPlatformFspPkgTokenSpaceGuid_AzaliaConfigPtr           4 bytes $_AS_BUILT_ = 0x0, 0x0, 0x0, 0x0 $_DEFAULT_  = 0
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableXhci             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableLpe              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdLpssSioEnablePciMode   1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C2             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C3             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C4             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C5             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C6             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsi              1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
+    $gPlatformFspPkgTokenSpaceGuid_PcdIgdDvmt50PreAlloc      1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
+    $gPlatformFspPkgTokenSpaceGuid_PcdApertureSize           1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
+    $gPlatformFspPkgTokenSpaceGuid_PcdGttSize                1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
+    $gPlatformFspPkgTokenSpaceGuid_ISPEnable                 1 bytes $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
+
+    Find "VLYVIEW1"
+    $gPlatformFspPkgTokenSpaceGuid_PcdImageRevision          4 bytes $_AS_BUILT_ = 0x2, 0x3, 0x0, 0x0 $_DEFAULT_ = 0x00000302
+    Skip 24 bytes
+    $gPlatformFspPkgTokenSpaceGuid_PcdPlatformType           1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
+    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSecureBoot       1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 2
+
+    $DIMM_MemDown             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 0
+    $DRAM_Speed               1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 2
+    $DRAM_Type                1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 1
+    $Rank_En_0_0              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 1
+    $Rank_En_1_0              1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
+    $DIMM_DWidth_0_0          1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 0
+    $DIMM_Density_0_0         1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_ = 1
+    $DIMM_BusWidth_0_0        1 byte $_AS_BUILT_ = 0x3 $_DEFAULT_ = 3
+    $DIMM_Sides_0_0           1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
+    $tCL                      1 byte $_AS_BUILT_ = 0x7 $_DEFAULT_ = 9
+    $tRP_tRCD                 1 byte $_AS_BUILT_ = 0x7 $_DEFAULT_ = 9
+    $tWR                      1 byte $_AS_BUILT_ = 0x8 $_DEFAULT_ = 10
+    $tWTR                     1 byte $_AS_BUILT_ = 0x4 $_DEFAULT_ = 5
+    $tRRD                     1 byte $_AS_BUILT_ = 0x6 $_DEFAULT_ = 4
+    $tRTP                     1 byte $_AS_BUILT_ = 0x4 $_DEFAULT_ = 5
+    $tFAW                     1 byte $_AS_BUILT_ = 0x14 $_DEFAULT_ = 20
+
+EndStruct
+
+List &DRAMSPEED
+    Selection 0x0 , "800 MHz"
+    Selection 0x1 , "1066 MHz"
+    Selection 0x2 , "1333 MHz"
+    Selection 0x3 , "1600 MHz"
+EndList
+
+List &DRAMTYPE
+    Selection 0x0 , "DDR3"
+    Selection 0x1 , "DDR3L"
+    Selection 0x2 , "DDR3U"
+    //Selection 0x3 , "LPDDR2"
+    Selection 0x4 , "LPDDR2"
+    Selection 0x5 , "LPDDR3"
+    Selection 0x6 , "DDR4"
+EndList
+
+List &DIMMDWIDTH
+    Selection 0x0 , "x8"
+    Selection 0x1 , "x16"
+    Selection 0x2 , "x32"
+EndList
+
+List &DIMMDENSITY
+    Selection 0x0 , "1 Gbit"
+    Selection 0x1 , "2 Gbit"
+    Selection 0x2 , "4 Gbit"
+    Selection 0x3 , "8 Gbit"
+EndList
+
+List &DIMMBUSWIDTH
+    Selection 0x0 , "8 bits"
+    Selection 0x1 , "16 bits"
+    Selection 0x2 , "32 bits"
+    Selection 0x3 , "64 bits"
+EndList
+
+List &RANKPERDIMM
+    Selection 0x1 , "2 Ranks"
+    Selection 0x0 , "1 Rank"
+EndList
+
+List &SATA_MODE
+    Selection 0x1 , "AHCI"
+    Selection 0x0 , "IDE"
+EndList
+
+List &EMMC_MODES
+    Selection 0x0 , "Disabled"
+    Selection 0x1 , "Auto"
+    Selection 0x2 , "eMMC 4.1"
+    Selection 0x3 , "eMMC 4.5"
+EndList
+
+List &EN_DIS
+    Selection 0x1 , "Enabled"
+    Selection 0x0 , "Disabled"
+EndList
+
+List &EN_DIS_AUTO
+    Selection 0x2 , "Auto"
+    Selection 0x1 , "Enabled"
+    Selection 0x0 , "Disabled"
+EndList
+
+List &MMIO_SIZES
+    Selection 0x400, "1.0 GB"
+    Selection 0x600, "1.5 GB"
+    Selection 0x800, "2.0 GB"
+EndList
+
+List &TSEG_SIZES
+    Selection 0x01, "1 MB"
+    Selection 0x02, "2 MB"
+    Selection 0x04, "4 MB"
+    Selection 0x08, "8 MB"
+EndList
+
+List &IGDPREALLOC_SIZES
+    Selection 0x01, "32 MB"
+    Selection 0x02, "64 MB"
+    Selection 0x03, "96 MB"
+    Selection 0x04, "128 MB"
+    Selection 0x05, "160 MB"
+    Selection 0x06, "192 MB"
+    Selection 0x07, "224 MB"
+    Selection 0x08, "256 MB"
+    Selection 0x09, "288 MB"
+    Selection 0x0A, "320 MB"
+    Selection 0x0B, "352 MB"
+    Selection 0x0C, "384 MB"
+    Selection 0x0D, "416 MB"
+    Selection 0x0E, "448 MB"
+    Selection 0x0F, "480 MB"
+    Selection 0x10, "512 MB"
+EndList
+
+List &APERTURE_SIZES
+    Selection 0x1 , "128 MB"
+    Selection 0x2 , "256 MB"
+    Selection 0x3 , "512 MB"
+EndList
+
+List &GTT_SIZES
+    Selection 0x1 , "1 MB"
+    Selection 0x2 , "2 MB"
+EndList
+
+List &PCI_ACPI
+    Selection 0x2 , "ACPI Mode"
+    Selection 0x1 , "PCI Mode"
+    Selection 0x0 , "Disabled"
+EndList
+
+List &PLATFORM_TYPE
+    Selection 0x2 , "BayleyBay Platform Type"
+    Selection 0x3 , "BakerSport Platform (ECC) Type"
+EndList
+
+BeginInfoBlock
+  PPVer "1.0"
+  Description "MinnowMax"
+
+EndInfoBlock
+
+Page "Platform"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdPlatformType, "Platform Type", &PLATFORM_TYPE,
+                Help "Select Platform Type."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSecureBoot, "Enable Secure Boot", &EN_DIS_AUTO,
+                Help "Enable/disable secure boot. Auto by default."
+EndPage
+
+Page "North Complex"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitTsegSize, "Tseg Size", &TSEG_SIZES,
+				Help "Size of memory reserved for SMRAM, in MB."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitMmioSize, "Mmio Size", &MMIO_SIZES,
+                Help "Size of memory address space reserved for MMIO (Memory Mapped I/O), in GB."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdIgdDvmt50PreAlloc, "Internal Graphics Pre-allocated Memory ", &IGDPREALLOC_SIZES,
+                Help "Size of memory preallocated for internal graphics"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdApertureSize, "Aperture Size", &APERTURE_SIZES,
+                Help "Select the Aperture Size"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdGttSize, "GTT Size", &GTT_SIZES,
+                Help "Select the GTT Size"
+    EditNum $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr1, "DIMM 0 SPD SMBus Address", HEX,
+                Help "Address of DIMM 0. 8 bits"
+    EditNum $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr2, "DIMM 1 SPD SMBus Address", HEX,
+                Help "Address of DIMM 1. 8 bits"
+EndPage
+
+Page "Memory Down"
+    Combo $DIMM_MemDown, "Enable Memory Down", &EN_DIS,
+                Help "Enable = Memory Down, Disable = DIMM"
+    Combo $DRAM_Speed, "DRAM Speed", &DRAMSPEED,
+                Help "DRAM Speed"
+    Combo $DRAM_Type, "DRAM Type", &DRAMTYPE,
+                Help "DRAM Type"
+    Combo $Rank_En_0_0, "DIMM 0 Enable", &EN_DIS,
+                Help "Please populate DIMM slot 0 if only one DIMM is supported."
+    Combo $Rank_En_1_0, "DIMM 1 Enable", &EN_DIS,
+                Help "DIMM 1 has to be identical to DIMM 0."
+    Combo $DIMM_DWidth_0_0, "DIMM_DWidth", &DIMMDWIDTH,
+                Help "DRAM device data width."
+    Combo $DIMM_Density_0_0, "DIMM_Density", &DIMMDENSITY,
+                Help "DRAM device data density."
+    Combo $DIMM_BusWidth_0_0, "DIMM_BusWidth", &DIMMBUSWIDTH,
+                Help "DIMM Bus Width."
+    Combo $DIMM_Sides_0_0, "DIMM_Sides", &RANKPERDIMM,
+                Help "Ranks Per DIMM. "
+    EditNum $tCL, "tCL", DEC,
+                Help "tCL"
+    EditNum $tRP_tRCD, "tRP_tRCD", DEC,
+                Help "tRP and tRCD in DRAM clk - 5:12.5ns, 6:15ns, etc."
+    EditNum $tWR, "tWR", DEC,
+                Help "tWR in DRAM clk"
+    EditNum $tWTR, "tWTR", DEC,
+                Help "tWTR in DRAM clk"
+    EditNum $tRRD, "tRRD", DEC,
+                Help "tRRD in DRAM clk"
+    EditNum $tRTP, "tRTP", DEC,
+                Help "tRTP in DRAM clk"
+    EditNum $tFAW, "tFAW", DEC,
+                Help "tFAW in DRAM clk"
+EndPage
+
+Page "South Complex"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdSataMode, "Select SATA Mode", &SATA_MODE,
+                Help "Select SATA boot mode. AHCI by default."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableXhci, "Enable XHCI", &EN_DIS,
+                Help "Enable/disable XHCI. If enabled, all EHCI ports will be routed to XHCI and EHCI will be disabled."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdeMMCBootMode, "eMMC Boot Mode", &EMMC_MODES,
+                Help "Select EMMC Mode."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdio, "Enable SDIO", &EN_DIS,
+                Help "Enable/disable SDIO."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdcard, "Enable SD Card", &EN_DIS,
+                Help "Enable/disable the SD Card."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart0, "Enable HSUART0", &EN_DIS,
+                Help "Enable/disable HSUART0."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart1, "Enable HSUART1", &EN_DIS,
+                Help "Enable/disable HSUART1."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSpi, "Enable SPI", &EN_DIS,
+                Help "Enable/disable SPI."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableLan, "Enable LAN", &EN_DIS,
+                Help "Enable/disable LAN."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableAzalia, "Enable Azalia", &EN_DIS_AUTO,
+                Help "Enable/disable Azalia. Auto by default."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSata, "Enable SATA", &EN_DIS,
+                Help "Enable/disable SATA."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableLpe, "Enable LPE", &PCI_ACPI,
+                Help "Choose LPE Mode"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdLpssSioEnablePciMode, "Enable PCI mode for LPSS SIO devices", &EN_DIS,
+                Help "Enable PCI Mode for LPSS SIO devices. If disabled, LPSS SIO devices will run in ACPI mode."
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma0, "Enable DMA0", &EN_DIS,
+                Help "Enable/disable DMA0"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma1, "Enable DMA1", &EN_DIS,
+                Help "Enable/disable DMA1"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C0, "Enable I2C0", &EN_DIS,
+                Help "Enable/disable I2C0"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C1, "Enable I2C1", &EN_DIS,
+                Help "Enable/disable I2C1"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C2, "Enable I2C2", &EN_DIS,
+                Help "Enable/disable I2C2"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C3, "Enable I2C3", &EN_DIS,
+                Help "Enable/disable I2C3"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C4, "Enable I2C4", &EN_DIS,
+                Help "Enable/disable I2C4"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C5, "Enable I2C5", &EN_DIS,
+                Help "Enable/disable I2C5"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C6, "Enable I2C6", &EN_DIS,
+                Help "Enable/disable I2C6"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm0, "Enable PWM0", &EN_DIS,
+                Help "Enable/disable PWM0"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm1, "Enable PWM1", &EN_DIS,
+                Help "Enable/disable PWM1"
+    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsi, "Enable HSI", &EN_DIS,
+                Help "Enable/disable HSI"
+    Combo $gPlatformFspPkgTokenSpaceGuid_ISPEnable, "Enable ISP", &EN_DIS,
+                Help "Enable/disable ISP."
+EndPage
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/azalia.h b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/azalia.h
new file mode 100644
index 0000000..c58cf4c
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/azalia.h
@@ -0,0 +1,66 @@
+/**@file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _AZALIA_H_
+#define _AZALIA_H_
+
+#include <stdint.h>
+
+#pragma pack(1)
+
+typedef struct {
+  uint32_t  VendorDeviceId;
+  uint16_t  SubSystemId;
+  uint8_t   RevisionId;                       /// 0xFF applies to all steppings
+  uint8_t   FrontPanelSupport;
+  uint16_t  NumberOfRearJacks;
+  uint16_t  NumberOfFrontJacks;
+} PCH_AZALIA_VERB_TABLE_HEADER;
+
+typedef struct {
+  PCH_AZALIA_VERB_TABLE_HEADER  VerbTableHeader;
+  uint32_t                        *VerbTableData;
+} PCH_AZALIA_VERB_TABLE;
+
+typedef struct {
+  uint8_t                 Pme       : 1;      /// 0: Disable; 1: Enable
+  uint8_t                 DS        : 1;      /// 0: Docking is not supported; 1:Docking is supported
+  uint8_t                 DA        : 1;      /// 0: Docking is not attached; 1:Docking is attached
+  uint8_t                 HdmiCodec : 1;      /// 0: Disable; 1: Enable
+  uint8_t                 AzaliaVCi : 1;      /// 0: Disable; 1: Enable
+  uint8_t                 Rsvdbits  : 3;
+  uint8_t                 AzaliaVerbTableNum; /// Number of verb tables provided by platform
+  PCH_AZALIA_VERB_TABLE  *AzaliaVerbTable;   /// Pointer to the actual verb table(s)
+  uint16_t                ResetWaitTimer;     /// The delay timer after Azalia reset, the value is number of microseconds
+} PCH_AZALIA_CONFIG;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fsp.h b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fsp.h
new file mode 100644
index 0000000..f2e1d8f
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fsp.h
@@ -0,0 +1,69 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+/** \file  fsp.h
+ *
+ *
+ */
+#include <stdint.h>
+#include "fsptypes.h"
+#include "fspfv.h"
+#include "fspffs.h"
+#include "fsphob.h"
+#include "fspapi.h"
+#include "fspplatform.h"
+#include "fspinfoheader.h"
+#include "fspvpd.h"
+
+#define FSP_HOB_RESOURCE_OWNER_FSP_GUID \
+{ 0x69a79759, 0x1373, 0x4367, { 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e } }
+#define FSP_NON_VOLATILE_STORAGE_HOB_GUID \
+{ 0x721acf02, 0x4d77, 0x4c2a, { 0xb3, 0xdc, 0x27, 0xb, 0x7b, 0xa9, 0xe4, 0xb0 } }
+#define FSP_HOB_RESOURCE_OWNER_TSEG_GUID \
+{ 0xd038747c, 0xd00c, 0x4980, { 0xb3, 0x19, 0x49, 0x01, 0x99, 0xa4, 0x7d, 0x55 } }
+#define FSP_HOB_RESOURCE_OWNER_GRAPHICS_GUID \
+{ 0x9c7c3aa7, 0x5332, 0x4917, { 0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07 } }
+#define FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID \
+{ 0xbbcff46c, 0xc8d3, 0x4113, { 0x89, 0x85, 0xb9, 0xd4, 0xf3, 0xb3, 0xf6, 0x4e } }
+
+//
+// 0x21 - 0xf..f are reserved.
+//
+#define BOOT_WITH_FULL_CONFIGURATION                  0x00
+#define BOOT_WITH_MINIMAL_CONFIGURATION               0x01
+#define BOOT_ASSUMING_NO_CONFIGURATION_CHANGES        0x02
+#define BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS 0x03
+#define BOOT_WITH_DEFAULT_SETTINGS                    0x04
+#define BOOT_ON_S4_RESUME                             0x05
+#define BOOT_ON_S5_RESUME                             0x06
+#define BOOT_ON_S2_RESUME                             0x10
+#define BOOT_ON_S3_RESUME                             0x11
+#define BOOT_ON_FLASH_UPDATE                          0x12
+#define BOOT_IN_RECOVERY_MODE                         0x20
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspapi.h b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspapi.h
new file mode 100644
index 0000000..26afc0e
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspapi.h
@@ -0,0 +1,65 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_API_H_
+#define _FSP_API_H_
+
+#pragma pack(1)
+
+typedef VOID (* CONTINUATION_PROC)(EFI_STATUS Status, VOID *HobListPtr);
+
+typedef struct {
+  VOID               *NvsBufferPtr;
+  VOID               *RtBufferPtr;
+  CONTINUATION_PROC   ContinuationFunc;
+} FSP_INIT_PARAMS;
+
+typedef struct {
+  UINT32            *StackTop;
+  UINT32             BootMode;
+  VOID              *UpdDataRgnPtr;
+  UINT32             Reserved[7];
+} FSP_INIT_RT_COMMON_BUFFER;
+
+typedef enum {
+  EnumInitPhaseAfterPciEnumeration = 0x20,
+  EnumInitPhaseReadyToBoot = 0x40
+} FSP_INIT_PHASE;
+
+typedef struct {
+  FSP_INIT_PHASE     Phase;
+} NOTIFY_PHASE_PARAMS;
+
+#pragma pack()
+
+typedef FSP_STATUS (FSPAPI *FSP_FSP_INIT)    (FSP_INIT_PARAMS     *FspInitParamPtr);
+typedef FSP_STATUS (FSPAPI *FSP_NOTFY_PHASE) (NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr);
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspffs.h b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspffs.h
new file mode 100644
index 0000000..f3b83b2
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspffs.h
@@ -0,0 +1,506 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+
+#ifndef __PI_FIRMWARE_FILE_H__
+#define __PI_FIRMWARE_FILE_H__
+
+#pragma pack(1)
+///
+/// Used to verify the integrity of the file.
+///
+typedef union {
+  struct {
+    ///
+    /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
+    /// header. The State and IntegrityCheck.Checksum.File fields are assumed
+    /// to be zero and the checksum is calculated such that the entire header sums to zero.
+    ///
+    UINT8   Header;
+    ///
+    /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
+    /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
+    /// checksum of the file data.
+    /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
+    /// the IntegrityCheck.Checksum.File field must be initialized with a value of
+    /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
+    /// EFI_FILE_DATA_VALID bit is set in the State field.
+    ///
+    UINT8   File;
+  } Checksum;
+  ///
+  /// This is the full 16 bits of the IntegrityCheck field.
+  ///
+  UINT16    Checksum16;
+} EFI_FFS_INTEGRITY_CHECK;
+
+///
+/// FFS_FIXED_CHECKSUM is the checksum value used when the
+/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
+///
+#define FFS_FIXED_CHECKSUM  0xAA
+
+typedef UINT8 EFI_FV_FILETYPE;
+typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
+typedef UINT8 EFI_FFS_FILE_STATE;
+
+///
+/// File Types Definitions
+///
+#define EFI_FV_FILETYPE_ALL                   0x00
+#define EFI_FV_FILETYPE_RAW                   0x01
+#define EFI_FV_FILETYPE_FREEFORM              0x02
+#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
+#define EFI_FV_FILETYPE_PEI_CORE              0x04
+#define EFI_FV_FILETYPE_DXE_CORE              0x05
+#define EFI_FV_FILETYPE_PEIM                  0x06
+#define EFI_FV_FILETYPE_DRIVER                0x07
+#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
+#define EFI_FV_FILETYPE_APPLICATION           0x09
+#define EFI_FV_FILETYPE_SMM                   0x0A
+#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
+#define EFI_FV_FILETYPE_COMBINED_SMM_DXE      0x0C
+#define EFI_FV_FILETYPE_SMM_CORE              0x0D
+#define EFI_FV_FILETYPE_OEM_MIN               0xc0
+#define EFI_FV_FILETYPE_OEM_MAX               0xdf
+#define EFI_FV_FILETYPE_DEBUG_MIN             0xe0
+#define EFI_FV_FILETYPE_DEBUG_MAX             0xef
+#define EFI_FV_FILETYPE_FFS_MIN               0xf0
+#define EFI_FV_FILETYPE_FFS_MAX               0xff
+#define EFI_FV_FILETYPE_FFS_PAD               0xf0
+///
+/// FFS File Attributes.
+///
+#define FFS_ATTRIB_LARGE_FILE         0x01
+#define FFS_ATTRIB_FIXED              0x04
+#define FFS_ATTRIB_DATA_ALIGNMENT     0x38
+#define FFS_ATTRIB_CHECKSUM           0x40
+
+///
+/// FFS File State Bits.
+///
+#define EFI_FILE_HEADER_CONSTRUCTION  0x01
+#define EFI_FILE_HEADER_VALID         0x02
+#define EFI_FILE_DATA_VALID           0x04
+#define EFI_FILE_MARKED_FOR_UPDATE    0x08
+#define EFI_FILE_DELETED              0x10
+#define EFI_FILE_HEADER_INVALID       0x20
+
+
+///
+/// Each file begins with the header that describe the
+/// contents and state of the files.
+///
+typedef struct {
+  ///
+  /// This GUID is the file name. It is used to uniquely identify the file.
+  ///
+  EFI_GUID                Name;
+  ///
+  /// Used to verify the integrity of the file.
+  ///
+  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
+  ///
+  /// Identifies the type of file.
+  ///
+  EFI_FV_FILETYPE         Type;
+  ///
+  /// Declares various file attribute bits.
+  ///
+  EFI_FFS_FILE_ATTRIBUTES Attributes;
+  ///
+  /// The length of the file in bytes, including the FFS header.
+  ///
+  UINT8                   Size[3];
+  ///
+  /// Used to track the state of the file throughout the life of the file from creation to deletion.
+  ///
+  EFI_FFS_FILE_STATE      State;
+} EFI_FFS_FILE_HEADER;
+
+typedef struct {
+  ///
+  /// This GUID is the file name. It is used to uniquely identify the file. There may be only
+  /// one instance of a file with the file name GUID of Name in any given firmware
+  /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
+  ///
+  EFI_GUID                  Name;
+
+  ///
+  /// Used to verify the integrity of the file.
+  ///
+  EFI_FFS_INTEGRITY_CHECK   IntegrityCheck;
+
+  ///
+  /// Identifies the type of file.
+  ///
+  EFI_FV_FILETYPE           Type;
+
+  ///
+  /// Declares various file attribute bits.
+  ///
+  EFI_FFS_FILE_ATTRIBUTES   Attributes;
+
+  ///
+  /// The length of the file in bytes, including the FFS header.
+  /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
+  /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
+  /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
+  /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
+  ///
+  UINT8                     Size[3];
+
+  ///
+  /// Used to track the state of the file throughout the life of the file from creation to deletion.
+  ///
+  EFI_FFS_FILE_STATE        State;
+
+  ///
+  /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
+  /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
+  ///
+  UINT32                    ExtendedSize;
+} EFI_FFS_FILE_HEADER2;
+
+#define IS_FFS_FILE2(FfsFileHeaderPtr) \
+    (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
+
+#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
+
+#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
+    (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
+
+typedef UINT8 EFI_SECTION_TYPE;
+
+///
+/// Pseudo type. It is used as a wild card when retrieving sections.
+///  The section type EFI_SECTION_ALL matches all section types.
+///
+#define EFI_SECTION_ALL                   0x00
+
+///
+/// Encapsulation section Type values.
+///
+#define EFI_SECTION_COMPRESSION           0x01
+
+#define EFI_SECTION_GUID_DEFINED          0x02
+
+#define EFI_SECTION_DISPOSABLE            0x03
+
+///
+/// Leaf section Type values.
+///
+#define EFI_SECTION_PE32                  0x10
+#define EFI_SECTION_PIC                   0x11
+#define EFI_SECTION_TE                    0x12
+#define EFI_SECTION_DXE_DEPEX             0x13
+#define EFI_SECTION_VERSION               0x14
+#define EFI_SECTION_USER_INTERFACE        0x15
+#define EFI_SECTION_COMPATIBILITY16       0x16
+#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
+#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
+#define EFI_SECTION_RAW                   0x19
+#define EFI_SECTION_PEI_DEPEX             0x1B
+#define EFI_SECTION_SMM_DEPEX             0x1C
+
+///
+/// Common section header.
+///
+typedef struct {
+  ///
+  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+  /// including the EFI_COMMON_SECTION_HEADER.
+  ///
+  UINT8             Size[3];
+  EFI_SECTION_TYPE  Type;
+  ///
+  /// Declares the section type.
+  ///
+} EFI_COMMON_SECTION_HEADER;
+
+typedef struct {
+  ///
+  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+  /// including the EFI_COMMON_SECTION_HEADER.
+  ///
+  UINT8             Size[3];
+
+  EFI_SECTION_TYPE  Type;
+
+  ///
+  /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
+  /// Size is not equal to 0xFFFFFF, then this field does not exist.
+  ///
+  UINT32            ExtendedSize;
+} EFI_COMMON_SECTION_HEADER2;
+
+///
+/// Leaf section type that contains an
+/// IA-32 16-bit executable image.
+///
+typedef EFI_COMMON_SECTION_HEADER  EFI_COMPATIBILITY16_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
+
+///
+/// CompressionType of EFI_COMPRESSION_SECTION.
+///
+#define EFI_NOT_COMPRESSED        0x00
+#define EFI_STANDARD_COMPRESSION  0x01
+///
+/// An encapsulation section type in which the
+/// section data is compressed.
+///
+typedef struct {
+  ///
+  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// The UINT32 that indicates the size of the section data after decompression.
+  ///
+  UINT32                      UncompressedLength;
+  ///
+  /// Indicates which compression algorithm is used.
+  ///
+  UINT8                       CompressionType;
+} EFI_COMPRESSION_SECTION;
+
+typedef struct {
+  ///
+  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// UINT32 that indicates the size of the section data after decompression.
+  ///
+  UINT32                        UncompressedLength;
+  ///
+  /// Indicates which compression algorithm is used.
+  ///
+  UINT8                         CompressionType;
+} EFI_COMPRESSION_SECTION2;
+
+///
+/// An encapsulation section type in which the section data is disposable.
+/// A disposable section is an encapsulation section in which the section data may be disposed of during
+/// the process of creating or updating a firmware image without significant impact on the usefulness of
+/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
+/// allows optional or descriptive data to be included with the firmware file which can be removed in
+/// order to conserve space. The contents of this section are implementation specific, but might contain
+/// debug data or detailed integration instructions.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_DISPOSABLE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_DISPOSABLE_SECTION2;
+
+///
+/// The leaf section which could be used to determine the dispatch order of DXEs.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_DXE_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_DXE_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a PI FV.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
+
+///
+/// The leaf section which contains a single GUID.
+///
+typedef struct {
+  ///
+  /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+  ///
+  EFI_GUID                    SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
+
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+  ///
+  EFI_GUID                      SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
+
+///
+/// Attributes of EFI_GUID_DEFINED_SECTION.
+///
+#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED  0x01
+#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID    0x02
+///
+/// The leaf section which is encapsulation defined by specific GUID.
+///
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+  ///
+  EFI_GUID                    SectionDefinitionGuid;
+  ///
+  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+  ///
+  UINT16                      DataOffset;
+  ///
+  /// The bit field that declares some specific characteristics of the section contents.
+  ///
+  UINT16                      Attributes;
+} EFI_GUID_DEFINED_SECTION;
+
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+  ///
+  EFI_GUID                      SectionDefinitionGuid;
+  ///
+  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+  ///
+  UINT16                        DataOffset;
+  ///
+  /// The bit field that declares some specific characteristics of the section contents.
+  ///
+  UINT16                        Attributes;
+} EFI_GUID_DEFINED_SECTION2;
+
+///
+/// The leaf section which contains PE32+ image.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PE32_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PE32_SECTION2;
+
+///
+/// The leaf section used to determine the dispatch order of PEIMs.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PEI_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PEI_DEPEX_SECTION2;
+
+///
+/// A leaf section type that contains a position-independent-code (PIC) image.
+/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
+/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
+/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
+/// relocation information has been stripped from the image and the image can be moved and will
+/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
+/// be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PIC_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PIC_SECTION2;
+
+///
+/// The leaf section which constains the position-independent-code image.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_TE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_TE_SECTION2;
+
+///
+/// The leaf section which contains an array of zero or more bytes.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_RAW_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_RAW_SECTION2;
+
+///
+/// The SMM dependency expression section is a leaf section that contains a dependency expression that
+/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
+/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
+/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
+/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
+/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a unicode string that
+/// is human readable file name.
+///
+typedef struct {
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+
+  ///
+  /// Array of unicode string.
+  ///
+  CHAR16                      FileNameString[1];
+} EFI_USER_INTERFACE_SECTION;
+
+typedef struct {
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  CHAR16                        FileNameString[1];
+} EFI_USER_INTERFACE_SECTION2;
+
+///
+/// The leaf section which contains a numeric build number and
+/// an optional unicode string that represents the file revision.
+///
+typedef struct {
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  UINT16                      BuildNumber;
+
+  ///
+  /// Array of unicode string.
+  ///
+  CHAR16                      VersionString[1];
+} EFI_VERSION_SECTION;
+
+typedef struct {
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// A UINT16 that represents a particular build. Subsequent builds have monotonically
+  /// increasing build numbers relative to earlier builds.
+  ///
+  UINT16                        BuildNumber;
+  CHAR16                        VersionString[1];
+} EFI_VERSION_SECTION2;
+
+#define IS_SECTION2(SectionHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
+
+#define SECTION_SIZE(SectionHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
+
+#define SECTION2_SIZE(SectionHeaderPtr) \
+    (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspfv.h b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspfv.h
new file mode 100644
index 0000000..26c00f2
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspfv.h
@@ -0,0 +1,247 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __PI_FIRMWAREVOLUME_H__
+#define __PI_FIRMWAREVOLUME_H__
+
+///
+/// EFI_FV_FILE_ATTRIBUTES
+///
+typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
+
+//
+// Value of EFI_FV_FILE_ATTRIBUTES.
+//
+#define EFI_FV_FILE_ATTRIB_ALIGNMENT      0x0000001F
+#define EFI_FV_FILE_ATTRIB_FIXED          0x00000100
+#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED  0x00000200
+
+///
+/// type of EFI FVB attribute
+///
+typedef UINT32  EFI_FVB_ATTRIBUTES_2;
+
+//
+// Attributes bit definitions
+//
+#define EFI_FVB2_READ_DISABLED_CAP  0x00000001
+#define EFI_FVB2_READ_ENABLED_CAP   0x00000002
+#define EFI_FVB2_READ_STATUS        0x00000004
+#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
+#define EFI_FVB2_WRITE_ENABLED_CAP  0x00000010
+#define EFI_FVB2_WRITE_STATUS       0x00000020
+#define EFI_FVB2_LOCK_CAP           0x00000040
+#define EFI_FVB2_LOCK_STATUS        0x00000080
+#define EFI_FVB2_STICKY_WRITE       0x00000200
+#define EFI_FVB2_MEMORY_MAPPED      0x00000400
+#define EFI_FVB2_ERASE_POLARITY     0x00000800
+#define EFI_FVB2_READ_LOCK_CAP      0x00001000
+#define EFI_FVB2_READ_LOCK_STATUS   0x00002000
+#define EFI_FVB2_WRITE_LOCK_CAP     0x00004000
+#define EFI_FVB2_WRITE_LOCK_STATUS  0x00008000
+#define EFI_FVB2_ALIGNMENT          0x001F0000
+#define EFI_FVB2_ALIGNMENT_1        0x00000000
+#define EFI_FVB2_ALIGNMENT_2        0x00010000
+#define EFI_FVB2_ALIGNMENT_4        0x00020000
+#define EFI_FVB2_ALIGNMENT_8        0x00030000
+#define EFI_FVB2_ALIGNMENT_16       0x00040000
+#define EFI_FVB2_ALIGNMENT_32       0x00050000
+#define EFI_FVB2_ALIGNMENT_64       0x00060000
+#define EFI_FVB2_ALIGNMENT_128      0x00070000
+#define EFI_FVB2_ALIGNMENT_256      0x00080000
+#define EFI_FVB2_ALIGNMENT_512      0x00090000
+#define EFI_FVB2_ALIGNMENT_1K       0x000A0000
+#define EFI_FVB2_ALIGNMENT_2K       0x000B0000
+#define EFI_FVB2_ALIGNMENT_4K       0x000C0000
+#define EFI_FVB2_ALIGNMENT_8K       0x000D0000
+#define EFI_FVB2_ALIGNMENT_16K      0x000E0000
+#define EFI_FVB2_ALIGNMENT_32K      0x000F0000
+#define EFI_FVB2_ALIGNMENT_64K      0x00100000
+#define EFI_FVB2_ALIGNMENT_128K     0x00110000
+#define EFI_FVB2_ALIGNMENT_256K     0x00120000
+#define EFI_FVB2_ALIGNMENT_512K     0x00130000
+#define EFI_FVB2_ALIGNMENT_1M       0x00140000
+#define EFI_FVB2_ALIGNMENT_2M       0x00150000
+#define EFI_FVB2_ALIGNMENT_4M       0x00160000
+#define EFI_FVB2_ALIGNMENT_8M       0x00170000
+#define EFI_FVB2_ALIGNMENT_16M      0x00180000
+#define EFI_FVB2_ALIGNMENT_32M      0x00190000
+#define EFI_FVB2_ALIGNMENT_64M      0x001A0000
+#define EFI_FVB2_ALIGNMENT_128M     0x001B0000
+#define EFI_FVB2_ALIGNMENT_256M     0x001C0000
+#define EFI_FVB2_ALIGNMENT_512M     0x001D0000
+#define EFI_FVB2_ALIGNMENT_1G       0x001E0000
+#define EFI_FVB2_ALIGNMENT_2G       0x001F0000
+
+
+typedef struct {
+  ///
+  /// The number of sequential blocks which are of the same size.
+  ///
+  UINT32 NumBlocks;
+  ///
+  /// The size of the blocks.
+  ///
+  UINT32 Length;
+} EFI_FV_BLOCK_MAP_ENTRY;
+
+///
+/// Describes the features and layout of the firmware volume.
+///
+typedef struct {
+  ///
+  /// The first 16 bytes are reserved to allow for the reset vector of
+  /// processors whose reset vector is at address 0.
+  ///
+  UINT8                     ZeroVector[16];
+  ///
+  /// Declares the file system with which the firmware volume is formatted.
+  ///
+  EFI_GUID                  FileSystemGuid;
+  ///
+  /// Length in bytes of the complete firmware volume, including the header.
+  ///
+  UINT64                    FvLength;
+  ///
+  /// Set to EFI_FVH_SIGNATURE
+  ///
+  UINT32                    Signature;
+  ///
+  /// Declares capabilities and power-on defaults for the firmware volume.
+  ///
+  EFI_FVB_ATTRIBUTES_2      Attributes;
+  ///
+  /// Length in bytes of the complete firmware volume header.
+  ///
+  UINT16                    HeaderLength;
+  ///
+  /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
+  ///
+  UINT16                    Checksum;
+  ///
+  /// Offset, relative to the start of the header, of the extended header
+  /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
+  ///
+  UINT16                    ExtHeaderOffset;
+  ///
+  /// This field must always be set to zero.
+  ///
+  UINT8                     Reserved[1];
+  ///
+  /// Set to 2. Future versions of this specification may define new header fields and will
+  /// increment the Revision field accordingly.
+  ///
+  UINT8                     Revision;
+  ///
+  /// An array of run-length encoded FvBlockMapEntry structures. The array is
+  /// terminated with an entry of {0,0}.
+  ///
+  EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
+} EFI_FIRMWARE_VOLUME_HEADER;
+
+#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
+
+///
+/// Firmware Volume Header Revision definition
+///
+#define EFI_FVH_REVISION  0x02
+
+///
+/// Extension header pointed by ExtHeaderOffset of volume header.
+///
+typedef struct {
+  ///
+  /// Firmware volume name.
+  ///
+  EFI_GUID  FvName;
+  ///
+  /// Size of the rest of the extension header, including this structure.
+  ///
+  UINT32    ExtHeaderSize;
+} EFI_FIRMWARE_VOLUME_EXT_HEADER;
+
+///
+/// Entry struture for describing FV extension header
+///
+typedef struct {
+  ///
+  /// Size of this header extension.
+  ///
+  UINT16    ExtEntrySize;
+  ///
+  /// Type of the header.
+  ///
+  UINT16    ExtEntryType;
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
+
+#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
+///
+/// This extension header provides a mapping between a GUID and an OEM file type.
+///
+typedef struct {
+  ///
+  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+  ///
+  EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
+  ///
+  /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
+  /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
+  ///
+  UINT32    TypeMask;
+  ///
+  /// An array of GUIDs, each GUID representing an OEM file type.
+  ///
+  /// EFI_GUID  Types[1];
+  ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
+
+#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002
+
+///
+/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
+/// GUID FormatType type which includes a length and a successive series of data bytes.
+///
+typedef struct {
+  ///
+  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+  ///
+  EFI_FIRMWARE_VOLUME_EXT_ENTRY     Hdr;
+  ///
+  /// Vendor-specific GUID.
+  ///
+  EFI_GUID                          FormatType;
+  ///
+  /// An arry of bytes of length Length.
+  ///
+  /// UINT8                             Data[1];
+  ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fsphob.h b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fsphob.h
new file mode 100644
index 0000000..7edef0d
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fsphob.h
@@ -0,0 +1,542 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __PI_HOB_H__
+#define __PI_HOB_H__
+
+//
+// HobType of EFI_HOB_GENERIC_HEADER.
+//
+#define EFI_HOB_TYPE_MEMORY_ALLOCATION    0x0002
+#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
+#define EFI_HOB_TYPE_GUID_EXTENSION       0x0004
+#define EFI_HOB_TYPE_UNUSED               0xFFFE
+#define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF
+
+///
+/// Describes the format and size of the data inside the HOB.
+/// All HOBs must contain this generic HOB header.
+///
+typedef struct {
+  ///
+  /// Identifies the HOB data structure type.
+  ///
+  UINT16    HobType;
+  ///
+  /// The length in bytes of the HOB.
+  ///
+  UINT16    HobLength;
+  ///
+  /// This field must always be set to zero.
+  ///
+  UINT32    Reserved;
+} EFI_HOB_GENERIC_HEADER;
+
+///
+/// Enumeration of memory types introduced in UEFI.
+///
+typedef enum {
+  ///
+  /// Not used.
+  ///
+  EfiReservedMemoryType,
+  ///
+  /// The code portions of a loaded application.
+  /// (Note that UEFI OS loaders are UEFI applications.)
+  ///
+  EfiLoaderCode,
+  ///
+  /// The data portions of a loaded application and the default data allocation
+  /// type used by an application to allocate pool memory.
+  ///
+  EfiLoaderData,
+  ///
+  /// The code portions of a loaded Boot Services Driver.
+  ///
+  EfiBootServicesCode,
+  ///
+  /// The data portions of a loaded Boot Serves Driver, and the default data
+  /// allocation type used by a Boot Services Driver to allocate pool memory.
+  ///
+  EfiBootServicesData,
+  ///
+  /// The code portions of a loaded Runtime Services Driver.
+  ///
+  EfiRuntimeServicesCode,
+  ///
+  /// The data portions of a loaded Runtime Services Driver and the default
+  /// data allocation type used by a Runtime Services Driver to allocate pool memory.
+  ///
+  EfiRuntimeServicesData,
+  ///
+  /// Free (unallocated) memory.
+  ///
+  EfiConventionalMemory,
+  ///
+  /// Memory in which errors have been detected.
+  ///
+  EfiUnusableMemory,
+  ///
+  /// Memory that holds the ACPI tables.
+  ///
+  EfiACPIReclaimMemory,
+  ///
+  /// Address space reserved for use by the firmware.
+  ///
+  EfiACPIMemoryNVS,
+  ///
+  /// Used by system firmware to request that a memory-mapped IO region
+  /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
+  ///
+  EfiMemoryMappedIO,
+  ///
+  /// System memory-mapped IO region that is used to translate memory
+  /// cycles to IO cycles by the processor.
+  ///
+  EfiMemoryMappedIOPortSpace,
+  ///
+  /// Address space reserved by the firmware for code that is part of the processor.
+  ///
+  EfiPalCode,
+  EfiMaxMemoryType
+} EFI_MEMORY_TYPE;
+
+///
+/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
+/// various attributes of the logical memory allocation. The type field will be used for
+/// subsequent inclusion in the UEFI memory map.
+///
+typedef struct {
+  ///
+  /// A GUID that defines the memory allocation region's type and purpose, as well as
+  /// other fields within the memory allocation HOB. This GUID is used to define the
+  /// additional data within the HOB that may be present for the memory allocation HOB.
+  /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
+  /// specification.
+  ///
+  EFI_GUID              Name;
+
+  ///
+  /// The base address of memory allocated by this HOB. Type
+  /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
+  /// specification.
+  ///
+  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
+
+  ///
+  /// The length in bytes of memory allocated by this HOB.
+  ///
+  UINT64                MemoryLength;
+
+  ///
+  /// Defines the type of memory allocated by this HOB. The memory type definition
+  /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
+  /// in AllocatePages() in the UEFI 2.0 specification.
+  ///
+  EFI_MEMORY_TYPE       MemoryType;
+
+  ///
+  /// Padding for Itanium processor family
+  ///
+  UINT8                 Reserved[4];
+} EFI_HOB_MEMORY_ALLOCATION_HEADER;
+
+///
+/// Describes all memory ranges used during the HOB producer
+/// phase that exist outside the HOB list. This HOB type
+/// describes how memory is used, not the physical attributes of memory.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
+  ///
+  EFI_HOB_GENERIC_HEADER            Header;
+  ///
+  /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
+  /// various attributes of the logical memory allocation.
+  ///
+  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
+  //
+  // Additional data pertaining to the "Name" Guid memory
+  // may go here.
+  //
+} EFI_HOB_MEMORY_ALLOCATION;
+
+///
+/// The resource type.
+///
+typedef UINT32 EFI_RESOURCE_TYPE;
+
+//
+// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
+//
+#define EFI_RESOURCE_SYSTEM_MEMORY          0x00000000
+#define EFI_RESOURCE_MEMORY_MAPPED_IO       0x00000001
+#define EFI_RESOURCE_IO                     0x00000002
+#define EFI_RESOURCE_FIRMWARE_DEVICE        0x00000003
+#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  0x00000004
+#define EFI_RESOURCE_MEMORY_RESERVED        0x00000005
+#define EFI_RESOURCE_IO_RESERVED            0x00000006
+#define EFI_RESOURCE_MAX_MEMORY_TYPE        0x00000007
+
+///
+/// A type of recount attribute type.
+///
+typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
+
+//
+// These types can be ORed together as needed.
+//
+// The first three enumerations describe settings
+//
+#define EFI_RESOURCE_ATTRIBUTE_PRESENT              0x00000001
+#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED          0x00000002
+#define EFI_RESOURCE_ATTRIBUTE_TESTED               0x00000004
+//
+// The rest of the settings describe capabilities
+//
+#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC           0x00000008
+#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC         0x00000010
+#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1           0x00000020
+#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2           0x00000040
+#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100
+#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200
+#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE              0x00000400
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE        0x00000800
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE  0x00001000
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE     0x00002000
+#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO                0x00004000
+#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO                0x00008000
+#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000
+#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000
+
+///
+/// Describes the resource properties of all fixed,
+/// nonrelocatable resource ranges found on the processor
+/// host bus during the HOB producer phase.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
+  ///
+  EFI_HOB_GENERIC_HEADER      Header;
+  ///
+  /// A GUID representing the owner of the resource. This GUID is used by HOB
+  /// consumer phase components to correlate device ownership of a resource.
+  ///
+  EFI_GUID                    Owner;
+  ///
+  /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
+  ///
+  EFI_RESOURCE_TYPE           ResourceType;
+  ///
+  /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
+  ///
+  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
+  ///
+  /// The physical start address of the resource region.
+  ///
+  EFI_PHYSICAL_ADDRESS        PhysicalStart;
+  ///
+  /// The number of bytes of the resource region.
+  ///
+  UINT64                      ResourceLength;
+} EFI_HOB_RESOURCE_DESCRIPTOR;
+
+///
+/// Allows writers of executable content in the HOB producer phase to
+/// maintain and manage HOBs with specific GUID.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
+  ///
+  EFI_HOB_GENERIC_HEADER      Header;
+  ///
+  /// A GUID that defines the contents of this HOB.
+  ///
+  EFI_GUID                    Name;
+  //
+  // Guid specific data goes here
+  //
+} EFI_HOB_GUID_TYPE;
+
+///
+/// Union of all the possible HOB Types.
+///
+typedef union {
+  EFI_HOB_GENERIC_HEADER              *Header;
+  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
+  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
+  EFI_HOB_GUID_TYPE                   *Guid;
+  UINT8                               *Raw;
+} EFI_PEI_HOB_POINTERS;
+
+
+/**
+  Returns the type of a HOB.
+
+  This macro returns the HobType field from the HOB header for the
+  HOB specified by HobStart.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return HobType.
+
+**/
+#define GET_HOB_TYPE(HobStart) \
+  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobType)
+
+/**
+  Returns the length, in bytes, of a HOB.
+
+  This macro returns the HobLength field from the HOB header for the
+  HOB specified by HobStart.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return HobLength.
+
+**/
+#define GET_HOB_LENGTH(HobStart) \
+  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobLength)
+
+/**
+  Returns a pointer to the next HOB in the HOB list.
+
+  This macro returns a pointer to HOB that follows the
+  HOB specified by HobStart in the HOB List.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return A pointer to the next HOB in the HOB list.
+
+**/
+#define GET_NEXT_HOB(HobStart) \
+  (VOID *)(*(UINT8 **)&(HobStart) + GET_HOB_LENGTH (HobStart))
+
+/**
+  Determines if a HOB is the last HOB in the HOB list.
+
+  This macro determine if the HOB specified by HobStart is the
+  last HOB in the HOB list.  If HobStart is last HOB in the HOB list,
+  then TRUE is returned.  Otherwise, FALSE is returned.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @retval TRUE       The HOB specified by HobStart is the last HOB in the HOB list.
+  @retval FALSE      The HOB specified by HobStart is not the last HOB in the HOB list.
+
+**/
+#define END_OF_HOB_LIST(HobStart)  (GET_HOB_TYPE (HobStart) == (UINT16)EFI_HOB_TYPE_END_OF_HOB_LIST)
+
+/**
+  Returns a pointer to data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  This macro returns a pointer to the data buffer in a HOB specified by HobStart.
+  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  @param   GuidHob   A pointer to a HOB.
+
+  @return  A pointer to the data buffer in a HOB.
+
+**/
+#define GET_GUID_HOB_DATA(HobStart) \
+  (VOID *)(*(UINT8 **)&(HobStart) + sizeof (EFI_HOB_GUID_TYPE))
+
+/**
+  Returns the size of the data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  This macro returns the size, in bytes, of the data buffer in a HOB specified by HobStart.
+  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  @param   GuidHob   A pointer to a HOB.
+
+  @return  The size of the data buffer.
+**/
+#define GET_GUID_HOB_DATA_SIZE(HobStart) \
+  (UINT16)(GET_HOB_LENGTH (HobStart) - sizeof (EFI_HOB_GUID_TYPE))
+
+/**
+  Returns the pointer to the HOB list.
+
+  This function returns the pointer to first HOB in the list.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+
+  @return The pointer to the HOB list.
+
+**/
+VOID *
+EFIAPI
+GetHobList (
+  VOID
+  );
+
+/**
+  Returns the next instance of a HOB type from the starting HOB.
+
+  This function searches the first instance of a HOB type from the starting HOB pointer.
+  If there does not exist such HOB type from the starting HOB pointer, it will return NULL.
+  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
+  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
+  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
+
+  If HobStart is NULL, then ASSERT().
+
+  @param  Type          The HOB type to return.
+  @param  HobStart      The starting HOB pointer to search from.
+
+  @return The next instance of a HOB type from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetNextHob (
+  UINT16                 Type,
+  CONST VOID             *HobStart
+  );
+
+/**
+  Returns the first instance of a HOB type among the whole HOB list.
+
+  This function searches the first instance of a HOB type among the whole HOB list.
+  If there does not exist such HOB type in the HOB list, it will return NULL.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+
+  @param  Type          The HOB type to return.
+
+  @return The next instance of a HOB type from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetFirstHob (
+  UINT16                 Type
+  );
+
+/**
+  Returns the next instance of the matched GUID HOB from the starting HOB.
+
+  This function searches the first instance of a HOB from the starting HOB pointer.
+  Such HOB should satisfy two conditions:
+  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
+  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
+  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
+  to extract the data section and its size info respectively.
+  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
+  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
+  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
+
+  If Guid is NULL, then ASSERT().
+  If HobStart is NULL, then ASSERT().
+
+  @param  Guid          The GUID to match with in the HOB list.
+  @param  HobStart      A pointer to a Guid.
+
+  @return The next instance of the matched GUID HOB from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetNextGuidHob (
+  CONST EFI_GUID         *Guid,
+  CONST VOID             *HobStart
+  );
+
+/**
+  Returns the first instance of the matched GUID HOB among the whole HOB list.
+
+  This function searches the first instance of a HOB among the whole HOB list.
+  Such HOB should satisfy two conditions:
+  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
+  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
+  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
+  to extract the data section and its size info respectively.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+  If Guid is NULL, then ASSERT().
+
+  @param  Guid          The GUID to match with in the HOB list.
+
+  @return The first instance of the matched GUID HOB among the whole HOB list.
+
+**/
+VOID *
+EFIAPI
+GetFirstGuidHob (
+  CONST EFI_GUID         *Guid
+  );
+
+/**
+  Compares two GUIDs.
+
+  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
+  If there are any bit differences in the two GUIDs, then FALSE is returned.
+
+  If Guid1 is NULL, then ASSERT().
+  If Guid2 is NULL, then ASSERT().
+
+  @param  Guid1       A pointer to a 128 bit GUID.
+  @param  Guid2       A pointer to a 128 bit GUID.
+
+  @retval TRUE        Guid1 and Guid2 are identical.
+  @retval FALSE       Guid1 and Guid2 are not identical.
+
+**/
+BOOLEAN
+EFIAPI
+CompareGuid (
+  CONST EFI_GUID  *Guid1,
+  CONST EFI_GUID  *Guid2
+  );
+
+/**
+  Reads a 64-bit value from memory that may be unaligned.
+
+  This function returns the 64-bit value pointed to by Buffer. The function
+  guarantees that the read operation does not produce an alignment fault.
+
+  If the Buffer is NULL, then ASSERT().
+
+  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
+
+  @return The 64-bit value read from Buffer.
+
+**/
+UINT64
+EFIAPI
+ReadUnaligned64 (
+  CONST UINT64              *Buffer
+  );
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspinfoheader.h b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspinfoheader.h
new file mode 100644
index 0000000..b277bcd
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspinfoheader.h
@@ -0,0 +1,62 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_INFO_HEADER_H_
+#define _FSP_INFO_HEADER_H_
+
+#pragma pack(1)
+
+typedef struct  {
+
+  UINT32  Signature;       // Off 0x94
+  UINT32  HeaderLength;
+  UINT8   Reserved1[3];
+  UINT8   HeaderRevision;
+  UINT32  ImageRevision;
+
+  CHAR8   ImageId[8];      // Off 0xA4
+  UINT32  ImageSize;
+  UINT32  ImageBase;
+
+  UINT32  ImageAttribute;  // Off 0xB4
+  UINT32  CfgRegionOffset;
+  UINT32  CfgRegionSize;
+  UINT32  ApiEntryNum;
+
+  UINT32  NemInitEntry;    // Off 0xC4
+  UINT32  FspInitEntry;
+  UINT32  NotifyPhaseEntry;
+  UINT32  Reserved2;
+
+} FSP_INFO_HEADER;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspplatform.h b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspplatform.h
new file mode 100644
index 0000000..81f7b66
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspplatform.h
@@ -0,0 +1,78 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_PLATFORM_H_
+#define _FSP_PLATFORM_H_
+
+#include "fsptypes.h"
+#include "fspapi.h"
+#include "azalia.h"
+
+#pragma pack(1)
+
+typedef struct {
+  FSP_INIT_RT_COMMON_BUFFER   Common;
+} FSP_INIT_RT_BUFFER;
+
+#pragma pack()
+
+//
+// Function prototypes for board_fsp.c
+//
+void
+GetFspReservedMemoryFromGuid (
+  uint32_t         *FspMemoryBase,
+  uint32_t         *FspMemoryLength,
+  EFI_GUID          FspReservedMemoryGuid
+  );
+
+void
+GetFspNVStorageMemory (
+  void         **FspNVStorageHob,
+  uint16_t     *DataSize
+  );
+
+void
+GetTempRamStack (
+  void         **TempRamStackPtr,
+  uint16_t     *DataSize
+  );
+
+void
+GetHighMemorySize (
+  uint64_t         *HighMemoryLength
+  );
+
+void
+GetLowMemorySize (
+  uint32_t         *LowMemoryLength
+  );
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fsptypes.h b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fsptypes.h
new file mode 100644
index 0000000..4a313ad
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fsptypes.h
@@ -0,0 +1,116 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+/** \file  fsptypes.h
+ *
+ *
+ */
+
+#ifndef __FSP_TYPES_H__
+#define __FSP_TYPES_H__
+
+///
+/// 8-byte unsigned value.
+///
+typedef unsigned long long  UINT64;
+///
+/// 8-byte signed value.
+///
+typedef long long           INT64;
+///
+/// 4-byte unsigned value.
+///
+typedef unsigned int        UINT32;
+///
+/// 4-byte signed value.
+///
+typedef int                 INT32;
+///
+/// 2-byte unsigned value.
+///
+typedef unsigned short      UINT16;
+///
+/// 2-byte Character.  Unless otherwise specified all strings are stored in the
+/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
+///
+typedef unsigned short      CHAR16;
+///
+/// 2-byte signed value.
+///
+typedef short               INT16;
+///
+/// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
+/// values are undefined.
+///
+typedef unsigned char       BOOLEAN;
+///
+/// 1-byte unsigned value.
+///
+typedef unsigned char       UINT8;
+///
+/// 1-byte Character
+///
+typedef char                CHAR8;
+///
+/// 1-byte signed value
+///
+typedef char                INT8;
+
+typedef void                VOID;
+
+typedef UINT64              EFI_PHYSICAL_ADDRESS;
+
+typedef struct {
+  UINT32  Data1;
+  UINT16  Data2;
+  UINT16  Data3;
+  UINT8   Data4[8];
+} EFI_GUID;
+
+#define CONST     const
+#define STATIC    static
+
+#define TRUE  ((BOOLEAN)(1==1))
+#define FALSE ((BOOLEAN)(0==1))
+
+#define FSPAPI __attribute__((cdecl))
+#define EFIAPI __attribute__((cdecl))
+
+#define ASSERT(Expression)      \
+  do {                          \
+    if (!(Expression)) {        \
+      for (;;);                 \
+    }                           \
+  } while (FALSE)
+
+typedef UINT32 FSP_STATUS;
+typedef UINT32 EFI_STATUS;
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspvpd.h b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspvpd.h
new file mode 100644
index 0000000..4bdcb79
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/include/fspvpd.h
@@ -0,0 +1,126 @@
+/**
+
+Copyright (C) 2013-2015 Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSPVPD_H__
+#define __FSPVPD_H__
+
+#pragma pack(1)
+
+typedef struct {
+  UINT8    EnableMemoryDown;
+  UINT8    DRAMSpeed;      /* DRAM Speed  */
+  UINT8    DRAMType;       /* DRAM Type */
+  UINT8    DIMM0Enable;    /* DIMM 0 Enable */
+  UINT8    DIMM1Enable;    /* DIMM 1 Enable */
+  UINT8    DIMMDWidth;     /* DRAM device data width */
+  UINT8    DIMMDensity;    /* DRAM device data density */
+  UINT8    DIMMBusWidth;   /* DIMM Bus Width */
+  UINT8    DIMMSides;      /* Ranks Per DIMM */
+  UINT8    DIMMtCL;        /* tCL */
+  UINT8    DIMMtRPtRCD;    /* tRP and tRCD in DRAM clk - 5:12.5ns, 6:15ns, etc. */
+  UINT8    DIMMtWR;        /* tWR in DRAM clk  */
+  UINT8    DIMMtWTR;       /* tWTR in DRAM clk */
+  UINT8    DIMMtRRD;       /* tRRD in DRAM clk */
+  UINT8    DIMMtRTP;       /* tRTP in DRAM clk */
+  UINT8    DIMMtFAW;       /* tFAW in DRAM clk */
+} MEMORY_DOWN_DATA;
+
+
+typedef struct _UPD_DATA_REGION {
+  UINT64                      Signature;                     /* Offset 0x0000 */
+  UINT32                      RESERVED1;                     /* Offset 0x0008 */
+  UINT8                       Padding0[20];                  /* Offset 0x000C */
+  UINT16                      PcdMrcInitTsegSize;            /* Offset 0x0020 */
+  UINT16                      PcdMrcInitMmioSize;            /* Offset 0x0022 */
+  UINT8                       PcdMrcInitSPDAddr1;            /* Offset 0x0024 */
+  UINT8                       PcdMrcInitSPDAddr2;            /* Offset 0x0025 */
+  UINT8                       PcdeMMCBootMode;               /* Offset 0x0026 */
+  UINT8                       PcdEnableSdio;                 /* Offset 0x0027 */
+  UINT8                       PcdEnableSdcard;               /* Offset 0x0028 */
+  UINT8                       PcdEnableHsuart0;              /* Offset 0x0029 */
+  UINT8                       PcdEnableHsuart1;              /* Offset 0x002A */
+  UINT8                       PcdEnableSpi;                  /* Offset 0x002B */
+  UINT8                       ReservedUpdSpace1;             /* Offset 0x002C */
+  UINT8                       PcdEnableSata;                 /* Offset 0x002D */
+  UINT8                       PcdSataMode;                   /* Offset 0x002E */
+  UINT8                       PcdEnableAzalia;               /* Offset 0x002F */
+  UINT32                      AzaliaConfigPtr;               /* Offset 0x0030 */
+  UINT8                       PcdEnableXhci;                 /* Offset 0x0034 */
+  UINT8                       PcdEnableLpe;                  /* Offset 0x0035 */
+  UINT8                       PcdLpssSioEnablePciMode;       /* Offset 0x0036 */
+  UINT8                       PcdEnableDma0;                 /* Offset 0x0037 */
+  UINT8                       PcdEnableDma1;                 /* Offset 0x0038 */
+  UINT8                       PcdEnableI2C0;                 /* Offset 0x0039 */
+  UINT8                       PcdEnableI2C1;                 /* Offset 0x003A */
+  UINT8                       PcdEnableI2C2;                 /* Offset 0x003B */
+  UINT8                       PcdEnableI2C3;                 /* Offset 0x003C */
+  UINT8                       PcdEnableI2C4;                 /* Offset 0x003D */
+  UINT8                       PcdEnableI2C5;                 /* Offset 0x003E */
+  UINT8                       PcdEnableI2C6;                 /* Offset 0x003F */
+  UINT8                       PcdEnablePwm0;                 /* Offset 0x0040 */
+  UINT8                       PcdEnablePwm1;                 /* Offset 0x0041 */
+  UINT8                       PcdEnableHsi;                  /* Offset 0x0042 */
+  UINT8                       PcdIgdDvmt50PreAlloc;          /* Offset 0x0043 */
+  UINT8                       PcdApertureSize;               /* Offset 0x0044 */
+  UINT8                       PcdGttSize;                    /* Offset 0x0045 */
+  UINT32                      SerialDebugPortAddress;        /* Offset 0x0046 */
+  UINT8                       SerialDebugPortType;           /* Offset 0x004A */
+  UINT8                       PcdMrcDebugMsg;                /* Offset 0x004B */
+  UINT8                       ISPEnable;                     /* Offset 0x004C */
+  UINT8                       PcdSccEnablePciMode;           /* Offset 0x004D */
+  UINT8                       IgdRenderStandby;              /* Offset 0x004E */
+  UINT8                       TxeUmaEnable;                  /* Offset 0x004F */
+  UINT8                       PcdOsSelection;                /* Offset 0x0050 */
+  UINT8                       PcdEMMC45DDR50Enabled;         /* Offset 0x0051 */
+  UINT8                       PcdEMMC45HS200Enabled;         /* Offset 0x0052 */
+  UINT8                       PcdEMMC45RetuneTimerValue;     /* Offset 0x0053 */
+  UINT8                       PcdEnableIgd;                  /* Offset 0x0054 */
+  UINT8                       AutoSelfRefreshEnable;         /* Offset 0x0055 */
+  UINT16                      APTaskTimeoutCnt;              /* Offset 0x0056 */
+  UINT8                       UnusedUpdSpace1[152];          /* Offset 0x0058 */
+  MEMORY_DOWN_DATA            PcdMemoryParameters;           /* Offset 0x00F0 */
+  UINT16                      PcdRegionTerminator;           /* Offset 0x0100 */
+} UPD_DATA_REGION;
+
+
+typedef struct _VPD_DATA_REGION {
+  UINT64   PcdVpdRegionSign;                      /* Offset 0x0000 */
+  UINT32   PcdImageRevision;                      /* Offset 0x0008 */
+  UINT32   PcdUpdRegionOffset;                    /* Offset 0x000C */
+  UINT8    Padding0[16];                          /* Offset 0x0010 */
+  UINT32   PcdFspReservedMemoryLength;            /* Offset 0x0020 */
+  UINT8    PcdPlatformType;                       /* Offset 0x0024 */
+  UINT8    PcdEnableSecureBoot;                   /* Offset 0x0025 */
+  UINT8    PcdMemoryParameters[16];               /* Offset 0x0026 */
+} VPD_DATA_REGION;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/srx/board_fsp.c b/src/vendorcode/intel/fsp/fsp1_0/baytrail/srx/board_fsp.c
new file mode 100644
index 0000000..2cb3492
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/srx/board_fsp.c
@@ -0,0 +1,186 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+/***********************************************************************
+ *
+ * board_fsp.c
+ *
+ * Parse HOB to get system data.
+ *
+ **********************************************************************/
+#include "fsp.h"
+
+void
+GetLowMemorySize (
+  uint32_t         *LowMemoryLength
+  )
+{
+  EFI_PEI_HOB_POINTERS    Hob;
+
+  *LowMemoryLength = 0x100000;
+
+  //
+  // Get the HOB list for processing
+  //
+  Hob.Raw = GetHobList();
+
+  //
+  // Collect memory ranges
+  //
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
+      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
+        //
+        // Need memory above 1MB to be collected here
+        //
+        if (Hob.ResourceDescriptor->PhysicalStart >= 0x100000 &&
+            Hob.ResourceDescriptor->PhysicalStart < (EFI_PHYSICAL_ADDRESS) 0x100000000) {
+          *LowMemoryLength += (uint32_t) (Hob.ResourceDescriptor->ResourceLength);
+        }
+      }
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+
+  return;
+}
+
+void
+GetHighMemorySize (
+  uint64_t         *HighMemoryLength
+  )
+{
+  EFI_PEI_HOB_POINTERS    Hob;
+
+  *HighMemoryLength = 0x0;
+
+  //
+  // Get the HOB list for processing
+  //
+  Hob.Raw = GetHobList();
+
+  //
+  // Collect memory ranges
+  //
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
+      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
+        //
+        // Need memory above 4GB to be collected here
+        //
+        if (Hob.ResourceDescriptor->PhysicalStart >= (EFI_PHYSICAL_ADDRESS) 0x100000000) {
+          *HighMemoryLength += (uint64_t) (Hob.ResourceDescriptor->ResourceLength);
+        }
+      }
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+
+  return;
+}
+
+void
+GetFspReservedMemoryFromGuid (
+  uint32_t         *FspMemoryBase,
+  uint32_t         *FspMemoryLength,
+  EFI_GUID          FspReservedMemoryGuid
+  )
+{
+  EFI_PEI_HOB_POINTERS    Hob;
+
+  //
+  // Get the HOB list for processing
+  //
+  Hob.Raw = GetHobList();
+  *FspMemoryBase = 0;
+  *FspMemoryLength = 0;
+
+  //
+  // Collect memory ranges
+  //
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
+      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED) {
+        if (CompareGuid(&Hob.ResourceDescriptor->Owner, &FspReservedMemoryGuid)) {
+          *FspMemoryBase = (uint32_t) (Hob.ResourceDescriptor->PhysicalStart);
+          *FspMemoryLength = (uint32_t) (Hob.ResourceDescriptor->ResourceLength);
+		      break;
+        }
+      }
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+
+  return;
+}
+
+void
+GetFspNVStorageMemory (
+  VOID         **FspNVStorageHob,
+  uint16_t     *DataSize
+  )
+{
+
+  EFI_GUID                FspNVStorageHobGuid = FSP_NON_VOLATILE_STORAGE_HOB_GUID;
+  uint8_t                 *GuidHob;
+  EFI_HOB_GENERIC_HEADER  *GuidHobHdr;
+
+  GuidHob = GetFirstGuidHob(&FspNVStorageHobGuid);
+  if (!GuidHob) {
+    *FspNVStorageHob = 0;
+    *DataSize = 0;
+  } else {
+    *FspNVStorageHob = GET_GUID_HOB_DATA (GuidHob);
+    GuidHobHdr = (EFI_HOB_GENERIC_HEADER *)GuidHob;
+    *DataSize =  GET_GUID_HOB_DATA_SIZE (GuidHobHdr);
+  }
+}
+
+void
+GetTempRamStack (
+  VOID         **TempRamStackPtr,
+  uint16_t     *DataSize
+  )
+{
+
+  EFI_GUID                FspBootloaderTemporaryMemoryHobGuid = FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID;
+  uint8_t                 *GuidHob;
+  EFI_HOB_GENERIC_HEADER  *GuidHobHdr;
+
+  GuidHob = GetFirstGuidHob(&FspBootloaderTemporaryMemoryHobGuid);
+  if (!GuidHob) {
+    *TempRamStackPtr = 0;
+    *DataSize = 0;
+  } else {
+    *TempRamStackPtr = GET_GUID_HOB_DATA (GuidHob);
+    GuidHobHdr = (EFI_HOB_GENERIC_HEADER *)GuidHob;
+    *DataSize =  GET_GUID_HOB_DATA_SIZE (GuidHobHdr);
+  }
+}
diff --git a/src/vendorcode/intel/fsp/fsp1_0/baytrail/srx/fsphob.c b/src/vendorcode/intel/fsp/fsp1_0/baytrail/srx/fsphob.c
new file mode 100644
index 0000000..5d6e890
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/baytrail/srx/fsphob.c
@@ -0,0 +1,198 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+/***********************************************************************
+ *
+ * fsphob.c
+ *
+ * HOB infrastructure code.
+ *
+ **********************************************************************/
+#include <string.h>
+
+#include "fsptypes.h"
+#include "fsphob.h"
+
+//
+// Pointer to the HOB should be initialized with the output of FSP INIT PARAMS
+//
+extern volatile void *FspHobListPtr;
+
+/**
+  Reads a 64-bit value from memory that may be unaligned.
+
+  This function returns the 64-bit value pointed to by Buffer. The function
+  guarantees that the read operation does not produce an alignment fault.
+
+  If the Buffer is NULL, then ASSERT().
+
+  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
+
+  @return The 64-bit value read from Buffer.
+
+**/
+UINT64
+EFIAPI
+ReadUnaligned64 (
+  CONST UINT64              *Buffer
+  )
+{
+  ASSERT (Buffer != NULL);
+
+  return *Buffer;
+}
+
+/**
+  Compares two GUIDs.
+
+  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
+  If there are any bit differences in the two GUIDs, then FALSE is returned.
+
+  If Guid1 is NULL, then ASSERT().
+  If Guid2 is NULL, then ASSERT().
+
+  @param  Guid1       A pointer to a 128 bit GUID.
+  @param  Guid2       A pointer to a 128 bit GUID.
+
+  @retval TRUE        Guid1 and Guid2 are identical.
+  @retval FALSE       Guid1 and Guid2 are not identical.
+
+**/
+BOOLEAN
+EFIAPI
+CompareGuid (
+  CONST EFI_GUID  *Guid1,
+  CONST EFI_GUID  *Guid2
+  )
+{
+  UINT64  LowPartOfGuid1;
+  UINT64  LowPartOfGuid2;
+  UINT64  HighPartOfGuid1;
+  UINT64  HighPartOfGuid2;
+
+  LowPartOfGuid1  = ReadUnaligned64 ((CONST UINT64*) Guid1);
+  LowPartOfGuid2  = ReadUnaligned64 ((CONST UINT64*) Guid2);
+  HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1);
+  HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1);
+
+  return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2);
+}
+
+/**
+  Returns the pointer to the HOB list.
+**/
+VOID *
+EFIAPI
+GetHobList (
+  VOID
+  )
+{
+  ASSERT (FspHobListPtr != NULL);
+  return ((VOID *)FspHobListPtr);
+}
+
+/**
+  Returns the next instance of a HOB type from the starting HOB.
+**/
+VOID *
+EFIAPI
+GetNextHob (
+  UINT16                 Type,
+  CONST VOID             *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  Hob;
+
+  ASSERT (HobStart != NULL);
+
+  Hob.Raw = (UINT8 *) HobStart;
+  //
+  // Parse the HOB list until end of list or matching type is found.
+  //
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == Type) {
+      return Hob.Raw;
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+  return NULL;
+}
+
+/**
+  Returns the first instance of a HOB type among the whole HOB list.
+**/
+VOID *
+EFIAPI
+GetFirstHob (
+  UINT16                 Type
+  )
+{
+  VOID      *HobList;
+
+  HobList = GetHobList ();
+  return GetNextHob (Type, HobList);
+}
+
+/**
+  Returns the next instance of the matched GUID HOB from the starting HOB.
+**/
+VOID *
+EFIAPI
+GetNextGuidHob (
+  CONST EFI_GUID         *Guid,
+  CONST VOID             *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  GuidHob;
+
+  GuidHob.Raw = (UINT8 *) HobStart;
+  while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
+    if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
+      break;
+    }
+    GuidHob.Raw = GET_NEXT_HOB (GuidHob);
+  }
+  return GuidHob.Raw;
+}
+
+/**
+  Returns the first instance of the matched GUID HOB among the whole HOB list.
+**/
+VOID *
+EFIAPI
+GetFirstGuidHob (
+  CONST EFI_GUID         *Guid
+  )
+{
+  VOID      *HobList;
+
+  HobList = GetHobList ();
+  return GetNextGuidHob (Guid, HobList);
+}
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fsp.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fsp.h
new file mode 100644
index 0000000..22d2ee9
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fsp.h
@@ -0,0 +1,45 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_H__
+#define __FSP_H__
+
+#include "fsptypes.h"
+#include "fspfv.h"
+#include "fspffs.h"
+#include "fspapi.h"
+#include "fsphob.h"
+#include "fspplatform.h"
+#include "fspinfoheader.h"
+#include "fspbootmode.h"
+#include "fspvpd.h"
+#include "fspsupport.h"
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspapi.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspapi.h
new file mode 100644
index 0000000..0211e26
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspapi.h
@@ -0,0 +1,107 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_API_H__
+#define __FSP_API_H__
+
+///
+/// FSP Init continuation function prototype.
+/// Control will be returned to this callback function after FspInit API call.
+///
+typedef VOID       (FSPAPI *CONTINUATION_PROC)  (EFI_STATUS Status,  VOID *HobListPtr);
+
+#pragma pack(1)
+
+typedef struct {
+  ///
+  /// Non-volatile storage buffer pointer.
+  ///
+  VOID               *NvsBufferPtr;
+  ///
+  /// Runtime buffer pointer
+  ///
+  VOID               *RtBufferPtr;
+  ///
+  /// Continuation function address
+  ///
+  CONTINUATION_PROC   ContinuationFunc;
+} FSP_INIT_PARAMS;
+
+typedef struct {
+  ///
+  /// Stack top pointer used by the bootloader.
+  /// The new stack frame will be set up at this location after FspInit API call.
+  ///
+  UINT32             *StackTop;
+  ///
+  /// Current system boot mode.
+  ///
+  UINT32              BootMode;
+  ///
+  /// User platform configuraiton data region pointer.
+  ///
+  VOID               *UpdDataRgnPtr;
+  ///
+  /// Reserved
+  ///
+  UINT32              Reserved[7];
+} FSP_INIT_RT_COMMON_BUFFER;
+
+typedef enum {
+  ///
+  /// Notification code for post PCI enuermation
+  ///
+  EnumInitPhaseAfterPciEnumeration = 0x20,
+  ///
+  /// Notification code before transfering control to the payload
+  ///
+  EnumInitPhaseReadyToBoot         = 0x40
+} FSP_INIT_PHASE;
+
+typedef struct {
+  ///
+  /// Notification phase used for NotifyPhase API
+  ///
+  FSP_INIT_PHASE     Phase;
+} NOTIFY_PHASE_PARAMS;
+
+#pragma pack()
+
+///
+/// FspInit API function prototype
+///
+typedef FSP_STATUS (FSPAPI *FSP_FSP_INIT)       (FSP_INIT_PARAMS     *FspInitParamPtr);
+
+///
+/// NotifyPhase API function prototype
+///
+typedef FSP_STATUS (FSPAPI *FSP_NOTFY_PHASE)    (NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr);
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspbootmode.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspbootmode.h
new file mode 100644
index 0000000..f3c121b
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspbootmode.h
@@ -0,0 +1,45 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_BOOTMODE_H__
+#define __FSP_BOOTMODE_H__
+
+///
+/// EFI boot mode
+///
+typedef UINT32  EFI_BOOT_MODE;
+
+//
+// 0x21 - 0xf..f are reserved.
+//
+#define BOOT_WITH_FULL_CONFIGURATION                  0x00
+#define BOOT_ON_S3_RESUME                             0x11
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspffs.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspffs.h
new file mode 100644
index 0000000..9c4e669
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspffs.h
@@ -0,0 +1,506 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_FFS_H__
+#define __FSP_FFS_H__
+
+#pragma pack(1)
+///
+/// Used to verify the integrity of the file.
+///
+typedef union {
+  struct {
+    ///
+    /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
+    /// header. The State and IntegrityCheck.Checksum.File fields are assumed
+    /// to be zero and the checksum is calculated such that the entire header sums to zero.
+    ///
+    UINT8   Header;
+    ///
+    /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
+    /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
+    /// checksum of the file data.
+    /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
+    /// the IntegrityCheck.Checksum.File field must be initialized with a value of
+    /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
+    /// EFI_FILE_DATA_VALID bit is set in the State field.
+    ///
+    UINT8   File;
+  } Checksum;
+  ///
+  /// This is the full 16 bits of the IntegrityCheck field.
+  ///
+  UINT16    Checksum16;
+} EFI_FFS_INTEGRITY_CHECK;
+
+///
+/// FFS_FIXED_CHECKSUM is the checksum value used when the
+/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
+///
+#define FFS_FIXED_CHECKSUM  0xAA
+
+typedef UINT8 EFI_FV_FILETYPE;
+typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
+typedef UINT8 EFI_FFS_FILE_STATE;
+
+///
+/// File Types Definitions
+///
+#define EFI_FV_FILETYPE_ALL                   0x00
+#define EFI_FV_FILETYPE_RAW                   0x01
+#define EFI_FV_FILETYPE_FREEFORM              0x02
+#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
+#define EFI_FV_FILETYPE_PEI_CORE              0x04
+#define EFI_FV_FILETYPE_DXE_CORE              0x05
+#define EFI_FV_FILETYPE_PEIM                  0x06
+#define EFI_FV_FILETYPE_DRIVER                0x07
+#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
+#define EFI_FV_FILETYPE_APPLICATION           0x09
+#define EFI_FV_FILETYPE_SMM                   0x0A
+#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
+#define EFI_FV_FILETYPE_COMBINED_SMM_DXE      0x0C
+#define EFI_FV_FILETYPE_SMM_CORE              0x0D
+#define EFI_FV_FILETYPE_OEM_MIN               0xc0
+#define EFI_FV_FILETYPE_OEM_MAX               0xdf
+#define EFI_FV_FILETYPE_DEBUG_MIN             0xe0
+#define EFI_FV_FILETYPE_DEBUG_MAX             0xef
+#define EFI_FV_FILETYPE_FFS_MIN               0xf0
+#define EFI_FV_FILETYPE_FFS_MAX               0xff
+#define EFI_FV_FILETYPE_FFS_PAD               0xf0
+
+///
+/// FFS File Attributes.
+///
+#define FFS_ATTRIB_LARGE_FILE         0x01
+#define FFS_ATTRIB_FIXED              0x04
+#define FFS_ATTRIB_DATA_ALIGNMENT     0x38
+#define FFS_ATTRIB_CHECKSUM           0x40
+
+///
+/// FFS File State Bits.
+///
+#define EFI_FILE_HEADER_CONSTRUCTION  0x01
+#define EFI_FILE_HEADER_VALID         0x02
+#define EFI_FILE_DATA_VALID           0x04
+#define EFI_FILE_MARKED_FOR_UPDATE    0x08
+#define EFI_FILE_DELETED              0x10
+#define EFI_FILE_HEADER_INVALID       0x20
+
+
+///
+/// Each file begins with the header that describe the
+/// contents and state of the files.
+///
+typedef struct {
+  ///
+  /// This GUID is the file name. It is used to uniquely identify the file.
+  ///
+  EFI_GUID                Name;
+  ///
+  /// Used to verify the integrity of the file.
+  ///
+  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
+  ///
+  /// Identifies the type of file.
+  ///
+  EFI_FV_FILETYPE         Type;
+  ///
+  /// Declares various file attribute bits.
+  ///
+  EFI_FFS_FILE_ATTRIBUTES Attributes;
+  ///
+  /// The length of the file in bytes, including the FFS header.
+  ///
+  UINT8                   Size[3];
+  ///
+  /// Used to track the state of the file throughout the life of the file from creation to deletion.
+  ///
+  EFI_FFS_FILE_STATE      State;
+} EFI_FFS_FILE_HEADER;
+
+typedef struct {
+  ///
+  /// This GUID is the file name. It is used to uniquely identify the file. There may be only
+  /// one instance of a file with the file name GUID of Name in any given firmware
+  /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
+  ///
+  EFI_GUID                  Name;
+
+  ///
+  /// Used to verify the integrity of the file.
+  ///
+  EFI_FFS_INTEGRITY_CHECK   IntegrityCheck;
+
+  ///
+  /// Identifies the type of file.
+  ///
+  EFI_FV_FILETYPE           Type;
+
+  ///
+  /// Declares various file attribute bits.
+  ///
+  EFI_FFS_FILE_ATTRIBUTES   Attributes;
+
+  ///
+  /// The length of the file in bytes, including the FFS header.
+  /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
+  /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
+  /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
+  /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
+  ///
+  UINT8                     Size[3];
+
+  ///
+  /// Used to track the state of the file throughout the life of the file from creation to deletion.
+  ///
+  EFI_FFS_FILE_STATE        State;
+
+  ///
+  /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
+  /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
+  ///
+  UINT32                    ExtendedSize;
+} EFI_FFS_FILE_HEADER2;
+
+#define IS_FFS_FILE2(FfsFileHeaderPtr) \
+    (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
+
+#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
+
+#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
+    (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
+
+typedef UINT8 EFI_SECTION_TYPE;
+
+///
+/// Pseudo type. It is used as a wild card when retrieving sections.
+///  The section type EFI_SECTION_ALL matches all section types.
+///
+#define EFI_SECTION_ALL                   0x00
+
+///
+/// Encapsulation section Type values.
+///
+#define EFI_SECTION_COMPRESSION           0x01
+
+#define EFI_SECTION_GUID_DEFINED          0x02
+
+#define EFI_SECTION_DISPOSABLE            0x03
+
+///
+/// Leaf section Type values.
+///
+#define EFI_SECTION_PE32                  0x10
+#define EFI_SECTION_PIC                   0x11
+#define EFI_SECTION_TE                    0x12
+#define EFI_SECTION_DXE_DEPEX             0x13
+#define EFI_SECTION_VERSION               0x14
+#define EFI_SECTION_USER_INTERFACE        0x15
+#define EFI_SECTION_COMPATIBILITY16       0x16
+#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
+#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
+#define EFI_SECTION_RAW                   0x19
+#define EFI_SECTION_PEI_DEPEX             0x1B
+#define EFI_SECTION_SMM_DEPEX             0x1C
+
+///
+/// Common section header.
+///
+typedef struct {
+  ///
+  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+  /// including the EFI_COMMON_SECTION_HEADER.
+  ///
+  UINT8             Size[3];
+  EFI_SECTION_TYPE  Type;
+  ///
+  /// Declares the section type.
+  ///
+} EFI_COMMON_SECTION_HEADER;
+
+typedef struct {
+  ///
+  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+  /// including the EFI_COMMON_SECTION_HEADER.
+  ///
+  UINT8             Size[3];
+
+  EFI_SECTION_TYPE  Type;
+
+  ///
+  /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
+  /// Size is not equal to 0xFFFFFF, then this field does not exist.
+  ///
+  UINT32            ExtendedSize;
+} EFI_COMMON_SECTION_HEADER2;
+
+///
+/// Leaf section type that contains an
+/// IA-32 16-bit executable image.
+///
+typedef EFI_COMMON_SECTION_HEADER  EFI_COMPATIBILITY16_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
+
+///
+/// CompressionType of EFI_COMPRESSION_SECTION.
+///
+#define EFI_NOT_COMPRESSED        0x00
+#define EFI_STANDARD_COMPRESSION  0x01
+///
+/// An encapsulation section type in which the
+/// section data is compressed.
+///
+typedef struct {
+  ///
+  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// The UINT32 that indicates the size of the section data after decompression.
+  ///
+  UINT32                      UncompressedLength;
+  ///
+  /// Indicates which compression algorithm is used.
+  ///
+  UINT8                       CompressionType;
+} EFI_COMPRESSION_SECTION;
+
+typedef struct {
+  ///
+  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// UINT32 that indicates the size of the section data after decompression.
+  ///
+  UINT32                        UncompressedLength;
+  ///
+  /// Indicates which compression algorithm is used.
+  ///
+  UINT8                         CompressionType;
+} EFI_COMPRESSION_SECTION2;
+
+///
+/// An encapsulation section type in which the section data is disposable.
+/// A disposable section is an encapsulation section in which the section data may be disposed of during
+/// the process of creating or updating a firmware image without significant impact on the usefulness of
+/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
+/// allows optional or descriptive data to be included with the firmware file which can be removed in
+/// order to conserve space. The contents of this section are implementation specific, but might contain
+/// debug data or detailed integration instructions.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_DISPOSABLE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_DISPOSABLE_SECTION2;
+
+///
+/// The leaf section which could be used to determine the dispatch order of DXEs.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_DXE_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_DXE_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a PI FV.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
+
+///
+/// The leaf section which contains a single GUID.
+///
+typedef struct {
+  ///
+  /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+  ///
+  EFI_GUID                    SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
+
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+  ///
+  EFI_GUID                      SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
+
+///
+/// Attributes of EFI_GUID_DEFINED_SECTION.
+///
+#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED  0x01
+#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID    0x02
+///
+/// The leaf section which is encapsulation defined by specific GUID.
+///
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+  ///
+  EFI_GUID                    SectionDefinitionGuid;
+  ///
+  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+  ///
+  UINT16                      DataOffset;
+  ///
+  /// The bit field that declares some specific characteristics of the section contents.
+  ///
+  UINT16                      Attributes;
+} EFI_GUID_DEFINED_SECTION;
+
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+  ///
+  EFI_GUID                      SectionDefinitionGuid;
+  ///
+  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+  ///
+  UINT16                        DataOffset;
+  ///
+  /// The bit field that declares some specific characteristics of the section contents.
+  ///
+  UINT16                        Attributes;
+} EFI_GUID_DEFINED_SECTION2;
+
+///
+/// The leaf section which contains PE32+ image.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PE32_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PE32_SECTION2;
+
+///
+/// The leaf section used to determine the dispatch order of PEIMs.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PEI_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PEI_DEPEX_SECTION2;
+
+///
+/// A leaf section type that contains a position-independent-code (PIC) image.
+/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
+/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
+/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
+/// relocation information has been stripped from the image and the image can be moved and will
+/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
+/// be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PIC_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PIC_SECTION2;
+
+///
+/// The leaf section which constains the position-independent-code image.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_TE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_TE_SECTION2;
+
+///
+/// The leaf section which contains an array of zero or more bytes.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_RAW_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_RAW_SECTION2;
+
+///
+/// The SMM dependency expression section is a leaf section that contains a dependency expression that
+/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
+/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
+/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
+/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
+/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a unicode string that
+/// is human readable file name.
+///
+typedef struct {
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+
+  ///
+  /// Array of unicode string.
+  ///
+  CHAR16                      FileNameString[1];
+} EFI_USER_INTERFACE_SECTION;
+
+typedef struct {
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  CHAR16                        FileNameString[1];
+} EFI_USER_INTERFACE_SECTION2;
+
+///
+/// The leaf section which contains a numeric build number and
+/// an optional unicode string that represents the file revision.
+///
+typedef struct {
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  UINT16                      BuildNumber;
+
+  ///
+  /// Array of unicode string.
+  ///
+  CHAR16                      VersionString[1];
+} EFI_VERSION_SECTION;
+
+typedef struct {
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// A UINT16 that represents a particular build. Subsequent builds have monotonically
+  /// increasing build numbers relative to earlier builds.
+  ///
+  UINT16                        BuildNumber;
+  CHAR16                        VersionString[1];
+} EFI_VERSION_SECTION2;
+
+#define IS_SECTION2(SectionHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
+
+#define SECTION_SIZE(SectionHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
+
+#define SECTION2_SIZE(SectionHeaderPtr) \
+    (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspfv.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspfv.h
new file mode 100644
index 0000000..5696a78
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspfv.h
@@ -0,0 +1,247 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_FV___
+#define __FSP_FV___
+
+///
+/// EFI_FV_FILE_ATTRIBUTES
+///
+typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
+
+//
+// Value of EFI_FV_FILE_ATTRIBUTES.
+//
+#define EFI_FV_FILE_ATTRIB_ALIGNMENT      0x0000001F
+#define EFI_FV_FILE_ATTRIB_FIXED          0x00000100
+#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED  0x00000200
+
+///
+/// type of EFI FVB attribute
+///
+typedef UINT32  EFI_FVB_ATTRIBUTES_2;
+
+//
+// Attributes bit definitions
+//
+#define EFI_FVB2_READ_DISABLED_CAP  0x00000001
+#define EFI_FVB2_READ_ENABLED_CAP   0x00000002
+#define EFI_FVB2_READ_STATUS        0x00000004
+#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
+#define EFI_FVB2_WRITE_ENABLED_CAP  0x00000010
+#define EFI_FVB2_WRITE_STATUS       0x00000020
+#define EFI_FVB2_LOCK_CAP           0x00000040
+#define EFI_FVB2_LOCK_STATUS        0x00000080
+#define EFI_FVB2_STICKY_WRITE       0x00000200
+#define EFI_FVB2_MEMORY_MAPPED      0x00000400
+#define EFI_FVB2_ERASE_POLARITY     0x00000800
+#define EFI_FVB2_READ_LOCK_CAP      0x00001000
+#define EFI_FVB2_READ_LOCK_STATUS   0x00002000
+#define EFI_FVB2_WRITE_LOCK_CAP     0x00004000
+#define EFI_FVB2_WRITE_LOCK_STATUS  0x00008000
+#define EFI_FVB2_ALIGNMENT          0x001F0000
+#define EFI_FVB2_ALIGNMENT_1        0x00000000
+#define EFI_FVB2_ALIGNMENT_2        0x00010000
+#define EFI_FVB2_ALIGNMENT_4        0x00020000
+#define EFI_FVB2_ALIGNMENT_8        0x00030000
+#define EFI_FVB2_ALIGNMENT_16       0x00040000
+#define EFI_FVB2_ALIGNMENT_32       0x00050000
+#define EFI_FVB2_ALIGNMENT_64       0x00060000
+#define EFI_FVB2_ALIGNMENT_128      0x00070000
+#define EFI_FVB2_ALIGNMENT_256      0x00080000
+#define EFI_FVB2_ALIGNMENT_512      0x00090000
+#define EFI_FVB2_ALIGNMENT_1K       0x000A0000
+#define EFI_FVB2_ALIGNMENT_2K       0x000B0000
+#define EFI_FVB2_ALIGNMENT_4K       0x000C0000
+#define EFI_FVB2_ALIGNMENT_8K       0x000D0000
+#define EFI_FVB2_ALIGNMENT_16K      0x000E0000
+#define EFI_FVB2_ALIGNMENT_32K      0x000F0000
+#define EFI_FVB2_ALIGNMENT_64K      0x00100000
+#define EFI_FVB2_ALIGNMENT_128K     0x00110000
+#define EFI_FVB2_ALIGNMENT_256K     0x00120000
+#define EFI_FVB2_ALIGNMENT_512K     0x00130000
+#define EFI_FVB2_ALIGNMENT_1M       0x00140000
+#define EFI_FVB2_ALIGNMENT_2M       0x00150000
+#define EFI_FVB2_ALIGNMENT_4M       0x00160000
+#define EFI_FVB2_ALIGNMENT_8M       0x00170000
+#define EFI_FVB2_ALIGNMENT_16M      0x00180000
+#define EFI_FVB2_ALIGNMENT_32M      0x00190000
+#define EFI_FVB2_ALIGNMENT_64M      0x001A0000
+#define EFI_FVB2_ALIGNMENT_128M     0x001B0000
+#define EFI_FVB2_ALIGNMENT_256M     0x001C0000
+#define EFI_FVB2_ALIGNMENT_512M     0x001D0000
+#define EFI_FVB2_ALIGNMENT_1G       0x001E0000
+#define EFI_FVB2_ALIGNMENT_2G       0x001F0000
+
+
+typedef struct {
+  ///
+  /// The number of sequential blocks which are of the same size.
+  ///
+  UINT32 NumBlocks;
+  ///
+  /// The size of the blocks.
+  ///
+  UINT32 Length;
+} EFI_FV_BLOCK_MAP_ENTRY;
+
+///
+/// Describes the features and layout of the firmware volume.
+///
+typedef struct {
+  ///
+  /// The first 16 bytes are reserved to allow for the reset vector of
+  /// processors whose reset vector is at address 0.
+  ///
+  UINT8                     ZeroVector[16];
+  ///
+  /// Declares the file system with which the firmware volume is formatted.
+  ///
+  EFI_GUID                  FileSystemGuid;
+  ///
+  /// Length in bytes of the complete firmware volume, including the header.
+  ///
+  UINT64                    FvLength;
+  ///
+  /// Set to EFI_FVH_SIGNATURE
+  ///
+  UINT32                    Signature;
+  ///
+  /// Declares capabilities and power-on defaults for the firmware volume.
+  ///
+  EFI_FVB_ATTRIBUTES_2      Attributes;
+  ///
+  /// Length in bytes of the complete firmware volume header.
+  ///
+  UINT16                    HeaderLength;
+  ///
+  /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
+  ///
+  UINT16                    Checksum;
+  ///
+  /// Offset, relative to the start of the header, of the extended header
+  /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
+  ///
+  UINT16                    ExtHeaderOffset;
+  ///
+  /// This field must always be set to zero.
+  ///
+  UINT8                     Reserved[1];
+  ///
+  /// Set to 2. Future versions of this specification may define new header fields and will
+  /// increment the Revision field accordingly.
+  ///
+  UINT8                     Revision;
+  ///
+  /// An array of run-length encoded FvBlockMapEntry structures. The array is
+  /// terminated with an entry of {0,0}.
+  ///
+  EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
+} EFI_FIRMWARE_VOLUME_HEADER;
+
+#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
+
+///
+/// Firmware Volume Header Revision definition
+///
+#define EFI_FVH_REVISION  0x02
+
+///
+/// Extension header pointed by ExtHeaderOffset of volume header.
+///
+typedef struct {
+  ///
+  /// Firmware volume name.
+  ///
+  EFI_GUID  FvName;
+  ///
+  /// Size of the rest of the extension header, including this structure.
+  ///
+  UINT32    ExtHeaderSize;
+} EFI_FIRMWARE_VOLUME_EXT_HEADER;
+
+///
+/// Entry struture for describing FV extension header
+///
+typedef struct {
+  ///
+  /// Size of this header extension.
+  ///
+  UINT16    ExtEntrySize;
+  ///
+  /// Type of the header.
+  ///
+  UINT16    ExtEntryType;
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
+
+#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
+///
+/// This extension header provides a mapping between a GUID and an OEM file type.
+///
+typedef struct {
+  ///
+  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+  ///
+  EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
+  ///
+  /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
+  /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
+  ///
+  UINT32    TypeMask;
+  ///
+  /// An array of GUIDs, each GUID representing an OEM file type.
+  ///
+  /// EFI_GUID  Types[1];
+  ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
+
+#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002
+
+///
+/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
+/// GUID FormatType type which includes a length and a successive series of data bytes.
+///
+typedef struct {
+  ///
+  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+  ///
+  EFI_FIRMWARE_VOLUME_EXT_ENTRY     Hdr;
+  ///
+  /// Vendor-specific GUID.
+  ///
+  EFI_GUID                          FormatType;
+  ///
+  /// An arry of bytes of length Length.
+  ///
+  /// UINT8                             Data[1];
+  ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fsphob.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fsphob.h
new file mode 100644
index 0000000..59e34ef
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fsphob.h
@@ -0,0 +1,427 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_HOB_H__
+#define __FSP_HOB_H__
+
+//
+// HobType of EFI_HOB_GENERIC_HEADER.
+//
+#define EFI_HOB_TYPE_MEMORY_ALLOCATION    0x0002
+#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
+#define EFI_HOB_TYPE_GUID_EXTENSION       0x0004
+#define EFI_HOB_TYPE_UNUSED               0xFFFE
+#define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF
+
+///
+/// Describes the format and size of the data inside the HOB.
+/// All HOBs must contain this generic HOB header.
+///
+typedef struct {
+  ///
+  /// Identifies the HOB data structure type.
+  ///
+  UINT16    HobType;
+  ///
+  /// The length in bytes of the HOB.
+  ///
+  UINT16    HobLength;
+  ///
+  /// This field must always be set to zero.
+  ///
+  UINT32    Reserved;
+} EFI_HOB_GENERIC_HEADER;
+
+///
+/// Enumeration of memory types introduced in UEFI.
+///
+typedef enum {
+  ///
+  /// Not used.
+  ///
+  EfiReservedMemoryType,
+  ///
+  /// The code portions of a loaded application.
+  /// (Note that UEFI OS loaders are UEFI applications.)
+  ///
+  EfiLoaderCode,
+  ///
+  /// The data portions of a loaded application and the default data allocation
+  /// type used by an application to allocate pool memory.
+  ///
+  EfiLoaderData,
+  ///
+  /// The code portions of a loaded Boot Services Driver.
+  ///
+  EfiBootServicesCode,
+  ///
+  /// The data portions of a loaded Boot Serves Driver, and the default data
+  /// allocation type used by a Boot Services Driver to allocate pool memory.
+  ///
+  EfiBootServicesData,
+  ///
+  /// The code portions of a loaded Runtime Services Driver.
+  ///
+  EfiRuntimeServicesCode,
+  ///
+  /// The data portions of a loaded Runtime Services Driver and the default
+  /// data allocation type used by a Runtime Services Driver to allocate pool memory.
+  ///
+  EfiRuntimeServicesData,
+  ///
+  /// Free (unallocated) memory.
+  ///
+  EfiConventionalMemory,
+  ///
+  /// Memory in which errors have been detected.
+  ///
+  EfiUnusableMemory,
+  ///
+  /// Memory that holds the ACPI tables.
+  ///
+  EfiACPIReclaimMemory,
+  ///
+  /// Address space reserved for use by the firmware.
+  ///
+  EfiACPIMemoryNVS,
+  ///
+  /// Used by system firmware to request that a memory-mapped IO region
+  /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
+  ///
+  EfiMemoryMappedIO,
+  ///
+  /// System memory-mapped IO region that is used to translate memory
+  /// cycles to IO cycles by the processor.
+  ///
+  EfiMemoryMappedIOPortSpace,
+  ///
+  /// Address space reserved by the firmware for code that is part of the processor.
+  ///
+  EfiPalCode,
+  EfiMaxMemoryType
+} EFI_MEMORY_TYPE;
+
+///
+/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
+/// various attributes of the logical memory allocation. The type field will be used for
+/// subsequent inclusion in the UEFI memory map.
+///
+typedef struct {
+  ///
+  /// A GUID that defines the memory allocation region's type and purpose, as well as
+  /// other fields within the memory allocation HOB. This GUID is used to define the
+  /// additional data within the HOB that may be present for the memory allocation HOB.
+  /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
+  /// specification.
+  ///
+  EFI_GUID              Name;
+
+  ///
+  /// The base address of memory allocated by this HOB. Type
+  /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
+  /// specification.
+  ///
+  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
+
+  ///
+  /// The length in bytes of memory allocated by this HOB.
+  ///
+  UINT64                MemoryLength;
+
+  ///
+  /// Defines the type of memory allocated by this HOB. The memory type definition
+  /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
+  /// in AllocatePages() in the UEFI 2.0 specification.
+  ///
+  EFI_MEMORY_TYPE       MemoryType;
+
+  ///
+  /// Padding for Itanium processor family
+  ///
+  UINT8                 Reserved[4];
+} EFI_HOB_MEMORY_ALLOCATION_HEADER;
+
+///
+/// Describes all memory ranges used during the HOB producer
+/// phase that exist outside the HOB list. This HOB type
+/// describes how memory is used, not the physical attributes of memory.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
+  ///
+  EFI_HOB_GENERIC_HEADER            Header;
+  ///
+  /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
+  /// various attributes of the logical memory allocation.
+  ///
+  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
+  //
+  // Additional data pertaining to the "Name" Guid memory
+  // may go here.
+  //
+} EFI_HOB_MEMORY_ALLOCATION;
+
+///
+/// The resource type.
+///
+typedef UINT32 EFI_RESOURCE_TYPE;
+
+//
+// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
+//
+#define EFI_RESOURCE_SYSTEM_MEMORY          0x00000000
+#define EFI_RESOURCE_MEMORY_MAPPED_IO       0x00000001
+#define EFI_RESOURCE_IO                     0x00000002
+#define EFI_RESOURCE_FIRMWARE_DEVICE        0x00000003
+#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  0x00000004
+#define EFI_RESOURCE_MEMORY_RESERVED        0x00000005
+#define EFI_RESOURCE_IO_RESERVED            0x00000006
+#define EFI_RESOURCE_MAX_MEMORY_TYPE        0x00000007
+
+///
+/// A type of recount attribute type.
+///
+typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
+
+//
+// These types can be ORed together as needed.
+//
+// The first three enumerations describe settings
+//
+#define EFI_RESOURCE_ATTRIBUTE_PRESENT              0x00000001
+#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED          0x00000002
+#define EFI_RESOURCE_ATTRIBUTE_TESTED               0x00000004
+//
+// The rest of the settings describe capabilities
+//
+#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC           0x00000008
+#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC         0x00000010
+#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1           0x00000020
+#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2           0x00000040
+#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100
+#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200
+#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE              0x00000400
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE        0x00000800
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE  0x00001000
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE     0x00002000
+#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO                0x00004000
+#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO                0x00008000
+#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000
+#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000
+
+///
+/// Describes the resource properties of all fixed,
+/// nonrelocatable resource ranges found on the processor
+/// host bus during the HOB producer phase.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
+  ///
+  EFI_HOB_GENERIC_HEADER      Header;
+  ///
+  /// A GUID representing the owner of the resource. This GUID is used by HOB
+  /// consumer phase components to correlate device ownership of a resource.
+  ///
+  EFI_GUID                    Owner;
+  ///
+  /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
+  ///
+  EFI_RESOURCE_TYPE           ResourceType;
+  ///
+  /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
+  ///
+  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
+  ///
+  /// The physical start address of the resource region.
+  ///
+  EFI_PHYSICAL_ADDRESS        PhysicalStart;
+  ///
+  /// The number of bytes of the resource region.
+  ///
+  UINT64                      ResourceLength;
+} EFI_HOB_RESOURCE_DESCRIPTOR;
+
+///
+/// Allows writers of executable content in the HOB producer phase to
+/// maintain and manage HOBs with specific GUID.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
+  ///
+  EFI_HOB_GENERIC_HEADER      Header;
+  ///
+  /// A GUID that defines the contents of this HOB.
+  ///
+  EFI_GUID                    Name;
+  //
+  // Guid specific data goes here
+  //
+} EFI_HOB_GUID_TYPE;
+
+///
+/// Union of all the possible HOB Types.
+///
+typedef union {
+  EFI_HOB_GENERIC_HEADER              *Header;
+  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
+  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
+  EFI_HOB_GUID_TYPE                   *Guid;
+  UINT8                               *Raw;
+} EFI_PEI_HOB_POINTERS;
+
+
+/**
+  Returns the type of a HOB.
+
+  This macro returns the HobType field from the HOB header for the
+  HOB specified by HobStart.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return HobType.
+
+**/
+#define GET_HOB_TYPE(HobStart) \
+  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobType)
+
+/**
+  Returns the length, in bytes, of a HOB.
+
+  This macro returns the HobLength field from the HOB header for the
+  HOB specified by HobStart.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return HobLength.
+
+**/
+#define GET_HOB_LENGTH(HobStart) \
+  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobLength)
+
+/**
+  Returns a pointer to the next HOB in the HOB list.
+
+  This macro returns a pointer to HOB that follows the
+  HOB specified by HobStart in the HOB List.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return A pointer to the next HOB in the HOB list.
+
+**/
+#define GET_NEXT_HOB(HobStart) \
+  (VOID *)(*(UINT8 **)&(HobStart) + GET_HOB_LENGTH (HobStart))
+
+/**
+  Determines if a HOB is the last HOB in the HOB list.
+
+  This macro determine if the HOB specified by HobStart is the
+  last HOB in the HOB list.  If HobStart is last HOB in the HOB list,
+  then TRUE is returned.  Otherwise, FALSE is returned.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @retval TRUE       The HOB specified by HobStart is the last HOB in the HOB list.
+  @retval FALSE      The HOB specified by HobStart is not the last HOB in the HOB list.
+
+**/
+#define END_OF_HOB_LIST(HobStart)  (GET_HOB_TYPE (HobStart) == (UINT16)EFI_HOB_TYPE_END_OF_HOB_LIST)
+
+/**
+  Returns a pointer to data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  This macro returns a pointer to the data buffer in a HOB specified by HobStart.
+  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  @param   GuidHob   A pointer to a HOB.
+
+  @return  A pointer to the data buffer in a HOB.
+
+**/
+#define GET_GUID_HOB_DATA(HobStart) \
+  (VOID *)(*(UINT8 **)&(HobStart) + sizeof (EFI_HOB_GUID_TYPE))
+
+/**
+  Returns the size of the data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  This macro returns the size, in bytes, of the data buffer in a HOB specified by HobStart.
+  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  @param   GuidHob   A pointer to a HOB.
+
+  @return  The size of the data buffer.
+**/
+#define GET_GUID_HOB_DATA_SIZE(HobStart) \
+  (UINT16)(GET_HOB_LENGTH (HobStart) - sizeof (EFI_HOB_GUID_TYPE))
+
+
+/**
+
+ FSP specific GUID HOB definitions
+
+ **/
+#define FSP_INFO_HEADER_GUID \
+  { \
+  0x912740BE, 0x2284, 0x4734, {0xB9, 0x71, 0x84, 0xB0, 0x27, 0x35, 0x3F, 0x0C} \
+  }
+
+#define FSP_NON_VOLATILE_STORAGE_HOB_GUID \
+  { \
+  0x721acf02, 0x4d77, 0x4c2a, { 0xb3, 0xdc, 0x27, 0xb, 0x7b, 0xa9, 0xe4, 0xb0 } \
+  }
+
+#define FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID \
+  { \
+  0xbbcff46c, 0xc8d3, 0x4113, { 0x89, 0x85, 0xb9, 0xd4, 0xf3, 0xb3, 0xf6, 0x4e } \
+  }
+
+#define FSP_HOB_RESOURCE_OWNER_FSP_GUID \
+  { \
+  0x69a79759, 0x1373, 0x4367, { 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e } \
+  }
+
+#define FSP_HOB_RESOURCE_OWNER_TSEG_GUID \
+  { \
+  0xd038747c, 0xd00c, 0x4980, { 0xb3, 0x19, 0x49, 0x01, 0x99, 0xa4, 0x7d, 0x55 } \
+  }
+
+#define FSP_HOB_RESOURCE_OWNER_GRAPHICS_GUID \
+  { \
+  0x9c7c3aa7, 0x5332, 0x4917, { 0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07 } \
+  }
+
+#define FSP_HOB_GRAPHICS_INFO_GUID \
+{ 0x39f62cce, 0x6825, 0x4669, { 0xbb, 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, 0x07 } }
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspinfoheader.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspinfoheader.h
new file mode 100644
index 0000000..e630788
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspinfoheader.h
@@ -0,0 +1,118 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_INFOHEADER_H__
+#define __FSP_INFOHEADER_H__
+
+///
+/// Fixed FSP header offset in the FSP image
+///
+#define  FSP_INFO_HEADER_OFF    0x94
+
+#pragma pack(1)
+
+typedef struct  {
+  ///
+  /// Signature ('FSPH') for the FSP Information Header
+  ///
+  UINT32  Signature;
+  ///
+  /// Length of the FSP Information Header
+  ///
+  UINT32  HeaderLength;
+  ///
+  /// Reserved
+  ///
+  UINT8   Reserved1[3];
+  ///
+  /// Revision of the FSP Information Header
+  ///
+  UINT8   HeaderRevision;
+  ///
+  /// Revision of the FSP binary
+  ///
+  UINT32  ImageRevision;
+
+
+  ///
+  /// Signature string that will help match the FSP Binary to a supported
+  /// hardware configuration.
+  ///
+  CHAR8   ImageId[8];
+  ///
+  /// Size of the entire FSP binary
+  ///
+  UINT32  ImageSize;
+  ///
+  /// FSP binary preferred base address
+  ///
+  UINT32  ImageBase;
+
+
+  ///
+  /// Attribute for the FSP binary
+  ///
+  UINT32  ImageAttribute;
+  ///
+  /// Offset of the FSP configuration region
+  ///
+  UINT32  CfgRegionOffset;
+  ///
+  /// Size of the FSP configuration region
+  ///
+  UINT32  CfgRegionSize;
+  ///
+  /// Number of API entries this FSP supports
+  ///
+  UINT32  ApiEntryNum;
+
+
+  ///
+  /// TempRamInit API entry offset
+  ///
+  UINT32  TempRamInitEntry;
+  ///
+  /// FspInit API entry offset
+  ///
+  UINT32  FspInitEntry;
+  ///
+  /// NotifyPhase API entry offset
+  ///
+  UINT32  NotifyPhaseEntry;
+  ///
+  /// Reserved
+  ///
+  UINT32  Reserved2;
+
+} FSP_INFO_HEADER;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspplatform.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspplatform.h
new file mode 100644
index 0000000..4bb03d5
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspplatform.h
@@ -0,0 +1,75 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_PLATFORM_H__
+#define __FSP_PLATFORM_H__
+
+#pragma pack(1)
+
+typedef struct {
+  uint32_t            RedMask;
+  uint32_t            GreenMask;
+  uint32_t            BlueMask;
+  uint32_t            ReservedMask;
+} EFI_PIXEL_BITMASK;
+
+typedef enum {
+  PixelRedGreenBlueReserved8BitPerColor,
+  PixelBlueGreenRedReserved8BitPerColor,
+  PixelBitMask,
+  PixelBltOnly,
+  PixelFormatMax
+} EFI_GRAPHICS_PIXEL_FORMAT;
+
+typedef struct {
+  uint32_t                     Version;
+  uint32_t                     HorizontalResolution;
+  uint32_t                     VerticalResolution;
+  EFI_GRAPHICS_PIXEL_FORMAT  PixelFormat;
+  EFI_PIXEL_BITMASK          PixelInformation;
+  uint32_t                     PixelsPerScanLine;
+} EFI_GRAPHICS_OUTPUT_MODE_INFORMATION;
+
+typedef struct {
+  uint64_t FrameBufferBase;
+  uint64_t FrameBufferSize;
+  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION GraphicsMode;
+} PLATFORM_GRAPHICS_OUTPUT;
+
+typedef struct {
+  ///
+  /// FSP common runtime data structure
+  ///
+  FSP_INIT_RT_COMMON_BUFFER  Common;
+} FSP_INIT_RT_BUFFER;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspsupport.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspsupport.h
new file mode 100644
index 0000000..a12cf27
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspsupport.h
@@ -0,0 +1,118 @@
+/**
+
+Copyright (C) 2013-2016 Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_SUPPORT_H__
+#define __FSP_SUPPORT_H__
+
+UINT32
+GetPhysicalLowMemTop (
+  CONST VOID       *HobStart
+  );
+
+UINT32
+GetUsableLowMemTop (
+  CONST VOID             *HobListPtr
+  );
+
+UINT64
+GetUsableHighMemTop (
+  CONST VOID             *HobListPtr
+  );
+
+VOID *
+GetGuidHobDataBuffer (
+  CONST VOID             *HobListPtr,
+  UINT32                 *Length,
+  EFI_GUID               *Guid
+  );
+
+UINT64
+GetFspReservedMemoryFromGuid (
+  CONST VOID             *HobListPtr,
+  UINT64                 *FspMemoryLength,
+  EFI_GUID               *FspReservedMemoryGuid
+  );
+
+UINT32
+GetTsegReservedMemory (
+  CONST VOID             *HobListPtr,
+  UINT32                 *Length
+  );
+
+UINT32
+GetFspReservedMemory (
+  CONST VOID             *HobListPtr,
+  UINT32                 *Length
+  );
+
+VOID*
+GetFspNvsDataBuffer (
+  CONST VOID             *HobListPtr,
+  UINT32                 *Length
+  );
+
+VOID *
+GetBootloaderTempMemoryBuffer (
+  CONST VOID             *HobListPtr,
+  UINT32                 *Length
+  );
+
+VOID *
+EFIAPI
+GetNextHob (
+  UINT16                 Type,
+  CONST VOID             *HobStart
+  );
+
+VOID *
+EFIAPI
+GetFirstHob (
+  UINT16                 Type
+  );
+
+VOID *
+EFIAPI
+GetNextGuidHob (
+  CONST EFI_GUID         *Guid,
+  CONST VOID             *HobStart
+  );
+
+VOID *
+EFIAPI
+GetFirstGuidHob (
+  CONST EFI_GUID         *Guid
+  );
+
+VOID
+UpdateFspUpdConfigs (
+  UPD_DATA_REGION        *UpdDataRgn
+  );
+
+#endif
\ No newline at end of file
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fsptypes.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fsptypes.h
new file mode 100644
index 0000000..c8e38e4
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fsptypes.h
@@ -0,0 +1,220 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_TYPES_H__
+#define __FSP_TYPES_H__
+
+///
+/// 8-byte unsigned value.
+///
+typedef unsigned long long  UINT64;
+
+///
+/// 8-byte signed value.
+///
+typedef long long           INT64;
+
+///
+/// 4-byte unsigned value.
+///
+typedef unsigned int        UINT32;
+
+///
+/// 4-byte signed value.
+///
+typedef int                 INT32;
+
+///
+/// 2-byte unsigned value.
+///
+typedef unsigned short      UINT16;
+
+///
+/// 2-byte Character.
+///
+typedef unsigned short      CHAR16;
+///
+/// 2-byte signed value.
+///
+typedef short               INT16;
+
+///
+/// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
+/// values are undefined.
+///
+typedef unsigned char       BOOLEAN;
+
+///
+/// 1-byte unsigned value.
+///
+typedef unsigned char       UINT8;
+
+///
+/// 1-byte Character
+///
+typedef char                CHAR8;
+
+///
+/// 1-byte signed value
+///
+typedef char                INT8;
+
+///
+/// Undeclared type.
+///
+typedef void                VOID;
+
+///
+/// 64-bit physical memory address.
+///
+typedef UINT64              EFI_PHYSICAL_ADDRESS;
+
+///
+/// UEFI and FSP defined status.
+///
+typedef UINT32              EFI_STATUS;
+#define FSP_STATUS          EFI_STATUS
+
+///
+/// Datum is read-only.
+///
+#define CONST     const
+
+///
+/// Datum is scoped to the current file or function.
+///
+#define STATIC    static
+
+///
+/// Boolean true value.  UEFI Specification defines this value to be 1,
+/// but this form is more portable.
+///
+#define TRUE  ((BOOLEAN)(1==1))
+
+///
+/// Boolean false value.  UEFI Specification defines this value to be 0,
+/// but this form is more portable.
+///
+#define FALSE ((BOOLEAN)(0==1))
+
+///
+/// Null pointer
+///
+#ifndef NULL
+#define NULL  ((VOID *) 0)
+#endif
+
+///
+/// Modifier to ensure that all API functions use the correct C calling
+/// convention.
+///
+#define EFIAPI __attribute__((cdecl))
+#define FSPAPI EFIAPI
+
+///
+/// 128 bit buffer containing a unique identifier value.
+///
+typedef struct {
+  UINT32  Data1;
+  UINT16  Data2;
+  UINT16  Data3;
+  UINT8   Data4[8];
+} EFI_GUID;
+
+/**
+  Returns a 16-bit signature built from 2 ASCII characters.
+
+  This macro returns a 16-bit value built from the two ASCII characters specified
+  by A and B.
+
+  @param  A    The first ASCII character.
+  @param  B    The second ASCII character.
+
+  @return A 16-bit value built from the two ASCII characters specified by A and B.
+
+**/
+#define SIGNATURE_16(A, B)        ((A) | (B << 8))
+
+/**
+  Returns a 32-bit signature built from 4 ASCII characters.
+
+  This macro returns a 32-bit value built from the four ASCII characters specified
+  by A, B, C, and D.
+
+  @param  A    The first ASCII character.
+  @param  B    The second ASCII character.
+  @param  C    The third ASCII character.
+  @param  D    The fourth ASCII character.
+
+  @return A 32-bit value built from the two ASCII characters specified by A, B,
+          C and D.
+
+**/
+#define SIGNATURE_32(A, B, C, D)  (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16))
+
+/**
+  Returns a 64-bit signature built from 8 ASCII characters.
+
+  This macro returns a 64-bit value built from the eight ASCII characters specified
+  by A, B, C, D, E, F, G,and H.
+
+  @param  A    The first ASCII character.
+  @param  B    The second ASCII character.
+  @param  C    The third ASCII character.
+  @param  D    The fourth ASCII character.
+  @param  E    The fifth ASCII character.
+  @param  F    The sixth ASCII character.
+  @param  G    The seventh ASCII character.
+  @param  H    The eighth ASCII character.
+
+  @return A 64-bit value built from the two ASCII characters specified by A, B,
+          C, D, E, F, G and H.
+
+**/
+#define SIGNATURE_64(A, B, C, D, E, F, G, H) \
+    (SIGNATURE_32 (A, B, C, D) | ((UINT64) (SIGNATURE_32 (E, F, G, H)) << 32))
+
+///
+/// Assertion for debug
+///
+#define ASSERT(Expression)    do { if (!(Expression)) for (;;); } while (FALSE)
+
+///
+/// Define FSP API return status code.
+/// Compatiable with EFI_STATUS defined in PI Spec.
+///
+#define FSP_SUCCESS               0
+#define FSP_INVALID_PARAMETER     0x80000002
+#define FSP_UNSUPPORTED           0x80000003
+#define FSP_DEVICE_ERROR          0x80000007
+#define FSP_NOT_FOUND             0x8000000E
+#define FSP_ALREADY_STARTED       0x80000014
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspvpd.h b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspvpd.h
new file mode 100644
index 0000000..f5f862a
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/include/fspvpd.h
@@ -0,0 +1,146 @@
+/**
+
+Copyright (C) 2015-2016 Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_VPD_H__
+#define __FSP_VPD_H__
+
+#pragma pack(1)
+
+typedef struct _UPD_DATA_REGION {
+  UINT64              Signature;                        /* Offset 0x0000 */
+  UINT64              Reserved;                         /* Offset 0x0008 */
+  UINT8               UnusedUpdSpace0[16];              /* Offset 0x0010 */
+  UINT8               SerialPortType;                   /* Offset 0x0020 */
+  UINT32              SerialPortAddress;                /* Offset 0x0021 */
+  UINT8               SerialPortConfigure;              /* Offset 0x0025 */
+  UINT8               SerialPortBaudRate;               /* Offset 0x0026 */
+  UINT8               SerialPortControllerInit0;        /* Offset 0x0027 */
+  UINT8               SerialPortControllerInit1;        /* Offset 0x0028 */
+  UINT8               ConfigIOU1_PciPort3;              /* Offset 0x0029 */
+  UINT8               ConfigIOU2_PciPort1;              /* Offset 0x002A */
+  UINT8               PowerStateAfterG3;                /* Offset 0x002B */
+  UINT8               PchPciPort1;                      /* Offset 0x002C */
+  UINT8               PchPciPort2;                      /* Offset 0x002D */
+  UINT8               PchPciPort3;                      /* Offset 0x002E */
+  UINT8               PchPciPort4;                      /* Offset 0x002F */
+  UINT8               PchPciPort5;                      /* Offset 0x0030 */
+  UINT8               PchPciPort6;                      /* Offset 0x0031 */
+  UINT8               PchPciPort7;                      /* Offset 0x0032 */
+  UINT8               PchPciPort8;                      /* Offset 0x0033 */
+  UINT8               HotPlug_PchPciPort1;              /* Offset 0x0034 */
+  UINT8               HotPlug_PchPciPort2;              /* Offset 0x0035 */
+  UINT8               HotPlug_PchPciPort3;              /* Offset 0x0036 */
+  UINT8               HotPlug_PchPciPort4;              /* Offset 0x0037 */
+  UINT8               HotPlug_PchPciPort5;              /* Offset 0x0038 */
+  UINT8               HotPlug_PchPciPort6;              /* Offset 0x0039 */
+  UINT8               HotPlug_PchPciPort7;              /* Offset 0x003A */
+  UINT8               HotPlug_PchPciPort8;              /* Offset 0x003B */
+  UINT8               Ehci1Enable;                      /* Offset 0x003C */
+  UINT8               Ehci2Enable;                      /* Offset 0x003D */
+  UINT8               HyperThreading;                   /* Offset 0x003E */
+  UINT8               DebugOutputLevel;                 /* Offset 0x003F */
+  UINT8               TcoTimerHaltLock;                 /* Offset 0x0040 */
+  UINT8               TurboMode;                        /* Offset 0x0041 */
+  UINT8               BootPerfMode;                     /* Offset 0x0042 */
+  UINT8               PciePort1aAspm;                   /* Offset 0x0043 */
+  UINT8               PciePort1bAspm;                   /* Offset 0x0044 */
+  UINT8               PciePort3aAspm;                   /* Offset 0x0045 */
+  UINT8               PciePort3bAspm;                   /* Offset 0x0046 */
+  UINT8               PciePort3cAspm;                   /* Offset 0x0047 */
+  UINT8               PciePort3dAspm;                   /* Offset 0x0048 */
+  UINT8               PchPciePort1Aspm;                 /* Offset 0x0049 */
+  UINT8               PchPciePort2Aspm;                 /* Offset 0x004A */
+  UINT8               PchPciePort3Aspm;                 /* Offset 0x004B */
+  UINT8               PchPciePort4Aspm;                 /* Offset 0x004C */
+  UINT8               PchPciePort5Aspm;                 /* Offset 0x004D */
+  UINT8               PchPciePort6Aspm;                 /* Offset 0x004E */
+  UINT8               PchPciePort7Aspm;                 /* Offset 0x004F */
+  UINT8               PchPciePort8Aspm;                 /* Offset 0x0050 */
+  UINT8               DFXEnable;                        /* Offset 0x0051 */
+  UINT8               ThermalDeviceEnable;              /* Offset 0x0052 */
+  UINT8               UnusedUpdSpace1[88];              /* Offset 0x0053 */
+  UINT8               MemEccSupport;                    /* Offset 0x00AB */
+  UINT8               MemDdrMemoryType;                 /* Offset 0x00AC */
+  UINT8               MemRankMultiplication;            /* Offset 0x00AD */
+  UINT8               MemRankMarginTool;                /* Offset 0x00AE */
+  UINT8               MemScrambling;                    /* Offset 0x00AF */
+  UINT8               MemRefreshMode;                   /* Offset 0x00B0 */
+  UINT8               MemMcOdtOverride;                 /* Offset 0x00B1 */
+  UINT8               MemCAParity;                      /* Offset 0x00B2 */
+  UINT8               MemThermalThrottling;             /* Offset 0x00B3 */
+  UINT8               MemPowerSavingsMode;              /* Offset 0x00B4 */
+  UINT8               MemElectricalThrottling;          /* Offset 0x00B5 */
+  UINT8               MemPagePolicy;                    /* Offset 0x00B6 */
+  UINT8               MemSocketInterleaveBelow4G;       /* Offset 0x00B7 */
+  UINT8               MemChannelInterleave;             /* Offset 0x00B8 */
+  UINT8               MemRankInterleave;                /* Offset 0x00B9 */
+  UINT8               MemDownEnable;                    /* Offset 0x00BA */
+  UINT32              MemDownCh0Dimm0SpdPtr;            /* Offset 0x00BB */
+  UINT32              MemDownCh0Dimm1SpdPtr;            /* Offset 0x00BF */
+  UINT32              MemDownCh1Dimm0SpdPtr;            /* Offset 0x00C3 */
+  UINT32              MemDownCh1Dimm1SpdPtr;            /* Offset 0x00C7 */
+  UINT8               MemFastBoot;                      /* Offset 0x00CB */
+  UINT8               pam0_hienable;                    /* Offset 0x00CC */
+  UINT8               pam1_loenable;                    /* Offset 0x00CD */
+  UINT8               pam1_hienable;                    /* Offset 0x00CE */
+  UINT8               pam2_loenable;                    /* Offset 0x00CF */
+  UINT8               pam2_hienable;                    /* Offset 0x00D0 */
+  UINT8               pam3_loenable;                    /* Offset 0x00D1 */
+  UINT8               pam3_hienable;                    /* Offset 0x00D2 */
+  UINT8               pam4_loenable;                    /* Offset 0x00D3 */
+  UINT8               pam4_hienable;                    /* Offset 0x00D4 */
+  UINT8               pam5_loenable;                    /* Offset 0x00D5 */
+  UINT8               pam5_hienable;                    /* Offset 0x00D6 */
+  UINT8               pam6_loenable;                    /* Offset 0x00D7 */
+  UINT8               pam6_hienable;                    /* Offset 0x00D8 */
+  UINT8               MemAdr;                           /* Offset 0x00D9 */
+  UINT8               MemAdrResumePath;                 /* Offset 0x00DA */
+  UINT8               MemBlockScTrafficOnAdr;           /* Offset 0x00DB */
+  UINT16              MemPlatformReleaseAdrClampsPort;  /* Offset 0x00DC */
+  UINT32              MemPlatformReleaseAdrClampsAnd;   /* Offset 0x00DE */
+  UINT32              MemPlatformReleaseAdrClampsOr;    /* Offset 0x00E2 */
+  UINT8               UnusedUpdSpace2[24];              /* Offset 0x00E6 */
+  UINT16              PcdRegionTerminator;              /* Offset 0x00FE */
+} UPD_DATA_REGION;
+
+#define FSP_IMAGE_ID  0x5F45442D5844425F                /* '_BDX-DE_' */
+#define FSP_IMAGE_REV 0x00000301
+
+typedef struct _VPD_DATA_REGION {
+  UINT64              PcdVpdRegionSign;                 /* Offset 0x0000 */
+  UINT32              PcdImageRevision;                 /* Offset 0x0008 */
+  UINT32              PcdUpdRegionOffset;               /* Offset 0x000C */
+  UINT8               UnusedVpdSpace0[16];              /* Offset 0x0010 */
+  UINT32              PcdFspReservedMemoryLength;       /* Offset 0x0020 */
+} VPD_DATA_REGION;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/srx/fspsupport.c b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/srx/fspsupport.c
new file mode 100644
index 0000000..96fd984
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/broadwell_de/srx/fspsupport.c
@@ -0,0 +1,454 @@
+/**
+
+Copyright (C) 2013-2016 Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#include <types.h>
+#include <string.h>
+#include <fsp.h>
+
+/**
+  Reads a 64-bit value from memory that may be unaligned.
+
+  This function returns the 64-bit value pointed to by Buffer. The function
+  guarantees that the read operation does not produce an alignment fault.
+
+  If the Buffer is NULL, then ASSERT().
+
+  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
+  @return The 64-bit value read from Buffer.
+
+**/
+STATIC
+UINT64
+EFIAPI
+ReadUnaligned64 (
+  CONST UINT64        *Buffer
+  )
+{
+  ASSERT (Buffer != NULL);
+  return *Buffer;
+}
+
+/**
+  Compares two GUIDs.
+
+  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
+  If there are any bit differences in the two GUIDs, then FALSE is returned.
+
+  If Guid1 is NULL, then ASSERT().
+  If Guid2 is NULL, then ASSERT().
+
+  @param  Guid1     A pointer to a 128 bit GUID.
+  @param  Guid2     A pointer to a 128 bit GUID.
+  @retval TRUE      Guid1 and Guid2 are identical.
+  @retval FALSE     Guid1 and Guid2 are not identical.
+
+**/
+STATIC
+BOOLEAN
+EFIAPI
+CompareGuid (
+  CONST EFI_GUID  *Guid1,
+  CONST EFI_GUID  *Guid2
+  )
+{
+  UINT64  LowPartOfGuid1;
+  UINT64  LowPartOfGuid2;
+  UINT64  HighPartOfGuid1;
+  UINT64  HighPartOfGuid2;
+
+  LowPartOfGuid1  = ReadUnaligned64 ((CONST UINT64*) Guid1);
+  LowPartOfGuid2  = ReadUnaligned64 ((CONST UINT64*) Guid2);
+  HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1);
+  HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1);
+
+  return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2);
+}
+
+/**
+  Returns the next instance of a HOB type from the starting HOB.
+
+  @param  Type      HOB type to search
+  @param  HobStart  A pointer to the HOB list
+  @retval a HOB object with matching type; Otherwise NULL.
+
+**/
+VOID *
+EFIAPI
+GetNextHob (
+  UINT16           Type,
+  CONST VOID       *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  Hob;
+
+  ASSERT (HobStart != NULL);
+
+  Hob.Raw = (UINT8 *) HobStart;
+  /*
+   * Parse the HOB list until end of list or matching type is found.
+   */
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == Type) {
+      return Hob.Raw;
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+
+  return NULL;
+}
+
+/**
+  Returns the next instance of the matched GUID HOB from the starting HOB.
+
+  @param  Guid      GUID to search
+  @param  HobStart  A pointer to the HOB list
+  @retval a HOB object with matching GUID; Otherwise NULL.
+
+**/
+VOID *
+EFIAPI
+GetNextGuidHob (
+  CONST EFI_GUID     *Guid,
+  CONST VOID         *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  GuidHob;
+
+  GuidHob.Raw = (UINT8 *) HobStart;
+  while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
+    if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
+      break;
+    }
+    GuidHob.Raw = GET_NEXT_HOB (GuidHob);
+  }
+
+  return GuidHob.Raw;
+}
+
+/**
+  This function retrieves the top of usable low memory.
+
+  @param    HobListPtr   A HOB list pointer.
+  @retval                Usable low memory top.
+
+**/
+UINT32
+GetUsableLowMemTop (
+  CONST VOID       *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  Hob;
+  UINT32          MemLen;
+  /*
+   * Get the HOB list for processing
+   */
+  Hob.Raw = (VOID *)HobStart;
+
+  /*
+   * Collect memory ranges
+   */
+  MemLen = 0x100000;
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
+      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
+        /*
+         * Need memory above 1MB to be collected here
+         */
+        if (Hob.ResourceDescriptor->PhysicalStart >= 0x100000 &&
+            Hob.ResourceDescriptor->PhysicalStart < (EFI_PHYSICAL_ADDRESS) 0x100000000) {
+          MemLen += (UINT32) (Hob.ResourceDescriptor->ResourceLength);
+        }
+      }
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+
+  return MemLen;
+}
+
+/**
+  This function retrieves the top of system low memory.
+
+  @param    HobListPtr   A HOB list pointer.
+  @retval                Usable low memory top.
+
+**/
+UINT32
+GetPhysicalLowMemTop (
+  CONST VOID       *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  Hob;
+  UINT32            MemBase;
+  UINT32            MemLen;
+
+  /*
+   * Get the HOB list for processing
+   */
+  Hob.Raw = (VOID *)HobStart;
+
+  /*
+   * Collect memory ranges
+   */
+  MemBase = 0x100000;
+  MemLen  = 0;
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
+      if ((Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) ||
+           (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED)) {
+        /*
+         * Need memory above 1MB to be collected here
+         */
+        if (Hob.ResourceDescriptor->PhysicalStart >= MemBase &&
+            Hob.ResourceDescriptor->PhysicalStart < (EFI_PHYSICAL_ADDRESS) 0x100000000) {
+          MemBase = (UINT32) (Hob.ResourceDescriptor->PhysicalStart);
+          MemLen  = (UINT32) (Hob.ResourceDescriptor->ResourceLength);
+        }
+      }
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+
+  return MemBase + MemLen;
+}
+
+/**
+  This function retrieves the top of usable high memory.
+
+  @param  HobListPtr   A HOB list pointer.
+  @retval              Usable high memory top.
+
+**/
+UINT64
+GetUsableHighMemTop (
+  CONST VOID       *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  Hob;
+  UINT64                MemTop;
+  /*
+   * Get the HOB list for processing
+   */
+  Hob.Raw = (VOID *)HobStart;
+
+  /*
+   * Collect memory ranges
+   */
+  MemTop = 0x100000000;
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
+      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
+        /*
+         * Need memory above 1MB to be collected here
+         */
+        if (Hob.ResourceDescriptor->PhysicalStart >= (EFI_PHYSICAL_ADDRESS) 0x100000000) {
+          MemTop += (UINT64) (Hob.ResourceDescriptor->ResourceLength);
+        }
+      }
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+
+  return MemTop;
+}
+
+/**
+  This function retrieves a special reserved memory region.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the GUID HOB data buffer length.  If the GUID HOB is
+                       located, the length will be updated.
+  @param  OwnerGuid    A pointer to the owner guild.
+  @retval              Reserved region start address.  0 if this region does not exist.
+
+**/
+UINT64
+GetFspReservedMemoryFromGuid (
+  CONST VOID     *HobListPtr,
+  UINT64         *Length,
+  EFI_GUID       *OwnerGuid
+  )
+{
+  EFI_PEI_HOB_POINTERS    Hob;
+
+  /*
+   * Get the HOB list for processing
+   */
+  Hob.Raw = (VOID *)HobListPtr;
+
+  /*
+   * Collect memory ranges
+   */
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
+      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED) {
+        if (CompareGuid(&Hob.ResourceDescriptor->Owner, OwnerGuid)) {
+          if (Length) {
+            *Length = (UINT32) (Hob.ResourceDescriptor->ResourceLength);
+          }
+          return (UINT64)(Hob.ResourceDescriptor->PhysicalStart);
+        }
+      }
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+
+  return 0;
+}
+
+/**
+  This function retrieves the TSEG reserved normal memory.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the TSEG reserved memory length buffer.  If the GUID HOB is
+                       located, the length will be updated.
+  @param  Guid         A pointer to owner HOB GUID.
+  @retval NULL         Failed to find the TSEG reserved memory.
+  @retval others       TSEG reserved memory base.
+
+**/
+UINT32
+GetTsegReservedMemory (
+  CONST VOID       *HobListPtr,
+  UINT32           *Length
+  )
+{
+  const EFI_GUID    TsegOwnerHobGuid = FSP_HOB_RESOURCE_OWNER_TSEG_GUID;
+  UINT64            Length64;
+  UINT32            Base;
+
+  Base = (UINT32)GetFspReservedMemoryFromGuid (HobListPtr, &Length64, (EFI_GUID *)&TsegOwnerHobGuid);
+  if ((Length != 0) && (Base != 0)) {
+    *Length = (UINT32)Length64;
+  }
+
+  return Base;
+}
+
+/**
+  This function retrieves the FSP reserved normal memory.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the FSP reserved memory length buffer.  If the GUID HOB is
+                       located, the length will be updated.
+  @param  Guid         A pointer to owner HOB GUID.
+  @retval NULL         Failed to find the FSP reserved memory.
+  @retval others       FSP reserved memory base.
+
+**/
+UINT32
+GetFspReservedMemory (
+  CONST VOID       *HobListPtr,
+  UINT32           *Length
+  )
+{
+  const EFI_GUID    FspOwnerHobGuid = FSP_HOB_RESOURCE_OWNER_FSP_GUID;
+  UINT64            Length64;
+  UINT32            Base;
+
+  Base = (UINT32)GetFspReservedMemoryFromGuid (HobListPtr, &Length64, (EFI_GUID *)&FspOwnerHobGuid);
+  if ((Length != 0) && (Base != 0)) {
+    *Length = (UINT32)Length64;
+  }
+
+  return Base;
+}
+
+/**
+  This function retrieves a GUIDed HOB data buffer and size.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the GUID HOB data buffer length.  If the
+                       GUID HOB is located, the length will be updated.
+  @param  Guid         A pointer to HOB GUID.
+  @retval NULL         Failed to find the GUID HOB.
+  @retval others       GUID HOB data buffer pointer.
+
+**/
+VOID *
+GetGuidHobDataBuffer (
+  CONST VOID       *HobListPtr,
+  UINT32           *Length,
+  EFI_GUID         *Guid
+  )
+{
+  UINT8        *GuidHob;
+
+  /* FSP NVS DATA HOB */
+  GuidHob = GetNextGuidHob(Guid, HobListPtr);
+  if (GuidHob == NULL) {
+    return NULL;
+  } else {
+    if (Length) {
+      *Length = GET_GUID_HOB_DATA_SIZE (GuidHob);
+    }
+    return GET_GUID_HOB_DATA (GuidHob);
+  }
+}
+
+/**
+  This function retrieves FSP Non-volatile Storage HOB buffer and size.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the NVS data buffer length.  If the FSP NVS
+                       HOB is located, the length will be updated.
+  @retval NULL         Failed to find the NVS HOB.
+  @retval others       FSP NVS data buffer pointer.
+
+**/
+VOID *
+GetFspNvsDataBuffer (
+  CONST VOID       *HobListPtr,
+  UINT32           *Length
+  )
+{
+  const EFI_GUID    FspNvsHobGuid = FSP_NON_VOLATILE_STORAGE_HOB_GUID;
+  return GetGuidHobDataBuffer (HobListPtr, Length, (EFI_GUID *)&FspNvsHobGuid);
+}
+
+/**
+  This function retrieves Bootloader temporary stack buffer and size.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the Bootloader temporary stack length.
+                       If the HOB is located, the length will be updated.
+  @retval NULL         Failed to find the Bootloader temporary stack HOB.
+  @retval others       Bootloader temporary stackbuffer pointer.
+
+**/
+VOID *
+GetBootloaderTempMemoryBuffer (
+  CONST VOID       *HobListPtr,
+  UINT32           *Length
+  )
+{
+  const EFI_GUID    FspBootloaderTemporaryMemoryHobGuid = FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID;
+  return GetGuidHobDataBuffer (HobListPtr, Length, (EFI_GUID *)&FspBootloaderTemporaryMemoryHobGuid);
+}
\ No newline at end of file
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspapi.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspapi.h
new file mode 100644
index 0000000..9520736
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspapi.h
@@ -0,0 +1,63 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_API_H_
+#define _FSP_API_H_
+
+#pragma pack(1)
+
+typedef VOID (* CONTINUATION_PROC)(EFI_STATUS Status, VOID *HobListPtr);
+
+typedef struct {
+  VOID              *NvsBufferPtr;
+  VOID              *RtBufferPtr;
+  CONTINUATION_PROC   ContinuationFunc;
+} FSP_INIT_PARAMS;
+
+typedef struct {
+  UINT32            *StackTop;
+  UINT32             BootMode;
+} FSP_INIT_RT_COMMON_BUFFER;
+
+typedef enum {
+  EnumInitPhaseAfterPciEnumeration = 0x20,
+  EnumInitPhaseReadyToBoot = 0x40
+} FSP_INIT_PHASE;
+
+typedef struct {
+  FSP_INIT_PHASE     Phase;
+} NOTIFY_PHASE_PARAMS;
+
+#pragma pack()
+
+typedef FSP_STATUS (FSPAPI *FSP_FSP_INIT)    (FSP_INIT_PARAMS     *FspInitParamPtr);
+typedef FSP_STATUS (FSPAPI *FSP_NOTFY_PHASE) (NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr);
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspffs.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspffs.h
new file mode 100644
index 0000000..7a7c367
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspffs.h
@@ -0,0 +1,506 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+
+#ifndef __PI_FIRMWARE_FILE_H__
+#define __PI_FIRMWARE_FILE_H__
+
+#pragma pack(1)
+///
+/// Used to verify the integrity of the file.
+///
+typedef union {
+  struct {
+    ///
+    /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
+    /// header. The State and IntegrityCheck.Checksum.File fields are assumed
+    /// to be zero and the checksum is calculated such that the entire header sums to zero.
+    ///
+    UINT8   Header;
+    ///
+    /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
+    /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
+    /// checksum of the file data.
+    /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
+    /// the IntegrityCheck.Checksum.File field must be initialized with a value of
+    /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
+    /// EFI_FILE_DATA_VALID bit is set in the State field.
+    ///
+    UINT8   File;
+  } Checksum;
+  ///
+  /// This is the full 16 bits of the IntegrityCheck field.
+  ///
+  UINT16    Checksum16;
+} EFI_FFS_INTEGRITY_CHECK;
+
+///
+/// FFS_FIXED_CHECKSUM is the checksum value used when the
+/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
+///
+#define FFS_FIXED_CHECKSUM  0xAA
+
+typedef UINT8 EFI_FV_FILETYPE;
+typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
+typedef UINT8 EFI_FFS_FILE_STATE;
+
+///
+/// File Types Definitions
+///
+#define EFI_FV_FILETYPE_ALL                   0x00
+#define EFI_FV_FILETYPE_RAW                   0x01
+#define EFI_FV_FILETYPE_FREEFORM              0x02
+#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
+#define EFI_FV_FILETYPE_PEI_CORE              0x04
+#define EFI_FV_FILETYPE_DXE_CORE              0x05
+#define EFI_FV_FILETYPE_PEIM                  0x06
+#define EFI_FV_FILETYPE_DRIVER                0x07
+#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
+#define EFI_FV_FILETYPE_APPLICATION           0x09
+#define EFI_FV_FILETYPE_SMM                   0x0A
+#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
+#define EFI_FV_FILETYPE_COMBINED_SMM_DXE      0x0C
+#define EFI_FV_FILETYPE_SMM_CORE              0x0D
+#define EFI_FV_FILETYPE_OEM_MIN               0xc0
+#define EFI_FV_FILETYPE_OEM_MAX               0xdf
+#define EFI_FV_FILETYPE_DEBUG_MIN             0xe0
+#define EFI_FV_FILETYPE_DEBUG_MAX             0xef
+#define EFI_FV_FILETYPE_FFS_MIN               0xf0
+#define EFI_FV_FILETYPE_FFS_MAX               0xff
+#define EFI_FV_FILETYPE_FFS_PAD               0xf0
+///
+/// FFS File Attributes.
+///
+#define FFS_ATTRIB_LARGE_FILE         0x01
+#define FFS_ATTRIB_FIXED              0x04
+#define FFS_ATTRIB_DATA_ALIGNMENT     0x38
+#define FFS_ATTRIB_CHECKSUM           0x40
+
+///
+/// FFS File State Bits.
+///
+#define EFI_FILE_HEADER_CONSTRUCTION  0x01
+#define EFI_FILE_HEADER_VALID         0x02
+#define EFI_FILE_DATA_VALID           0x04
+#define EFI_FILE_MARKED_FOR_UPDATE    0x08
+#define EFI_FILE_DELETED              0x10
+#define EFI_FILE_HEADER_INVALID       0x20
+
+
+///
+/// Each file begins with the header that describe the
+/// contents and state of the files.
+///
+typedef struct {
+  ///
+  /// This GUID is the file name. It is used to uniquely identify the file.
+  ///
+  EFI_GUID                Name;
+  ///
+  /// Used to verify the integrity of the file.
+  ///
+  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
+  ///
+  /// Identifies the type of file.
+  ///
+  EFI_FV_FILETYPE         Type;
+  ///
+  /// Declares various file attribute bits.
+  ///
+  EFI_FFS_FILE_ATTRIBUTES Attributes;
+  ///
+  /// The length of the file in bytes, including the FFS header.
+  ///
+  UINT8                   Size[3];
+  ///
+  /// Used to track the state of the file throughout the life of the file from creation to deletion.
+  ///
+  EFI_FFS_FILE_STATE      State;
+} EFI_FFS_FILE_HEADER;
+
+typedef struct {
+  ///
+  /// This GUID is the file name. It is used to uniquely identify the file. There may be only
+  /// one instance of a file with the file name GUID of Name in any given firmware
+  /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
+  ///
+  EFI_GUID                  Name;
+
+  ///
+  /// Used to verify the integrity of the file.
+  ///
+  EFI_FFS_INTEGRITY_CHECK   IntegrityCheck;
+
+  ///
+  /// Identifies the type of file.
+  ///
+  EFI_FV_FILETYPE           Type;
+
+  ///
+  /// Declares various file attribute bits.
+  ///
+  EFI_FFS_FILE_ATTRIBUTES   Attributes;
+
+  ///
+  /// The length of the file in bytes, including the FFS header.
+  /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
+  /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
+  /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
+  /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
+  ///
+  UINT8                     Size[3];
+
+  ///
+  /// Used to track the state of the file throughout the life of the file from creation to deletion.
+  ///
+  EFI_FFS_FILE_STATE        State;
+
+  ///
+  /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
+  /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
+  ///
+  UINT32                    ExtendedSize;
+} EFI_FFS_FILE_HEADER2;
+
+#define IS_FFS_FILE2(FfsFileHeaderPtr) \
+    (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
+
+#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
+
+#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
+    (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
+
+typedef UINT8 EFI_SECTION_TYPE;
+
+///
+/// Pseudo type. It is used as a wild card when retrieving sections.
+///  The section type EFI_SECTION_ALL matches all section types.
+///
+#define EFI_SECTION_ALL                   0x00
+
+///
+/// Encapsulation section Type values.
+///
+#define EFI_SECTION_COMPRESSION           0x01
+
+#define EFI_SECTION_GUID_DEFINED          0x02
+
+#define EFI_SECTION_DISPOSABLE            0x03
+
+///
+/// Leaf section Type values.
+///
+#define EFI_SECTION_PE32                  0x10
+#define EFI_SECTION_PIC                   0x11
+#define EFI_SECTION_TE                    0x12
+#define EFI_SECTION_DXE_DEPEX             0x13
+#define EFI_SECTION_VERSION               0x14
+#define EFI_SECTION_USER_INTERFACE        0x15
+#define EFI_SECTION_COMPATIBILITY16       0x16
+#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
+#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
+#define EFI_SECTION_RAW                   0x19
+#define EFI_SECTION_PEI_DEPEX             0x1B
+#define EFI_SECTION_SMM_DEPEX             0x1C
+
+///
+/// Common section header.
+///
+typedef struct {
+  ///
+  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+  /// including the EFI_COMMON_SECTION_HEADER.
+  ///
+  UINT8             Size[3];
+  EFI_SECTION_TYPE  Type;
+  ///
+  /// Declares the section type.
+  ///
+} EFI_COMMON_SECTION_HEADER;
+
+typedef struct {
+  ///
+  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+  /// including the EFI_COMMON_SECTION_HEADER.
+  ///
+  UINT8             Size[3];
+
+  EFI_SECTION_TYPE  Type;
+
+  ///
+  /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
+  /// Size is not equal to 0xFFFFFF, then this field does not exist.
+  ///
+  UINT32            ExtendedSize;
+} EFI_COMMON_SECTION_HEADER2;
+
+///
+/// Leaf section type that contains an
+/// IA-32 16-bit executable image.
+///
+typedef EFI_COMMON_SECTION_HEADER  EFI_COMPATIBILITY16_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
+
+///
+/// CompressionType of EFI_COMPRESSION_SECTION.
+///
+#define EFI_NOT_COMPRESSED        0x00
+#define EFI_STANDARD_COMPRESSION  0x01
+///
+/// An encapsulation section type in which the
+/// section data is compressed.
+///
+typedef struct {
+  ///
+  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// The UINT32 that indicates the size of the section data after decompression.
+  ///
+  UINT32                      UncompressedLength;
+  ///
+  /// Indicates which compression algorithm is used.
+  ///
+  UINT8                       CompressionType;
+} EFI_COMPRESSION_SECTION;
+
+typedef struct {
+  ///
+  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// UINT32 that indicates the size of the section data after decompression.
+  ///
+  UINT32                        UncompressedLength;
+  ///
+  /// Indicates which compression algorithm is used.
+  ///
+  UINT8                         CompressionType;
+} EFI_COMPRESSION_SECTION2;
+
+///
+/// An encapsulation section type in which the section data is disposable.
+/// A disposable section is an encapsulation section in which the section data may be disposed of during
+/// the process of creating or updating a firmware image without significant impact on the usefulness of
+/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
+/// allows optional or descriptive data to be included with the firmware file which can be removed in
+/// order to conserve space. The contents of this section are implementation specific, but might contain
+/// debug data or detailed integration instructions.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_DISPOSABLE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_DISPOSABLE_SECTION2;
+
+///
+/// The leaf section which could be used to determine the dispatch order of DXEs.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_DXE_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_DXE_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a PI FV.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
+
+///
+/// The leaf section which contains a single GUID.
+///
+typedef struct {
+  ///
+  /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+  ///
+  EFI_GUID                    SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
+
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+  ///
+  EFI_GUID                      SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
+
+///
+/// Attributes of EFI_GUID_DEFINED_SECTION.
+///
+#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED  0x01
+#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID    0x02
+///
+/// The leaf section which is encapsulation defined by specific GUID.
+///
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+  ///
+  EFI_GUID                    SectionDefinitionGuid;
+  ///
+  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+  ///
+  UINT16                      DataOffset;
+  ///
+  /// The bit field that declares some specific characteristics of the section contents.
+  ///
+  UINT16                      Attributes;
+} EFI_GUID_DEFINED_SECTION;
+
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+  ///
+  EFI_GUID                      SectionDefinitionGuid;
+  ///
+  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+  ///
+  UINT16                        DataOffset;
+  ///
+  /// The bit field that declares some specific characteristics of the section contents.
+  ///
+  UINT16                        Attributes;
+} EFI_GUID_DEFINED_SECTION2;
+
+///
+/// The leaf section which contains PE32+ image.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PE32_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PE32_SECTION2;
+
+///
+/// The leaf section used to determine the dispatch order of PEIMs.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PEI_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PEI_DEPEX_SECTION2;
+
+///
+/// A leaf section type that contains a position-independent-code (PIC) image.
+/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
+/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
+/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
+/// relocation information has been stripped from the image and the image can be moved and will
+/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
+/// be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PIC_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PIC_SECTION2;
+
+///
+/// The leaf section which constains the position-independent-code image.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_TE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_TE_SECTION2;
+
+///
+/// The leaf section which contains an array of zero or more bytes.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_RAW_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_RAW_SECTION2;
+
+///
+/// The SMM dependency expression section is a leaf section that contains a dependency expression that
+/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
+/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
+/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
+/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
+/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a unicode string that
+/// is human readable file name.
+///
+typedef struct {
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+
+  ///
+  /// Array of unicode string.
+  ///
+  CHAR16                      FileNameString[1];
+} EFI_USER_INTERFACE_SECTION;
+
+typedef struct {
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  CHAR16                        FileNameString[1];
+} EFI_USER_INTERFACE_SECTION2;
+
+///
+/// The leaf section which contains a numeric build number and
+/// an optional unicode string that represents the file revision.
+///
+typedef struct {
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  UINT16                      BuildNumber;
+
+  ///
+  /// Array of unicode string.
+  ///
+  CHAR16                      VersionString[1];
+} EFI_VERSION_SECTION;
+
+typedef struct {
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// A UINT16 that represents a particular build. Subsequent builds have monotonically
+  /// increasing build numbers relative to earlier builds.
+  ///
+  UINT16                        BuildNumber;
+  CHAR16                        VersionString[1];
+} EFI_VERSION_SECTION2;
+
+#define IS_SECTION2(SectionHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
+
+#define SECTION_SIZE(SectionHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
+
+#define SECTION2_SIZE(SectionHeaderPtr) \
+    (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspfv.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspfv.h
new file mode 100644
index 0000000..75d17fa
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspfv.h
@@ -0,0 +1,247 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __PI_FIRMWAREVOLUME_H__
+#define __PI_FIRMWAREVOLUME_H__
+
+///
+/// EFI_FV_FILE_ATTRIBUTES
+///
+typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
+
+//
+// Value of EFI_FV_FILE_ATTRIBUTES.
+//
+#define EFI_FV_FILE_ATTRIB_ALIGNMENT      0x0000001F
+#define EFI_FV_FILE_ATTRIB_FIXED          0x00000100
+#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED  0x00000200
+
+///
+/// type of EFI FVB attribute
+///
+typedef UINT32  EFI_FVB_ATTRIBUTES_2;
+
+//
+// Attributes bit definitions
+//
+#define EFI_FVB2_READ_DISABLED_CAP  0x00000001
+#define EFI_FVB2_READ_ENABLED_CAP   0x00000002
+#define EFI_FVB2_READ_STATUS        0x00000004
+#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
+#define EFI_FVB2_WRITE_ENABLED_CAP  0x00000010
+#define EFI_FVB2_WRITE_STATUS       0x00000020
+#define EFI_FVB2_LOCK_CAP           0x00000040
+#define EFI_FVB2_LOCK_STATUS        0x00000080
+#define EFI_FVB2_STICKY_WRITE       0x00000200
+#define EFI_FVB2_MEMORY_MAPPED      0x00000400
+#define EFI_FVB2_ERASE_POLARITY     0x00000800
+#define EFI_FVB2_READ_LOCK_CAP      0x00001000
+#define EFI_FVB2_READ_LOCK_STATUS   0x00002000
+#define EFI_FVB2_WRITE_LOCK_CAP     0x00004000
+#define EFI_FVB2_WRITE_LOCK_STATUS  0x00008000
+#define EFI_FVB2_ALIGNMENT          0x001F0000
+#define EFI_FVB2_ALIGNMENT_1        0x00000000
+#define EFI_FVB2_ALIGNMENT_2        0x00010000
+#define EFI_FVB2_ALIGNMENT_4        0x00020000
+#define EFI_FVB2_ALIGNMENT_8        0x00030000
+#define EFI_FVB2_ALIGNMENT_16       0x00040000
+#define EFI_FVB2_ALIGNMENT_32       0x00050000
+#define EFI_FVB2_ALIGNMENT_64       0x00060000
+#define EFI_FVB2_ALIGNMENT_128      0x00070000
+#define EFI_FVB2_ALIGNMENT_256      0x00080000
+#define EFI_FVB2_ALIGNMENT_512      0x00090000
+#define EFI_FVB2_ALIGNMENT_1K       0x000A0000
+#define EFI_FVB2_ALIGNMENT_2K       0x000B0000
+#define EFI_FVB2_ALIGNMENT_4K       0x000C0000
+#define EFI_FVB2_ALIGNMENT_8K       0x000D0000
+#define EFI_FVB2_ALIGNMENT_16K      0x000E0000
+#define EFI_FVB2_ALIGNMENT_32K      0x000F0000
+#define EFI_FVB2_ALIGNMENT_64K      0x00100000
+#define EFI_FVB2_ALIGNMENT_128K     0x00110000
+#define EFI_FVB2_ALIGNMENT_256K     0x00120000
+#define EFI_FVB2_ALIGNMENT_512K     0x00130000
+#define EFI_FVB2_ALIGNMENT_1M       0x00140000
+#define EFI_FVB2_ALIGNMENT_2M       0x00150000
+#define EFI_FVB2_ALIGNMENT_4M       0x00160000
+#define EFI_FVB2_ALIGNMENT_8M       0x00170000
+#define EFI_FVB2_ALIGNMENT_16M      0x00180000
+#define EFI_FVB2_ALIGNMENT_32M      0x00190000
+#define EFI_FVB2_ALIGNMENT_64M      0x001A0000
+#define EFI_FVB2_ALIGNMENT_128M     0x001B0000
+#define EFI_FVB2_ALIGNMENT_256M     0x001C0000
+#define EFI_FVB2_ALIGNMENT_512M     0x001D0000
+#define EFI_FVB2_ALIGNMENT_1G       0x001E0000
+#define EFI_FVB2_ALIGNMENT_2G       0x001F0000
+
+
+typedef struct {
+  ///
+  /// The number of sequential blocks which are of the same size.
+  ///
+  UINT32 NumBlocks;
+  ///
+  /// The size of the blocks.
+  ///
+  UINT32 Length;
+} EFI_FV_BLOCK_MAP_ENTRY;
+
+///
+/// Describes the features and layout of the firmware volume.
+///
+typedef struct {
+  ///
+  /// The first 16 bytes are reserved to allow for the reset vector of
+  /// processors whose reset vector is at address 0.
+  ///
+  UINT8                     ZeroVector[16];
+  ///
+  /// Declares the file system with which the firmware volume is formatted.
+  ///
+  EFI_GUID                  FileSystemGuid;
+  ///
+  /// Length in bytes of the complete firmware volume, including the header.
+  ///
+  UINT64                    FvLength;
+  ///
+  /// Set to EFI_FVH_SIGNATURE
+  ///
+  UINT32                    Signature;
+  ///
+  /// Declares capabilities and power-on defaults for the firmware volume.
+  ///
+  EFI_FVB_ATTRIBUTES_2      Attributes;
+  ///
+  /// Length in bytes of the complete firmware volume header.
+  ///
+  UINT16                    HeaderLength;
+  ///
+  /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
+  ///
+  UINT16                    Checksum;
+  ///
+  /// Offset, relative to the start of the header, of the extended header
+  /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
+  ///
+  UINT16                    ExtHeaderOffset;
+  ///
+  /// This field must always be set to zero.
+  ///
+  UINT8                     Reserved[1];
+  ///
+  /// Set to 2. Future versions of this specification may define new header fields and will
+  /// increment the Revision field accordingly.
+  ///
+  UINT8                     Revision;
+  ///
+  /// An array of run-length encoded FvBlockMapEntry structures. The array is
+  /// terminated with an entry of {0,0}.
+  ///
+  EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
+} EFI_FIRMWARE_VOLUME_HEADER;
+
+#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
+
+///
+/// Firmware Volume Header Revision definition
+///
+#define EFI_FVH_REVISION  0x02
+
+///
+/// Extension header pointed by ExtHeaderOffset of volume header.
+///
+typedef struct {
+  ///
+  /// Firmware volume name.
+  ///
+  EFI_GUID  FvName;
+  ///
+  /// Size of the rest of the extension header, including this structure.
+  ///
+  UINT32    ExtHeaderSize;
+} EFI_FIRMWARE_VOLUME_EXT_HEADER;
+
+///
+/// Entry struture for describing FV extension header
+///
+typedef struct {
+  ///
+  /// Size of this header extension.
+  ///
+  UINT16    ExtEntrySize;
+  ///
+  /// Type of the header.
+  ///
+  UINT16    ExtEntryType;
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
+
+#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
+///
+/// This extension header provides a mapping between a GUID and an OEM file type.
+///
+typedef struct {
+  ///
+  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+  ///
+  EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
+  ///
+  /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
+  /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
+  ///
+  UINT32    TypeMask;
+  ///
+  /// An array of GUIDs, each GUID representing an OEM file type.
+  ///
+  /// EFI_GUID  Types[1];
+  ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
+
+#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002
+
+///
+/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
+/// GUID FormatType type which includes a length and a successive series of data bytes.
+///
+typedef struct {
+  ///
+  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+  ///
+  EFI_FIRMWARE_VOLUME_EXT_ENTRY     Hdr;
+  ///
+  /// Vendor-specific GUID.
+  ///
+  EFI_GUID                          FormatType;
+  ///
+  /// An arry of bytes of length Length.
+  ///
+  /// UINT8                             Data[1];
+  ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fsphob.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fsphob.h
new file mode 100644
index 0000000..5840907
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fsphob.h
@@ -0,0 +1,507 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __PI_HOB_H__
+#define __PI_HOB_H__
+
+//
+// HobType of EFI_HOB_GENERIC_HEADER.
+//
+#define EFI_HOB_TYPE_MEMORY_ALLOCATION    0x0002
+#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
+#define EFI_HOB_TYPE_GUID_EXTENSION       0x0004
+#define EFI_HOB_TYPE_UNUSED               0xFFFE
+#define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF
+
+///
+/// Describes the format and size of the data inside the HOB.
+/// All HOBs must contain this generic HOB header.
+///
+typedef struct {
+  ///
+  /// Identifies the HOB data structure type.
+  ///
+  UINT16    HobType;
+  ///
+  /// The length in bytes of the HOB.
+  ///
+  UINT16    HobLength;
+  ///
+  /// This field must always be set to zero.
+  ///
+  UINT32    Reserved;
+} EFI_HOB_GENERIC_HEADER;
+
+///
+/// Enumeration of memory types introduced in UEFI.
+///
+typedef enum {
+  ///
+  /// Not used.
+  ///
+  EfiReservedMemoryType,
+  ///
+  /// The code portions of a loaded application.
+  /// (Note that UEFI OS loaders are UEFI applications.)
+  ///
+  EfiLoaderCode,
+  ///
+  /// The data portions of a loaded application and the default data allocation
+  /// type used by an application to allocate pool memory.
+  ///
+  EfiLoaderData,
+  ///
+  /// The code portions of a loaded Boot Services Driver.
+  ///
+  EfiBootServicesCode,
+  ///
+  /// The data portions of a loaded Boot Serves Driver, and the default data
+  /// allocation type used by a Boot Services Driver to allocate pool memory.
+  ///
+  EfiBootServicesData,
+  ///
+  /// The code portions of a loaded Runtime Services Driver.
+  ///
+  EfiRuntimeServicesCode,
+  ///
+  /// The data portions of a loaded Runtime Services Driver and the default
+  /// data allocation type used by a Runtime Services Driver to allocate pool memory.
+  ///
+  EfiRuntimeServicesData,
+  ///
+  /// Free (unallocated) memory.
+  ///
+  EfiConventionalMemory,
+  ///
+  /// Memory in which errors have been detected.
+  ///
+  EfiUnusableMemory,
+  ///
+  /// Memory that holds the ACPI tables.
+  ///
+  EfiACPIReclaimMemory,
+  ///
+  /// Address space reserved for use by the firmware.
+  ///
+  EfiACPIMemoryNVS,
+  ///
+  /// Used by system firmware to request that a memory-mapped IO region
+  /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
+  ///
+  EfiMemoryMappedIO,
+  ///
+  /// System memory-mapped IO region that is used to translate memory
+  /// cycles to IO cycles by the processor.
+  ///
+  EfiMemoryMappedIOPortSpace,
+  ///
+  /// Address space reserved by the firmware for code that is part of the processor.
+  ///
+  EfiPalCode,
+  EfiMaxMemoryType
+} EFI_MEMORY_TYPE;
+
+///
+/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
+/// various attributes of the logical memory allocation. The type field will be used for
+/// subsequent inclusion in the UEFI memory map.
+///
+typedef struct {
+  ///
+  /// A GUID that defines the memory allocation region's type and purpose, as well as
+  /// other fields within the memory allocation HOB. This GUID is used to define the
+  /// additional data within the HOB that may be present for the memory allocation HOB.
+  /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
+  /// specification.
+  ///
+  EFI_GUID              Name;
+
+  ///
+  /// The base address of memory allocated by this HOB. Type
+  /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
+  /// specification.
+  ///
+  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
+
+  ///
+  /// The length in bytes of memory allocated by this HOB.
+  ///
+  UINT64                MemoryLength;
+
+  ///
+  /// Defines the type of memory allocated by this HOB. The memory type definition
+  /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
+  /// in AllocatePages() in the UEFI 2.0 specification.
+  ///
+  EFI_MEMORY_TYPE       MemoryType;
+
+  ///
+  /// Padding for Itanium processor family
+  ///
+  UINT8                 Reserved[4];
+} EFI_HOB_MEMORY_ALLOCATION_HEADER;
+
+///
+/// Describes all memory ranges used during the HOB producer
+/// phase that exist outside the HOB list. This HOB type
+/// describes how memory is used, not the physical attributes of memory.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
+  ///
+  EFI_HOB_GENERIC_HEADER            Header;
+  ///
+  /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
+  /// various attributes of the logical memory allocation.
+  ///
+  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
+  //
+  // Additional data pertaining to the "Name" Guid memory
+  // may go here.
+  //
+} EFI_HOB_MEMORY_ALLOCATION;
+
+///
+/// The resource type.
+///
+typedef UINT32 EFI_RESOURCE_TYPE;
+
+//
+// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
+//
+#define EFI_RESOURCE_SYSTEM_MEMORY          0x00000000
+#define EFI_RESOURCE_MEMORY_MAPPED_IO       0x00000001
+#define EFI_RESOURCE_IO                     0x00000002
+#define EFI_RESOURCE_FIRMWARE_DEVICE        0x00000003
+#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  0x00000004
+#define EFI_RESOURCE_MEMORY_RESERVED        0x00000005
+#define EFI_RESOURCE_IO_RESERVED            0x00000006
+#define EFI_RESOURCE_MAX_MEMORY_TYPE        0x00000007
+
+///
+/// A type of recount attribute type.
+///
+typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
+
+//
+// These types can be ORed together as needed.
+//
+// The first three enumerations describe settings
+//
+#define EFI_RESOURCE_ATTRIBUTE_PRESENT              0x00000001
+#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED          0x00000002
+#define EFI_RESOURCE_ATTRIBUTE_TESTED               0x00000004
+//
+// The rest of the settings describe capabilities
+//
+#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC           0x00000008
+#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC         0x00000010
+#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1           0x00000020
+#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2           0x00000040
+#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100
+#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200
+#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE              0x00000400
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE        0x00000800
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE  0x00001000
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE     0x00002000
+#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO                0x00004000
+#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO                0x00008000
+#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000
+#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000
+
+///
+/// Describes the resource properties of all fixed,
+/// nonrelocatable resource ranges found on the processor
+/// host bus during the HOB producer phase.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
+  ///
+  EFI_HOB_GENERIC_HEADER      Header;
+  ///
+  /// A GUID representing the owner of the resource. This GUID is used by HOB
+  /// consumer phase components to correlate device ownership of a resource.
+  ///
+  EFI_GUID                    Owner;
+  ///
+  /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
+  ///
+  EFI_RESOURCE_TYPE           ResourceType;
+  ///
+  /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
+  ///
+  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
+  ///
+  /// The physical start address of the resource region.
+  ///
+  EFI_PHYSICAL_ADDRESS        PhysicalStart;
+  ///
+  /// The number of bytes of the resource region.
+  ///
+  UINT64                      ResourceLength;
+} EFI_HOB_RESOURCE_DESCRIPTOR;
+
+///
+/// Allows writers of executable content in the HOB producer phase to
+/// maintain and manage HOBs with specific GUID.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
+  ///
+  EFI_HOB_GENERIC_HEADER      Header;
+  ///
+  /// A GUID that defines the contents of this HOB.
+  ///
+  EFI_GUID                    Name;
+  //
+  // Guid specific data goes here
+  //
+} EFI_HOB_GUID_TYPE;
+
+///
+/// Union of all the possible HOB Types.
+///
+typedef union {
+  EFI_HOB_GENERIC_HEADER              *Header;
+  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
+  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
+  EFI_HOB_GUID_TYPE                   *Guid;
+  UINT8                               *Raw;
+} EFI_PEI_HOB_POINTERS;
+
+
+/**
+  Returns the type of a HOB.
+
+  This macro returns the HobType field from the HOB header for the
+  HOB specified by HobStart.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return HobType.
+
+**/
+#define GET_HOB_TYPE(HobStart) \
+  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobType)
+
+/**
+  Returns the length, in bytes, of a HOB.
+
+  This macro returns the HobLength field from the HOB header for the
+  HOB specified by HobStart.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return HobLength.
+
+**/
+#define GET_HOB_LENGTH(HobStart) \
+  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobLength)
+
+/**
+  Returns a pointer to the next HOB in the HOB list.
+
+  This macro returns a pointer to HOB that follows the
+  HOB specified by HobStart in the HOB List.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return A pointer to the next HOB in the HOB list.
+
+**/
+#define GET_NEXT_HOB(HobStart) \
+  (VOID *)(*(UINT8 **)&(HobStart) + GET_HOB_LENGTH (HobStart))
+
+/**
+  Determines if a HOB is the last HOB in the HOB list.
+
+  This macro determine if the HOB specified by HobStart is the
+  last HOB in the HOB list.  If HobStart is last HOB in the HOB list,
+  then TRUE is returned.  Otherwise, FALSE is returned.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @retval TRUE       The HOB specified by HobStart is the last HOB in the HOB list.
+  @retval FALSE      The HOB specified by HobStart is not the last HOB in the HOB list.
+
+**/
+#define END_OF_HOB_LIST(HobStart)  (GET_HOB_TYPE (HobStart) == (UINT16)EFI_HOB_TYPE_END_OF_HOB_LIST)
+
+/**
+  Returns a pointer to data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  This macro returns a pointer to the data buffer in a HOB specified by HobStart.
+  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  @param   GuidHob   A pointer to a HOB.
+
+  @return  A pointer to the data buffer in a HOB.
+
+**/
+#define GET_GUID_HOB_DATA(HobStart) \
+  (VOID *)(*(UINT8 **)&(HobStart) + sizeof (EFI_HOB_GUID_TYPE))
+
+/**
+  Returns the size of the data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  This macro returns the size, in bytes, of the data buffer in a HOB specified by HobStart.
+  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  @param   GuidHob   A pointer to a HOB.
+
+  @return  The size of the data buffer.
+**/
+#define GET_GUID_HOB_DATA_SIZE(HobStart) \
+  (UINT16)(GET_HOB_LENGTH (HobStart) - sizeof (EFI_HOB_GUID_TYPE))
+
+/**
+  Returns the pointer to the HOB list.
+
+  This function returns the pointer to first HOB in the list.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+
+  @return The pointer to the HOB list.
+
+**/
+VOID *
+EFIAPI
+GetHobList (
+  VOID
+  );
+
+/**
+  Returns the next instance of a HOB type from the starting HOB.
+
+  This function searches the first instance of a HOB type from the starting HOB pointer.
+  If there does not exist such HOB type from the starting HOB pointer, it will return NULL.
+  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
+  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
+  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
+
+  If HobStart is NULL, then ASSERT().
+
+  @param  Type          The HOB type to return.
+  @param  HobStart      The starting HOB pointer to search from.
+
+  @return The next instance of a HOB type from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetNextHob (
+  UINT16                 Type,
+  CONST VOID             *HobStart
+  );
+
+/**
+  Returns the first instance of a HOB type among the whole HOB list.
+
+  This function searches the first instance of a HOB type among the whole HOB list.
+  If there does not exist such HOB type in the HOB list, it will return NULL.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+
+  @param  Type          The HOB type to return.
+
+  @return The next instance of a HOB type from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetFirstHob (
+  UINT16                 Type
+  );
+
+/**
+  Returns the next instance of the matched GUID HOB from the starting HOB.
+
+  This function searches the first instance of a HOB from the starting HOB pointer.
+  Such HOB should satisfy two conditions:
+  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
+  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
+  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
+  to extract the data section and its size info respectively.
+  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
+  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
+  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
+
+  If Guid is NULL, then ASSERT().
+  If HobStart is NULL, then ASSERT().
+
+  @param  Guid          The GUID to match with in the HOB list.
+  @param  HobStart      A pointer to a Guid.
+
+  @return The next instance of the matched GUID HOB from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetNextGuidHob (
+  CONST EFI_GUID         *Guid,
+  CONST VOID             *HobStart
+  );
+
+/**
+  Returns the first instance of the matched GUID HOB among the whole HOB list.
+
+  This function searches the first instance of a HOB among the whole HOB list.
+  Such HOB should satisfy two conditions:
+  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
+  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
+  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
+  to extract the data section and its size info respectively.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+  If Guid is NULL, then ASSERT().
+
+  @param  Guid          The GUID to match with in the HOB list.
+
+  @return The first instance of the matched GUID HOB among the whole HOB list.
+
+**/
+VOID *
+EFIAPI
+GetFirstGuidHob (
+  CONST EFI_GUID         *Guid
+  );
+
+BOOLEAN
+EFIAPI
+CompareGuid (
+  CONST EFI_GUID  *Guid1,
+  CONST EFI_GUID  *Guid2
+  );
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspinfoheader.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspinfoheader.h
new file mode 100644
index 0000000..0f7b3a9
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspinfoheader.h
@@ -0,0 +1,62 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_INFO_HEADER_H_
+#define _FSP_INFO_HEADER_H_
+
+#pragma pack(1)
+
+typedef struct  {
+
+  UINT32  Signature;       // Off 0x94
+  UINT32  HeaderLength;
+  UINT8   Reserved1[3];
+  UINT8   HeaderRevision;
+  UINT32  ImageRevision;
+
+  CHAR8   ImageId[8];      // Off 0xA4
+  UINT32  ImageSize;
+  UINT32  ImageBase;
+
+  UINT32  ImageAttribute;  // Off 0xB4
+  UINT32  CfgRegionOffset;
+  UINT32  CfgRegionSize;
+  UINT32  ApiEntryNum;
+
+  UINT32  NemInitEntry;    // Off 0xC4
+  UINT32  FspInitEntry;
+  UINT32  NotifyPhaseEntry;
+  UINT32  Reserved2;
+
+} FSP_INFO_HEADER;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspplatform.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspplatform.h
new file mode 100644
index 0000000..06cf67e
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fspplatform.h
@@ -0,0 +1,63 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_PLATFORM_H_
+#define _FSP_PLATFORM_H_
+
+#include "fsptypes.h"
+#include "fspapi.h"
+#include "mem_config.h"
+
+#pragma pack(1)
+
+typedef struct {
+    MEM_CONFIG  *MemoryConfig;
+} FSP_INIT_RT_PLATFORM_BUFFER;
+
+typedef struct {
+    uint8_t  HTEnable;
+    uint8_t  TurboEnable;
+    uint8_t  MemoryDownEnable;
+    uint8_t  FastBootEnable;
+} PLATFORM_CONFIG;
+
+typedef struct {
+    const PLATFORM_CONFIG  *PlatformConfig;
+} FSP_INIT_RT_CONFIG_BUFFER;
+
+typedef struct {
+    FSP_INIT_RT_COMMON_BUFFER  Common;
+    FSP_INIT_RT_CONFIG_BUFFER  PlatformConfiguration;
+    FSP_INIT_RT_PLATFORM_BUFFER  Platform;
+} FSP_INIT_RT_BUFFER;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fsptypes.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fsptypes.h
new file mode 100644
index 0000000..a3a54c0
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/fsptypes.h
@@ -0,0 +1,116 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+/** \file  fsptypes.h
+ *
+ *
+ */
+
+#ifndef __FSP_TYPES_H__
+#define __FSP_TYPES_H__
+
+///
+/// 8-byte unsigned value.
+///
+typedef unsigned long long  UINT64;
+///
+/// 8-byte signed value.
+///
+typedef long long           INT64;
+///
+/// 4-byte unsigned value.
+///
+typedef unsigned int        UINT32;
+///
+/// 4-byte signed value.
+///
+typedef int                 INT32;
+///
+/// 2-byte unsigned value.
+///
+typedef unsigned short      UINT16;
+///
+/// 2-byte Character.  Unless otherwise specified all strings are stored in the
+/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
+///
+typedef unsigned short      CHAR16;
+///
+/// 2-byte signed value.
+///
+typedef short               INT16;
+///
+/// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
+/// values are undefined.
+///
+typedef unsigned char       BOOLEAN;
+///
+/// 1-byte unsigned value.
+///
+typedef unsigned char       UINT8;
+///
+/// 1-byte Character
+///
+typedef char                CHAR8;
+///
+/// 1-byte signed value
+///
+typedef char                INT8;
+
+typedef void                VOID;
+
+typedef UINT64              EFI_PHYSICAL_ADDRESS;
+
+typedef struct {
+  UINT32  Data1;
+  UINT16  Data2;
+  UINT16  Data3;
+  UINT8   Data4[8];
+} EFI_GUID;
+
+#define CONST     const
+#define STATIC    static
+
+#define TRUE  ((BOOLEAN)(1==1))
+#define FALSE ((BOOLEAN)(0==1))
+
+#define FSPAPI __attribute__((cdecl))
+#define EFIAPI __attribute__((cdecl))
+
+#define ASSERT(Expression)      \
+  do {                          \
+    if (!(Expression)) {        \
+      for (;;);                 \
+    }                           \
+  } while (FALSE)
+
+typedef UINT32 FSP_STATUS;
+typedef UINT32 EFI_STATUS;
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/mem_config.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/mem_config.h
new file mode 100644
index 0000000..26deb90
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/mem_config.h
@@ -0,0 +1,131 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+//
+// mem_config.h
+//
+
+#ifndef _MEM_CONFIG_H_
+#define _MEM_CONFIG_H_
+
+typedef enum {
+  fi1067_IVB=0,
+  fi1333_IVB,
+  fi1400_IVB,
+  fi1600_IVB,
+  fi1800_IVB,
+  fi1867_IVB,
+  fi2000_IVB,
+  fi2133_IVB,
+  fi2200_IVB,
+  fi2400_IVB,
+  fi2600_IVB,
+  fi2667_IVB,
+  fi2800_IVB,
+  fiUnsupport_IVB,
+}TFrequencyIndex_IVB;
+
+#define NUM_IVB_MEM_CLK_FREQUENCIES 13
+
+// DDR3 memory SPD data
+//
+// NOTE: This only includes the SPD bytes that are relevant to the MRC
+typedef struct {                             // BYTE
+    uint8_t  SPDGeneral;                     // 0   Number of Serial PD Bytes Written / SPD Device Size / CRC Coverage 1, 2
+    uint8_t  SPDRevision;                    // 1   SPD Revision
+    uint8_t  DRAMDeviceType;                 // 2   DRAM Device Type
+    uint8_t  ModuleType;                     // 3   Module Type
+    uint8_t  SDRAMDensityAndBanks;           // 4   SDRAM Density and Banks
+    uint8_t  SDRAMAddressing;                // 5   SDRAM Addressing
+    uint8_t  VDD;                            // 6   Module Nominal Voltage
+    uint8_t  ModuleOrganization;             // 7   Module Organization
+    uint8_t  ModuleMemoryBusWidth;           // 8   Module Memory Bus Width
+    uint8_t  FineTimebase;                   // 9   Fine Timebase (FTB) Dividend / Divisor
+    uint8_t  TimebaseDividend;               // 10  Medium Timebase (MTB) Dividend
+    uint8_t  TimebaseDivisor;                // 11  Medium Timebase (MTB) Divisor
+    uint8_t  SDRAMMinimumCycleTime;          // 12  SDRAM Minimum Cycle Time (tCKmin)
+    uint8_t  Reserved0;                      // 13  Reserved0
+    uint8_t  CASLatenciesLSB;                // 14  CAS Latencies Supported, Least Significant Byte
+    uint8_t  CASLatenciesMSB;                // 15  CAS Latencies Supported, Most Significant Byte
+    uint8_t  MinimumCASLatencyTime;          // 16  Minimum CAS Latency Time (tAAmin)
+    uint8_t  MinimumWriteRecoveryTime;       // 17  Minimum Write Recovery Time (tWRmin)
+    uint8_t  MinimumRASToCASDelayTime;       // 18  Minimum RAS# to CAS# Delay Time (tRCDmin)
+    uint8_t  MinimumRowToRowDelayTime;       // 19  Minimum Row Active to Row Active Delay Time (tRRDmin)
+    uint8_t  MinimumRowPrechargeDelayTime;   // 20  Minimum Row Precharge Delay Time (tRPmin)
+    uint8_t  UpperNibblesFortRASAndtRC;      // 21  Upper Nibbles for tRAS and tRC
+    uint8_t  tRASmin;                        // 22  Minimum Active to Precharge Delay Time (tRASmin), Least Significant Byte
+    uint8_t  tRCmin;                         // 23  Minimum Active to Active/Refresh Delay Time (tRCmin), Least Significant Byte
+    uint8_t  tRFCminLeastSignificantByte;    // 24  Minimum Refresh Recovery Delay Time (tRFCmin), Least Significant Byte
+    uint8_t  tRFCminMostSignificantByte;     // 25  Minimum Refresh Recovery Delay Time (tRFCmin), Most Significant Byte
+    uint8_t  tWTRmin;                        // 26  Minimum Internal Write to Read Command Delay Time (tWTRmin)
+    uint8_t  tRTPmin;                        // 27  Minimum Internal Read to Precharge Command Delay Time (tRTPmin)
+    uint8_t  UpperNibbleFortFAW;             // 28  Upper Nibble for tFAW
+    uint8_t  tFAWmin;                        // 29  Minimum Four Activate Window Delay Time (tFAWmin)
+    uint8_t  SDRAMOptionalFeatures;          // 30  SDRAM Optional Features
+    uint8_t  SDRAMThermalAndRefreshOptions;  // 31  SDRAMThermalAndRefreshOptions
+    uint8_t  ModuleThermalSensor;            // 32  ModuleThermalSensor
+    uint8_t  SDRAMDeviceType;                // 33  SDRAM Device Type
+    int8_t   tCKminFine;                     // 34  Fine Offset for SDRAM Minimum Cycle Time (tCKmin)
+    int8_t   tAAminFine;                     // 35  Fine Offset for Minimum CAS Latency Time (tAAmin)
+    int8_t   tRCDminFine;                    // 36  Fine Offset for Minimum RAS# to CAS# Delay Time (tRCDmin)
+    int8_t   tRPminFine;                     // 37  Fine Offset for Minimum Row Precharge Delay Time (tRPmin)
+    int8_t   tRCminFine;                     // 38  Fine Offset for Minimum Active to Active/Refresh Delay Time (tRCmin)
+    uint8_t  ReferenceRawCardUsed;           // 62  Reference Raw Card Used
+    uint8_t  AddressMappingEdgeConnector;    // 63  Address Mapping from Edge Connector to DRAM
+    uint8_t  ThermalHeatSpreaderSolution;    // 64  ThermalHeatSpreaderSolution
+    uint8_t  ModuleManufacturerIdCodeLsb;    // 117 Module Manufacturer ID Code, Least Significant Byte
+    uint8_t  ModuleManufacturerIdCodeMsb;    // 118 Module Manufacturer ID Code, Most Significant Byte
+    uint8_t  ModuleManufacturingLocation;    // 119 Module Manufacturing Location
+    uint8_t  ModuleManufacturingDateYear;    // 120 Module Manufacturing Date Year
+    uint8_t  ModuleManufacturingDateWW;      // 121 Module Manufacturing Date creation work week
+    uint8_t  ModuleSerialNumberA;            // 122 Module Serial Number A
+    uint8_t  ModuleSerialNumberB;            // 123 Module Serial Number B
+    uint8_t  ModuleSerialNumberC;            // 124 Module Serial Number C
+    uint8_t  ModuleSerialNumberD;            // 125 Module Serial Number D
+    uint8_t  CRCA;                           // 126 CRC A
+    uint8_t  CRCB;                           // 127 CRC B
+} DDR3_SPD;
+
+// Configuration for each memory channel/bank
+typedef struct {
+    uint32_t  Exists;
+    DDR3_SPD  SpdData;
+    uint8_t   InitClkPiValue[NUM_IVB_MEM_CLK_FREQUENCIES];
+} MEM_BANK_CONFIG;
+
+// Memory configuration
+typedef struct {
+    MEM_BANK_CONFIG  ChannelABank0;
+    MEM_BANK_CONFIG  ChannelABank1;
+    MEM_BANK_CONFIG  ChannelBBank0;
+    MEM_BANK_CONFIG  ChannelBBank1;
+} MEM_CONFIG;
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/peifsp.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/peifsp.h
new file mode 100644
index 0000000..dc3e60f
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/include/peifsp.h
@@ -0,0 +1,42 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+/** \file  peifsp.h
+ *
+ *
+ */
+#include <stdint.h>
+#include "fsptypes.h"
+#include "fspfv.h"
+#include "fspffs.h"
+#include "fsphob.h"
+#include "fspapi.h"
+#include "fspplatform.h"
+#include "fspinfoheader.h"
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/srx/fsphob.c b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/srx/fsphob.c
new file mode 100644
index 0000000..4214b3a
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_bd82x6x/srx/fsphob.c
@@ -0,0 +1,207 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+/***********************************************************************
+ *
+ * fsphob.c
+ *
+ * HOB infrastructure code.
+ *
+ **********************************************************************/
+#include <string.h>
+
+#include "fsptypes.h"
+#include "fsphob.h"
+
+//
+// Pointer to the HOB should be initialized with the output of FSP INIT PARAMS
+//
+extern volatile void *FspHobListPtr;
+
+//
+// Function prototype
+//
+UINT64
+EFIAPI
+ReadUnaligned64 (
+  CONST UINT64              *Buffer
+  );
+
+/**
+  Reads a 64-bit value from memory that may be unaligned.
+
+  This function returns the 64-bit value pointed to by Buffer. The function
+  guarantees that the read operation does not produce an alignment fault.
+
+  If the Buffer is NULL, then ASSERT().
+
+  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
+
+  @return The 64-bit value read from Buffer.
+
+**/
+UINT64
+EFIAPI
+ReadUnaligned64 (
+  CONST UINT64              *Buffer
+  )
+{
+  ASSERT (Buffer != NULL);
+
+  return *Buffer;
+}
+
+/**
+  Compares two GUIDs.
+
+  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
+  If there are any bit differences in the two GUIDs, then FALSE is returned.
+
+  If Guid1 is NULL, then ASSERT().
+  If Guid2 is NULL, then ASSERT().
+
+  @param  Guid1       A pointer to a 128 bit GUID.
+  @param  Guid2       A pointer to a 128 bit GUID.
+
+  @retval TRUE        Guid1 and Guid2 are identical.
+  @retval FALSE       Guid1 and Guid2 are not identical.
+
+**/
+BOOLEAN
+EFIAPI
+CompareGuid (
+  CONST EFI_GUID  *Guid1,
+  CONST EFI_GUID  *Guid2
+  )
+{
+  UINT64  LowPartOfGuid1;
+  UINT64  LowPartOfGuid2;
+  UINT64  HighPartOfGuid1;
+  UINT64  HighPartOfGuid2;
+
+  LowPartOfGuid1  = ReadUnaligned64 ((CONST UINT64*) Guid1);
+  LowPartOfGuid2  = ReadUnaligned64 ((CONST UINT64*) Guid2);
+  HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1);
+  HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1);
+
+  return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2);
+}
+
+/**
+  Returns the pointer to the HOB list.
+**/
+VOID *
+EFIAPI
+GetHobList (
+  VOID
+  )
+{
+  ASSERT (FspHobListPtr != NULL);
+  return ((VOID *)FspHobListPtr);
+}
+
+/**
+  Returns the next instance of a HOB type from the starting HOB.
+**/
+VOID *
+EFIAPI
+GetNextHob (
+  UINT16                 Type,
+  CONST VOID             *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  Hob;
+
+  ASSERT (HobStart != NULL);
+
+  Hob.Raw = (UINT8 *) HobStart;
+  //
+  // Parse the HOB list until end of list or matching type is found.
+  //
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == Type) {
+      return Hob.Raw;
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+  return NULL;
+}
+
+/**
+  Returns the first instance of a HOB type among the whole HOB list.
+**/
+VOID *
+EFIAPI
+GetFirstHob (
+  UINT16                 Type
+  )
+{
+  VOID      *HobList;
+
+  HobList = GetHobList ();
+  return GetNextHob (Type, HobList);
+}
+
+/**
+  Returns the next instance of the matched GUID HOB from the starting HOB.
+**/
+VOID *
+EFIAPI
+GetNextGuidHob (
+  CONST EFI_GUID         *Guid,
+  CONST VOID             *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  GuidHob;
+
+  GuidHob.Raw = (UINT8 *) HobStart;
+  while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
+    if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
+      break;
+    }
+    GuidHob.Raw = GET_NEXT_HOB (GuidHob);
+  }
+  return GuidHob.Raw;
+}
+
+/**
+  Returns the first instance of the matched GUID HOB among the whole HOB list.
+**/
+VOID *
+EFIAPI
+GetFirstGuidHob (
+  CONST EFI_GUID         *Guid
+  )
+{
+  VOID      *HobList;
+
+  HobList = GetHobList ();
+  return GetNextGuidHob (Guid, HobList);
+}
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fsp_vpd.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fsp_vpd.h
new file mode 100644
index 0000000..fdee5f4
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fsp_vpd.h
@@ -0,0 +1,60 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __VPDHEADER_H__
+#define __VPDHEADER_H__
+
+#pragma pack(1)
+
+typedef struct _UPD_DATA_REGION {
+  UINT64   Signature;                             /* Offset 0x0000 */
+  UINT64   Reserved;                              /* Offset 0x0008 */
+  UINT8    HTEnable;                              /* Offset 0x0010 */
+  UINT8    TurboEnable;                           /* Offset 0x0011 */
+  UINT8    MemoryDownEnable;                      /* Offset 0x0012 */
+  UINT8    FastBootEnable;                        /* Offset 0x0013 */
+  UINT16   PcdRegionTerminator;                   /* Offset 0x0310 */
+} UPD_DATA_REGION;
+
+
+#define VPD_IMAGE_SIGN  0x565053462d325453        /* 'ST2-FSPV' */
+#define VPD_IMAGE_REV   0x00000001
+
+typedef struct _VPD_DATA_REGION {
+  UINT64   PcdVpdRegionSign;                      /* Offset 0x0000 */
+  UINT32   PcdImageRevision;                      /* Offset 0x0008 */
+  UINT32   PcdUpdRegionOffset;                    /* Offset 0x000C */
+  UINT8    Padding0[16];                          /* Offset 0x0010 */
+  UINT32   PcdFspReservedMemoryLength;            /* Offset 0x0020 */
+} VPD_DATA_REGION;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspapi.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspapi.h
new file mode 100644
index 0000000..18a1582
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspapi.h
@@ -0,0 +1,49 @@
+/**
+
+Copyright (c) 2008 - 2013, Intel Corporation. All rights reserved.
+This software and associated documentation (if any) is furnished
+under a license and may only be used or copied in accordance
+with the terms of the license. Except as permitted by such
+license, no part of this software or documentation may be
+reproduced, stored in a retrieval system, or transmitted in any
+form or by any means without the express written consent of
+Intel Corporation.
+
+**/
+
+#ifndef _FSP_API_H_
+#define _FSP_API_H_
+
+#pragma pack(1)
+
+typedef VOID (* CONTINUATION_PROC)(EFI_STATUS Status, VOID *HobListPtr);
+
+typedef struct {
+  VOID               *NvsBufferPtr;
+  VOID               *RtBufferPtr;
+  CONTINUATION_PROC   ContinuationFunc;
+} FSP_INIT_PARAMS;
+
+typedef struct {
+  UINT32            *StackTop;
+  UINT32             BootMode;  /* Refer to boot mode defined in MdePkg\Include\Pi\PiBootMode.h */
+  VOID              *UpdDataRgnPtr;
+  UINT32             Reserved[7];
+} FSP_INIT_RT_COMMON_BUFFER;
+
+typedef enum {
+  EnumInitPhaseAfterPciEnumeration = 0x20,
+  EnumInitPhaseReadyToBoot = 0x40
+} FSP_INIT_PHASE;
+
+typedef struct {
+  FSP_INIT_PHASE     Phase;
+} NOTIFY_PHASE_PARAMS;
+
+#pragma pack()
+
+
+typedef FSP_STATUS (FSPAPI *FSP_FSP_INIT)    (FSP_INIT_PARAMS     *FspInitParamPtr);
+typedef FSP_STATUS (FSPAPI *FSP_NOTFY_PHASE) (NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr);
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspffs.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspffs.h
new file mode 100644
index 0000000..7a7c367
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspffs.h
@@ -0,0 +1,506 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+
+#ifndef __PI_FIRMWARE_FILE_H__
+#define __PI_FIRMWARE_FILE_H__
+
+#pragma pack(1)
+///
+/// Used to verify the integrity of the file.
+///
+typedef union {
+  struct {
+    ///
+    /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
+    /// header. The State and IntegrityCheck.Checksum.File fields are assumed
+    /// to be zero and the checksum is calculated such that the entire header sums to zero.
+    ///
+    UINT8   Header;
+    ///
+    /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
+    /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
+    /// checksum of the file data.
+    /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
+    /// the IntegrityCheck.Checksum.File field must be initialized with a value of
+    /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
+    /// EFI_FILE_DATA_VALID bit is set in the State field.
+    ///
+    UINT8   File;
+  } Checksum;
+  ///
+  /// This is the full 16 bits of the IntegrityCheck field.
+  ///
+  UINT16    Checksum16;
+} EFI_FFS_INTEGRITY_CHECK;
+
+///
+/// FFS_FIXED_CHECKSUM is the checksum value used when the
+/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
+///
+#define FFS_FIXED_CHECKSUM  0xAA
+
+typedef UINT8 EFI_FV_FILETYPE;
+typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
+typedef UINT8 EFI_FFS_FILE_STATE;
+
+///
+/// File Types Definitions
+///
+#define EFI_FV_FILETYPE_ALL                   0x00
+#define EFI_FV_FILETYPE_RAW                   0x01
+#define EFI_FV_FILETYPE_FREEFORM              0x02
+#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
+#define EFI_FV_FILETYPE_PEI_CORE              0x04
+#define EFI_FV_FILETYPE_DXE_CORE              0x05
+#define EFI_FV_FILETYPE_PEIM                  0x06
+#define EFI_FV_FILETYPE_DRIVER                0x07
+#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
+#define EFI_FV_FILETYPE_APPLICATION           0x09
+#define EFI_FV_FILETYPE_SMM                   0x0A
+#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
+#define EFI_FV_FILETYPE_COMBINED_SMM_DXE      0x0C
+#define EFI_FV_FILETYPE_SMM_CORE              0x0D
+#define EFI_FV_FILETYPE_OEM_MIN               0xc0
+#define EFI_FV_FILETYPE_OEM_MAX               0xdf
+#define EFI_FV_FILETYPE_DEBUG_MIN             0xe0
+#define EFI_FV_FILETYPE_DEBUG_MAX             0xef
+#define EFI_FV_FILETYPE_FFS_MIN               0xf0
+#define EFI_FV_FILETYPE_FFS_MAX               0xff
+#define EFI_FV_FILETYPE_FFS_PAD               0xf0
+///
+/// FFS File Attributes.
+///
+#define FFS_ATTRIB_LARGE_FILE         0x01
+#define FFS_ATTRIB_FIXED              0x04
+#define FFS_ATTRIB_DATA_ALIGNMENT     0x38
+#define FFS_ATTRIB_CHECKSUM           0x40
+
+///
+/// FFS File State Bits.
+///
+#define EFI_FILE_HEADER_CONSTRUCTION  0x01
+#define EFI_FILE_HEADER_VALID         0x02
+#define EFI_FILE_DATA_VALID           0x04
+#define EFI_FILE_MARKED_FOR_UPDATE    0x08
+#define EFI_FILE_DELETED              0x10
+#define EFI_FILE_HEADER_INVALID       0x20
+
+
+///
+/// Each file begins with the header that describe the
+/// contents and state of the files.
+///
+typedef struct {
+  ///
+  /// This GUID is the file name. It is used to uniquely identify the file.
+  ///
+  EFI_GUID                Name;
+  ///
+  /// Used to verify the integrity of the file.
+  ///
+  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
+  ///
+  /// Identifies the type of file.
+  ///
+  EFI_FV_FILETYPE         Type;
+  ///
+  /// Declares various file attribute bits.
+  ///
+  EFI_FFS_FILE_ATTRIBUTES Attributes;
+  ///
+  /// The length of the file in bytes, including the FFS header.
+  ///
+  UINT8                   Size[3];
+  ///
+  /// Used to track the state of the file throughout the life of the file from creation to deletion.
+  ///
+  EFI_FFS_FILE_STATE      State;
+} EFI_FFS_FILE_HEADER;
+
+typedef struct {
+  ///
+  /// This GUID is the file name. It is used to uniquely identify the file. There may be only
+  /// one instance of a file with the file name GUID of Name in any given firmware
+  /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
+  ///
+  EFI_GUID                  Name;
+
+  ///
+  /// Used to verify the integrity of the file.
+  ///
+  EFI_FFS_INTEGRITY_CHECK   IntegrityCheck;
+
+  ///
+  /// Identifies the type of file.
+  ///
+  EFI_FV_FILETYPE           Type;
+
+  ///
+  /// Declares various file attribute bits.
+  ///
+  EFI_FFS_FILE_ATTRIBUTES   Attributes;
+
+  ///
+  /// The length of the file in bytes, including the FFS header.
+  /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
+  /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
+  /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
+  /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
+  ///
+  UINT8                     Size[3];
+
+  ///
+  /// Used to track the state of the file throughout the life of the file from creation to deletion.
+  ///
+  EFI_FFS_FILE_STATE        State;
+
+  ///
+  /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
+  /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
+  ///
+  UINT32                    ExtendedSize;
+} EFI_FFS_FILE_HEADER2;
+
+#define IS_FFS_FILE2(FfsFileHeaderPtr) \
+    (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
+
+#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
+
+#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
+    (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
+
+typedef UINT8 EFI_SECTION_TYPE;
+
+///
+/// Pseudo type. It is used as a wild card when retrieving sections.
+///  The section type EFI_SECTION_ALL matches all section types.
+///
+#define EFI_SECTION_ALL                   0x00
+
+///
+/// Encapsulation section Type values.
+///
+#define EFI_SECTION_COMPRESSION           0x01
+
+#define EFI_SECTION_GUID_DEFINED          0x02
+
+#define EFI_SECTION_DISPOSABLE            0x03
+
+///
+/// Leaf section Type values.
+///
+#define EFI_SECTION_PE32                  0x10
+#define EFI_SECTION_PIC                   0x11
+#define EFI_SECTION_TE                    0x12
+#define EFI_SECTION_DXE_DEPEX             0x13
+#define EFI_SECTION_VERSION               0x14
+#define EFI_SECTION_USER_INTERFACE        0x15
+#define EFI_SECTION_COMPATIBILITY16       0x16
+#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
+#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
+#define EFI_SECTION_RAW                   0x19
+#define EFI_SECTION_PEI_DEPEX             0x1B
+#define EFI_SECTION_SMM_DEPEX             0x1C
+
+///
+/// Common section header.
+///
+typedef struct {
+  ///
+  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+  /// including the EFI_COMMON_SECTION_HEADER.
+  ///
+  UINT8             Size[3];
+  EFI_SECTION_TYPE  Type;
+  ///
+  /// Declares the section type.
+  ///
+} EFI_COMMON_SECTION_HEADER;
+
+typedef struct {
+  ///
+  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+  /// including the EFI_COMMON_SECTION_HEADER.
+  ///
+  UINT8             Size[3];
+
+  EFI_SECTION_TYPE  Type;
+
+  ///
+  /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
+  /// Size is not equal to 0xFFFFFF, then this field does not exist.
+  ///
+  UINT32            ExtendedSize;
+} EFI_COMMON_SECTION_HEADER2;
+
+///
+/// Leaf section type that contains an
+/// IA-32 16-bit executable image.
+///
+typedef EFI_COMMON_SECTION_HEADER  EFI_COMPATIBILITY16_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
+
+///
+/// CompressionType of EFI_COMPRESSION_SECTION.
+///
+#define EFI_NOT_COMPRESSED        0x00
+#define EFI_STANDARD_COMPRESSION  0x01
+///
+/// An encapsulation section type in which the
+/// section data is compressed.
+///
+typedef struct {
+  ///
+  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// The UINT32 that indicates the size of the section data after decompression.
+  ///
+  UINT32                      UncompressedLength;
+  ///
+  /// Indicates which compression algorithm is used.
+  ///
+  UINT8                       CompressionType;
+} EFI_COMPRESSION_SECTION;
+
+typedef struct {
+  ///
+  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// UINT32 that indicates the size of the section data after decompression.
+  ///
+  UINT32                        UncompressedLength;
+  ///
+  /// Indicates which compression algorithm is used.
+  ///
+  UINT8                         CompressionType;
+} EFI_COMPRESSION_SECTION2;
+
+///
+/// An encapsulation section type in which the section data is disposable.
+/// A disposable section is an encapsulation section in which the section data may be disposed of during
+/// the process of creating or updating a firmware image without significant impact on the usefulness of
+/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
+/// allows optional or descriptive data to be included with the firmware file which can be removed in
+/// order to conserve space. The contents of this section are implementation specific, but might contain
+/// debug data or detailed integration instructions.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_DISPOSABLE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_DISPOSABLE_SECTION2;
+
+///
+/// The leaf section which could be used to determine the dispatch order of DXEs.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_DXE_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_DXE_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a PI FV.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
+
+///
+/// The leaf section which contains a single GUID.
+///
+typedef struct {
+  ///
+  /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+  ///
+  EFI_GUID                    SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
+
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+  ///
+  EFI_GUID                      SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
+
+///
+/// Attributes of EFI_GUID_DEFINED_SECTION.
+///
+#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED  0x01
+#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID    0x02
+///
+/// The leaf section which is encapsulation defined by specific GUID.
+///
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+  ///
+  EFI_GUID                    SectionDefinitionGuid;
+  ///
+  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+  ///
+  UINT16                      DataOffset;
+  ///
+  /// The bit field that declares some specific characteristics of the section contents.
+  ///
+  UINT16                      Attributes;
+} EFI_GUID_DEFINED_SECTION;
+
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+  ///
+  EFI_GUID                      SectionDefinitionGuid;
+  ///
+  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+  ///
+  UINT16                        DataOffset;
+  ///
+  /// The bit field that declares some specific characteristics of the section contents.
+  ///
+  UINT16                        Attributes;
+} EFI_GUID_DEFINED_SECTION2;
+
+///
+/// The leaf section which contains PE32+ image.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PE32_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PE32_SECTION2;
+
+///
+/// The leaf section used to determine the dispatch order of PEIMs.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PEI_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PEI_DEPEX_SECTION2;
+
+///
+/// A leaf section type that contains a position-independent-code (PIC) image.
+/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
+/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
+/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
+/// relocation information has been stripped from the image and the image can be moved and will
+/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
+/// be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PIC_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PIC_SECTION2;
+
+///
+/// The leaf section which constains the position-independent-code image.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_TE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_TE_SECTION2;
+
+///
+/// The leaf section which contains an array of zero or more bytes.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_RAW_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_RAW_SECTION2;
+
+///
+/// The SMM dependency expression section is a leaf section that contains a dependency expression that
+/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
+/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
+/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
+/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
+/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a unicode string that
+/// is human readable file name.
+///
+typedef struct {
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+
+  ///
+  /// Array of unicode string.
+  ///
+  CHAR16                      FileNameString[1];
+} EFI_USER_INTERFACE_SECTION;
+
+typedef struct {
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  CHAR16                        FileNameString[1];
+} EFI_USER_INTERFACE_SECTION2;
+
+///
+/// The leaf section which contains a numeric build number and
+/// an optional unicode string that represents the file revision.
+///
+typedef struct {
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  UINT16                      BuildNumber;
+
+  ///
+  /// Array of unicode string.
+  ///
+  CHAR16                      VersionString[1];
+} EFI_VERSION_SECTION;
+
+typedef struct {
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// A UINT16 that represents a particular build. Subsequent builds have monotonically
+  /// increasing build numbers relative to earlier builds.
+  ///
+  UINT16                        BuildNumber;
+  CHAR16                        VersionString[1];
+} EFI_VERSION_SECTION2;
+
+#define IS_SECTION2(SectionHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
+
+#define SECTION_SIZE(SectionHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
+
+#define SECTION2_SIZE(SectionHeaderPtr) \
+    (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspfv.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspfv.h
new file mode 100644
index 0000000..75d17fa
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspfv.h
@@ -0,0 +1,247 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __PI_FIRMWAREVOLUME_H__
+#define __PI_FIRMWAREVOLUME_H__
+
+///
+/// EFI_FV_FILE_ATTRIBUTES
+///
+typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
+
+//
+// Value of EFI_FV_FILE_ATTRIBUTES.
+//
+#define EFI_FV_FILE_ATTRIB_ALIGNMENT      0x0000001F
+#define EFI_FV_FILE_ATTRIB_FIXED          0x00000100
+#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED  0x00000200
+
+///
+/// type of EFI FVB attribute
+///
+typedef UINT32  EFI_FVB_ATTRIBUTES_2;
+
+//
+// Attributes bit definitions
+//
+#define EFI_FVB2_READ_DISABLED_CAP  0x00000001
+#define EFI_FVB2_READ_ENABLED_CAP   0x00000002
+#define EFI_FVB2_READ_STATUS        0x00000004
+#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
+#define EFI_FVB2_WRITE_ENABLED_CAP  0x00000010
+#define EFI_FVB2_WRITE_STATUS       0x00000020
+#define EFI_FVB2_LOCK_CAP           0x00000040
+#define EFI_FVB2_LOCK_STATUS        0x00000080
+#define EFI_FVB2_STICKY_WRITE       0x00000200
+#define EFI_FVB2_MEMORY_MAPPED      0x00000400
+#define EFI_FVB2_ERASE_POLARITY     0x00000800
+#define EFI_FVB2_READ_LOCK_CAP      0x00001000
+#define EFI_FVB2_READ_LOCK_STATUS   0x00002000
+#define EFI_FVB2_WRITE_LOCK_CAP     0x00004000
+#define EFI_FVB2_WRITE_LOCK_STATUS  0x00008000
+#define EFI_FVB2_ALIGNMENT          0x001F0000
+#define EFI_FVB2_ALIGNMENT_1        0x00000000
+#define EFI_FVB2_ALIGNMENT_2        0x00010000
+#define EFI_FVB2_ALIGNMENT_4        0x00020000
+#define EFI_FVB2_ALIGNMENT_8        0x00030000
+#define EFI_FVB2_ALIGNMENT_16       0x00040000
+#define EFI_FVB2_ALIGNMENT_32       0x00050000
+#define EFI_FVB2_ALIGNMENT_64       0x00060000
+#define EFI_FVB2_ALIGNMENT_128      0x00070000
+#define EFI_FVB2_ALIGNMENT_256      0x00080000
+#define EFI_FVB2_ALIGNMENT_512      0x00090000
+#define EFI_FVB2_ALIGNMENT_1K       0x000A0000
+#define EFI_FVB2_ALIGNMENT_2K       0x000B0000
+#define EFI_FVB2_ALIGNMENT_4K       0x000C0000
+#define EFI_FVB2_ALIGNMENT_8K       0x000D0000
+#define EFI_FVB2_ALIGNMENT_16K      0x000E0000
+#define EFI_FVB2_ALIGNMENT_32K      0x000F0000
+#define EFI_FVB2_ALIGNMENT_64K      0x00100000
+#define EFI_FVB2_ALIGNMENT_128K     0x00110000
+#define EFI_FVB2_ALIGNMENT_256K     0x00120000
+#define EFI_FVB2_ALIGNMENT_512K     0x00130000
+#define EFI_FVB2_ALIGNMENT_1M       0x00140000
+#define EFI_FVB2_ALIGNMENT_2M       0x00150000
+#define EFI_FVB2_ALIGNMENT_4M       0x00160000
+#define EFI_FVB2_ALIGNMENT_8M       0x00170000
+#define EFI_FVB2_ALIGNMENT_16M      0x00180000
+#define EFI_FVB2_ALIGNMENT_32M      0x00190000
+#define EFI_FVB2_ALIGNMENT_64M      0x001A0000
+#define EFI_FVB2_ALIGNMENT_128M     0x001B0000
+#define EFI_FVB2_ALIGNMENT_256M     0x001C0000
+#define EFI_FVB2_ALIGNMENT_512M     0x001D0000
+#define EFI_FVB2_ALIGNMENT_1G       0x001E0000
+#define EFI_FVB2_ALIGNMENT_2G       0x001F0000
+
+
+typedef struct {
+  ///
+  /// The number of sequential blocks which are of the same size.
+  ///
+  UINT32 NumBlocks;
+  ///
+  /// The size of the blocks.
+  ///
+  UINT32 Length;
+} EFI_FV_BLOCK_MAP_ENTRY;
+
+///
+/// Describes the features and layout of the firmware volume.
+///
+typedef struct {
+  ///
+  /// The first 16 bytes are reserved to allow for the reset vector of
+  /// processors whose reset vector is at address 0.
+  ///
+  UINT8                     ZeroVector[16];
+  ///
+  /// Declares the file system with which the firmware volume is formatted.
+  ///
+  EFI_GUID                  FileSystemGuid;
+  ///
+  /// Length in bytes of the complete firmware volume, including the header.
+  ///
+  UINT64                    FvLength;
+  ///
+  /// Set to EFI_FVH_SIGNATURE
+  ///
+  UINT32                    Signature;
+  ///
+  /// Declares capabilities and power-on defaults for the firmware volume.
+  ///
+  EFI_FVB_ATTRIBUTES_2      Attributes;
+  ///
+  /// Length in bytes of the complete firmware volume header.
+  ///
+  UINT16                    HeaderLength;
+  ///
+  /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
+  ///
+  UINT16                    Checksum;
+  ///
+  /// Offset, relative to the start of the header, of the extended header
+  /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
+  ///
+  UINT16                    ExtHeaderOffset;
+  ///
+  /// This field must always be set to zero.
+  ///
+  UINT8                     Reserved[1];
+  ///
+  /// Set to 2. Future versions of this specification may define new header fields and will
+  /// increment the Revision field accordingly.
+  ///
+  UINT8                     Revision;
+  ///
+  /// An array of run-length encoded FvBlockMapEntry structures. The array is
+  /// terminated with an entry of {0,0}.
+  ///
+  EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
+} EFI_FIRMWARE_VOLUME_HEADER;
+
+#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
+
+///
+/// Firmware Volume Header Revision definition
+///
+#define EFI_FVH_REVISION  0x02
+
+///
+/// Extension header pointed by ExtHeaderOffset of volume header.
+///
+typedef struct {
+  ///
+  /// Firmware volume name.
+  ///
+  EFI_GUID  FvName;
+  ///
+  /// Size of the rest of the extension header, including this structure.
+  ///
+  UINT32    ExtHeaderSize;
+} EFI_FIRMWARE_VOLUME_EXT_HEADER;
+
+///
+/// Entry struture for describing FV extension header
+///
+typedef struct {
+  ///
+  /// Size of this header extension.
+  ///
+  UINT16    ExtEntrySize;
+  ///
+  /// Type of the header.
+  ///
+  UINT16    ExtEntryType;
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
+
+#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
+///
+/// This extension header provides a mapping between a GUID and an OEM file type.
+///
+typedef struct {
+  ///
+  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+  ///
+  EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
+  ///
+  /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
+  /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
+  ///
+  UINT32    TypeMask;
+  ///
+  /// An array of GUIDs, each GUID representing an OEM file type.
+  ///
+  /// EFI_GUID  Types[1];
+  ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
+
+#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002
+
+///
+/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
+/// GUID FormatType type which includes a length and a successive series of data bytes.
+///
+typedef struct {
+  ///
+  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+  ///
+  EFI_FIRMWARE_VOLUME_EXT_ENTRY     Hdr;
+  ///
+  /// Vendor-specific GUID.
+  ///
+  EFI_GUID                          FormatType;
+  ///
+  /// An arry of bytes of length Length.
+  ///
+  /// UINT8                             Data[1];
+  ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fsphob.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fsphob.h
new file mode 100644
index 0000000..5840907
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fsphob.h
@@ -0,0 +1,507 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __PI_HOB_H__
+#define __PI_HOB_H__
+
+//
+// HobType of EFI_HOB_GENERIC_HEADER.
+//
+#define EFI_HOB_TYPE_MEMORY_ALLOCATION    0x0002
+#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
+#define EFI_HOB_TYPE_GUID_EXTENSION       0x0004
+#define EFI_HOB_TYPE_UNUSED               0xFFFE
+#define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF
+
+///
+/// Describes the format and size of the data inside the HOB.
+/// All HOBs must contain this generic HOB header.
+///
+typedef struct {
+  ///
+  /// Identifies the HOB data structure type.
+  ///
+  UINT16    HobType;
+  ///
+  /// The length in bytes of the HOB.
+  ///
+  UINT16    HobLength;
+  ///
+  /// This field must always be set to zero.
+  ///
+  UINT32    Reserved;
+} EFI_HOB_GENERIC_HEADER;
+
+///
+/// Enumeration of memory types introduced in UEFI.
+///
+typedef enum {
+  ///
+  /// Not used.
+  ///
+  EfiReservedMemoryType,
+  ///
+  /// The code portions of a loaded application.
+  /// (Note that UEFI OS loaders are UEFI applications.)
+  ///
+  EfiLoaderCode,
+  ///
+  /// The data portions of a loaded application and the default data allocation
+  /// type used by an application to allocate pool memory.
+  ///
+  EfiLoaderData,
+  ///
+  /// The code portions of a loaded Boot Services Driver.
+  ///
+  EfiBootServicesCode,
+  ///
+  /// The data portions of a loaded Boot Serves Driver, and the default data
+  /// allocation type used by a Boot Services Driver to allocate pool memory.
+  ///
+  EfiBootServicesData,
+  ///
+  /// The code portions of a loaded Runtime Services Driver.
+  ///
+  EfiRuntimeServicesCode,
+  ///
+  /// The data portions of a loaded Runtime Services Driver and the default
+  /// data allocation type used by a Runtime Services Driver to allocate pool memory.
+  ///
+  EfiRuntimeServicesData,
+  ///
+  /// Free (unallocated) memory.
+  ///
+  EfiConventionalMemory,
+  ///
+  /// Memory in which errors have been detected.
+  ///
+  EfiUnusableMemory,
+  ///
+  /// Memory that holds the ACPI tables.
+  ///
+  EfiACPIReclaimMemory,
+  ///
+  /// Address space reserved for use by the firmware.
+  ///
+  EfiACPIMemoryNVS,
+  ///
+  /// Used by system firmware to request that a memory-mapped IO region
+  /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
+  ///
+  EfiMemoryMappedIO,
+  ///
+  /// System memory-mapped IO region that is used to translate memory
+  /// cycles to IO cycles by the processor.
+  ///
+  EfiMemoryMappedIOPortSpace,
+  ///
+  /// Address space reserved by the firmware for code that is part of the processor.
+  ///
+  EfiPalCode,
+  EfiMaxMemoryType
+} EFI_MEMORY_TYPE;
+
+///
+/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
+/// various attributes of the logical memory allocation. The type field will be used for
+/// subsequent inclusion in the UEFI memory map.
+///
+typedef struct {
+  ///
+  /// A GUID that defines the memory allocation region's type and purpose, as well as
+  /// other fields within the memory allocation HOB. This GUID is used to define the
+  /// additional data within the HOB that may be present for the memory allocation HOB.
+  /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
+  /// specification.
+  ///
+  EFI_GUID              Name;
+
+  ///
+  /// The base address of memory allocated by this HOB. Type
+  /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
+  /// specification.
+  ///
+  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
+
+  ///
+  /// The length in bytes of memory allocated by this HOB.
+  ///
+  UINT64                MemoryLength;
+
+  ///
+  /// Defines the type of memory allocated by this HOB. The memory type definition
+  /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
+  /// in AllocatePages() in the UEFI 2.0 specification.
+  ///
+  EFI_MEMORY_TYPE       MemoryType;
+
+  ///
+  /// Padding for Itanium processor family
+  ///
+  UINT8                 Reserved[4];
+} EFI_HOB_MEMORY_ALLOCATION_HEADER;
+
+///
+/// Describes all memory ranges used during the HOB producer
+/// phase that exist outside the HOB list. This HOB type
+/// describes how memory is used, not the physical attributes of memory.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
+  ///
+  EFI_HOB_GENERIC_HEADER            Header;
+  ///
+  /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
+  /// various attributes of the logical memory allocation.
+  ///
+  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
+  //
+  // Additional data pertaining to the "Name" Guid memory
+  // may go here.
+  //
+} EFI_HOB_MEMORY_ALLOCATION;
+
+///
+/// The resource type.
+///
+typedef UINT32 EFI_RESOURCE_TYPE;
+
+//
+// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
+//
+#define EFI_RESOURCE_SYSTEM_MEMORY          0x00000000
+#define EFI_RESOURCE_MEMORY_MAPPED_IO       0x00000001
+#define EFI_RESOURCE_IO                     0x00000002
+#define EFI_RESOURCE_FIRMWARE_DEVICE        0x00000003
+#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  0x00000004
+#define EFI_RESOURCE_MEMORY_RESERVED        0x00000005
+#define EFI_RESOURCE_IO_RESERVED            0x00000006
+#define EFI_RESOURCE_MAX_MEMORY_TYPE        0x00000007
+
+///
+/// A type of recount attribute type.
+///
+typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
+
+//
+// These types can be ORed together as needed.
+//
+// The first three enumerations describe settings
+//
+#define EFI_RESOURCE_ATTRIBUTE_PRESENT              0x00000001
+#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED          0x00000002
+#define EFI_RESOURCE_ATTRIBUTE_TESTED               0x00000004
+//
+// The rest of the settings describe capabilities
+//
+#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC           0x00000008
+#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC         0x00000010
+#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1           0x00000020
+#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2           0x00000040
+#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100
+#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200
+#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE              0x00000400
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE        0x00000800
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE  0x00001000
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE     0x00002000
+#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO                0x00004000
+#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO                0x00008000
+#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000
+#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000
+
+///
+/// Describes the resource properties of all fixed,
+/// nonrelocatable resource ranges found on the processor
+/// host bus during the HOB producer phase.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
+  ///
+  EFI_HOB_GENERIC_HEADER      Header;
+  ///
+  /// A GUID representing the owner of the resource. This GUID is used by HOB
+  /// consumer phase components to correlate device ownership of a resource.
+  ///
+  EFI_GUID                    Owner;
+  ///
+  /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
+  ///
+  EFI_RESOURCE_TYPE           ResourceType;
+  ///
+  /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
+  ///
+  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
+  ///
+  /// The physical start address of the resource region.
+  ///
+  EFI_PHYSICAL_ADDRESS        PhysicalStart;
+  ///
+  /// The number of bytes of the resource region.
+  ///
+  UINT64                      ResourceLength;
+} EFI_HOB_RESOURCE_DESCRIPTOR;
+
+///
+/// Allows writers of executable content in the HOB producer phase to
+/// maintain and manage HOBs with specific GUID.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
+  ///
+  EFI_HOB_GENERIC_HEADER      Header;
+  ///
+  /// A GUID that defines the contents of this HOB.
+  ///
+  EFI_GUID                    Name;
+  //
+  // Guid specific data goes here
+  //
+} EFI_HOB_GUID_TYPE;
+
+///
+/// Union of all the possible HOB Types.
+///
+typedef union {
+  EFI_HOB_GENERIC_HEADER              *Header;
+  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
+  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
+  EFI_HOB_GUID_TYPE                   *Guid;
+  UINT8                               *Raw;
+} EFI_PEI_HOB_POINTERS;
+
+
+/**
+  Returns the type of a HOB.
+
+  This macro returns the HobType field from the HOB header for the
+  HOB specified by HobStart.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return HobType.
+
+**/
+#define GET_HOB_TYPE(HobStart) \
+  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobType)
+
+/**
+  Returns the length, in bytes, of a HOB.
+
+  This macro returns the HobLength field from the HOB header for the
+  HOB specified by HobStart.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return HobLength.
+
+**/
+#define GET_HOB_LENGTH(HobStart) \
+  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobLength)
+
+/**
+  Returns a pointer to the next HOB in the HOB list.
+
+  This macro returns a pointer to HOB that follows the
+  HOB specified by HobStart in the HOB List.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return A pointer to the next HOB in the HOB list.
+
+**/
+#define GET_NEXT_HOB(HobStart) \
+  (VOID *)(*(UINT8 **)&(HobStart) + GET_HOB_LENGTH (HobStart))
+
+/**
+  Determines if a HOB is the last HOB in the HOB list.
+
+  This macro determine if the HOB specified by HobStart is the
+  last HOB in the HOB list.  If HobStart is last HOB in the HOB list,
+  then TRUE is returned.  Otherwise, FALSE is returned.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @retval TRUE       The HOB specified by HobStart is the last HOB in the HOB list.
+  @retval FALSE      The HOB specified by HobStart is not the last HOB in the HOB list.
+
+**/
+#define END_OF_HOB_LIST(HobStart)  (GET_HOB_TYPE (HobStart) == (UINT16)EFI_HOB_TYPE_END_OF_HOB_LIST)
+
+/**
+  Returns a pointer to data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  This macro returns a pointer to the data buffer in a HOB specified by HobStart.
+  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  @param   GuidHob   A pointer to a HOB.
+
+  @return  A pointer to the data buffer in a HOB.
+
+**/
+#define GET_GUID_HOB_DATA(HobStart) \
+  (VOID *)(*(UINT8 **)&(HobStart) + sizeof (EFI_HOB_GUID_TYPE))
+
+/**
+  Returns the size of the data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  This macro returns the size, in bytes, of the data buffer in a HOB specified by HobStart.
+  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  @param   GuidHob   A pointer to a HOB.
+
+  @return  The size of the data buffer.
+**/
+#define GET_GUID_HOB_DATA_SIZE(HobStart) \
+  (UINT16)(GET_HOB_LENGTH (HobStart) - sizeof (EFI_HOB_GUID_TYPE))
+
+/**
+  Returns the pointer to the HOB list.
+
+  This function returns the pointer to first HOB in the list.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+
+  @return The pointer to the HOB list.
+
+**/
+VOID *
+EFIAPI
+GetHobList (
+  VOID
+  );
+
+/**
+  Returns the next instance of a HOB type from the starting HOB.
+
+  This function searches the first instance of a HOB type from the starting HOB pointer.
+  If there does not exist such HOB type from the starting HOB pointer, it will return NULL.
+  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
+  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
+  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
+
+  If HobStart is NULL, then ASSERT().
+
+  @param  Type          The HOB type to return.
+  @param  HobStart      The starting HOB pointer to search from.
+
+  @return The next instance of a HOB type from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetNextHob (
+  UINT16                 Type,
+  CONST VOID             *HobStart
+  );
+
+/**
+  Returns the first instance of a HOB type among the whole HOB list.
+
+  This function searches the first instance of a HOB type among the whole HOB list.
+  If there does not exist such HOB type in the HOB list, it will return NULL.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+
+  @param  Type          The HOB type to return.
+
+  @return The next instance of a HOB type from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetFirstHob (
+  UINT16                 Type
+  );
+
+/**
+  Returns the next instance of the matched GUID HOB from the starting HOB.
+
+  This function searches the first instance of a HOB from the starting HOB pointer.
+  Such HOB should satisfy two conditions:
+  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
+  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
+  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
+  to extract the data section and its size info respectively.
+  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
+  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
+  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
+
+  If Guid is NULL, then ASSERT().
+  If HobStart is NULL, then ASSERT().
+
+  @param  Guid          The GUID to match with in the HOB list.
+  @param  HobStart      A pointer to a Guid.
+
+  @return The next instance of the matched GUID HOB from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetNextGuidHob (
+  CONST EFI_GUID         *Guid,
+  CONST VOID             *HobStart
+  );
+
+/**
+  Returns the first instance of the matched GUID HOB among the whole HOB list.
+
+  This function searches the first instance of a HOB among the whole HOB list.
+  Such HOB should satisfy two conditions:
+  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
+  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
+  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
+  to extract the data section and its size info respectively.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+  If Guid is NULL, then ASSERT().
+
+  @param  Guid          The GUID to match with in the HOB list.
+
+  @return The first instance of the matched GUID HOB among the whole HOB list.
+
+**/
+VOID *
+EFIAPI
+GetFirstGuidHob (
+  CONST EFI_GUID         *Guid
+  );
+
+BOOLEAN
+EFIAPI
+CompareGuid (
+  CONST EFI_GUID  *Guid1,
+  CONST EFI_GUID  *Guid2
+  );
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspinfoheader.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspinfoheader.h
new file mode 100644
index 0000000..0f7b3a9
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspinfoheader.h
@@ -0,0 +1,62 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_INFO_HEADER_H_
+#define _FSP_INFO_HEADER_H_
+
+#pragma pack(1)
+
+typedef struct  {
+
+  UINT32  Signature;       // Off 0x94
+  UINT32  HeaderLength;
+  UINT8   Reserved1[3];
+  UINT8   HeaderRevision;
+  UINT32  ImageRevision;
+
+  CHAR8   ImageId[8];      // Off 0xA4
+  UINT32  ImageSize;
+  UINT32  ImageBase;
+
+  UINT32  ImageAttribute;  // Off 0xB4
+  UINT32  CfgRegionOffset;
+  UINT32  CfgRegionSize;
+  UINT32  ApiEntryNum;
+
+  UINT32  NemInitEntry;    // Off 0xC4
+  UINT32  FspInitEntry;
+  UINT32  NotifyPhaseEntry;
+  UINT32  Reserved2;
+
+} FSP_INFO_HEADER;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspplatform.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspplatform.h
new file mode 100644
index 0000000..e78ac47
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fspplatform.h
@@ -0,0 +1,52 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_PLATFORM_H_
+#define _FSP_PLATFORM_H_
+
+#include "fsptypes.h"
+#include "fspapi.h"
+#include "mem_config.h"
+
+#pragma pack(1)
+
+typedef struct {
+    MEM_CONFIG  *MemoryConfig;
+} FSP_INIT_RT_PLATFORM_BUFFER;
+
+
+typedef struct {
+    FSP_INIT_RT_COMMON_BUFFER  Common;
+    FSP_INIT_RT_PLATFORM_BUFFER  Platform;
+} FSP_INIT_RT_BUFFER;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fsptypes.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fsptypes.h
new file mode 100644
index 0000000..a3a54c0
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/fsptypes.h
@@ -0,0 +1,116 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+/** \file  fsptypes.h
+ *
+ *
+ */
+
+#ifndef __FSP_TYPES_H__
+#define __FSP_TYPES_H__
+
+///
+/// 8-byte unsigned value.
+///
+typedef unsigned long long  UINT64;
+///
+/// 8-byte signed value.
+///
+typedef long long           INT64;
+///
+/// 4-byte unsigned value.
+///
+typedef unsigned int        UINT32;
+///
+/// 4-byte signed value.
+///
+typedef int                 INT32;
+///
+/// 2-byte unsigned value.
+///
+typedef unsigned short      UINT16;
+///
+/// 2-byte Character.  Unless otherwise specified all strings are stored in the
+/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
+///
+typedef unsigned short      CHAR16;
+///
+/// 2-byte signed value.
+///
+typedef short               INT16;
+///
+/// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
+/// values are undefined.
+///
+typedef unsigned char       BOOLEAN;
+///
+/// 1-byte unsigned value.
+///
+typedef unsigned char       UINT8;
+///
+/// 1-byte Character
+///
+typedef char                CHAR8;
+///
+/// 1-byte signed value
+///
+typedef char                INT8;
+
+typedef void                VOID;
+
+typedef UINT64              EFI_PHYSICAL_ADDRESS;
+
+typedef struct {
+  UINT32  Data1;
+  UINT16  Data2;
+  UINT16  Data3;
+  UINT8   Data4[8];
+} EFI_GUID;
+
+#define CONST     const
+#define STATIC    static
+
+#define TRUE  ((BOOLEAN)(1==1))
+#define FALSE ((BOOLEAN)(0==1))
+
+#define FSPAPI __attribute__((cdecl))
+#define EFIAPI __attribute__((cdecl))
+
+#define ASSERT(Expression)      \
+  do {                          \
+    if (!(Expression)) {        \
+      for (;;);                 \
+    }                           \
+  } while (FALSE)
+
+typedef UINT32 FSP_STATUS;
+typedef UINT32 EFI_STATUS;
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/mem_config.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/mem_config.h
new file mode 100644
index 0000000..26deb90
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/mem_config.h
@@ -0,0 +1,131 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+//
+// mem_config.h
+//
+
+#ifndef _MEM_CONFIG_H_
+#define _MEM_CONFIG_H_
+
+typedef enum {
+  fi1067_IVB=0,
+  fi1333_IVB,
+  fi1400_IVB,
+  fi1600_IVB,
+  fi1800_IVB,
+  fi1867_IVB,
+  fi2000_IVB,
+  fi2133_IVB,
+  fi2200_IVB,
+  fi2400_IVB,
+  fi2600_IVB,
+  fi2667_IVB,
+  fi2800_IVB,
+  fiUnsupport_IVB,
+}TFrequencyIndex_IVB;
+
+#define NUM_IVB_MEM_CLK_FREQUENCIES 13
+
+// DDR3 memory SPD data
+//
+// NOTE: This only includes the SPD bytes that are relevant to the MRC
+typedef struct {                             // BYTE
+    uint8_t  SPDGeneral;                     // 0   Number of Serial PD Bytes Written / SPD Device Size / CRC Coverage 1, 2
+    uint8_t  SPDRevision;                    // 1   SPD Revision
+    uint8_t  DRAMDeviceType;                 // 2   DRAM Device Type
+    uint8_t  ModuleType;                     // 3   Module Type
+    uint8_t  SDRAMDensityAndBanks;           // 4   SDRAM Density and Banks
+    uint8_t  SDRAMAddressing;                // 5   SDRAM Addressing
+    uint8_t  VDD;                            // 6   Module Nominal Voltage
+    uint8_t  ModuleOrganization;             // 7   Module Organization
+    uint8_t  ModuleMemoryBusWidth;           // 8   Module Memory Bus Width
+    uint8_t  FineTimebase;                   // 9   Fine Timebase (FTB) Dividend / Divisor
+    uint8_t  TimebaseDividend;               // 10  Medium Timebase (MTB) Dividend
+    uint8_t  TimebaseDivisor;                // 11  Medium Timebase (MTB) Divisor
+    uint8_t  SDRAMMinimumCycleTime;          // 12  SDRAM Minimum Cycle Time (tCKmin)
+    uint8_t  Reserved0;                      // 13  Reserved0
+    uint8_t  CASLatenciesLSB;                // 14  CAS Latencies Supported, Least Significant Byte
+    uint8_t  CASLatenciesMSB;                // 15  CAS Latencies Supported, Most Significant Byte
+    uint8_t  MinimumCASLatencyTime;          // 16  Minimum CAS Latency Time (tAAmin)
+    uint8_t  MinimumWriteRecoveryTime;       // 17  Minimum Write Recovery Time (tWRmin)
+    uint8_t  MinimumRASToCASDelayTime;       // 18  Minimum RAS# to CAS# Delay Time (tRCDmin)
+    uint8_t  MinimumRowToRowDelayTime;       // 19  Minimum Row Active to Row Active Delay Time (tRRDmin)
+    uint8_t  MinimumRowPrechargeDelayTime;   // 20  Minimum Row Precharge Delay Time (tRPmin)
+    uint8_t  UpperNibblesFortRASAndtRC;      // 21  Upper Nibbles for tRAS and tRC
+    uint8_t  tRASmin;                        // 22  Minimum Active to Precharge Delay Time (tRASmin), Least Significant Byte
+    uint8_t  tRCmin;                         // 23  Minimum Active to Active/Refresh Delay Time (tRCmin), Least Significant Byte
+    uint8_t  tRFCminLeastSignificantByte;    // 24  Minimum Refresh Recovery Delay Time (tRFCmin), Least Significant Byte
+    uint8_t  tRFCminMostSignificantByte;     // 25  Minimum Refresh Recovery Delay Time (tRFCmin), Most Significant Byte
+    uint8_t  tWTRmin;                        // 26  Minimum Internal Write to Read Command Delay Time (tWTRmin)
+    uint8_t  tRTPmin;                        // 27  Minimum Internal Read to Precharge Command Delay Time (tRTPmin)
+    uint8_t  UpperNibbleFortFAW;             // 28  Upper Nibble for tFAW
+    uint8_t  tFAWmin;                        // 29  Minimum Four Activate Window Delay Time (tFAWmin)
+    uint8_t  SDRAMOptionalFeatures;          // 30  SDRAM Optional Features
+    uint8_t  SDRAMThermalAndRefreshOptions;  // 31  SDRAMThermalAndRefreshOptions
+    uint8_t  ModuleThermalSensor;            // 32  ModuleThermalSensor
+    uint8_t  SDRAMDeviceType;                // 33  SDRAM Device Type
+    int8_t   tCKminFine;                     // 34  Fine Offset for SDRAM Minimum Cycle Time (tCKmin)
+    int8_t   tAAminFine;                     // 35  Fine Offset for Minimum CAS Latency Time (tAAmin)
+    int8_t   tRCDminFine;                    // 36  Fine Offset for Minimum RAS# to CAS# Delay Time (tRCDmin)
+    int8_t   tRPminFine;                     // 37  Fine Offset for Minimum Row Precharge Delay Time (tRPmin)
+    int8_t   tRCminFine;                     // 38  Fine Offset for Minimum Active to Active/Refresh Delay Time (tRCmin)
+    uint8_t  ReferenceRawCardUsed;           // 62  Reference Raw Card Used
+    uint8_t  AddressMappingEdgeConnector;    // 63  Address Mapping from Edge Connector to DRAM
+    uint8_t  ThermalHeatSpreaderSolution;    // 64  ThermalHeatSpreaderSolution
+    uint8_t  ModuleManufacturerIdCodeLsb;    // 117 Module Manufacturer ID Code, Least Significant Byte
+    uint8_t  ModuleManufacturerIdCodeMsb;    // 118 Module Manufacturer ID Code, Most Significant Byte
+    uint8_t  ModuleManufacturingLocation;    // 119 Module Manufacturing Location
+    uint8_t  ModuleManufacturingDateYear;    // 120 Module Manufacturing Date Year
+    uint8_t  ModuleManufacturingDateWW;      // 121 Module Manufacturing Date creation work week
+    uint8_t  ModuleSerialNumberA;            // 122 Module Serial Number A
+    uint8_t  ModuleSerialNumberB;            // 123 Module Serial Number B
+    uint8_t  ModuleSerialNumberC;            // 124 Module Serial Number C
+    uint8_t  ModuleSerialNumberD;            // 125 Module Serial Number D
+    uint8_t  CRCA;                           // 126 CRC A
+    uint8_t  CRCB;                           // 127 CRC B
+} DDR3_SPD;
+
+// Configuration for each memory channel/bank
+typedef struct {
+    uint32_t  Exists;
+    DDR3_SPD  SpdData;
+    uint8_t   InitClkPiValue[NUM_IVB_MEM_CLK_FREQUENCIES];
+} MEM_BANK_CONFIG;
+
+// Memory configuration
+typedef struct {
+    MEM_BANK_CONFIG  ChannelABank0;
+    MEM_BANK_CONFIG  ChannelABank1;
+    MEM_BANK_CONFIG  ChannelBBank0;
+    MEM_BANK_CONFIG  ChannelBBank1;
+} MEM_CONFIG;
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/peifsp.h b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/peifsp.h
new file mode 100644
index 0000000..dc3e60f
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/include/peifsp.h
@@ -0,0 +1,42 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+/** \file  peifsp.h
+ *
+ *
+ */
+#include <stdint.h>
+#include "fsptypes.h"
+#include "fspfv.h"
+#include "fspffs.h"
+#include "fsphob.h"
+#include "fspapi.h"
+#include "fspplatform.h"
+#include "fspinfoheader.h"
diff --git a/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/srx/fsphob.c b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/srx/fsphob.c
new file mode 100644
index 0000000..4214b3a
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/ivybridge_i89xx/srx/fsphob.c
@@ -0,0 +1,207 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+/***********************************************************************
+ *
+ * fsphob.c
+ *
+ * HOB infrastructure code.
+ *
+ **********************************************************************/
+#include <string.h>
+
+#include "fsptypes.h"
+#include "fsphob.h"
+
+//
+// Pointer to the HOB should be initialized with the output of FSP INIT PARAMS
+//
+extern volatile void *FspHobListPtr;
+
+//
+// Function prototype
+//
+UINT64
+EFIAPI
+ReadUnaligned64 (
+  CONST UINT64              *Buffer
+  );
+
+/**
+  Reads a 64-bit value from memory that may be unaligned.
+
+  This function returns the 64-bit value pointed to by Buffer. The function
+  guarantees that the read operation does not produce an alignment fault.
+
+  If the Buffer is NULL, then ASSERT().
+
+  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
+
+  @return The 64-bit value read from Buffer.
+
+**/
+UINT64
+EFIAPI
+ReadUnaligned64 (
+  CONST UINT64              *Buffer
+  )
+{
+  ASSERT (Buffer != NULL);
+
+  return *Buffer;
+}
+
+/**
+  Compares two GUIDs.
+
+  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
+  If there are any bit differences in the two GUIDs, then FALSE is returned.
+
+  If Guid1 is NULL, then ASSERT().
+  If Guid2 is NULL, then ASSERT().
+
+  @param  Guid1       A pointer to a 128 bit GUID.
+  @param  Guid2       A pointer to a 128 bit GUID.
+
+  @retval TRUE        Guid1 and Guid2 are identical.
+  @retval FALSE       Guid1 and Guid2 are not identical.
+
+**/
+BOOLEAN
+EFIAPI
+CompareGuid (
+  CONST EFI_GUID  *Guid1,
+  CONST EFI_GUID  *Guid2
+  )
+{
+  UINT64  LowPartOfGuid1;
+  UINT64  LowPartOfGuid2;
+  UINT64  HighPartOfGuid1;
+  UINT64  HighPartOfGuid2;
+
+  LowPartOfGuid1  = ReadUnaligned64 ((CONST UINT64*) Guid1);
+  LowPartOfGuid2  = ReadUnaligned64 ((CONST UINT64*) Guid2);
+  HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1);
+  HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1);
+
+  return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2);
+}
+
+/**
+  Returns the pointer to the HOB list.
+**/
+VOID *
+EFIAPI
+GetHobList (
+  VOID
+  )
+{
+  ASSERT (FspHobListPtr != NULL);
+  return ((VOID *)FspHobListPtr);
+}
+
+/**
+  Returns the next instance of a HOB type from the starting HOB.
+**/
+VOID *
+EFIAPI
+GetNextHob (
+  UINT16                 Type,
+  CONST VOID             *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  Hob;
+
+  ASSERT (HobStart != NULL);
+
+  Hob.Raw = (UINT8 *) HobStart;
+  //
+  // Parse the HOB list until end of list or matching type is found.
+  //
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == Type) {
+      return Hob.Raw;
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+  return NULL;
+}
+
+/**
+  Returns the first instance of a HOB type among the whole HOB list.
+**/
+VOID *
+EFIAPI
+GetFirstHob (
+  UINT16                 Type
+  )
+{
+  VOID      *HobList;
+
+  HobList = GetHobList ();
+  return GetNextHob (Type, HobList);
+}
+
+/**
+  Returns the next instance of the matched GUID HOB from the starting HOB.
+**/
+VOID *
+EFIAPI
+GetNextGuidHob (
+  CONST EFI_GUID         *Guid,
+  CONST VOID             *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  GuidHob;
+
+  GuidHob.Raw = (UINT8 *) HobStart;
+  while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
+    if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
+      break;
+    }
+    GuidHob.Raw = GET_NEXT_HOB (GuidHob);
+  }
+  return GuidHob.Raw;
+}
+
+/**
+  Returns the first instance of the matched GUID HOB among the whole HOB list.
+**/
+VOID *
+EFIAPI
+GetFirstGuidHob (
+  CONST EFI_GUID         *Guid
+  )
+{
+  VOID      *HobList;
+
+  HobList = GetHobList ();
+  return GetNextGuidHob (Guid, HobList);
+}
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspapi.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspapi.h
new file mode 100644
index 0000000..5009246
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspapi.h
@@ -0,0 +1,67 @@
+/**
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_API_H_
+#define _FSP_API_H_
+
+#include <fsptypes.h>
+
+#pragma pack(1)
+
+typedef VOID (* CONTINUATION_PROC)(EFI_STATUS Status, VOID *HobListPtr);
+
+typedef struct {
+  VOID               *NvsBufferPtr;
+  VOID               *RtBufferPtr;
+  CONTINUATION_PROC   ContinuationFunc;
+} FSP_INIT_PARAMS;
+
+typedef struct {
+  UINT32            *StackTop;
+  UINT32             BootMode;  /* Refer to boot mode defined in MdePkg\Include\Pi\PiBootMode.h */
+  VOID              *UpdDataRgnPtr;
+  UINT32             Reserved[7];
+} FSP_INIT_RT_COMMON_BUFFER;
+
+typedef enum {
+  EnumInitPhaseAfterPciEnumeration = 0x20,
+  EnumInitPhaseReadyToBoot = 0x40
+} FSP_INIT_PHASE;
+
+typedef struct {
+  FSP_INIT_PHASE     Phase;
+} NOTIFY_PHASE_PARAMS;
+
+#pragma pack()
+
+typedef FSP_STATUS (FSPAPI *FSP_FSP_INIT)    (FSP_INIT_PARAMS     *FspInitParamPtr);
+typedef FSP_STATUS (FSPAPI *FSP_NOTFY_PHASE) (NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr);
+
+#endif /* _FSP_API_H_ */
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspbootmode.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspbootmode.h
new file mode 100644
index 0000000..16cddf0
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspbootmode.h
@@ -0,0 +1,54 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __PI_BOOT_MODE_H__
+#define __PI_BOOT_MODE_H__
+
+///
+/// EFI boot mode
+///
+typedef UINT32  EFI_BOOT_MODE;
+
+//
+// 0x21 - 0xf..f are reserved.
+//
+#define BOOT_WITH_FULL_CONFIGURATION                  0x00
+#define BOOT_WITH_MINIMAL_CONFIGURATION               0x01
+#define BOOT_ASSUMING_NO_CONFIGURATION_CHANGES        0x02
+#define BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS 0x03
+#define BOOT_WITH_DEFAULT_SETTINGS                    0x04
+#define BOOT_ON_S4_RESUME                             0x05
+#define BOOT_ON_S5_RESUME                             0x06
+#define BOOT_ON_S2_RESUME                             0x10
+#define BOOT_ON_S3_RESUME                             0x11
+#define BOOT_ON_FLASH_UPDATE                          0x12
+#define BOOT_IN_RECOVERY_MODE                         0x20
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspffs.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspffs.h
new file mode 100644
index 0000000..9e8244d
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspffs.h
@@ -0,0 +1,507 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __PI_FIRMWARE_FILE_H__
+#define __PI_FIRMWARE_FILE_H__
+
+#include <fsptypes.h>
+
+#pragma pack(1)
+///
+/// Used to verify the integrity of the file.
+///
+typedef union {
+  struct {
+    ///
+    /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
+    /// header. The State and IntegrityCheck.Checksum.File fields are assumed
+    /// to be zero and the checksum is calculated such that the entire header sums to zero.
+    ///
+    UINT8   Header;
+    ///
+    /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
+    /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
+    /// checksum of the file data.
+    /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
+    /// the IntegrityCheck.Checksum.File field must be initialized with a value of
+    /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
+    /// EFI_FILE_DATA_VALID bit is set in the State field.
+    ///
+    UINT8   File;
+  } Checksum;
+  ///
+  /// This is the full 16 bits of the IntegrityCheck field.
+  ///
+  UINT16    Checksum16;
+} EFI_FFS_INTEGRITY_CHECK;
+
+///
+/// FFS_FIXED_CHECKSUM is the checksum value used when the
+/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
+///
+#define FFS_FIXED_CHECKSUM  0xAA
+
+typedef UINT8 EFI_FV_FILETYPE;
+typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
+typedef UINT8 EFI_FFS_FILE_STATE;
+
+///
+/// File Types Definitions
+///
+#define EFI_FV_FILETYPE_ALL                   0x00
+#define EFI_FV_FILETYPE_RAW                   0x01
+#define EFI_FV_FILETYPE_FREEFORM              0x02
+#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
+#define EFI_FV_FILETYPE_PEI_CORE              0x04
+#define EFI_FV_FILETYPE_DXE_CORE              0x05
+#define EFI_FV_FILETYPE_PEIM                  0x06
+#define EFI_FV_FILETYPE_DRIVER                0x07
+#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
+#define EFI_FV_FILETYPE_APPLICATION           0x09
+#define EFI_FV_FILETYPE_SMM                   0x0A
+#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
+#define EFI_FV_FILETYPE_COMBINED_SMM_DXE      0x0C
+#define EFI_FV_FILETYPE_SMM_CORE              0x0D
+#define EFI_FV_FILETYPE_OEM_MIN               0xc0
+#define EFI_FV_FILETYPE_OEM_MAX               0xdf
+#define EFI_FV_FILETYPE_DEBUG_MIN             0xe0
+#define EFI_FV_FILETYPE_DEBUG_MAX             0xef
+#define EFI_FV_FILETYPE_FFS_MIN               0xf0
+#define EFI_FV_FILETYPE_FFS_MAX               0xff
+#define EFI_FV_FILETYPE_FFS_PAD               0xf0
+///
+/// FFS File Attributes.
+///
+#define FFS_ATTRIB_LARGE_FILE         0x01
+#define FFS_ATTRIB_FIXED              0x04
+#define FFS_ATTRIB_DATA_ALIGNMENT     0x38
+#define FFS_ATTRIB_CHECKSUM           0x40
+
+///
+/// FFS File State Bits.
+///
+#define EFI_FILE_HEADER_CONSTRUCTION  0x01
+#define EFI_FILE_HEADER_VALID         0x02
+#define EFI_FILE_DATA_VALID           0x04
+#define EFI_FILE_MARKED_FOR_UPDATE    0x08
+#define EFI_FILE_DELETED              0x10
+#define EFI_FILE_HEADER_INVALID       0x20
+
+
+///
+/// Each file begins with the header that describe the
+/// contents and state of the files.
+///
+typedef struct {
+  ///
+  /// This GUID is the file name. It is used to uniquely identify the file.
+  ///
+  EFI_GUID                Name;
+  ///
+  /// Used to verify the integrity of the file.
+  ///
+  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
+  ///
+  /// Identifies the type of file.
+  ///
+  EFI_FV_FILETYPE         Type;
+  ///
+  /// Declares various file attribute bits.
+  ///
+  EFI_FFS_FILE_ATTRIBUTES Attributes;
+  ///
+  /// The length of the file in bytes, including the FFS header.
+  ///
+  UINT8                   Size[3];
+  ///
+  /// Used to track the state of the file throughout the life of the file from creation to deletion.
+  ///
+  EFI_FFS_FILE_STATE      State;
+} EFI_FFS_FILE_HEADER;
+
+typedef struct {
+  ///
+  /// This GUID is the file name. It is used to uniquely identify the file. There may be only
+  /// one instance of a file with the file name GUID of Name in any given firmware
+  /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
+  ///
+  EFI_GUID                  Name;
+
+  ///
+  /// Used to verify the integrity of the file.
+  ///
+  EFI_FFS_INTEGRITY_CHECK   IntegrityCheck;
+
+  ///
+  /// Identifies the type of file.
+  ///
+  EFI_FV_FILETYPE           Type;
+
+  ///
+  /// Declares various file attribute bits.
+  ///
+  EFI_FFS_FILE_ATTRIBUTES   Attributes;
+
+  ///
+  /// The length of the file in bytes, including the FFS header.
+  /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
+  /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
+  /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
+  /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
+  ///
+  UINT8                     Size[3];
+
+  ///
+  /// Used to track the state of the file throughout the life of the file from creation to deletion.
+  ///
+  EFI_FFS_FILE_STATE        State;
+
+  ///
+  /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
+  /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
+  ///
+  UINT32                    ExtendedSize;
+} EFI_FFS_FILE_HEADER2;
+
+#define IS_FFS_FILE2(FfsFileHeaderPtr) \
+    (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
+
+#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
+
+#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
+    (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
+
+typedef UINT8 EFI_SECTION_TYPE;
+
+///
+/// Pseudo type. It is used as a wild card when retrieving sections.
+///  The section type EFI_SECTION_ALL matches all section types.
+///
+#define EFI_SECTION_ALL                   0x00
+
+///
+/// Encapsulation section Type values.
+///
+#define EFI_SECTION_COMPRESSION           0x01
+
+#define EFI_SECTION_GUID_DEFINED          0x02
+
+#define EFI_SECTION_DISPOSABLE            0x03
+
+///
+/// Leaf section Type values.
+///
+#define EFI_SECTION_PE32                  0x10
+#define EFI_SECTION_PIC                   0x11
+#define EFI_SECTION_TE                    0x12
+#define EFI_SECTION_DXE_DEPEX             0x13
+#define EFI_SECTION_VERSION               0x14
+#define EFI_SECTION_USER_INTERFACE        0x15
+#define EFI_SECTION_COMPATIBILITY16       0x16
+#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
+#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
+#define EFI_SECTION_RAW                   0x19
+#define EFI_SECTION_PEI_DEPEX             0x1B
+#define EFI_SECTION_SMM_DEPEX             0x1C
+
+///
+/// Common section header.
+///
+typedef struct {
+  ///
+  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+  /// including the EFI_COMMON_SECTION_HEADER.
+  ///
+  UINT8             Size[3];
+  EFI_SECTION_TYPE  Type;
+  ///
+  /// Declares the section type.
+  ///
+} EFI_COMMON_SECTION_HEADER;
+
+typedef struct {
+  ///
+  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
+  /// including the EFI_COMMON_SECTION_HEADER.
+  ///
+  UINT8             Size[3];
+
+  EFI_SECTION_TYPE  Type;
+
+  ///
+  /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
+  /// Size is not equal to 0xFFFFFF, then this field does not exist.
+  ///
+  UINT32            ExtendedSize;
+} EFI_COMMON_SECTION_HEADER2;
+
+///
+/// Leaf section type that contains an
+/// IA-32 16-bit executable image.
+///
+typedef EFI_COMMON_SECTION_HEADER  EFI_COMPATIBILITY16_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
+
+///
+/// CompressionType of EFI_COMPRESSION_SECTION.
+///
+#define EFI_NOT_COMPRESSED        0x00
+#define EFI_STANDARD_COMPRESSION  0x01
+///
+/// An encapsulation section type in which the
+/// section data is compressed.
+///
+typedef struct {
+  ///
+  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// The UINT32 that indicates the size of the section data after decompression.
+  ///
+  UINT32                      UncompressedLength;
+  ///
+  /// Indicates which compression algorithm is used.
+  ///
+  UINT8                       CompressionType;
+} EFI_COMPRESSION_SECTION;
+
+typedef struct {
+  ///
+  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// UINT32 that indicates the size of the section data after decompression.
+  ///
+  UINT32                        UncompressedLength;
+  ///
+  /// Indicates which compression algorithm is used.
+  ///
+  UINT8                         CompressionType;
+} EFI_COMPRESSION_SECTION2;
+
+///
+/// An encapsulation section type in which the section data is disposable.
+/// A disposable section is an encapsulation section in which the section data may be disposed of during
+/// the process of creating or updating a firmware image without significant impact on the usefulness of
+/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
+/// allows optional or descriptive data to be included with the firmware file which can be removed in
+/// order to conserve space. The contents of this section are implementation specific, but might contain
+/// debug data or detailed integration instructions.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_DISPOSABLE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_DISPOSABLE_SECTION2;
+
+///
+/// The leaf section which could be used to determine the dispatch order of DXEs.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_DXE_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_DXE_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a PI FV.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
+
+///
+/// The leaf section which contains a single GUID.
+///
+typedef struct {
+  ///
+  /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+  ///
+  EFI_GUID                    SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
+
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
+  ///
+  EFI_GUID                      SubTypeGuid;
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
+
+///
+/// Attributes of EFI_GUID_DEFINED_SECTION.
+///
+#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED  0x01
+#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID    0x02
+///
+/// The leaf section which is encapsulation defined by specific GUID.
+///
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+  ///
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  ///
+  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+  ///
+  EFI_GUID                    SectionDefinitionGuid;
+  ///
+  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+  ///
+  UINT16                      DataOffset;
+  ///
+  /// The bit field that declares some specific characteristics of the section contents.
+  ///
+  UINT16                      Attributes;
+} EFI_GUID_DEFINED_SECTION;
+
+typedef struct {
+  ///
+  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
+  ///
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
+  ///
+  EFI_GUID                      SectionDefinitionGuid;
+  ///
+  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
+  ///
+  UINT16                        DataOffset;
+  ///
+  /// The bit field that declares some specific characteristics of the section contents.
+  ///
+  UINT16                        Attributes;
+} EFI_GUID_DEFINED_SECTION2;
+
+///
+/// The leaf section which contains PE32+ image.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PE32_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PE32_SECTION2;
+
+///
+/// The leaf section used to determine the dispatch order of PEIMs.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PEI_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PEI_DEPEX_SECTION2;
+
+///
+/// A leaf section type that contains a position-independent-code (PIC) image.
+/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
+/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
+/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
+/// relocation information has been stripped from the image and the image can be moved and will
+/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
+/// be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_PIC_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_PIC_SECTION2;
+
+///
+/// The leaf section which constains the position-independent-code image.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_TE_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_TE_SECTION2;
+
+///
+/// The leaf section which contains an array of zero or more bytes.
+///
+typedef EFI_COMMON_SECTION_HEADER   EFI_RAW_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2  EFI_RAW_SECTION2;
+
+///
+/// The SMM dependency expression section is a leaf section that contains a dependency expression that
+/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
+/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
+/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
+/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
+/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
+///
+typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
+typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
+
+///
+/// The leaf section which contains a unicode string that
+/// is human readable file name.
+///
+typedef struct {
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+
+  ///
+  /// Array of unicode string.
+  ///
+  CHAR16                      FileNameString[1];
+} EFI_USER_INTERFACE_SECTION;
+
+typedef struct {
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  CHAR16                        FileNameString[1];
+} EFI_USER_INTERFACE_SECTION2;
+
+///
+/// The leaf section which contains a numeric build number and
+/// an optional unicode string that represents the file revision.
+///
+typedef struct {
+  EFI_COMMON_SECTION_HEADER   CommonHeader;
+  UINT16                      BuildNumber;
+
+  ///
+  /// Array of unicode string.
+  ///
+  CHAR16                      VersionString[1];
+} EFI_VERSION_SECTION;
+
+typedef struct {
+  EFI_COMMON_SECTION_HEADER2    CommonHeader;
+  ///
+  /// A UINT16 that represents a particular build. Subsequent builds have monotonically
+  /// increasing build numbers relative to earlier builds.
+  ///
+  UINT16                        BuildNumber;
+  CHAR16                        VersionString[1];
+} EFI_VERSION_SECTION2;
+
+#define IS_SECTION2(SectionHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
+
+#define SECTION_SIZE(SectionHeaderPtr) \
+    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
+
+#define SECTION2_SIZE(SectionHeaderPtr) \
+    (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspfv.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspfv.h
new file mode 100644
index 0000000..9688cf4
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspfv.h
@@ -0,0 +1,249 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __PI_FIRMWAREVOLUME_H__
+#define __PI_FIRMWAREVOLUME_H__
+
+#include <fsptypes.h>
+
+///
+/// EFI_FV_FILE_ATTRIBUTES
+///
+typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
+
+//
+// Value of EFI_FV_FILE_ATTRIBUTES.
+//
+#define EFI_FV_FILE_ATTRIB_ALIGNMENT      0x0000001F
+#define EFI_FV_FILE_ATTRIB_FIXED          0x00000100
+#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED  0x00000200
+
+///
+/// type of EFI FVB attribute
+///
+typedef UINT32  EFI_FVB_ATTRIBUTES_2;
+
+//
+// Attributes bit definitions
+//
+#define EFI_FVB2_READ_DISABLED_CAP  0x00000001
+#define EFI_FVB2_READ_ENABLED_CAP   0x00000002
+#define EFI_FVB2_READ_STATUS        0x00000004
+#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
+#define EFI_FVB2_WRITE_ENABLED_CAP  0x00000010
+#define EFI_FVB2_WRITE_STATUS       0x00000020
+#define EFI_FVB2_LOCK_CAP           0x00000040
+#define EFI_FVB2_LOCK_STATUS        0x00000080
+#define EFI_FVB2_STICKY_WRITE       0x00000200
+#define EFI_FVB2_MEMORY_MAPPED      0x00000400
+#define EFI_FVB2_ERASE_POLARITY     0x00000800
+#define EFI_FVB2_READ_LOCK_CAP      0x00001000
+#define EFI_FVB2_READ_LOCK_STATUS   0x00002000
+#define EFI_FVB2_WRITE_LOCK_CAP     0x00004000
+#define EFI_FVB2_WRITE_LOCK_STATUS  0x00008000
+#define EFI_FVB2_ALIGNMENT          0x001F0000
+#define EFI_FVB2_ALIGNMENT_1        0x00000000
+#define EFI_FVB2_ALIGNMENT_2        0x00010000
+#define EFI_FVB2_ALIGNMENT_4        0x00020000
+#define EFI_FVB2_ALIGNMENT_8        0x00030000
+#define EFI_FVB2_ALIGNMENT_16       0x00040000
+#define EFI_FVB2_ALIGNMENT_32       0x00050000
+#define EFI_FVB2_ALIGNMENT_64       0x00060000
+#define EFI_FVB2_ALIGNMENT_128      0x00070000
+#define EFI_FVB2_ALIGNMENT_256      0x00080000
+#define EFI_FVB2_ALIGNMENT_512      0x00090000
+#define EFI_FVB2_ALIGNMENT_1K       0x000A0000
+#define EFI_FVB2_ALIGNMENT_2K       0x000B0000
+#define EFI_FVB2_ALIGNMENT_4K       0x000C0000
+#define EFI_FVB2_ALIGNMENT_8K       0x000D0000
+#define EFI_FVB2_ALIGNMENT_16K      0x000E0000
+#define EFI_FVB2_ALIGNMENT_32K      0x000F0000
+#define EFI_FVB2_ALIGNMENT_64K      0x00100000
+#define EFI_FVB2_ALIGNMENT_128K     0x00110000
+#define EFI_FVB2_ALIGNMENT_256K     0x00120000
+#define EFI_FVB2_ALIGNMENT_512K     0x00130000
+#define EFI_FVB2_ALIGNMENT_1M       0x00140000
+#define EFI_FVB2_ALIGNMENT_2M       0x00150000
+#define EFI_FVB2_ALIGNMENT_4M       0x00160000
+#define EFI_FVB2_ALIGNMENT_8M       0x00170000
+#define EFI_FVB2_ALIGNMENT_16M      0x00180000
+#define EFI_FVB2_ALIGNMENT_32M      0x00190000
+#define EFI_FVB2_ALIGNMENT_64M      0x001A0000
+#define EFI_FVB2_ALIGNMENT_128M     0x001B0000
+#define EFI_FVB2_ALIGNMENT_256M     0x001C0000
+#define EFI_FVB2_ALIGNMENT_512M     0x001D0000
+#define EFI_FVB2_ALIGNMENT_1G       0x001E0000
+#define EFI_FVB2_ALIGNMENT_2G       0x001F0000
+
+
+typedef struct {
+  ///
+  /// The number of sequential blocks which are of the same size.
+  ///
+  UINT32 NumBlocks;
+  ///
+  /// The size of the blocks.
+  ///
+  UINT32 Length;
+} EFI_FV_BLOCK_MAP_ENTRY;
+
+///
+/// Describes the features and layout of the firmware volume.
+///
+typedef struct {
+  ///
+  /// The first 16 bytes are reserved to allow for the reset vector of
+  /// processors whose reset vector is at address 0.
+  ///
+  UINT8                     ZeroVector[16];
+  ///
+  /// Declares the file system with which the firmware volume is formatted.
+  ///
+  EFI_GUID                  FileSystemGuid;
+  ///
+  /// Length in bytes of the complete firmware volume, including the header.
+  ///
+  UINT64                    FvLength;
+  ///
+  /// Set to EFI_FVH_SIGNATURE
+  ///
+  UINT32                    Signature;
+  ///
+  /// Declares capabilities and power-on defaults for the firmware volume.
+  ///
+  EFI_FVB_ATTRIBUTES_2      Attributes;
+  ///
+  /// Length in bytes of the complete firmware volume header.
+  ///
+  UINT16                    HeaderLength;
+  ///
+  /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
+  ///
+  UINT16                    Checksum;
+  ///
+  /// Offset, relative to the start of the header, of the extended header
+  /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
+  ///
+  UINT16                    ExtHeaderOffset;
+  ///
+  /// This field must always be set to zero.
+  ///
+  UINT8                     Reserved[1];
+  ///
+  /// Set to 2. Future versions of this specification may define new header fields and will
+  /// increment the Revision field accordingly.
+  ///
+  UINT8                     Revision;
+  ///
+  /// An array of run-length encoded FvBlockMapEntry structures. The array is
+  /// terminated with an entry of {0,0}.
+  ///
+  EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
+} EFI_FIRMWARE_VOLUME_HEADER;
+
+#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
+
+///
+/// Firmware Volume Header Revision definition
+///
+#define EFI_FVH_REVISION  0x02
+
+///
+/// Extension header pointed by ExtHeaderOffset of volume header.
+///
+typedef struct {
+  ///
+  /// Firmware volume name.
+  ///
+  EFI_GUID  FvName;
+  ///
+  /// Size of the rest of the extension header, including this structure.
+  ///
+  UINT32    ExtHeaderSize;
+} EFI_FIRMWARE_VOLUME_EXT_HEADER;
+
+///
+/// Entry struture for describing FV extension header
+///
+typedef struct {
+  ///
+  /// Size of this header extension.
+  ///
+  UINT16    ExtEntrySize;
+  ///
+  /// Type of the header.
+  ///
+  UINT16    ExtEntryType;
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
+
+#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
+///
+/// This extension header provides a mapping between a GUID and an OEM file type.
+///
+typedef struct {
+  ///
+  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+  ///
+  EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
+  ///
+  /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
+  /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
+  ///
+  UINT32    TypeMask;
+  ///
+  /// An array of GUIDs, each GUID representing an OEM file type.
+  ///
+  /// EFI_GUID  Types[1];
+  ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
+
+#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002
+
+///
+/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
+/// GUID FormatType type which includes a length and a successive series of data bytes.
+///
+typedef struct {
+  ///
+  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
+  ///
+  EFI_FIRMWARE_VOLUME_EXT_ENTRY     Hdr;
+  ///
+  /// Vendor-specific GUID.
+  ///
+  EFI_GUID                          FormatType;
+  ///
+  /// An arry of bytes of length Length.
+  ///
+  /// UINT8                             Data[1];
+  ///
+} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspguid.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspguid.h
new file mode 100644
index 0000000..b9a6183
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspguid.h
@@ -0,0 +1,69 @@
+/** @file
+
+Copyright (C) 2014, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_GUID_H__
+#define __FSP_GUID_H__
+
+/**
+
+ FSP specific GUID HOB definitions
+
+ **/
+#define FSP_INFO_HEADER_GUID \
+  { \
+  0x912740BE, 0x2284, 0x4734, {0xB9, 0x71, 0x84, 0xB0, 0x27, 0x35, 0x3F, 0x0C} \
+  }
+
+#define FSP_NON_VOLATILE_STORAGE_HOB_GUID \
+  { \
+  0x721acf02, 0x4d77, 0x4c2a, { 0xb3, 0xdc, 0x27, 0xb, 0x7b, 0xa9, 0xe4, 0xb0 } \
+  }
+
+#define FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID \
+  { \
+  0xbbcff46c, 0xc8d3, 0x4113, { 0x89, 0x85, 0xb9, 0xd4, 0xf3, 0xb3, 0xf6, 0x4e } \
+  }
+
+#define FSP_HOB_RESOURCE_OWNER_FSP_GUID \
+  { \
+  0x69a79759, 0x1373, 0x4367, { 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e } \
+  }
+
+#define FSP_HOB_RESOURCE_OWNER_TSEG_GUID \
+  { \
+  0xd038747c, 0xd00c, 0x4980, { 0xb3, 0x19, 0x49, 0x01, 0x99, 0xa4, 0x7d, 0x55 } \
+  }
+
+#define FSP_HOB_RESOURCE_OWNER_GRAPHICS_GUID \
+  { \
+  0x9c7c3aa7, 0x5332, 0x4917, { 0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07 } \
+  }
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fsphob.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fsphob.h
new file mode 100644
index 0000000..0f743b5
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fsphob.h
@@ -0,0 +1,544 @@
+/** @file
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __PI_HOB_H__
+#define __PI_HOB_H__
+
+#include <fsptypes.h>
+
+//
+// HobType of EFI_HOB_GENERIC_HEADER.
+//
+#define EFI_HOB_TYPE_MEMORY_ALLOCATION    0x0002
+#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
+#define EFI_HOB_TYPE_GUID_EXTENSION       0x0004
+#define EFI_HOB_TYPE_UNUSED               0xFFFE
+#define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF
+
+///
+/// Describes the format and size of the data inside the HOB.
+/// All HOBs must contain this generic HOB header.
+///
+typedef struct {
+  ///
+  /// Identifies the HOB data structure type.
+  ///
+  UINT16    HobType;
+  ///
+  /// The length in bytes of the HOB.
+  ///
+  UINT16    HobLength;
+  ///
+  /// This field must always be set to zero.
+  ///
+  UINT32    Reserved;
+} EFI_HOB_GENERIC_HEADER;
+
+///
+/// Enumeration of memory types introduced in UEFI.
+///
+typedef enum {
+  ///
+  /// Not used.
+  ///
+  EfiReservedMemoryType,
+  ///
+  /// The code portions of a loaded application.
+  /// (Note that UEFI OS loaders are UEFI applications.)
+  ///
+  EfiLoaderCode,
+  ///
+  /// The data portions of a loaded application and the default data allocation
+  /// type used by an application to allocate pool memory.
+  ///
+  EfiLoaderData,
+  ///
+  /// The code portions of a loaded Boot Services Driver.
+  ///
+  EfiBootServicesCode,
+  ///
+  /// The data portions of a loaded Boot Serves Driver, and the default data
+  /// allocation type used by a Boot Services Driver to allocate pool memory.
+  ///
+  EfiBootServicesData,
+  ///
+  /// The code portions of a loaded Runtime Services Driver.
+  ///
+  EfiRuntimeServicesCode,
+  ///
+  /// The data portions of a loaded Runtime Services Driver and the default
+  /// data allocation type used by a Runtime Services Driver to allocate pool memory.
+  ///
+  EfiRuntimeServicesData,
+  ///
+  /// Free (unallocated) memory.
+  ///
+  EfiConventionalMemory,
+  ///
+  /// Memory in which errors have been detected.
+  ///
+  EfiUnusableMemory,
+  ///
+  /// Memory that holds the ACPI tables.
+  ///
+  EfiACPIReclaimMemory,
+  ///
+  /// Address space reserved for use by the firmware.
+  ///
+  EfiACPIMemoryNVS,
+  ///
+  /// Used by system firmware to request that a memory-mapped IO region
+  /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
+  ///
+  EfiMemoryMappedIO,
+  ///
+  /// System memory-mapped IO region that is used to translate memory
+  /// cycles to IO cycles by the processor.
+  ///
+  EfiMemoryMappedIOPortSpace,
+  ///
+  /// Address space reserved by the firmware for code that is part of the processor.
+  ///
+  EfiPalCode,
+  EfiMaxMemoryType
+} EFI_MEMORY_TYPE;
+
+///
+/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
+/// various attributes of the logical memory allocation. The type field will be used for
+/// subsequent inclusion in the UEFI memory map.
+///
+typedef struct {
+  ///
+  /// A GUID that defines the memory allocation region's type and purpose, as well as
+  /// other fields within the memory allocation HOB. This GUID is used to define the
+  /// additional data within the HOB that may be present for the memory allocation HOB.
+  /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
+  /// specification.
+  ///
+  EFI_GUID              Name;
+
+  ///
+  /// The base address of memory allocated by this HOB. Type
+  /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
+  /// specification.
+  ///
+  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
+
+  ///
+  /// The length in bytes of memory allocated by this HOB.
+  ///
+  UINT64                MemoryLength;
+
+  ///
+  /// Defines the type of memory allocated by this HOB. The memory type definition
+  /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
+  /// in AllocatePages() in the UEFI 2.0 specification.
+  ///
+  EFI_MEMORY_TYPE       MemoryType;
+
+  ///
+  /// Padding for Itanium processor family
+  ///
+  UINT8                 Reserved[4];
+} EFI_HOB_MEMORY_ALLOCATION_HEADER;
+
+///
+/// Describes all memory ranges used during the HOB producer
+/// phase that exist outside the HOB list. This HOB type
+/// describes how memory is used, not the physical attributes of memory.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
+  ///
+  EFI_HOB_GENERIC_HEADER            Header;
+  ///
+  /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
+  /// various attributes of the logical memory allocation.
+  ///
+  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
+  //
+  // Additional data pertaining to the "Name" Guid memory
+  // may go here.
+  //
+} EFI_HOB_MEMORY_ALLOCATION;
+
+///
+/// The resource type.
+///
+typedef UINT32 EFI_RESOURCE_TYPE;
+
+//
+// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
+//
+#define EFI_RESOURCE_SYSTEM_MEMORY          0x00000000
+#define EFI_RESOURCE_MEMORY_MAPPED_IO       0x00000001
+#define EFI_RESOURCE_IO                     0x00000002
+#define EFI_RESOURCE_FIRMWARE_DEVICE        0x00000003
+#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  0x00000004
+#define EFI_RESOURCE_MEMORY_RESERVED        0x00000005
+#define EFI_RESOURCE_IO_RESERVED            0x00000006
+#define EFI_RESOURCE_MAX_MEMORY_TYPE        0x00000007
+
+///
+/// A type of recount attribute type.
+///
+typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
+
+//
+// These types can be ORed together as needed.
+//
+// The first three enumerations describe settings
+//
+#define EFI_RESOURCE_ATTRIBUTE_PRESENT              0x00000001
+#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED          0x00000002
+#define EFI_RESOURCE_ATTRIBUTE_TESTED               0x00000004
+//
+// The rest of the settings describe capabilities
+//
+#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC           0x00000008
+#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC         0x00000010
+#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1           0x00000020
+#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2           0x00000040
+#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100
+#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200
+#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE              0x00000400
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE        0x00000800
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE  0x00001000
+#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE     0x00002000
+#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO                0x00004000
+#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO                0x00008000
+#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000
+#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000
+
+///
+/// Describes the resource properties of all fixed,
+/// nonrelocatable resource ranges found on the processor
+/// host bus during the HOB producer phase.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
+  ///
+  EFI_HOB_GENERIC_HEADER      Header;
+  ///
+  /// A GUID representing the owner of the resource. This GUID is used by HOB
+  /// consumer phase components to correlate device ownership of a resource.
+  ///
+  EFI_GUID                    Owner;
+  ///
+  /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
+  ///
+  EFI_RESOURCE_TYPE           ResourceType;
+  ///
+  /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
+  ///
+  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
+  ///
+  /// The physical start address of the resource region.
+  ///
+  EFI_PHYSICAL_ADDRESS        PhysicalStart;
+  ///
+  /// The number of bytes of the resource region.
+  ///
+  UINT64                      ResourceLength;
+} EFI_HOB_RESOURCE_DESCRIPTOR;
+
+///
+/// Allows writers of executable content in the HOB producer phase to
+/// maintain and manage HOBs with specific GUID.
+///
+typedef struct {
+  ///
+  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
+  ///
+  EFI_HOB_GENERIC_HEADER      Header;
+  ///
+  /// A GUID that defines the contents of this HOB.
+  ///
+  EFI_GUID                    Name;
+  //
+  // Guid specific data goes here
+  //
+} EFI_HOB_GUID_TYPE;
+
+///
+/// Union of all the possible HOB Types.
+///
+typedef union {
+  EFI_HOB_GENERIC_HEADER              *Header;
+  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
+  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
+  EFI_HOB_GUID_TYPE                   *Guid;
+  UINT8                               *Raw;
+} EFI_PEI_HOB_POINTERS;
+
+
+/**
+  Returns the type of a HOB.
+
+  This macro returns the HobType field from the HOB header for the
+  HOB specified by HobStart.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return HobType.
+
+**/
+#define GET_HOB_TYPE(HobStart) \
+  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobType)
+
+/**
+  Returns the length, in bytes, of a HOB.
+
+  This macro returns the HobLength field from the HOB header for the
+  HOB specified by HobStart.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return HobLength.
+
+**/
+#define GET_HOB_LENGTH(HobStart) \
+  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobLength)
+
+/**
+  Returns a pointer to the next HOB in the HOB list.
+
+  This macro returns a pointer to HOB that follows the
+  HOB specified by HobStart in the HOB List.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @return A pointer to the next HOB in the HOB list.
+
+**/
+#define GET_NEXT_HOB(HobStart) \
+  (VOID *)(*(UINT8 **)&(HobStart) + GET_HOB_LENGTH (HobStart))
+
+/**
+  Determines if a HOB is the last HOB in the HOB list.
+
+  This macro determine if the HOB specified by HobStart is the
+  last HOB in the HOB list.  If HobStart is last HOB in the HOB list,
+  then TRUE is returned.  Otherwise, FALSE is returned.
+
+  @param  HobStart   A pointer to a HOB.
+
+  @retval TRUE       The HOB specified by HobStart is the last HOB in the HOB list.
+  @retval FALSE      The HOB specified by HobStart is not the last HOB in the HOB list.
+
+**/
+#define END_OF_HOB_LIST(HobStart)  (GET_HOB_TYPE (HobStart) == (UINT16)EFI_HOB_TYPE_END_OF_HOB_LIST)
+
+/**
+  Returns a pointer to data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  This macro returns a pointer to the data buffer in a HOB specified by HobStart.
+  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  @param   GuidHob   A pointer to a HOB.
+
+  @return  A pointer to the data buffer in a HOB.
+
+**/
+#define GET_GUID_HOB_DATA(HobStart) \
+  (VOID *)(*(UINT8 **)&(HobStart) + sizeof (EFI_HOB_GUID_TYPE))
+
+/**
+  Returns the size of the data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  This macro returns the size, in bytes, of the data buffer in a HOB specified by HobStart.
+  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
+
+  @param   GuidHob   A pointer to a HOB.
+
+  @return  The size of the data buffer.
+**/
+#define GET_GUID_HOB_DATA_SIZE(HobStart) \
+  (UINT16)(GET_HOB_LENGTH (HobStart) - sizeof (EFI_HOB_GUID_TYPE))
+
+/**
+  Returns the pointer to the HOB list.
+
+  This function returns the pointer to first HOB in the list.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+
+  @return The pointer to the HOB list.
+
+**/
+VOID *
+EFIAPI
+GetHobList (
+  VOID
+  );
+
+/**
+  Returns the next instance of a HOB type from the starting HOB.
+
+  This function searches the first instance of a HOB type from the starting HOB pointer.
+  If there does not exist such HOB type from the starting HOB pointer, it will return NULL.
+  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
+  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
+  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
+
+  If HobStart is NULL, then ASSERT().
+
+  @param  Type          The HOB type to return.
+  @param  HobStart      The starting HOB pointer to search from.
+
+  @return The next instance of a HOB type from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetNextHob (
+  UINT16                 Type,
+  CONST VOID             *HobStart
+  );
+
+/**
+  Returns the first instance of a HOB type among the whole HOB list.
+
+  This function searches the first instance of a HOB type among the whole HOB list.
+  If there does not exist such HOB type in the HOB list, it will return NULL.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+
+  @param  Type          The HOB type to return.
+
+  @return The next instance of a HOB type from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetFirstHob (
+  UINT16                 Type
+  );
+
+/**
+  Returns the next instance of the matched GUID HOB from the starting HOB.
+
+  This function searches the first instance of a HOB from the starting HOB pointer.
+  Such HOB should satisfy two conditions:
+  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
+  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
+  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
+  to extract the data section and its size info respectively.
+  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
+  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
+  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
+
+  If Guid is NULL, then ASSERT().
+  If HobStart is NULL, then ASSERT().
+
+  @param  Guid          The GUID to match with in the HOB list.
+  @param  HobStart      A pointer to a Guid.
+
+  @return The next instance of the matched GUID HOB from the starting HOB.
+
+**/
+VOID *
+EFIAPI
+GetNextGuidHob (
+  CONST EFI_GUID         *Guid,
+  CONST VOID             *HobStart
+  );
+
+/**
+  Returns the first instance of the matched GUID HOB among the whole HOB list.
+
+  This function searches the first instance of a HOB among the whole HOB list.
+  Such HOB should satisfy two conditions:
+  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
+  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
+  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
+  to extract the data section and its size info respectively.
+
+  If the pointer to the HOB list is NULL, then ASSERT().
+  If Guid is NULL, then ASSERT().
+
+  @param  Guid          The GUID to match with in the HOB list.
+
+  @return The first instance of the matched GUID HOB among the whole HOB list.
+
+**/
+VOID *
+EFIAPI
+GetFirstGuidHob (
+  CONST EFI_GUID         *Guid
+  );
+
+/**
+  Compares two GUIDs.
+
+  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
+  If there are any bit differences in the two GUIDs, then FALSE is returned.
+
+  If Guid1 is NULL, then ASSERT().
+  If Guid2 is NULL, then ASSERT().
+
+  @param  Guid1       A pointer to a 128 bit GUID.
+  @param  Guid2       A pointer to a 128 bit GUID.
+
+  @retval TRUE        Guid1 and Guid2 are identical.
+  @retval FALSE       Guid1 and Guid2 are not identical.
+
+**/
+BOOLEAN
+EFIAPI
+CompareGuid (
+  CONST EFI_GUID  *Guid1,
+  CONST EFI_GUID  *Guid2
+  );
+
+/**
+  Reads a 64-bit value from memory that may be unaligned.
+
+  This function returns the 64-bit value pointed to by Buffer. The function
+  guarantees that the read operation does not produce an alignment fault.
+
+  If the Buffer is NULL, then ASSERT().
+
+  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
+
+  @return The 64-bit value read from Buffer.
+
+**/
+UINT64
+EFIAPI
+ReadUnaligned64 (
+  CONST UINT64              *Buffer
+  );
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspinfoheader.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspinfoheader.h
new file mode 100644
index 0000000..28382cf
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspinfoheader.h
@@ -0,0 +1,62 @@
+/*++
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_INFO_HEADER_H_
+#define _FSP_INFO_HEADER_H_
+
+#pragma pack(1)
+
+typedef struct  {
+
+  UINT32  Signature;       // Off 0x94
+  UINT32  HeaderLength;
+  UINT8   Reserved1[3];
+  UINT8   HeaderRevision;
+  UINT32  ImageRevision;
+
+  CHAR8   ImageId[8];      // Off 0xA4
+  UINT32  ImageSize;
+  UINT32  ImageBase;
+
+  UINT32  ImageAttribute;  // Off 0xB4
+  UINT32  CfgRegionOffset;
+  UINT32  CfgRegionSize;
+  UINT32  ApiEntryNum;
+
+  UINT32  NemInitEntry;    // Off 0xC4
+  UINT32  FspInitEntry;
+  UINT32  NotifyPhaseEntry;
+  UINT32  Reserved2;
+
+} FSP_INFO_HEADER;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspplatform.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspplatform.h
new file mode 100644
index 0000000..c35dca0
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspplatform.h
@@ -0,0 +1,114 @@
+/**
+
+Copyright (C) 2013 - 2015, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _FSP_PLATFORM_H_
+#define _FSP_PLATFORM_H_
+
+#include "fsptypes.h"
+#include "fspapi.h"
+
+//
+// Maximum number of SDRAM channels supported by each CPU
+//
+#define MAX_CHANNELS                 2
+//
+// Maximum number of DIMM sockets supported by each channel
+//
+#define MAX_DIMMS                    2
+
+#pragma pack(1)
+//
+// SPD DDR3 structure
+//
+typedef struct {
+  UINT8  DRAMDeviceType;                 // 2   DRAM Device Type
+  UINT8  ModuleType;                     // 3   Module Type
+  UINT8  SDRAMDensityAndBanks;           // 4   SDRAM Density and Banks
+  UINT8  SDRAMAddressing;                // 5   SDRAM Addressing
+  UINT8  VDD;                            // 6   Module Nominal Voltage
+  UINT8  ModuleOrganization;             // 7   Module Organization
+  UINT8  ModuleMemoryBusWidth;           // 8   Module Memory Bus Width
+  UINT8  TimebaseDividend;               // 10  Medium Timebase (MTB) Dividend
+  UINT8  TimebaseDivisor;                // 11  Medium Timebase (MTB) Divisor
+  UINT8  SDRAMMinimumCycleTime;          // 12  SDRAM Minimum Cycle Time (tCKmin)
+  UINT8  CASLatenciesLSB;                // 14  CAS Latencies Supported, Least Significant Byte
+  UINT8  CASLatenciesMSB;                // 15  CAS Latencies Supported, Most Significant Byte
+  UINT8  MinimumCASLatencyTime;          // 16  Minimum CAS Latency Time (tAAmin)
+  UINT8  MinimumWriteRecoveryTime;       // 17  Minimum Write Recovery Time (tWRmin)
+  UINT8  MinimumRASToCASDelayTime;       // 18  Minimum RAS# to CAS# Delay Time (tRCDmin)
+  UINT8  MinimumRowToRowDelayTime;       // 19  Minimum Row Active to Row Active Delay Time (tRRDmin)
+  UINT8  MinimumRowPrechargeDelayTime;   // 20  Minimum Row Precharge Delay Time (tRPmin)
+  UINT8  UpperNibblesFortRASAndtRC;      // 21  Upper Nibbles for tRAS and tRC
+  UINT8  tRASmin;                        // 22  Minimum Active to Precharge Delay Time (tRASmin), Least Significant Byte
+  UINT8  tRCmin;                         // 23  Minimum Active to Active/Refresh Delay Time (tRCmin), Least Significant Byte
+  UINT8  tRFCminLeastSignificantByte;    // 24  Minimum Refresh Recovery Delay Time (tRFCmin), Least Significant Byte
+  UINT8  tRFCminMostSignificantByte;     // 25  Minimum Refresh Recovery Delay Time (tRFCmin), Most Significant Byte
+  UINT8  tWTRmin;                        // 26  Minimum Internal Write to Read Command Delay Time (tWTRmin)
+  UINT8  tRTPmin;                        // 27  Minimum Internal Read to Precharge Command Delay Time (tRTPmin)
+  UINT8  UpperNibbleFortFAW;             // 28  Upper Nibble for tFAW
+  UINT8  tFAWmin;                        // 29  Minimum Four Activate Window Delay Time (tFAWmin)
+  UINT8  SdramThermalRefreshOption;      // 31  SdramThermalRefreshOption
+  UINT8  ModuleThermalSensor;            // 32  ModuleThermalSensor
+  UINT8  SDRAMDeviceType;                // 33  SDRAM Device Type
+  UINT8  tCKminFine;                     // 34  Fine Offset for SDRAM Minimum Cycle Time (tCKmin)
+  UINT8  tAAminFine;                     // 35  Fine Offset for Minimum CAS Latency Time (tAAmin)
+  UINT8  MACCount;                       // 41  Maximum Activate Count
+  UINT8  ReferenceRawCardUsed;           // 62  Reference Raw Card Used
+  UINT8  AddressMappingEdgeConnector;    // 63  Address Mapping from Edge Connector to DRAM
+  UINT8  ModuleManufacturerIdCodeLsb;    // 117 Module Manufacturer ID Code, Least Significant Byte
+  UINT8  ModuleManufacturerIdCodeMsb;    // 118 Module Manufacturer ID Code, Most Significant Byte
+  UINT8  ModuleManufacturingLocation;    // 119 Module Manufacturing Location
+  UINT8  ModuleManufacturingDateYear;    // 120 Module Manufacturing Date Year
+  UINT8  ModuleManufacturingDateWW;      // 121 Module Manufacturing Date creation work week
+  UINT8  ModuleSerialNumberA;            // 122 Module Serial Number A
+  UINT8  ModuleSerialNumberB;            // 123 Module Serial Number B
+  UINT8  ModuleSerialNumberC;            // 124 Module Serial Number C
+  UINT8  ModuleSerialNumberD;            // 125 Module Serial Number D
+  UINT8  DramManufacturerIdLsb;          // 148 DRAM Manufacturer ID Code, LSB
+  UINT8  DramManufacturerIdMsb;          // 149 DRAM Manufacturer ID Code, MSB
+} MEM_DOWN_DIMM_SPD_DATA;
+
+typedef struct {
+  UINT32   MemoryDownDimmPopulation;  // 0 - Empty, 1 - DIMM populated
+  MEM_DOWN_DIMM_SPD_DATA   MemoryDownDimmSpdData;
+} MEM_DOWN_DIMM_CONFIG;
+
+typedef struct {
+  CONST MEM_DOWN_DIMM_CONFIG  *MemDownDimmConfig[MAX_CHANNELS][MAX_DIMMS];
+} FSP_INIT_RT_PLATFORM_BUFFER;
+
+typedef struct {
+  FSP_INIT_RT_COMMON_BUFFER  Common;
+  FSP_INIT_RT_PLATFORM_BUFFER Platform;
+} FSP_INIT_RT_BUFFER;
+
+#pragma pack()
+
+#endif
\ No newline at end of file
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspsupport.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspsupport.h
new file mode 100644
index 0000000..dbbbf77
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspsupport.h
@@ -0,0 +1,95 @@
+/** @file
+
+Copyright (C) 2013 - 2014, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef __FSP_SUPPORT_H__
+#define __FSP_SUPPORT_H__
+
+#include "fsptypes.h"
+#include "fspfv.h"
+#include "fspffs.h"
+#include "fspapi.h"
+#include "fsphob.h"
+#include "fspguid.h"
+#include "fspplatform.h"
+#include "fspinfoheader.h"
+#include "fspbootmode.h"
+#include "fspvpd.h"
+
+UINT32
+GetUsableLowMemTop (
+  CONST VOID             *HobListPtr
+  );
+
+UINT64
+GetUsableHighMemTop (
+  CONST VOID             *HobListPtr
+  );
+
+VOID *
+GetGuidHobDataBuffer (
+  CONST VOID             *HobListPtr,
+  UINT32                 *Length,
+  EFI_GUID               *Guid
+  );
+
+VOID
+GetFspReservedMemoryFromGuid (
+  CONST VOID             *HobListPtr,
+  EFI_PHYSICAL_ADDRESS   *FspMemoryBase,
+  UINT64                 *FspMemoryLength,
+  EFI_GUID               *FspReservedMemoryGuid
+  );
+
+UINT32
+GetTsegReservedMemory (
+  CONST VOID             *HobListPtr,
+  UINT32                 *Length
+);
+
+UINT32
+GetFspReservedMemory (
+  CONST VOID             *HobListPtr,
+  UINT32                 *Length
+);
+
+VOID*
+GetFspNvsDataBuffer (
+  CONST VOID             *HobListPtr,
+  UINT32                 *Length
+  );
+
+VOID *
+GetBootloaderTempMemoryBuffer (
+  CONST VOID             *HobListPtr,
+  UINT32                 *Length
+  );
+
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fsptypes.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fsptypes.h
new file mode 100644
index 0000000..da19250
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fsptypes.h
@@ -0,0 +1,183 @@
+/******************************************************************************
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+ *****************************************************************************/
+
+/** \file  fsptypes.h
+ *
+ *
+ */
+
+#ifndef __FSP_TYPES_H__
+#define __FSP_TYPES_H__
+
+///
+/// 8-byte unsigned value.
+///
+typedef unsigned long long  UINT64;
+///
+/// 8-byte signed value.
+///
+typedef long long           INT64;
+///
+/// 4-byte unsigned value.
+///
+typedef unsigned int        UINT32;
+///
+/// 4-byte signed value.
+///
+typedef int                 INT32;
+///
+/// 2-byte unsigned value.
+///
+typedef unsigned short      UINT16;
+///
+/// 2-byte Character.  Unless otherwise specified all strings are stored in the
+/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
+///
+typedef unsigned short      CHAR16;
+///
+/// 2-byte signed value.
+///
+typedef short               INT16;
+///
+/// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
+/// values are undefined.
+///
+typedef unsigned char       BOOLEAN;
+///
+/// 1-byte unsigned value.
+///
+typedef unsigned char       UINT8;
+///
+/// 1-byte Character
+///
+typedef char                CHAR8;
+///
+/// 1-byte signed value
+///
+typedef char                INT8;
+
+typedef void                VOID;
+
+typedef UINT64              EFI_PHYSICAL_ADDRESS;
+
+typedef struct {
+  UINT32  Data1;
+  UINT16  Data2;
+  UINT16  Data3;
+  UINT8   Data4[8];
+} EFI_GUID;
+
+#define CONST     const
+#define STATIC    static
+
+#define TRUE  ((BOOLEAN)(1==1))
+#define FALSE ((BOOLEAN)(0==1))
+
+static inline void DebugDeadLoop(void) {
+  for (;;);
+}
+
+#define FSPAPI __attribute__((cdecl))
+#define EFIAPI __attribute__((cdecl))
+
+#define _ASSERT(Expression)  DebugDeadLoop()
+#define ASSERT(Expression)      \
+  do {                          \
+    if (!(Expression)) {        \
+      _ASSERT (Expression);     \
+    }                           \
+  } while (FALSE)
+
+typedef UINT32 FSP_STATUS;
+typedef UINT32 EFI_STATUS;
+
+///
+/// Compatiable with EFI_STATUS defined in PI Spec.
+#define FSP_SUCCESS               0
+#define FSP_INVALID_PARAMETER     0x80000002
+#define FSP_UNSUPPORTED           0x80000003
+#define FSP_DEVICE_ERROR          0x80000007
+#define FSP_NOT_FOUND             0x8000000E
+#define FSP_ALREADY_STARTED       0x80000014
+
+/**
+  Returns a 16-bit signature built from 2 ASCII characters.
+
+  This macro returns a 16-bit value built from the two ASCII characters specified
+  by A and B.
+
+  @param  A    The first ASCII character.
+  @param  B    The second ASCII character.
+
+  @return A 16-bit value built from the two ASCII characters specified by A and B.
+
+**/
+#define SIGNATURE_16(A, B)        ((A) | (B << 8))
+
+/**
+  Returns a 32-bit signature built from 4 ASCII characters.
+
+  This macro returns a 32-bit value built from the four ASCII characters specified
+  by A, B, C, and D.
+
+  @param  A    The first ASCII character.
+  @param  B    The second ASCII character.
+  @param  C    The third ASCII character.
+  @param  D    The fourth ASCII character.
+
+  @return A 32-bit value built from the two ASCII characters specified by A, B,
+          C and D.
+
+**/
+#define SIGNATURE_32(A, B, C, D)  (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16))
+
+/**
+  Returns a 64-bit signature built from 8 ASCII characters.
+
+  This macro returns a 64-bit value built from the eight ASCII characters specified
+  by A, B, C, D, E, F, G,and H.
+
+  @param  A    The first ASCII character.
+  @param  B    The second ASCII character.
+  @param  C    The third ASCII character.
+  @param  D    The fourth ASCII character.
+  @param  E    The fifth ASCII character.
+  @param  F    The sixth ASCII character.
+  @param  G    The seventh ASCII character.
+  @param  H    The eighth ASCII character.
+
+  @return A 64-bit value built from the two ASCII characters specified by A, B,
+          C, D, E, F, G and H.
+
+**/
+#define SIGNATURE_64(A, B, C, D, E, F, G, H) \
+    (SIGNATURE_32 (A, B, C, D) | ((UINT64) (SIGNATURE_32 (E, F, G, H)) << 32))
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspvpd.h b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspvpd.h
new file mode 100644
index 0000000..4ba1a28
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/include/fspvpd.h
@@ -0,0 +1,89 @@
+/** @file
+
+Copyright (C) 2015, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+  This file is automatically generated. Please do NOT modify !!!
+
+**/
+
+#ifndef __FSP_VPD_H__
+#define __FSP_VPD_H__
+
+#pragma pack(1)
+
+
+
+typedef struct _UPD_DATA_REGION {
+  UINT64                      Signature;                     /* Offset 0x0000 */
+  UINT64                      Reserved;                      /* Offset 0x0008 */
+  UINT8                       UnusedUpdSpace0[16];           /* Offset 0x0010 */
+  UINT8                       PcdMrcInitTsegSize;            /* Offset 0x0020 */
+  UINT8                       PcdMemoryDown;                 /* Offset 0x0021 */
+  UINT8                       PcdMrcRmtSupport;              /* Offset 0x0022 */
+  UINT8                       PcdMrcRmtCpgcExpLoopCntValue;  /* Offset 0x0023 */
+  UINT8                       PcdMrcRmtCpgcNumBursts;        /* Offset 0x0024 */
+  UINT8                       PcdSpdBaseAddress_0_0;         /* Offset 0x0025 */
+  UINT8                       PcdSpdBaseAddress_0_1;         /* Offset 0x0026 */
+  UINT8                       PcdSpdBaseAddress_1_0;         /* Offset 0x0027 */
+  UINT8                       PcdSpdBaseAddress_1_1;         /* Offset 0x0028 */
+  UINT8                       PcdExtendedTemperatureEnable;  /* Offset 0x0029 */
+  UINT8                       UnusedUpdSpace1[6];            /* Offset 0x002A */
+  UINT8                       PcdEnableLan;                  /* Offset 0x0030 */
+  UINT8                       PcdEnableSata2;                /* Offset 0x0031 */
+  UINT8                       PcdEnableSata3;                /* Offset 0x0032 */
+  UINT8                       PcdEnableIQAT;                 /* Offset 0x0033 */
+  UINT8                       PcdEnableUsb20;                /* Offset 0x0034 */
+  UINT8                       PcdBifurcation;                /* Offset 0x0035 */
+  UINT8                       PcdPcieRootPort1DeEmphasis;    /* Offset 0x0036 */
+  UINT8                       PcdPcieRootPort2DeEmphasis;    /* Offset 0x0037 */
+  UINT8                       PcdPcieRootPort3DeEmphasis;    /* Offset 0x0038 */
+  UINT8                       PcdPcieRootPort4DeEmphasis;    /* Offset 0x0039 */
+  UINT8                       UnusedUpdSpace2[6];            /* Offset 0x003A */
+  UINT8                       PcdPrintDebugMessages;         /* Offset 0x0040 */
+  UINT8                       PcdFastboot;                   /* Offset 0x0041 */
+  UINT8                       PcdEccSupport;                 /* Offset 0x0042 */
+  UINT8                       PcdSerialPortBaudRate;         /* Offset 0x0043 */
+  UINT8                       PcdCustomerRevision[32];       /* Offset 0x0044 */
+  UINT8                       UnusedUpdSpace3[12];           /* Offset 0x0064 */
+  UINT16                      PcdRegionTerminator;           /* Offset 0x0070 */
+} UPD_DATA_REGION;
+
+#define VPD_IMAGE_ID    0x562D474E524E5641        /* 'AVNRNG-V' */
+#define VPD_IMAGE_REV   0x00000140
+
+typedef struct _VPD_DATA_REGION {
+  UINT64                      PcdVpdRegionSign;              /* Offset 0x0000 */
+  UINT32                      PcdImageRevision;              /* Offset 0x0008 */
+  UINT32                      PcdUpdRegionOffset;            /* Offset 0x000C */
+  UINT8                       UnusedVpdSpace0[16];           /* Offset 0x0010 */
+  UINT32                      PcdFspReservedMemoryLength;    /* Offset 0x0020 */
+  UINT8                       PcdSpdWriteProtect;            /* Offset 0x0024 */
+} VPD_DATA_REGION;
+
+#pragma pack()
+
+#endif
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/srx/fsp_support.c b/src/vendorcode/intel/fsp/fsp1_0/rangeley/srx/fsp_support.c
new file mode 100644
index 0000000..9f15b3e
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/srx/fsp_support.c
@@ -0,0 +1,288 @@
+/** @file
+
+Copyright (C) 2013 - 2014, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#include <types.h>
+#include <string.h>
+#include "fspsupport.h"
+
+/**
+  This function retrieves the top of usable low memory.
+
+  @param    HobListPtr   A HOB list pointer.
+
+  @retval                Usable low memory top.
+
+**/
+UINT32
+GetUsableLowMemTop (
+  CONST VOID       *HobStart
+)
+{
+  EFI_PEI_HOB_POINTERS  Hob;
+  UINT32          MemLen;
+  /*
+   * Get the HOB list for processing
+   */
+  Hob.Raw = (VOID *)HobStart;
+
+  /*
+   * Collect memory ranges
+   */
+  MemLen = 0x100000;
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
+      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
+        /*
+         * Need memory above 1MB to be collected here
+         */
+        if (Hob.ResourceDescriptor->PhysicalStart >= 0x100000 &&
+            Hob.ResourceDescriptor->PhysicalStart < (EFI_PHYSICAL_ADDRESS) 0x100000000) {
+          MemLen += (UINT32) (Hob.ResourceDescriptor->ResourceLength);
+        }
+      }
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+
+  return MemLen;
+}
+
+/**
+  This function retrieves the top of usable high memory.
+
+  @param  HobListPtr   A HOB list pointer.
+
+  @retval              Usable high memory top.
+
+**/
+UINT64
+GetUsableHighMemTop (
+  CONST VOID       *HobStart
+)
+{
+  EFI_PEI_HOB_POINTERS  Hob;
+  UINT64                MemTop;
+  /*
+   * Get the HOB list for processing
+   */
+  Hob.Raw = (VOID *)HobStart;
+
+  /*
+   * Collect memory ranges
+   */
+  MemTop = 0x100000000;
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
+      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
+        /*
+         * Need memory above 1MB to be collected here
+         */
+        if (Hob.ResourceDescriptor->PhysicalStart >= (EFI_PHYSICAL_ADDRESS) 0x100000000) {
+          MemTop += (UINT32) (Hob.ResourceDescriptor->ResourceLength);
+        }
+      }
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+
+  return MemTop;
+}
+
+/**
+  This function retrieves a special reserved memory region.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the GUID HOB data buffer length.  If the GUID HOB is
+                       located, the length will be updated.
+  @param  OwnerGuid    A pointer to the owner guild.
+  @retval              Reserved region start address.  0 if this region does not exist.
+
+**/
+VOID
+GetFspReservedMemoryFromGuid (
+  CONST VOID     *HobListPtr,
+  EFI_PHYSICAL_ADDRESS  *Base,
+  UINT64         *Length,
+  EFI_GUID       *OwnerGuid
+)
+{
+  EFI_PEI_HOB_POINTERS    Hob;
+
+  /*
+   * Get the HOB list for processing
+   */
+  Hob.Raw = (VOID *)HobListPtr;
+
+  /*
+   * Collect memory ranges
+   */
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
+      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED) {
+        if (CompareGuid(&Hob.ResourceDescriptor->Owner, OwnerGuid)) {
+          *Base = (EFI_PHYSICAL_ADDRESS) (Hob.ResourceDescriptor->PhysicalStart);
+          *Length = (UINT64) (Hob.ResourceDescriptor->ResourceLength);
+          break;
+        }
+      }
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+}
+
+/**
+  This function retrieves the TSEG reserved normal memory.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the TSEG reserved memory length buffer.  If the GUID HOB is
+                       located, the length will be updated.
+  @param  Guid         A pointer to owner HOB GUID.
+  @retval NULL         Failed to find the TSEG reserved memory.
+  @retval others       TSEG reserved memory base.
+
+**/
+UINT32
+GetTsegReservedMemory (
+  CONST VOID       *HobListPtr,
+  UINT32           *Length
+)
+{
+  const EFI_GUID    TsegOwnerHobGuid = FSP_HOB_RESOURCE_OWNER_TSEG_GUID;
+  UINT64            Length64 = 0;
+  EFI_PHYSICAL_ADDRESS  Base = 0;
+
+  GetFspReservedMemoryFromGuid (HobListPtr, &Base, &Length64, (EFI_GUID *)&TsegOwnerHobGuid);
+  if ((Length != NULL) && (Base != 0)) {
+    *Length = (UINT32)Length64;
+  }
+  return (UINT32)Base;
+}
+
+/**
+  This function retrieves the FSP reserved normal memory.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the FSP reserved memory length buffer.  If the GUID HOB is
+                       located, the length will be updated.
+  @param  Guid         A pointer to owner HOB GUID.
+  @retval NULL         Failed to find the FSP reserved memory.
+  @retval others       FSP reserved memory base.
+
+**/
+UINT32
+GetFspReservedMemory (
+  CONST VOID       *HobListPtr,
+  UINT32           *Length
+)
+{
+  const EFI_GUID    FspOwnerHobGuid = FSP_HOB_RESOURCE_OWNER_FSP_GUID;
+  UINT64            Length64 = 0;
+  EFI_PHYSICAL_ADDRESS  Base = 0;
+
+  GetFspReservedMemoryFromGuid (HobListPtr, &Base, &Length64, (EFI_GUID *)&FspOwnerHobGuid);
+  if ((Length != NULL) && (Base != 0)) {
+    *Length = (UINT32)Length64;
+  }
+  return (UINT32)Base;
+}
+
+
+/**
+  This function retrieves a GUIDed HOB data buffer and size.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the GUID HOB data buffer length.  If the
+                       GUID HOB is located, the length will be updated.
+  @param  Guid         A pointer to HOB GUID.
+  @retval NULL         Failed to find the GUID HOB.
+  @retval others       GUID HOB data buffer pointer.
+
+**/
+VOID *
+GetGuidHobDataBuffer (
+  CONST VOID       *HobListPtr,
+  UINT32           *Length,
+  EFI_GUID         *Guid
+)
+{
+  UINT8        *GuidHob;
+
+  /* FSP NVS DATA HOB */
+  GuidHob = GetNextGuidHob(Guid, HobListPtr);
+  if (GuidHob == NULL) {
+    return NULL;
+  } else {
+    if (Length) {
+      *Length = GET_GUID_HOB_DATA_SIZE (GuidHob);
+    }
+    return GET_GUID_HOB_DATA (GuidHob);
+  }
+}
+
+/**
+  This function retrieves FSP Non-volatile Storage HOB buffer and size.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the NVS data buffer length.  If the FSP NVS
+                       HOB is located, the length will be updated.
+  @retval NULL         Failed to find the NVS HOB.
+  @retval others       FSP NVS data buffer pointer.
+
+**/
+VOID *
+GetFspNvsDataBuffer (
+  CONST VOID       *HobListPtr,
+  UINT32           *Length
+)
+{
+  const EFI_GUID    FspNvsHobGuid = FSP_NON_VOLATILE_STORAGE_HOB_GUID;
+  return GetGuidHobDataBuffer (HobListPtr, Length, (EFI_GUID *)&FspNvsHobGuid);
+}
+
+
+/**
+  This function retrieves Bootloader temporary stack buffer and size.
+
+  @param  HobListPtr   A HOB list pointer.
+  @param  Length       A pointer to the Bootloader temporary stack length.
+                       If the HOB is located, the length will be updated.
+  @retval NULL         Failed to find the Bootloader temporary stack HOB.
+  @retval others       Bootloader temporary stackbuffer pointer.
+
+**/
+VOID *
+GetBootloaderTempMemoryBuffer (
+  CONST VOID       *HobListPtr,
+  UINT32           *Length
+)
+{
+  const EFI_GUID    FspBootloaderTemporaryMemoryHobGuid = FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID;
+  return GetGuidHobDataBuffer (HobListPtr, Length, (EFI_GUID *)&FspBootloaderTemporaryMemoryHobGuid);
+}
diff --git a/src/vendorcode/intel/fsp/fsp1_0/rangeley/srx/fsphob.c b/src/vendorcode/intel/fsp/fsp1_0/rangeley/srx/fsphob.c
new file mode 100644
index 0000000..4986d52
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp1_0/rangeley/srx/fsphob.c
@@ -0,0 +1,204 @@
+/******************************************************************************
+
+Copyright (C) 2013, Intel Corporation
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+  THE POSSIBILITY OF SUCH DAMAGE.
+
+ ******************************************************************************/
+
+/***********************************************************************
+ *
+ * fsphob.c
+ *
+ * HOB infrastructure code.
+ *
+ **********************************************************************/
+#include <string.h>
+
+#include "fsptypes.h"
+#include "fsphob.h"
+
+//
+// Pointer to the HOB should be initialized with the output of FSP INIT PARAMS
+//
+#ifndef __PRE_RAM__
+extern volatile void *FspHobListPtr;
+#endif
+
+/**
+  Reads a 64-bit value from memory that may be unaligned.
+
+  This function returns the 64-bit value pointed to by Buffer. The function
+  guarantees that the read operation does not produce an alignment fault.
+
+  If the Buffer is NULL, then ASSERT().
+
+  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
+
+  @return The 64-bit value read from Buffer.
+
+**/
+UINT64
+EFIAPI
+ReadUnaligned64 (
+  CONST UINT64              *Buffer
+  )
+{
+  ASSERT (Buffer != NULL);
+
+  return *Buffer;
+}
+
+/**
+  Compares two GUIDs.
+
+  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
+  If there are any bit differences in the two GUIDs, then FALSE is returned.
+
+  If Guid1 is NULL, then ASSERT().
+  If Guid2 is NULL, then ASSERT().
+
+  @param  Guid1       A pointer to a 128 bit GUID.
+  @param  Guid2       A pointer to a 128 bit GUID.
+
+  @retval TRUE        Guid1 and Guid2 are identical.
+  @retval FALSE       Guid1 and Guid2 are not identical.
+
+**/
+BOOLEAN
+EFIAPI
+CompareGuid (
+  CONST EFI_GUID  *Guid1,
+  CONST EFI_GUID  *Guid2
+  )
+{
+  UINT64  LowPartOfGuid1;
+  UINT64  LowPartOfGuid2;
+  UINT64  HighPartOfGuid1;
+  UINT64  HighPartOfGuid2;
+
+  LowPartOfGuid1  = ReadUnaligned64 ((CONST UINT64*) Guid1);
+  LowPartOfGuid2  = ReadUnaligned64 ((CONST UINT64*) Guid2);
+  HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1);
+  HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1);
+
+  return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2);
+}
+
+/**
+  Returns the pointer to the HOB list.
+**/
+VOID *
+EFIAPI
+GetHobList (
+  VOID
+  )
+{
+#ifndef __PRE_RAM__
+  ASSERT (FspHobListPtr != NULL);
+  return ((VOID *)FspHobListPtr);
+#else
+  return ((VOID *)NULL);
+#endif
+}
+
+/**
+  Returns the next instance of a HOB type from the starting HOB.
+**/
+VOID *
+EFIAPI
+GetNextHob (
+  UINT16                 Type,
+  CONST VOID             *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  Hob;
+
+  ASSERT (HobStart != NULL);
+
+  Hob.Raw = (UINT8 *) HobStart;
+  //
+  // Parse the HOB list until end of list or matching type is found.
+  //
+  while (!END_OF_HOB_LIST (Hob)) {
+    if (Hob.Header->HobType == Type) {
+      return Hob.Raw;
+    }
+    Hob.Raw = GET_NEXT_HOB (Hob);
+  }
+  return NULL;
+}
+
+/**
+  Returns the first instance of a HOB type among the whole HOB list.
+**/
+VOID *
+EFIAPI
+GetFirstHob (
+  UINT16                 Type
+  )
+{
+  VOID      *HobList;
+
+  HobList = GetHobList ();
+  return GetNextHob (Type, HobList);
+}
+
+/**
+  Returns the next instance of the matched GUID HOB from the starting HOB.
+**/
+VOID *
+EFIAPI
+GetNextGuidHob (
+  CONST EFI_GUID         *Guid,
+  CONST VOID             *HobStart
+  )
+{
+  EFI_PEI_HOB_POINTERS  GuidHob;
+
+  GuidHob.Raw = (UINT8 *) HobStart;
+  while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
+    if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
+      break;
+    }
+    GuidHob.Raw = GET_NEXT_HOB (GuidHob);
+  }
+  return GuidHob.Raw;
+}
+
+/**
+  Returns the first instance of the matched GUID HOB among the whole HOB list.
+**/
+VOID *
+EFIAPI
+GetFirstGuidHob (
+  CONST EFI_GUID         *Guid
+  )
+{
+  VOID      *HobList;
+
+  HobList = GetHobList ();
+  return GetNextGuidHob (Guid, HobList);
+}
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/absf/minnowmax_1gb.absf b/src/vendorcode/intel/fsp1_0/baytrail/absf/minnowmax_1gb.absf
deleted file mode 100644
index 66ab0d7..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/absf/minnowmax_1gb.absf
+++ /dev/null
@@ -1,328 +0,0 @@
-//
-// This file contains an 'Intel Peripheral Driver' and is
-// licensed for Intel CPUs and chipsets under the terms of your
-// license agreement with Intel or your vendor.  This file must not
-// be modified by end users or could render the generated boot loader
-// inoperable.
-//
-// @file
-// Boot Setting File for Platform: Bayley Bay Platform
-//
-// Copyright (c) 2010-2013 Intel Corporation. All rights reserved
-// This software and associated documentation (if any) is furnished
-// under a license and may only be used or copied in accordance
-// with the terms of the license. Except as permitted by such
-// license, no part of this software or documentation may be
-// reproduced, stored in a retrieval system, or transmitted in any
-// form or by any means without the express written consent of
-// Intel Corporation.
-//
-//
-
-
-GlobalDataDef
-  SKUID = 0 $_AS_BUILT_ = 0x01 , "DEFAULT"
-EndGlobalData
-
-StructDef
-
-    Find "VLV2UPDR"
-    Skip 24 bytes
-    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitTsegSize        2 bytes $_AS_BUILT_ = 0x1, 0x0 $_DEFAULT_ = 0x0001
-    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitMmioSize        2 bytes $_AS_BUILT_ = 0x0, 0x8 $_DEFAULT_ = 0x0800
-    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr1        1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0xA0
-    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr2        1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0xA2
-    $gPlatformFspPkgTokenSpaceGuid_PcdeMMCBootMode           1 byte $_AS_BUILT_ = 0x3 $_DEFAULT_  = 2
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdio             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdcard           1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart0          1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart1          1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSpi              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableLan              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSata             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdSataMode               1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableAzalia           1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
-    $gPlatformFspPkgTokenSpaceGuid_AzaliaConfigPtr           4 bytes $_AS_BUILT_ = 0x0, 0x0, 0x0, 0x0 $_DEFAULT_  = 0
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableXhci             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableLpe              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdLpssSioEnablePciMode   1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C2             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C3             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C4             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C5             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C6             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsi              1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
-    $gPlatformFspPkgTokenSpaceGuid_PcdIgdDvmt50PreAlloc      1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
-    $gPlatformFspPkgTokenSpaceGuid_PcdApertureSize           1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
-    $gPlatformFspPkgTokenSpaceGuid_PcdGttSize                1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
-    $gPlatformFspPkgTokenSpaceGuid_ISPEnable                 1 bytes $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
-
-    Find "VLYVIEW1"
-    $gPlatformFspPkgTokenSpaceGuid_PcdImageRevision          4 bytes $_AS_BUILT_ = 0x2, 0x3, 0x0, 0x0 $_DEFAULT_ = 0x00000302
-    Skip 24 bytes
-    $gPlatformFspPkgTokenSpaceGuid_PcdPlatformType           1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSecureBoot       1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 2
-
-    $DIMM_MemDown             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 0
-    $DRAM_Speed               1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 2
-    $DRAM_Type                1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 1
-    $Rank_En_0_0              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 1
-    $Rank_En_1_0              1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
-    $DIMM_DWidth_0_0          1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 0
-    $DIMM_Density_0_0         1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 1
-    $DIMM_BusWidth_0_0        1 byte $_AS_BUILT_ = 0x3 $_DEFAULT_ = 3
-    $DIMM_Sides_0_0           1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
-    $tCL                      1 byte $_AS_BUILT_ = 0x7 $_DEFAULT_ = 9
-    $tRP_tRCD                 1 byte $_AS_BUILT_ = 0x7 $_DEFAULT_ = 9
-    $tWR                      1 byte $_AS_BUILT_ = 0x8 $_DEFAULT_ = 10
-    $tWTR                     1 byte $_AS_BUILT_ = 0x4 $_DEFAULT_ = 5
-    $tRRD                     1 byte $_AS_BUILT_ = 0x6 $_DEFAULT_ = 4
-    $tRTP                     1 byte $_AS_BUILT_ = 0x4 $_DEFAULT_ = 5
-    $tFAW                     1 byte $_AS_BUILT_ = 0x14 $_DEFAULT_ = 20
-
-EndStruct
-
-List &DRAMSPEED
-    Selection 0x0 , "800 MHz"
-    Selection 0x1 , "1066 MHz"
-    Selection 0x2 , "1333 MHz"
-    Selection 0x3 , "1600 MHz"
-EndList
-
-List &DRAMTYPE
-    Selection 0x0 , "DDR3"
-    Selection 0x1 , "DDR3L"
-    Selection 0x2 , "DDR3U"
-    //Selection 0x3 , "LPDDR2"
-    Selection 0x4 , "LPDDR2"
-    Selection 0x5 , "LPDDR3"
-    Selection 0x6 , "DDR4"
-EndList
-
-List &DIMMDWIDTH
-    Selection 0x0 , "x8"
-    Selection 0x1 , "x16"
-    Selection 0x2 , "x32"
-EndList
-
-List &DIMMDENSITY
-    Selection 0x0 , "1 Gbit"
-    Selection 0x1 , "2 Gbit"
-    Selection 0x2 , "4 Gbit"
-    Selection 0x3 , "8 Gbit"
-EndList
-
-List &DIMMBUSWIDTH
-    Selection 0x0 , "8 bits"
-    Selection 0x1 , "16 bits"
-    Selection 0x2 , "32 bits"
-    Selection 0x3 , "64 bits"
-EndList
-
-List &RANKPERDIMM
-    Selection 0x1 , "2 Ranks"
-    Selection 0x0 , "1 Rank"
-EndList
-
-List &SATA_MODE
-    Selection 0x1 , "AHCI"
-    Selection 0x0 , "IDE"
-EndList
-
-List &EMMC_MODES
-    Selection 0x0 , "Disabled"
-    Selection 0x1 , "Auto"
-    Selection 0x2 , "eMMC 4.1"
-    Selection 0x3 , "eMMC 4.5"
-EndList
-
-List &EN_DIS
-    Selection 0x1 , "Enabled"
-    Selection 0x0 , "Disabled"
-EndList
-
-List &EN_DIS_AUTO
-    Selection 0x2 , "Auto"
-    Selection 0x1 , "Enabled"
-    Selection 0x0 , "Disabled"
-EndList
-
-List &MMIO_SIZES
-    Selection 0x400, "1.0 GB"
-    Selection 0x600, "1.5 GB"
-    Selection 0x800, "2.0 GB"
-EndList
-
-List &TSEG_SIZES
-    Selection 0x01, "1 MB"
-    Selection 0x02, "2 MB"
-    Selection 0x04, "4 MB"
-    Selection 0x08, "8 MB"
-EndList
-
-List &IGDPREALLOC_SIZES
-    Selection 0x01, "32 MB"
-    Selection 0x02, "64 MB"
-    Selection 0x03, "96 MB"
-    Selection 0x04, "128 MB"
-    Selection 0x05, "160 MB"
-    Selection 0x06, "192 MB"
-    Selection 0x07, "224 MB"
-    Selection 0x08, "256 MB"
-    Selection 0x09, "288 MB"
-    Selection 0x0A, "320 MB"
-    Selection 0x0B, "352 MB"
-    Selection 0x0C, "384 MB"
-    Selection 0x0D, "416 MB"
-    Selection 0x0E, "448 MB"
-    Selection 0x0F, "480 MB"
-    Selection 0x10, "512 MB"
-EndList
-
-List &APERTURE_SIZES
-    Selection 0x1 , "128 MB"
-    Selection 0x2 , "256 MB"
-    Selection 0x3 , "512 MB"
-EndList
-
-List &GTT_SIZES
-    Selection 0x1 , "1 MB"
-    Selection 0x2 , "2 MB"
-EndList
-
-List &PCI_ACPI
-    Selection 0x2 , "ACPI Mode"
-    Selection 0x1 , "PCI Mode"
-    Selection 0x0 , "Disabled"
-EndList
-
-List &PLATFORM_TYPE
-    Selection 0x2 , "BayleyBay Platform Type"
-    Selection 0x3 , "BakerSport Platform (ECC) Type"
-EndList
-
-BeginInfoBlock
-  PPVer "1.0"
-  Description "MinnowMax"
-
-EndInfoBlock
-
-Page "Platform"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdPlatformType, "Platform Type", &PLATFORM_TYPE,
-                Help "Select Platform Type."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSecureBoot, "Enable Secure Boot", &EN_DIS_AUTO,
-                Help "Enable/disable secure boot. Auto by default."
-EndPage
-
-Page "North Complex"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitTsegSize, "Tseg Size", &TSEG_SIZES,
-				Help "Size of memory reserved for SMRAM, in MB."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitMmioSize, "Mmio Size", &MMIO_SIZES,
-                Help "Size of memory address space reserved for MMIO (Memory Mapped I/O), in GB."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdIgdDvmt50PreAlloc, "Internal Graphics Pre-allocated Memory ", &IGDPREALLOC_SIZES,
-                Help "Size of memory preallocated for internal graphics"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdApertureSize, "Aperture Size", &APERTURE_SIZES,
-                Help "Select the Aperture Size"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdGttSize, "GTT Size", &GTT_SIZES,
-                Help "Select the GTT Size"
-    EditNum $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr1, "DIMM 0 SPD SMBus Address", HEX,
-                Help "Address of DIMM 0. 8 bits"
-    EditNum $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr2, "DIMM 1 SPD SMBus Address", HEX,
-                Help "Address of DIMM 1. 8 bits"
-EndPage
-
-Page "Memory Down"
-    Combo $DIMM_MemDown, "Enable Memory Down", &EN_DIS,
-                Help "Enable = Memory Down, Disable = DIMM"
-    Combo $DRAM_Speed, "DRAM Speed", &DRAMSPEED,
-                Help "DRAM Speed"
-    Combo $DRAM_Type, "DRAM Type", &DRAMTYPE,
-                Help "DRAM Type"
-    Combo $Rank_En_0_0, "DIMM 0 Enable", &EN_DIS,
-                Help "Please populate DIMM slot 0 if only one DIMM is supported."
-    Combo $Rank_En_1_0, "DIMM 1 Enable", &EN_DIS,
-                Help "DIMM 1 has to be identical to DIMM 0."
-    Combo $DIMM_DWidth_0_0, "DIMM_DWidth", &DIMMDWIDTH,
-                Help "DRAM device data width."
-    Combo $DIMM_Density_0_0, "DIMM_Density", &DIMMDENSITY,
-                Help "DRAM device data density."
-    Combo $DIMM_BusWidth_0_0, "DIMM_BusWidth", &DIMMBUSWIDTH,
-                Help "DIMM Bus Width."
-    Combo $DIMM_Sides_0_0, "DIMM_Sides", &RANKPERDIMM,
-                Help "Ranks Per DIMM. "
-    EditNum $tCL, "tCL", DEC,
-                Help "tCL"
-    EditNum $tRP_tRCD, "tRP_tRCD", DEC,
-                Help "tRP and tRCD in DRAM clk - 5:12.5ns, 6:15ns, etc."
-    EditNum $tWR, "tWR", DEC,
-                Help "tWR in DRAM clk"
-    EditNum $tWTR, "tWTR", DEC,
-                Help "tWTR in DRAM clk"
-    EditNum $tRRD, "tRRD", DEC,
-                Help "tRRD in DRAM clk"
-    EditNum $tRTP, "tRTP", DEC,
-                Help "tRTP in DRAM clk"
-    EditNum $tFAW, "tFAW", DEC,
-                Help "tFAW in DRAM clk"
-EndPage
-
-Page "South Complex"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdSataMode, "Select SATA Mode", &SATA_MODE,
-                Help "Select SATA boot mode. AHCI by default."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableXhci, "Enable XHCI", &EN_DIS,
-                Help "Enable/disable XHCI. If enabled, all EHCI ports will be routed to XHCI and EHCI will be disabled."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdeMMCBootMode, "eMMC Boot Mode", &EMMC_MODES,
-                Help "Select EMMC Mode."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdio, "Enable SDIO", &EN_DIS,
-                Help "Enable/disable SDIO."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdcard, "Enable SD Card", &EN_DIS,
-                Help "Enable/disable the SD Card."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart0, "Enable HSUART0", &EN_DIS,
-                Help "Enable/disable HSUART0."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart1, "Enable HSUART1", &EN_DIS,
-                Help "Enable/disable HSUART1."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSpi, "Enable SPI", &EN_DIS,
-                Help "Enable/disable SPI."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableLan, "Enable LAN", &EN_DIS,
-                Help "Enable/disable LAN."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableAzalia, "Enable Azalia", &EN_DIS_AUTO,
-                Help "Enable/disable Azalia. Auto by default."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSata, "Enable SATA", &EN_DIS,
-                Help "Enable/disable SATA."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableLpe, "Enable LPE", &PCI_ACPI,
-                Help "Choose LPE Mode"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdLpssSioEnablePciMode, "Enable PCI mode for LPSS SIO devices", &EN_DIS,
-                Help "Enable PCI Mode for LPSS SIO devices. If disabled, LPSS SIO devices will run in ACPI mode."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma0, "Enable DMA0", &EN_DIS,
-                Help "Enable/disable DMA0"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma1, "Enable DMA1", &EN_DIS,
-                Help "Enable/disable DMA1"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C0, "Enable I2C0", &EN_DIS,
-                Help "Enable/disable I2C0"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C1, "Enable I2C1", &EN_DIS,
-                Help "Enable/disable I2C1"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C2, "Enable I2C2", &EN_DIS,
-                Help "Enable/disable I2C2"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C3, "Enable I2C3", &EN_DIS,
-                Help "Enable/disable I2C3"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C4, "Enable I2C4", &EN_DIS,
-                Help "Enable/disable I2C4"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C5, "Enable I2C5", &EN_DIS,
-                Help "Enable/disable I2C5"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C6, "Enable I2C6", &EN_DIS,
-                Help "Enable/disable I2C6"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm0, "Enable PWM0", &EN_DIS,
-                Help "Enable/disable PWM0"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm1, "Enable PWM1", &EN_DIS,
-                Help "Enable/disable PWM1"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsi, "Enable HSI", &EN_DIS,
-                Help "Enable/disable HSI"
-    Combo $gPlatformFspPkgTokenSpaceGuid_ISPEnable, "Enable ISP", &EN_DIS,
-                Help "Enable/disable ISP."
-EndPage
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/absf/minnowmax_2gb.absf b/src/vendorcode/intel/fsp1_0/baytrail/absf/minnowmax_2gb.absf
deleted file mode 100644
index 6992fe7..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/absf/minnowmax_2gb.absf
+++ /dev/null
@@ -1,328 +0,0 @@
-//
-// This file contains an 'Intel Peripheral Driver' and is
-// licensed for Intel CPUs and chipsets under the terms of your
-// license agreement with Intel or your vendor.  This file must not
-// be modified by end users or could render the generated boot loader
-// inoperable.
-//
-// @file
-// Boot Setting File for Platform: Bayley Bay Platform
-//
-// Copyright (c) 2010-2013 Intel Corporation. All rights reserved
-// This software and associated documentation (if any) is furnished
-// under a license and may only be used or copied in accordance
-// with the terms of the license. Except as permitted by such
-// license, no part of this software or documentation may be
-// reproduced, stored in a retrieval system, or transmitted in any
-// form or by any means without the express written consent of
-// Intel Corporation.
-//
-//
-
-
-GlobalDataDef
-  SKUID = 0 $_AS_BUILT_ = 0x01 , "DEFAULT"
-EndGlobalData
-
-StructDef
-
-    Find "VLV2UPDR"
-    Skip 24 bytes
-    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitTsegSize        2 bytes $_AS_BUILT_ = 0x1, 0x0 $_DEFAULT_ = 0x0001
-    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitMmioSize        2 bytes $_AS_BUILT_ = 0x0, 0x8 $_DEFAULT_ = 0x0800
-    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr1        1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0xA0
-    $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr2        1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0xA2
-    $gPlatformFspPkgTokenSpaceGuid_PcdeMMCBootMode           1 byte $_AS_BUILT_ = 0x3 $_DEFAULT_  = 2
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdio             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdcard           1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart0          1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart1          1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSpi              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableLan              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSata             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdSataMode               1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableAzalia           1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
-    $gPlatformFspPkgTokenSpaceGuid_AzaliaConfigPtr           4 bytes $_AS_BUILT_ = 0x0, 0x0, 0x0, 0x0 $_DEFAULT_  = 0
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableXhci             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableLpe              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdLpssSioEnablePciMode   1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C2             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C3             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C4             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C5             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C6             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm0             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm1             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_  = 1
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsi              1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 0
-    $gPlatformFspPkgTokenSpaceGuid_PcdIgdDvmt50PreAlloc      1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
-    $gPlatformFspPkgTokenSpaceGuid_PcdApertureSize           1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
-    $gPlatformFspPkgTokenSpaceGuid_PcdGttSize                1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
-    $gPlatformFspPkgTokenSpaceGuid_ISPEnable                 1 bytes $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
-
-    Find "VLYVIEW1"
-    $gPlatformFspPkgTokenSpaceGuid_PcdImageRevision          4 bytes $_AS_BUILT_ = 0x2, 0x3, 0x0, 0x0 $_DEFAULT_ = 0x00000302
-    Skip 24 bytes
-    $gPlatformFspPkgTokenSpaceGuid_PcdPlatformType           1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_  = 2
-    $gPlatformFspPkgTokenSpaceGuid_PcdEnableSecureBoot       1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_  = 2
-
-    $DIMM_MemDown             1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 0
-    $DRAM_Speed               1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 2
-    $DRAM_Type                1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 1
-    $Rank_En_0_0              1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 1
-    $Rank_En_1_0              1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
-    $DIMM_DWidth_0_0          1 byte $_AS_BUILT_ = 0x1 $_DEFAULT_ = 0
-    $DIMM_Density_0_0         1 byte $_AS_BUILT_ = 0x2 $_DEFAULT_ = 1
-    $DIMM_BusWidth_0_0        1 byte $_AS_BUILT_ = 0x3 $_DEFAULT_ = 3
-    $DIMM_Sides_0_0           1 byte $_AS_BUILT_ = 0x0 $_DEFAULT_ = 0
-    $tCL                      1 byte $_AS_BUILT_ = 0x7 $_DEFAULT_ = 9
-    $tRP_tRCD                 1 byte $_AS_BUILT_ = 0x7 $_DEFAULT_ = 9
-    $tWR                      1 byte $_AS_BUILT_ = 0x8 $_DEFAULT_ = 10
-    $tWTR                     1 byte $_AS_BUILT_ = 0x4 $_DEFAULT_ = 5
-    $tRRD                     1 byte $_AS_BUILT_ = 0x6 $_DEFAULT_ = 4
-    $tRTP                     1 byte $_AS_BUILT_ = 0x4 $_DEFAULT_ = 5
-    $tFAW                     1 byte $_AS_BUILT_ = 0x14 $_DEFAULT_ = 20
-
-EndStruct
-
-List &DRAMSPEED
-    Selection 0x0 , "800 MHz"
-    Selection 0x1 , "1066 MHz"
-    Selection 0x2 , "1333 MHz"
-    Selection 0x3 , "1600 MHz"
-EndList
-
-List &DRAMTYPE
-    Selection 0x0 , "DDR3"
-    Selection 0x1 , "DDR3L"
-    Selection 0x2 , "DDR3U"
-    //Selection 0x3 , "LPDDR2"
-    Selection 0x4 , "LPDDR2"
-    Selection 0x5 , "LPDDR3"
-    Selection 0x6 , "DDR4"
-EndList
-
-List &DIMMDWIDTH
-    Selection 0x0 , "x8"
-    Selection 0x1 , "x16"
-    Selection 0x2 , "x32"
-EndList
-
-List &DIMMDENSITY
-    Selection 0x0 , "1 Gbit"
-    Selection 0x1 , "2 Gbit"
-    Selection 0x2 , "4 Gbit"
-    Selection 0x3 , "8 Gbit"
-EndList
-
-List &DIMMBUSWIDTH
-    Selection 0x0 , "8 bits"
-    Selection 0x1 , "16 bits"
-    Selection 0x2 , "32 bits"
-    Selection 0x3 , "64 bits"
-EndList
-
-List &RANKPERDIMM
-    Selection 0x1 , "2 Ranks"
-    Selection 0x0 , "1 Rank"
-EndList
-
-List &SATA_MODE
-    Selection 0x1 , "AHCI"
-    Selection 0x0 , "IDE"
-EndList
-
-List &EMMC_MODES
-    Selection 0x0 , "Disabled"
-    Selection 0x1 , "Auto"
-    Selection 0x2 , "eMMC 4.1"
-    Selection 0x3 , "eMMC 4.5"
-EndList
-
-List &EN_DIS
-    Selection 0x1 , "Enabled"
-    Selection 0x0 , "Disabled"
-EndList
-
-List &EN_DIS_AUTO
-    Selection 0x2 , "Auto"
-    Selection 0x1 , "Enabled"
-    Selection 0x0 , "Disabled"
-EndList
-
-List &MMIO_SIZES
-    Selection 0x400, "1.0 GB"
-    Selection 0x600, "1.5 GB"
-    Selection 0x800, "2.0 GB"
-EndList
-
-List &TSEG_SIZES
-    Selection 0x01, "1 MB"
-    Selection 0x02, "2 MB"
-    Selection 0x04, "4 MB"
-    Selection 0x08, "8 MB"
-EndList
-
-List &IGDPREALLOC_SIZES
-    Selection 0x01, "32 MB"
-    Selection 0x02, "64 MB"
-    Selection 0x03, "96 MB"
-    Selection 0x04, "128 MB"
-    Selection 0x05, "160 MB"
-    Selection 0x06, "192 MB"
-    Selection 0x07, "224 MB"
-    Selection 0x08, "256 MB"
-    Selection 0x09, "288 MB"
-    Selection 0x0A, "320 MB"
-    Selection 0x0B, "352 MB"
-    Selection 0x0C, "384 MB"
-    Selection 0x0D, "416 MB"
-    Selection 0x0E, "448 MB"
-    Selection 0x0F, "480 MB"
-    Selection 0x10, "512 MB"
-EndList
-
-List &APERTURE_SIZES
-    Selection 0x1 , "128 MB"
-    Selection 0x2 , "256 MB"
-    Selection 0x3 , "512 MB"
-EndList
-
-List &GTT_SIZES
-    Selection 0x1 , "1 MB"
-    Selection 0x2 , "2 MB"
-EndList
-
-List &PCI_ACPI
-    Selection 0x2 , "ACPI Mode"
-    Selection 0x1 , "PCI Mode"
-    Selection 0x0 , "Disabled"
-EndList
-
-List &PLATFORM_TYPE
-    Selection 0x2 , "BayleyBay Platform Type"
-    Selection 0x3 , "BakerSport Platform (ECC) Type"
-EndList
-
-BeginInfoBlock
-  PPVer "1.0"
-  Description "MinnowMax"
-
-EndInfoBlock
-
-Page "Platform"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdPlatformType, "Platform Type", &PLATFORM_TYPE,
-                Help "Select Platform Type."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSecureBoot, "Enable Secure Boot", &EN_DIS_AUTO,
-                Help "Enable/disable secure boot. Auto by default."
-EndPage
-
-Page "North Complex"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitTsegSize, "Tseg Size", &TSEG_SIZES,
-				Help "Size of memory reserved for SMRAM, in MB."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitMmioSize, "Mmio Size", &MMIO_SIZES,
-                Help "Size of memory address space reserved for MMIO (Memory Mapped I/O), in GB."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdIgdDvmt50PreAlloc, "Internal Graphics Pre-allocated Memory ", &IGDPREALLOC_SIZES,
-                Help "Size of memory preallocated for internal graphics"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdApertureSize, "Aperture Size", &APERTURE_SIZES,
-                Help "Select the Aperture Size"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdGttSize, "GTT Size", &GTT_SIZES,
-                Help "Select the GTT Size"
-    EditNum $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr1, "DIMM 0 SPD SMBus Address", HEX,
-                Help "Address of DIMM 0. 8 bits"
-    EditNum $gPlatformFspPkgTokenSpaceGuid_PcdMrcInitSPDAddr2, "DIMM 1 SPD SMBus Address", HEX,
-                Help "Address of DIMM 1. 8 bits"
-EndPage
-
-Page "Memory Down"
-    Combo $DIMM_MemDown, "Enable Memory Down", &EN_DIS,
-                Help "Enable = Memory Down, Disable = DIMM"
-    Combo $DRAM_Speed, "DRAM Speed", &DRAMSPEED,
-                Help "DRAM Speed"
-    Combo $DRAM_Type, "DRAM Type", &DRAMTYPE,
-                Help "DRAM Type"
-    Combo $Rank_En_0_0, "DIMM 0 Enable", &EN_DIS,
-                Help "Please populate DIMM slot 0 if only one DIMM is supported."
-    Combo $Rank_En_1_0, "DIMM 1 Enable", &EN_DIS,
-                Help "DIMM 1 has to be identical to DIMM 0."
-    Combo $DIMM_DWidth_0_0, "DIMM_DWidth", &DIMMDWIDTH,
-                Help "DRAM device data width."
-    Combo $DIMM_Density_0_0, "DIMM_Density", &DIMMDENSITY,
-                Help "DRAM device data density."
-    Combo $DIMM_BusWidth_0_0, "DIMM_BusWidth", &DIMMBUSWIDTH,
-                Help "DIMM Bus Width."
-    Combo $DIMM_Sides_0_0, "DIMM_Sides", &RANKPERDIMM,
-                Help "Ranks Per DIMM. "
-    EditNum $tCL, "tCL", DEC,
-                Help "tCL"
-    EditNum $tRP_tRCD, "tRP_tRCD", DEC,
-                Help "tRP and tRCD in DRAM clk - 5:12.5ns, 6:15ns, etc."
-    EditNum $tWR, "tWR", DEC,
-                Help "tWR in DRAM clk"
-    EditNum $tWTR, "tWTR", DEC,
-                Help "tWTR in DRAM clk"
-    EditNum $tRRD, "tRRD", DEC,
-                Help "tRRD in DRAM clk"
-    EditNum $tRTP, "tRTP", DEC,
-                Help "tRTP in DRAM clk"
-    EditNum $tFAW, "tFAW", DEC,
-                Help "tFAW in DRAM clk"
-EndPage
-
-Page "South Complex"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdSataMode, "Select SATA Mode", &SATA_MODE,
-                Help "Select SATA boot mode. AHCI by default."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableXhci, "Enable XHCI", &EN_DIS,
-                Help "Enable/disable XHCI. If enabled, all EHCI ports will be routed to XHCI and EHCI will be disabled."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdeMMCBootMode, "eMMC Boot Mode", &EMMC_MODES,
-                Help "Select EMMC Mode."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdio, "Enable SDIO", &EN_DIS,
-                Help "Enable/disable SDIO."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSdcard, "Enable SD Card", &EN_DIS,
-                Help "Enable/disable the SD Card."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart0, "Enable HSUART0", &EN_DIS,
-                Help "Enable/disable HSUART0."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsuart1, "Enable HSUART1", &EN_DIS,
-                Help "Enable/disable HSUART1."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSpi, "Enable SPI", &EN_DIS,
-                Help "Enable/disable SPI."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableLan, "Enable LAN", &EN_DIS,
-                Help "Enable/disable LAN."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableAzalia, "Enable Azalia", &EN_DIS_AUTO,
-                Help "Enable/disable Azalia. Auto by default."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableSata, "Enable SATA", &EN_DIS,
-                Help "Enable/disable SATA."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableLpe, "Enable LPE", &PCI_ACPI,
-                Help "Choose LPE Mode"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdLpssSioEnablePciMode, "Enable PCI mode for LPSS SIO devices", &EN_DIS,
-                Help "Enable PCI Mode for LPSS SIO devices. If disabled, LPSS SIO devices will run in ACPI mode."
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma0, "Enable DMA0", &EN_DIS,
-                Help "Enable/disable DMA0"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableDma1, "Enable DMA1", &EN_DIS,
-                Help "Enable/disable DMA1"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C0, "Enable I2C0", &EN_DIS,
-                Help "Enable/disable I2C0"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C1, "Enable I2C1", &EN_DIS,
-                Help "Enable/disable I2C1"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C2, "Enable I2C2", &EN_DIS,
-                Help "Enable/disable I2C2"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C3, "Enable I2C3", &EN_DIS,
-                Help "Enable/disable I2C3"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C4, "Enable I2C4", &EN_DIS,
-                Help "Enable/disable I2C4"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C5, "Enable I2C5", &EN_DIS,
-                Help "Enable/disable I2C5"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableI2C6, "Enable I2C6", &EN_DIS,
-                Help "Enable/disable I2C6"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm0, "Enable PWM0", &EN_DIS,
-                Help "Enable/disable PWM0"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnablePwm1, "Enable PWM1", &EN_DIS,
-                Help "Enable/disable PWM1"
-    Combo $gPlatformFspPkgTokenSpaceGuid_PcdEnableHsi, "Enable HSI", &EN_DIS,
-                Help "Enable/disable HSI"
-    Combo $gPlatformFspPkgTokenSpaceGuid_ISPEnable, "Enable ISP", &EN_DIS,
-                Help "Enable/disable ISP."
-EndPage
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/include/azalia.h b/src/vendorcode/intel/fsp1_0/baytrail/include/azalia.h
deleted file mode 100644
index c58cf4c..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/include/azalia.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/**@file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _AZALIA_H_
-#define _AZALIA_H_
-
-#include <stdint.h>
-
-#pragma pack(1)
-
-typedef struct {
-  uint32_t  VendorDeviceId;
-  uint16_t  SubSystemId;
-  uint8_t   RevisionId;                       /// 0xFF applies to all steppings
-  uint8_t   FrontPanelSupport;
-  uint16_t  NumberOfRearJacks;
-  uint16_t  NumberOfFrontJacks;
-} PCH_AZALIA_VERB_TABLE_HEADER;
-
-typedef struct {
-  PCH_AZALIA_VERB_TABLE_HEADER  VerbTableHeader;
-  uint32_t                        *VerbTableData;
-} PCH_AZALIA_VERB_TABLE;
-
-typedef struct {
-  uint8_t                 Pme       : 1;      /// 0: Disable; 1: Enable
-  uint8_t                 DS        : 1;      /// 0: Docking is not supported; 1:Docking is supported
-  uint8_t                 DA        : 1;      /// 0: Docking is not attached; 1:Docking is attached
-  uint8_t                 HdmiCodec : 1;      /// 0: Disable; 1: Enable
-  uint8_t                 AzaliaVCi : 1;      /// 0: Disable; 1: Enable
-  uint8_t                 Rsvdbits  : 3;
-  uint8_t                 AzaliaVerbTableNum; /// Number of verb tables provided by platform
-  PCH_AZALIA_VERB_TABLE  *AzaliaVerbTable;   /// Pointer to the actual verb table(s)
-  uint16_t                ResetWaitTimer;     /// The delay timer after Azalia reset, the value is number of microseconds
-} PCH_AZALIA_CONFIG;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/include/fsp.h b/src/vendorcode/intel/fsp1_0/baytrail/include/fsp.h
deleted file mode 100644
index f2e1d8f..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/include/fsp.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-/** \file  fsp.h
- *
- *
- */
-#include <stdint.h>
-#include "fsptypes.h"
-#include "fspfv.h"
-#include "fspffs.h"
-#include "fsphob.h"
-#include "fspapi.h"
-#include "fspplatform.h"
-#include "fspinfoheader.h"
-#include "fspvpd.h"
-
-#define FSP_HOB_RESOURCE_OWNER_FSP_GUID \
-{ 0x69a79759, 0x1373, 0x4367, { 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e } }
-#define FSP_NON_VOLATILE_STORAGE_HOB_GUID \
-{ 0x721acf02, 0x4d77, 0x4c2a, { 0xb3, 0xdc, 0x27, 0xb, 0x7b, 0xa9, 0xe4, 0xb0 } }
-#define FSP_HOB_RESOURCE_OWNER_TSEG_GUID \
-{ 0xd038747c, 0xd00c, 0x4980, { 0xb3, 0x19, 0x49, 0x01, 0x99, 0xa4, 0x7d, 0x55 } }
-#define FSP_HOB_RESOURCE_OWNER_GRAPHICS_GUID \
-{ 0x9c7c3aa7, 0x5332, 0x4917, { 0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07 } }
-#define FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID \
-{ 0xbbcff46c, 0xc8d3, 0x4113, { 0x89, 0x85, 0xb9, 0xd4, 0xf3, 0xb3, 0xf6, 0x4e } }
-
-//
-// 0x21 - 0xf..f are reserved.
-//
-#define BOOT_WITH_FULL_CONFIGURATION                  0x00
-#define BOOT_WITH_MINIMAL_CONFIGURATION               0x01
-#define BOOT_ASSUMING_NO_CONFIGURATION_CHANGES        0x02
-#define BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS 0x03
-#define BOOT_WITH_DEFAULT_SETTINGS                    0x04
-#define BOOT_ON_S4_RESUME                             0x05
-#define BOOT_ON_S5_RESUME                             0x06
-#define BOOT_ON_S2_RESUME                             0x10
-#define BOOT_ON_S3_RESUME                             0x11
-#define BOOT_ON_FLASH_UPDATE                          0x12
-#define BOOT_IN_RECOVERY_MODE                         0x20
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/include/fspapi.h b/src/vendorcode/intel/fsp1_0/baytrail/include/fspapi.h
deleted file mode 100644
index 26afc0e..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/include/fspapi.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_API_H_
-#define _FSP_API_H_
-
-#pragma pack(1)
-
-typedef VOID (* CONTINUATION_PROC)(EFI_STATUS Status, VOID *HobListPtr);
-
-typedef struct {
-  VOID               *NvsBufferPtr;
-  VOID               *RtBufferPtr;
-  CONTINUATION_PROC   ContinuationFunc;
-} FSP_INIT_PARAMS;
-
-typedef struct {
-  UINT32            *StackTop;
-  UINT32             BootMode;
-  VOID              *UpdDataRgnPtr;
-  UINT32             Reserved[7];
-} FSP_INIT_RT_COMMON_BUFFER;
-
-typedef enum {
-  EnumInitPhaseAfterPciEnumeration = 0x20,
-  EnumInitPhaseReadyToBoot = 0x40
-} FSP_INIT_PHASE;
-
-typedef struct {
-  FSP_INIT_PHASE     Phase;
-} NOTIFY_PHASE_PARAMS;
-
-#pragma pack()
-
-typedef FSP_STATUS (FSPAPI *FSP_FSP_INIT)    (FSP_INIT_PARAMS     *FspInitParamPtr);
-typedef FSP_STATUS (FSPAPI *FSP_NOTFY_PHASE) (NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr);
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/include/fspffs.h b/src/vendorcode/intel/fsp1_0/baytrail/include/fspffs.h
deleted file mode 100644
index f3b83b2..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/include/fspffs.h
+++ /dev/null
@@ -1,506 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-
-#ifndef __PI_FIRMWARE_FILE_H__
-#define __PI_FIRMWARE_FILE_H__
-
-#pragma pack(1)
-///
-/// Used to verify the integrity of the file.
-///
-typedef union {
-  struct {
-    ///
-    /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
-    /// header. The State and IntegrityCheck.Checksum.File fields are assumed
-    /// to be zero and the checksum is calculated such that the entire header sums to zero.
-    ///
-    UINT8   Header;
-    ///
-    /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
-    /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
-    /// checksum of the file data.
-    /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
-    /// the IntegrityCheck.Checksum.File field must be initialized with a value of
-    /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
-    /// EFI_FILE_DATA_VALID bit is set in the State field.
-    ///
-    UINT8   File;
-  } Checksum;
-  ///
-  /// This is the full 16 bits of the IntegrityCheck field.
-  ///
-  UINT16    Checksum16;
-} EFI_FFS_INTEGRITY_CHECK;
-
-///
-/// FFS_FIXED_CHECKSUM is the checksum value used when the
-/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
-///
-#define FFS_FIXED_CHECKSUM  0xAA
-
-typedef UINT8 EFI_FV_FILETYPE;
-typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
-typedef UINT8 EFI_FFS_FILE_STATE;
-
-///
-/// File Types Definitions
-///
-#define EFI_FV_FILETYPE_ALL                   0x00
-#define EFI_FV_FILETYPE_RAW                   0x01
-#define EFI_FV_FILETYPE_FREEFORM              0x02
-#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
-#define EFI_FV_FILETYPE_PEI_CORE              0x04
-#define EFI_FV_FILETYPE_DXE_CORE              0x05
-#define EFI_FV_FILETYPE_PEIM                  0x06
-#define EFI_FV_FILETYPE_DRIVER                0x07
-#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
-#define EFI_FV_FILETYPE_APPLICATION           0x09
-#define EFI_FV_FILETYPE_SMM                   0x0A
-#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
-#define EFI_FV_FILETYPE_COMBINED_SMM_DXE      0x0C
-#define EFI_FV_FILETYPE_SMM_CORE              0x0D
-#define EFI_FV_FILETYPE_OEM_MIN               0xc0
-#define EFI_FV_FILETYPE_OEM_MAX               0xdf
-#define EFI_FV_FILETYPE_DEBUG_MIN             0xe0
-#define EFI_FV_FILETYPE_DEBUG_MAX             0xef
-#define EFI_FV_FILETYPE_FFS_MIN               0xf0
-#define EFI_FV_FILETYPE_FFS_MAX               0xff
-#define EFI_FV_FILETYPE_FFS_PAD               0xf0
-///
-/// FFS File Attributes.
-///
-#define FFS_ATTRIB_LARGE_FILE         0x01
-#define FFS_ATTRIB_FIXED              0x04
-#define FFS_ATTRIB_DATA_ALIGNMENT     0x38
-#define FFS_ATTRIB_CHECKSUM           0x40
-
-///
-/// FFS File State Bits.
-///
-#define EFI_FILE_HEADER_CONSTRUCTION  0x01
-#define EFI_FILE_HEADER_VALID         0x02
-#define EFI_FILE_DATA_VALID           0x04
-#define EFI_FILE_MARKED_FOR_UPDATE    0x08
-#define EFI_FILE_DELETED              0x10
-#define EFI_FILE_HEADER_INVALID       0x20
-
-
-///
-/// Each file begins with the header that describe the
-/// contents and state of the files.
-///
-typedef struct {
-  ///
-  /// This GUID is the file name. It is used to uniquely identify the file.
-  ///
-  EFI_GUID                Name;
-  ///
-  /// Used to verify the integrity of the file.
-  ///
-  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
-  ///
-  /// Identifies the type of file.
-  ///
-  EFI_FV_FILETYPE         Type;
-  ///
-  /// Declares various file attribute bits.
-  ///
-  EFI_FFS_FILE_ATTRIBUTES Attributes;
-  ///
-  /// The length of the file in bytes, including the FFS header.
-  ///
-  UINT8                   Size[3];
-  ///
-  /// Used to track the state of the file throughout the life of the file from creation to deletion.
-  ///
-  EFI_FFS_FILE_STATE      State;
-} EFI_FFS_FILE_HEADER;
-
-typedef struct {
-  ///
-  /// This GUID is the file name. It is used to uniquely identify the file. There may be only
-  /// one instance of a file with the file name GUID of Name in any given firmware
-  /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
-  ///
-  EFI_GUID                  Name;
-
-  ///
-  /// Used to verify the integrity of the file.
-  ///
-  EFI_FFS_INTEGRITY_CHECK   IntegrityCheck;
-
-  ///
-  /// Identifies the type of file.
-  ///
-  EFI_FV_FILETYPE           Type;
-
-  ///
-  /// Declares various file attribute bits.
-  ///
-  EFI_FFS_FILE_ATTRIBUTES   Attributes;
-
-  ///
-  /// The length of the file in bytes, including the FFS header.
-  /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
-  /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
-  /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
-  /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
-  ///
-  UINT8                     Size[3];
-
-  ///
-  /// Used to track the state of the file throughout the life of the file from creation to deletion.
-  ///
-  EFI_FFS_FILE_STATE        State;
-
-  ///
-  /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
-  /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
-  ///
-  UINT32                    ExtendedSize;
-} EFI_FFS_FILE_HEADER2;
-
-#define IS_FFS_FILE2(FfsFileHeaderPtr) \
-    (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
-
-#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
-
-#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
-    (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
-
-typedef UINT8 EFI_SECTION_TYPE;
-
-///
-/// Pseudo type. It is used as a wild card when retrieving sections.
-///  The section type EFI_SECTION_ALL matches all section types.
-///
-#define EFI_SECTION_ALL                   0x00
-
-///
-/// Encapsulation section Type values.
-///
-#define EFI_SECTION_COMPRESSION           0x01
-
-#define EFI_SECTION_GUID_DEFINED          0x02
-
-#define EFI_SECTION_DISPOSABLE            0x03
-
-///
-/// Leaf section Type values.
-///
-#define EFI_SECTION_PE32                  0x10
-#define EFI_SECTION_PIC                   0x11
-#define EFI_SECTION_TE                    0x12
-#define EFI_SECTION_DXE_DEPEX             0x13
-#define EFI_SECTION_VERSION               0x14
-#define EFI_SECTION_USER_INTERFACE        0x15
-#define EFI_SECTION_COMPATIBILITY16       0x16
-#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
-#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
-#define EFI_SECTION_RAW                   0x19
-#define EFI_SECTION_PEI_DEPEX             0x1B
-#define EFI_SECTION_SMM_DEPEX             0x1C
-
-///
-/// Common section header.
-///
-typedef struct {
-  ///
-  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
-  /// including the EFI_COMMON_SECTION_HEADER.
-  ///
-  UINT8             Size[3];
-  EFI_SECTION_TYPE  Type;
-  ///
-  /// Declares the section type.
-  ///
-} EFI_COMMON_SECTION_HEADER;
-
-typedef struct {
-  ///
-  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
-  /// including the EFI_COMMON_SECTION_HEADER.
-  ///
-  UINT8             Size[3];
-
-  EFI_SECTION_TYPE  Type;
-
-  ///
-  /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
-  /// Size is not equal to 0xFFFFFF, then this field does not exist.
-  ///
-  UINT32            ExtendedSize;
-} EFI_COMMON_SECTION_HEADER2;
-
-///
-/// Leaf section type that contains an
-/// IA-32 16-bit executable image.
-///
-typedef EFI_COMMON_SECTION_HEADER  EFI_COMPATIBILITY16_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
-
-///
-/// CompressionType of EFI_COMPRESSION_SECTION.
-///
-#define EFI_NOT_COMPRESSED        0x00
-#define EFI_STANDARD_COMPRESSION  0x01
-///
-/// An encapsulation section type in which the
-/// section data is compressed.
-///
-typedef struct {
-  ///
-  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// The UINT32 that indicates the size of the section data after decompression.
-  ///
-  UINT32                      UncompressedLength;
-  ///
-  /// Indicates which compression algorithm is used.
-  ///
-  UINT8                       CompressionType;
-} EFI_COMPRESSION_SECTION;
-
-typedef struct {
-  ///
-  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// UINT32 that indicates the size of the section data after decompression.
-  ///
-  UINT32                        UncompressedLength;
-  ///
-  /// Indicates which compression algorithm is used.
-  ///
-  UINT8                         CompressionType;
-} EFI_COMPRESSION_SECTION2;
-
-///
-/// An encapsulation section type in which the section data is disposable.
-/// A disposable section is an encapsulation section in which the section data may be disposed of during
-/// the process of creating or updating a firmware image without significant impact on the usefulness of
-/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
-/// allows optional or descriptive data to be included with the firmware file which can be removed in
-/// order to conserve space. The contents of this section are implementation specific, but might contain
-/// debug data or detailed integration instructions.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_DISPOSABLE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_DISPOSABLE_SECTION2;
-
-///
-/// The leaf section which could be used to determine the dispatch order of DXEs.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_DXE_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_DXE_DEPEX_SECTION2;
-
-///
-/// The leaf section which contains a PI FV.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
-
-///
-/// The leaf section which contains a single GUID.
-///
-typedef struct {
-  ///
-  /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
-  ///
-  EFI_GUID                    SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
-
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
-  ///
-  EFI_GUID                      SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
-
-///
-/// Attributes of EFI_GUID_DEFINED_SECTION.
-///
-#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED  0x01
-#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID    0x02
-///
-/// The leaf section which is encapsulation defined by specific GUID.
-///
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
-  ///
-  EFI_GUID                    SectionDefinitionGuid;
-  ///
-  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
-  ///
-  UINT16                      DataOffset;
-  ///
-  /// The bit field that declares some specific characteristics of the section contents.
-  ///
-  UINT16                      Attributes;
-} EFI_GUID_DEFINED_SECTION;
-
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
-  ///
-  EFI_GUID                      SectionDefinitionGuid;
-  ///
-  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
-  ///
-  UINT16                        DataOffset;
-  ///
-  /// The bit field that declares some specific characteristics of the section contents.
-  ///
-  UINT16                        Attributes;
-} EFI_GUID_DEFINED_SECTION2;
-
-///
-/// The leaf section which contains PE32+ image.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PE32_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PE32_SECTION2;
-
-///
-/// The leaf section used to determine the dispatch order of PEIMs.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PEI_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PEI_DEPEX_SECTION2;
-
-///
-/// A leaf section type that contains a position-independent-code (PIC) image.
-/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
-/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
-/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
-/// relocation information has been stripped from the image and the image can be moved and will
-/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
-/// be used if the section is 16MB or larger.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PIC_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PIC_SECTION2;
-
-///
-/// The leaf section which constains the position-independent-code image.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_TE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_TE_SECTION2;
-
-///
-/// The leaf section which contains an array of zero or more bytes.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_RAW_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_RAW_SECTION2;
-
-///
-/// The SMM dependency expression section is a leaf section that contains a dependency expression that
-/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
-/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
-/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
-/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
-/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
-///
-typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
-
-///
-/// The leaf section which contains a unicode string that
-/// is human readable file name.
-///
-typedef struct {
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-
-  ///
-  /// Array of unicode string.
-  ///
-  CHAR16                      FileNameString[1];
-} EFI_USER_INTERFACE_SECTION;
-
-typedef struct {
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  CHAR16                        FileNameString[1];
-} EFI_USER_INTERFACE_SECTION2;
-
-///
-/// The leaf section which contains a numeric build number and
-/// an optional unicode string that represents the file revision.
-///
-typedef struct {
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  UINT16                      BuildNumber;
-
-  ///
-  /// Array of unicode string.
-  ///
-  CHAR16                      VersionString[1];
-} EFI_VERSION_SECTION;
-
-typedef struct {
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// A UINT16 that represents a particular build. Subsequent builds have monotonically
-  /// increasing build numbers relative to earlier builds.
-  ///
-  UINT16                        BuildNumber;
-  CHAR16                        VersionString[1];
-} EFI_VERSION_SECTION2;
-
-#define IS_SECTION2(SectionHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
-
-#define SECTION_SIZE(SectionHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
-
-#define SECTION2_SIZE(SectionHeaderPtr) \
-    (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/include/fspfv.h b/src/vendorcode/intel/fsp1_0/baytrail/include/fspfv.h
deleted file mode 100644
index 26c00f2..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/include/fspfv.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __PI_FIRMWAREVOLUME_H__
-#define __PI_FIRMWAREVOLUME_H__
-
-///
-/// EFI_FV_FILE_ATTRIBUTES
-///
-typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
-
-//
-// Value of EFI_FV_FILE_ATTRIBUTES.
-//
-#define EFI_FV_FILE_ATTRIB_ALIGNMENT      0x0000001F
-#define EFI_FV_FILE_ATTRIB_FIXED          0x00000100
-#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED  0x00000200
-
-///
-/// type of EFI FVB attribute
-///
-typedef UINT32  EFI_FVB_ATTRIBUTES_2;
-
-//
-// Attributes bit definitions
-//
-#define EFI_FVB2_READ_DISABLED_CAP  0x00000001
-#define EFI_FVB2_READ_ENABLED_CAP   0x00000002
-#define EFI_FVB2_READ_STATUS        0x00000004
-#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
-#define EFI_FVB2_WRITE_ENABLED_CAP  0x00000010
-#define EFI_FVB2_WRITE_STATUS       0x00000020
-#define EFI_FVB2_LOCK_CAP           0x00000040
-#define EFI_FVB2_LOCK_STATUS        0x00000080
-#define EFI_FVB2_STICKY_WRITE       0x00000200
-#define EFI_FVB2_MEMORY_MAPPED      0x00000400
-#define EFI_FVB2_ERASE_POLARITY     0x00000800
-#define EFI_FVB2_READ_LOCK_CAP      0x00001000
-#define EFI_FVB2_READ_LOCK_STATUS   0x00002000
-#define EFI_FVB2_WRITE_LOCK_CAP     0x00004000
-#define EFI_FVB2_WRITE_LOCK_STATUS  0x00008000
-#define EFI_FVB2_ALIGNMENT          0x001F0000
-#define EFI_FVB2_ALIGNMENT_1        0x00000000
-#define EFI_FVB2_ALIGNMENT_2        0x00010000
-#define EFI_FVB2_ALIGNMENT_4        0x00020000
-#define EFI_FVB2_ALIGNMENT_8        0x00030000
-#define EFI_FVB2_ALIGNMENT_16       0x00040000
-#define EFI_FVB2_ALIGNMENT_32       0x00050000
-#define EFI_FVB2_ALIGNMENT_64       0x00060000
-#define EFI_FVB2_ALIGNMENT_128      0x00070000
-#define EFI_FVB2_ALIGNMENT_256      0x00080000
-#define EFI_FVB2_ALIGNMENT_512      0x00090000
-#define EFI_FVB2_ALIGNMENT_1K       0x000A0000
-#define EFI_FVB2_ALIGNMENT_2K       0x000B0000
-#define EFI_FVB2_ALIGNMENT_4K       0x000C0000
-#define EFI_FVB2_ALIGNMENT_8K       0x000D0000
-#define EFI_FVB2_ALIGNMENT_16K      0x000E0000
-#define EFI_FVB2_ALIGNMENT_32K      0x000F0000
-#define EFI_FVB2_ALIGNMENT_64K      0x00100000
-#define EFI_FVB2_ALIGNMENT_128K     0x00110000
-#define EFI_FVB2_ALIGNMENT_256K     0x00120000
-#define EFI_FVB2_ALIGNMENT_512K     0x00130000
-#define EFI_FVB2_ALIGNMENT_1M       0x00140000
-#define EFI_FVB2_ALIGNMENT_2M       0x00150000
-#define EFI_FVB2_ALIGNMENT_4M       0x00160000
-#define EFI_FVB2_ALIGNMENT_8M       0x00170000
-#define EFI_FVB2_ALIGNMENT_16M      0x00180000
-#define EFI_FVB2_ALIGNMENT_32M      0x00190000
-#define EFI_FVB2_ALIGNMENT_64M      0x001A0000
-#define EFI_FVB2_ALIGNMENT_128M     0x001B0000
-#define EFI_FVB2_ALIGNMENT_256M     0x001C0000
-#define EFI_FVB2_ALIGNMENT_512M     0x001D0000
-#define EFI_FVB2_ALIGNMENT_1G       0x001E0000
-#define EFI_FVB2_ALIGNMENT_2G       0x001F0000
-
-
-typedef struct {
-  ///
-  /// The number of sequential blocks which are of the same size.
-  ///
-  UINT32 NumBlocks;
-  ///
-  /// The size of the blocks.
-  ///
-  UINT32 Length;
-} EFI_FV_BLOCK_MAP_ENTRY;
-
-///
-/// Describes the features and layout of the firmware volume.
-///
-typedef struct {
-  ///
-  /// The first 16 bytes are reserved to allow for the reset vector of
-  /// processors whose reset vector is at address 0.
-  ///
-  UINT8                     ZeroVector[16];
-  ///
-  /// Declares the file system with which the firmware volume is formatted.
-  ///
-  EFI_GUID                  FileSystemGuid;
-  ///
-  /// Length in bytes of the complete firmware volume, including the header.
-  ///
-  UINT64                    FvLength;
-  ///
-  /// Set to EFI_FVH_SIGNATURE
-  ///
-  UINT32                    Signature;
-  ///
-  /// Declares capabilities and power-on defaults for the firmware volume.
-  ///
-  EFI_FVB_ATTRIBUTES_2      Attributes;
-  ///
-  /// Length in bytes of the complete firmware volume header.
-  ///
-  UINT16                    HeaderLength;
-  ///
-  /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
-  ///
-  UINT16                    Checksum;
-  ///
-  /// Offset, relative to the start of the header, of the extended header
-  /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
-  ///
-  UINT16                    ExtHeaderOffset;
-  ///
-  /// This field must always be set to zero.
-  ///
-  UINT8                     Reserved[1];
-  ///
-  /// Set to 2. Future versions of this specification may define new header fields and will
-  /// increment the Revision field accordingly.
-  ///
-  UINT8                     Revision;
-  ///
-  /// An array of run-length encoded FvBlockMapEntry structures. The array is
-  /// terminated with an entry of {0,0}.
-  ///
-  EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
-} EFI_FIRMWARE_VOLUME_HEADER;
-
-#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
-
-///
-/// Firmware Volume Header Revision definition
-///
-#define EFI_FVH_REVISION  0x02
-
-///
-/// Extension header pointed by ExtHeaderOffset of volume header.
-///
-typedef struct {
-  ///
-  /// Firmware volume name.
-  ///
-  EFI_GUID  FvName;
-  ///
-  /// Size of the rest of the extension header, including this structure.
-  ///
-  UINT32    ExtHeaderSize;
-} EFI_FIRMWARE_VOLUME_EXT_HEADER;
-
-///
-/// Entry struture for describing FV extension header
-///
-typedef struct {
-  ///
-  /// Size of this header extension.
-  ///
-  UINT16    ExtEntrySize;
-  ///
-  /// Type of the header.
-  ///
-  UINT16    ExtEntryType;
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
-
-#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
-///
-/// This extension header provides a mapping between a GUID and an OEM file type.
-///
-typedef struct {
-  ///
-  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
-  ///
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
-  ///
-  /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
-  /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
-  ///
-  UINT32    TypeMask;
-  ///
-  /// An array of GUIDs, each GUID representing an OEM file type.
-  ///
-  /// EFI_GUID  Types[1];
-  ///
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
-
-#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002
-
-///
-/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
-/// GUID FormatType type which includes a length and a successive series of data bytes.
-///
-typedef struct {
-  ///
-  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
-  ///
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY     Hdr;
-  ///
-  /// Vendor-specific GUID.
-  ///
-  EFI_GUID                          FormatType;
-  ///
-  /// An arry of bytes of length Length.
-  ///
-  /// UINT8                             Data[1];
-  ///
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/include/fsphob.h b/src/vendorcode/intel/fsp1_0/baytrail/include/fsphob.h
deleted file mode 100644
index 7edef0d..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/include/fsphob.h
+++ /dev/null
@@ -1,542 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __PI_HOB_H__
-#define __PI_HOB_H__
-
-//
-// HobType of EFI_HOB_GENERIC_HEADER.
-//
-#define EFI_HOB_TYPE_MEMORY_ALLOCATION    0x0002
-#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
-#define EFI_HOB_TYPE_GUID_EXTENSION       0x0004
-#define EFI_HOB_TYPE_UNUSED               0xFFFE
-#define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF
-
-///
-/// Describes the format and size of the data inside the HOB.
-/// All HOBs must contain this generic HOB header.
-///
-typedef struct {
-  ///
-  /// Identifies the HOB data structure type.
-  ///
-  UINT16    HobType;
-  ///
-  /// The length in bytes of the HOB.
-  ///
-  UINT16    HobLength;
-  ///
-  /// This field must always be set to zero.
-  ///
-  UINT32    Reserved;
-} EFI_HOB_GENERIC_HEADER;
-
-///
-/// Enumeration of memory types introduced in UEFI.
-///
-typedef enum {
-  ///
-  /// Not used.
-  ///
-  EfiReservedMemoryType,
-  ///
-  /// The code portions of a loaded application.
-  /// (Note that UEFI OS loaders are UEFI applications.)
-  ///
-  EfiLoaderCode,
-  ///
-  /// The data portions of a loaded application and the default data allocation
-  /// type used by an application to allocate pool memory.
-  ///
-  EfiLoaderData,
-  ///
-  /// The code portions of a loaded Boot Services Driver.
-  ///
-  EfiBootServicesCode,
-  ///
-  /// The data portions of a loaded Boot Serves Driver, and the default data
-  /// allocation type used by a Boot Services Driver to allocate pool memory.
-  ///
-  EfiBootServicesData,
-  ///
-  /// The code portions of a loaded Runtime Services Driver.
-  ///
-  EfiRuntimeServicesCode,
-  ///
-  /// The data portions of a loaded Runtime Services Driver and the default
-  /// data allocation type used by a Runtime Services Driver to allocate pool memory.
-  ///
-  EfiRuntimeServicesData,
-  ///
-  /// Free (unallocated) memory.
-  ///
-  EfiConventionalMemory,
-  ///
-  /// Memory in which errors have been detected.
-  ///
-  EfiUnusableMemory,
-  ///
-  /// Memory that holds the ACPI tables.
-  ///
-  EfiACPIReclaimMemory,
-  ///
-  /// Address space reserved for use by the firmware.
-  ///
-  EfiACPIMemoryNVS,
-  ///
-  /// Used by system firmware to request that a memory-mapped IO region
-  /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
-  ///
-  EfiMemoryMappedIO,
-  ///
-  /// System memory-mapped IO region that is used to translate memory
-  /// cycles to IO cycles by the processor.
-  ///
-  EfiMemoryMappedIOPortSpace,
-  ///
-  /// Address space reserved by the firmware for code that is part of the processor.
-  ///
-  EfiPalCode,
-  EfiMaxMemoryType
-} EFI_MEMORY_TYPE;
-
-///
-/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
-/// various attributes of the logical memory allocation. The type field will be used for
-/// subsequent inclusion in the UEFI memory map.
-///
-typedef struct {
-  ///
-  /// A GUID that defines the memory allocation region's type and purpose, as well as
-  /// other fields within the memory allocation HOB. This GUID is used to define the
-  /// additional data within the HOB that may be present for the memory allocation HOB.
-  /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
-  /// specification.
-  ///
-  EFI_GUID              Name;
-
-  ///
-  /// The base address of memory allocated by this HOB. Type
-  /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
-  /// specification.
-  ///
-  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
-
-  ///
-  /// The length in bytes of memory allocated by this HOB.
-  ///
-  UINT64                MemoryLength;
-
-  ///
-  /// Defines the type of memory allocated by this HOB. The memory type definition
-  /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
-  /// in AllocatePages() in the UEFI 2.0 specification.
-  ///
-  EFI_MEMORY_TYPE       MemoryType;
-
-  ///
-  /// Padding for Itanium processor family
-  ///
-  UINT8                 Reserved[4];
-} EFI_HOB_MEMORY_ALLOCATION_HEADER;
-
-///
-/// Describes all memory ranges used during the HOB producer
-/// phase that exist outside the HOB list. This HOB type
-/// describes how memory is used, not the physical attributes of memory.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
-  ///
-  EFI_HOB_GENERIC_HEADER            Header;
-  ///
-  /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
-  /// various attributes of the logical memory allocation.
-  ///
-  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
-  //
-  // Additional data pertaining to the "Name" Guid memory
-  // may go here.
-  //
-} EFI_HOB_MEMORY_ALLOCATION;
-
-///
-/// The resource type.
-///
-typedef UINT32 EFI_RESOURCE_TYPE;
-
-//
-// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
-//
-#define EFI_RESOURCE_SYSTEM_MEMORY          0x00000000
-#define EFI_RESOURCE_MEMORY_MAPPED_IO       0x00000001
-#define EFI_RESOURCE_IO                     0x00000002
-#define EFI_RESOURCE_FIRMWARE_DEVICE        0x00000003
-#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  0x00000004
-#define EFI_RESOURCE_MEMORY_RESERVED        0x00000005
-#define EFI_RESOURCE_IO_RESERVED            0x00000006
-#define EFI_RESOURCE_MAX_MEMORY_TYPE        0x00000007
-
-///
-/// A type of recount attribute type.
-///
-typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
-
-//
-// These types can be ORed together as needed.
-//
-// The first three enumerations describe settings
-//
-#define EFI_RESOURCE_ATTRIBUTE_PRESENT              0x00000001
-#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED          0x00000002
-#define EFI_RESOURCE_ATTRIBUTE_TESTED               0x00000004
-//
-// The rest of the settings describe capabilities
-//
-#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC           0x00000008
-#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC         0x00000010
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1           0x00000020
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2           0x00000040
-#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100
-#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE              0x00000400
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE        0x00000800
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE  0x00001000
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE     0x00002000
-#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO                0x00004000
-#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO                0x00008000
-#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000
-
-///
-/// Describes the resource properties of all fixed,
-/// nonrelocatable resource ranges found on the processor
-/// host bus during the HOB producer phase.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
-  ///
-  EFI_HOB_GENERIC_HEADER      Header;
-  ///
-  /// A GUID representing the owner of the resource. This GUID is used by HOB
-  /// consumer phase components to correlate device ownership of a resource.
-  ///
-  EFI_GUID                    Owner;
-  ///
-  /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
-  ///
-  EFI_RESOURCE_TYPE           ResourceType;
-  ///
-  /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
-  ///
-  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
-  ///
-  /// The physical start address of the resource region.
-  ///
-  EFI_PHYSICAL_ADDRESS        PhysicalStart;
-  ///
-  /// The number of bytes of the resource region.
-  ///
-  UINT64                      ResourceLength;
-} EFI_HOB_RESOURCE_DESCRIPTOR;
-
-///
-/// Allows writers of executable content in the HOB producer phase to
-/// maintain and manage HOBs with specific GUID.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
-  ///
-  EFI_HOB_GENERIC_HEADER      Header;
-  ///
-  /// A GUID that defines the contents of this HOB.
-  ///
-  EFI_GUID                    Name;
-  //
-  // Guid specific data goes here
-  //
-} EFI_HOB_GUID_TYPE;
-
-///
-/// Union of all the possible HOB Types.
-///
-typedef union {
-  EFI_HOB_GENERIC_HEADER              *Header;
-  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
-  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
-  EFI_HOB_GUID_TYPE                   *Guid;
-  UINT8                               *Raw;
-} EFI_PEI_HOB_POINTERS;
-
-
-/**
-  Returns the type of a HOB.
-
-  This macro returns the HobType field from the HOB header for the
-  HOB specified by HobStart.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return HobType.
-
-**/
-#define GET_HOB_TYPE(HobStart) \
-  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobType)
-
-/**
-  Returns the length, in bytes, of a HOB.
-
-  This macro returns the HobLength field from the HOB header for the
-  HOB specified by HobStart.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return HobLength.
-
-**/
-#define GET_HOB_LENGTH(HobStart) \
-  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobLength)
-
-/**
-  Returns a pointer to the next HOB in the HOB list.
-
-  This macro returns a pointer to HOB that follows the
-  HOB specified by HobStart in the HOB List.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return A pointer to the next HOB in the HOB list.
-
-**/
-#define GET_NEXT_HOB(HobStart) \
-  (VOID *)(*(UINT8 **)&(HobStart) + GET_HOB_LENGTH (HobStart))
-
-/**
-  Determines if a HOB is the last HOB in the HOB list.
-
-  This macro determine if the HOB specified by HobStart is the
-  last HOB in the HOB list.  If HobStart is last HOB in the HOB list,
-  then TRUE is returned.  Otherwise, FALSE is returned.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @retval TRUE       The HOB specified by HobStart is the last HOB in the HOB list.
-  @retval FALSE      The HOB specified by HobStart is not the last HOB in the HOB list.
-
-**/
-#define END_OF_HOB_LIST(HobStart)  (GET_HOB_TYPE (HobStart) == (UINT16)EFI_HOB_TYPE_END_OF_HOB_LIST)
-
-/**
-  Returns a pointer to data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  This macro returns a pointer to the data buffer in a HOB specified by HobStart.
-  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  @param   GuidHob   A pointer to a HOB.
-
-  @return  A pointer to the data buffer in a HOB.
-
-**/
-#define GET_GUID_HOB_DATA(HobStart) \
-  (VOID *)(*(UINT8 **)&(HobStart) + sizeof (EFI_HOB_GUID_TYPE))
-
-/**
-  Returns the size of the data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  This macro returns the size, in bytes, of the data buffer in a HOB specified by HobStart.
-  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  @param   GuidHob   A pointer to a HOB.
-
-  @return  The size of the data buffer.
-**/
-#define GET_GUID_HOB_DATA_SIZE(HobStart) \
-  (UINT16)(GET_HOB_LENGTH (HobStart) - sizeof (EFI_HOB_GUID_TYPE))
-
-/**
-  Returns the pointer to the HOB list.
-
-  This function returns the pointer to first HOB in the list.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-
-  @return The pointer to the HOB list.
-
-**/
-VOID *
-EFIAPI
-GetHobList (
-  VOID
-  );
-
-/**
-  Returns the next instance of a HOB type from the starting HOB.
-
-  This function searches the first instance of a HOB type from the starting HOB pointer.
-  If there does not exist such HOB type from the starting HOB pointer, it will return NULL.
-  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
-  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
-  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
-
-  If HobStart is NULL, then ASSERT().
-
-  @param  Type          The HOB type to return.
-  @param  HobStart      The starting HOB pointer to search from.
-
-  @return The next instance of a HOB type from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetNextHob (
-  UINT16                 Type,
-  CONST VOID             *HobStart
-  );
-
-/**
-  Returns the first instance of a HOB type among the whole HOB list.
-
-  This function searches the first instance of a HOB type among the whole HOB list.
-  If there does not exist such HOB type in the HOB list, it will return NULL.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-
-  @param  Type          The HOB type to return.
-
-  @return The next instance of a HOB type from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetFirstHob (
-  UINT16                 Type
-  );
-
-/**
-  Returns the next instance of the matched GUID HOB from the starting HOB.
-
-  This function searches the first instance of a HOB from the starting HOB pointer.
-  Such HOB should satisfy two conditions:
-  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
-  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
-  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
-  to extract the data section and its size info respectively.
-  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
-  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
-  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
-
-  If Guid is NULL, then ASSERT().
-  If HobStart is NULL, then ASSERT().
-
-  @param  Guid          The GUID to match with in the HOB list.
-  @param  HobStart      A pointer to a Guid.
-
-  @return The next instance of the matched GUID HOB from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetNextGuidHob (
-  CONST EFI_GUID         *Guid,
-  CONST VOID             *HobStart
-  );
-
-/**
-  Returns the first instance of the matched GUID HOB among the whole HOB list.
-
-  This function searches the first instance of a HOB among the whole HOB list.
-  Such HOB should satisfy two conditions:
-  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
-  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
-  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
-  to extract the data section and its size info respectively.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-  If Guid is NULL, then ASSERT().
-
-  @param  Guid          The GUID to match with in the HOB list.
-
-  @return The first instance of the matched GUID HOB among the whole HOB list.
-
-**/
-VOID *
-EFIAPI
-GetFirstGuidHob (
-  CONST EFI_GUID         *Guid
-  );
-
-/**
-  Compares two GUIDs.
-
-  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
-  If there are any bit differences in the two GUIDs, then FALSE is returned.
-
-  If Guid1 is NULL, then ASSERT().
-  If Guid2 is NULL, then ASSERT().
-
-  @param  Guid1       A pointer to a 128 bit GUID.
-  @param  Guid2       A pointer to a 128 bit GUID.
-
-  @retval TRUE        Guid1 and Guid2 are identical.
-  @retval FALSE       Guid1 and Guid2 are not identical.
-
-**/
-BOOLEAN
-EFIAPI
-CompareGuid (
-  CONST EFI_GUID  *Guid1,
-  CONST EFI_GUID  *Guid2
-  );
-
-/**
-  Reads a 64-bit value from memory that may be unaligned.
-
-  This function returns the 64-bit value pointed to by Buffer. The function
-  guarantees that the read operation does not produce an alignment fault.
-
-  If the Buffer is NULL, then ASSERT().
-
-  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
-
-  @return The 64-bit value read from Buffer.
-
-**/
-UINT64
-EFIAPI
-ReadUnaligned64 (
-  CONST UINT64              *Buffer
-  );
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/include/fspinfoheader.h b/src/vendorcode/intel/fsp1_0/baytrail/include/fspinfoheader.h
deleted file mode 100644
index b277bcd..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/include/fspinfoheader.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_INFO_HEADER_H_
-#define _FSP_INFO_HEADER_H_
-
-#pragma pack(1)
-
-typedef struct  {
-
-  UINT32  Signature;       // Off 0x94
-  UINT32  HeaderLength;
-  UINT8   Reserved1[3];
-  UINT8   HeaderRevision;
-  UINT32  ImageRevision;
-
-  CHAR8   ImageId[8];      // Off 0xA4
-  UINT32  ImageSize;
-  UINT32  ImageBase;
-
-  UINT32  ImageAttribute;  // Off 0xB4
-  UINT32  CfgRegionOffset;
-  UINT32  CfgRegionSize;
-  UINT32  ApiEntryNum;
-
-  UINT32  NemInitEntry;    // Off 0xC4
-  UINT32  FspInitEntry;
-  UINT32  NotifyPhaseEntry;
-  UINT32  Reserved2;
-
-} FSP_INFO_HEADER;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/include/fspplatform.h b/src/vendorcode/intel/fsp1_0/baytrail/include/fspplatform.h
deleted file mode 100644
index 81f7b66..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/include/fspplatform.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_PLATFORM_H_
-#define _FSP_PLATFORM_H_
-
-#include "fsptypes.h"
-#include "fspapi.h"
-#include "azalia.h"
-
-#pragma pack(1)
-
-typedef struct {
-  FSP_INIT_RT_COMMON_BUFFER   Common;
-} FSP_INIT_RT_BUFFER;
-
-#pragma pack()
-
-//
-// Function prototypes for board_fsp.c
-//
-void
-GetFspReservedMemoryFromGuid (
-  uint32_t         *FspMemoryBase,
-  uint32_t         *FspMemoryLength,
-  EFI_GUID          FspReservedMemoryGuid
-  );
-
-void
-GetFspNVStorageMemory (
-  void         **FspNVStorageHob,
-  uint16_t     *DataSize
-  );
-
-void
-GetTempRamStack (
-  void         **TempRamStackPtr,
-  uint16_t     *DataSize
-  );
-
-void
-GetHighMemorySize (
-  uint64_t         *HighMemoryLength
-  );
-
-void
-GetLowMemorySize (
-  uint32_t         *LowMemoryLength
-  );
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/include/fsptypes.h b/src/vendorcode/intel/fsp1_0/baytrail/include/fsptypes.h
deleted file mode 100644
index 4a313ad..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/include/fsptypes.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-/** \file  fsptypes.h
- *
- *
- */
-
-#ifndef __FSP_TYPES_H__
-#define __FSP_TYPES_H__
-
-///
-/// 8-byte unsigned value.
-///
-typedef unsigned long long  UINT64;
-///
-/// 8-byte signed value.
-///
-typedef long long           INT64;
-///
-/// 4-byte unsigned value.
-///
-typedef unsigned int        UINT32;
-///
-/// 4-byte signed value.
-///
-typedef int                 INT32;
-///
-/// 2-byte unsigned value.
-///
-typedef unsigned short      UINT16;
-///
-/// 2-byte Character.  Unless otherwise specified all strings are stored in the
-/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
-///
-typedef unsigned short      CHAR16;
-///
-/// 2-byte signed value.
-///
-typedef short               INT16;
-///
-/// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
-/// values are undefined.
-///
-typedef unsigned char       BOOLEAN;
-///
-/// 1-byte unsigned value.
-///
-typedef unsigned char       UINT8;
-///
-/// 1-byte Character
-///
-typedef char                CHAR8;
-///
-/// 1-byte signed value
-///
-typedef char                INT8;
-
-typedef void                VOID;
-
-typedef UINT64              EFI_PHYSICAL_ADDRESS;
-
-typedef struct {
-  UINT32  Data1;
-  UINT16  Data2;
-  UINT16  Data3;
-  UINT8   Data4[8];
-} EFI_GUID;
-
-#define CONST     const
-#define STATIC    static
-
-#define TRUE  ((BOOLEAN)(1==1))
-#define FALSE ((BOOLEAN)(0==1))
-
-#define FSPAPI __attribute__((cdecl))
-#define EFIAPI __attribute__((cdecl))
-
-#define ASSERT(Expression)      \
-  do {                          \
-    if (!(Expression)) {        \
-      for (;;);                 \
-    }                           \
-  } while (FALSE)
-
-typedef UINT32 FSP_STATUS;
-typedef UINT32 EFI_STATUS;
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/include/fspvpd.h b/src/vendorcode/intel/fsp1_0/baytrail/include/fspvpd.h
deleted file mode 100644
index 4bdcb79..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/include/fspvpd.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
-
-Copyright (C) 2013-2015 Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSPVPD_H__
-#define __FSPVPD_H__
-
-#pragma pack(1)
-
-typedef struct {
-  UINT8    EnableMemoryDown;
-  UINT8    DRAMSpeed;      /* DRAM Speed  */
-  UINT8    DRAMType;       /* DRAM Type */
-  UINT8    DIMM0Enable;    /* DIMM 0 Enable */
-  UINT8    DIMM1Enable;    /* DIMM 1 Enable */
-  UINT8    DIMMDWidth;     /* DRAM device data width */
-  UINT8    DIMMDensity;    /* DRAM device data density */
-  UINT8    DIMMBusWidth;   /* DIMM Bus Width */
-  UINT8    DIMMSides;      /* Ranks Per DIMM */
-  UINT8    DIMMtCL;        /* tCL */
-  UINT8    DIMMtRPtRCD;    /* tRP and tRCD in DRAM clk - 5:12.5ns, 6:15ns, etc. */
-  UINT8    DIMMtWR;        /* tWR in DRAM clk  */
-  UINT8    DIMMtWTR;       /* tWTR in DRAM clk */
-  UINT8    DIMMtRRD;       /* tRRD in DRAM clk */
-  UINT8    DIMMtRTP;       /* tRTP in DRAM clk */
-  UINT8    DIMMtFAW;       /* tFAW in DRAM clk */
-} MEMORY_DOWN_DATA;
-
-
-typedef struct _UPD_DATA_REGION {
-  UINT64                      Signature;                     /* Offset 0x0000 */
-  UINT32                      RESERVED1;                     /* Offset 0x0008 */
-  UINT8                       Padding0[20];                  /* Offset 0x000C */
-  UINT16                      PcdMrcInitTsegSize;            /* Offset 0x0020 */
-  UINT16                      PcdMrcInitMmioSize;            /* Offset 0x0022 */
-  UINT8                       PcdMrcInitSPDAddr1;            /* Offset 0x0024 */
-  UINT8                       PcdMrcInitSPDAddr2;            /* Offset 0x0025 */
-  UINT8                       PcdeMMCBootMode;               /* Offset 0x0026 */
-  UINT8                       PcdEnableSdio;                 /* Offset 0x0027 */
-  UINT8                       PcdEnableSdcard;               /* Offset 0x0028 */
-  UINT8                       PcdEnableHsuart0;              /* Offset 0x0029 */
-  UINT8                       PcdEnableHsuart1;              /* Offset 0x002A */
-  UINT8                       PcdEnableSpi;                  /* Offset 0x002B */
-  UINT8                       ReservedUpdSpace1;             /* Offset 0x002C */
-  UINT8                       PcdEnableSata;                 /* Offset 0x002D */
-  UINT8                       PcdSataMode;                   /* Offset 0x002E */
-  UINT8                       PcdEnableAzalia;               /* Offset 0x002F */
-  UINT32                      AzaliaConfigPtr;               /* Offset 0x0030 */
-  UINT8                       PcdEnableXhci;                 /* Offset 0x0034 */
-  UINT8                       PcdEnableLpe;                  /* Offset 0x0035 */
-  UINT8                       PcdLpssSioEnablePciMode;       /* Offset 0x0036 */
-  UINT8                       PcdEnableDma0;                 /* Offset 0x0037 */
-  UINT8                       PcdEnableDma1;                 /* Offset 0x0038 */
-  UINT8                       PcdEnableI2C0;                 /* Offset 0x0039 */
-  UINT8                       PcdEnableI2C1;                 /* Offset 0x003A */
-  UINT8                       PcdEnableI2C2;                 /* Offset 0x003B */
-  UINT8                       PcdEnableI2C3;                 /* Offset 0x003C */
-  UINT8                       PcdEnableI2C4;                 /* Offset 0x003D */
-  UINT8                       PcdEnableI2C5;                 /* Offset 0x003E */
-  UINT8                       PcdEnableI2C6;                 /* Offset 0x003F */
-  UINT8                       PcdEnablePwm0;                 /* Offset 0x0040 */
-  UINT8                       PcdEnablePwm1;                 /* Offset 0x0041 */
-  UINT8                       PcdEnableHsi;                  /* Offset 0x0042 */
-  UINT8                       PcdIgdDvmt50PreAlloc;          /* Offset 0x0043 */
-  UINT8                       PcdApertureSize;               /* Offset 0x0044 */
-  UINT8                       PcdGttSize;                    /* Offset 0x0045 */
-  UINT32                      SerialDebugPortAddress;        /* Offset 0x0046 */
-  UINT8                       SerialDebugPortType;           /* Offset 0x004A */
-  UINT8                       PcdMrcDebugMsg;                /* Offset 0x004B */
-  UINT8                       ISPEnable;                     /* Offset 0x004C */
-  UINT8                       PcdSccEnablePciMode;           /* Offset 0x004D */
-  UINT8                       IgdRenderStandby;              /* Offset 0x004E */
-  UINT8                       TxeUmaEnable;                  /* Offset 0x004F */
-  UINT8                       PcdOsSelection;                /* Offset 0x0050 */
-  UINT8                       PcdEMMC45DDR50Enabled;         /* Offset 0x0051 */
-  UINT8                       PcdEMMC45HS200Enabled;         /* Offset 0x0052 */
-  UINT8                       PcdEMMC45RetuneTimerValue;     /* Offset 0x0053 */
-  UINT8                       PcdEnableIgd;                  /* Offset 0x0054 */
-  UINT8                       AutoSelfRefreshEnable;         /* Offset 0x0055 */
-  UINT16                      APTaskTimeoutCnt;              /* Offset 0x0056 */
-  UINT8                       UnusedUpdSpace1[152];          /* Offset 0x0058 */
-  MEMORY_DOWN_DATA            PcdMemoryParameters;           /* Offset 0x00F0 */
-  UINT16                      PcdRegionTerminator;           /* Offset 0x0100 */
-} UPD_DATA_REGION;
-
-
-typedef struct _VPD_DATA_REGION {
-  UINT64   PcdVpdRegionSign;                      /* Offset 0x0000 */
-  UINT32   PcdImageRevision;                      /* Offset 0x0008 */
-  UINT32   PcdUpdRegionOffset;                    /* Offset 0x000C */
-  UINT8    Padding0[16];                          /* Offset 0x0010 */
-  UINT32   PcdFspReservedMemoryLength;            /* Offset 0x0020 */
-  UINT8    PcdPlatformType;                       /* Offset 0x0024 */
-  UINT8    PcdEnableSecureBoot;                   /* Offset 0x0025 */
-  UINT8    PcdMemoryParameters[16];               /* Offset 0x0026 */
-} VPD_DATA_REGION;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/srx/board_fsp.c b/src/vendorcode/intel/fsp1_0/baytrail/srx/board_fsp.c
deleted file mode 100644
index 2cb3492..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/srx/board_fsp.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-/***********************************************************************
- *
- * board_fsp.c
- *
- * Parse HOB to get system data.
- *
- **********************************************************************/
-#include "fsp.h"
-
-void
-GetLowMemorySize (
-  uint32_t         *LowMemoryLength
-  )
-{
-  EFI_PEI_HOB_POINTERS    Hob;
-
-  *LowMemoryLength = 0x100000;
-
-  //
-  // Get the HOB list for processing
-  //
-  Hob.Raw = GetHobList();
-
-  //
-  // Collect memory ranges
-  //
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
-      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
-        //
-        // Need memory above 1MB to be collected here
-        //
-        if (Hob.ResourceDescriptor->PhysicalStart >= 0x100000 &&
-            Hob.ResourceDescriptor->PhysicalStart < (EFI_PHYSICAL_ADDRESS) 0x100000000) {
-          *LowMemoryLength += (uint32_t) (Hob.ResourceDescriptor->ResourceLength);
-        }
-      }
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-
-  return;
-}
-
-void
-GetHighMemorySize (
-  uint64_t         *HighMemoryLength
-  )
-{
-  EFI_PEI_HOB_POINTERS    Hob;
-
-  *HighMemoryLength = 0x0;
-
-  //
-  // Get the HOB list for processing
-  //
-  Hob.Raw = GetHobList();
-
-  //
-  // Collect memory ranges
-  //
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
-      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
-        //
-        // Need memory above 4GB to be collected here
-        //
-        if (Hob.ResourceDescriptor->PhysicalStart >= (EFI_PHYSICAL_ADDRESS) 0x100000000) {
-          *HighMemoryLength += (uint64_t) (Hob.ResourceDescriptor->ResourceLength);
-        }
-      }
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-
-  return;
-}
-
-void
-GetFspReservedMemoryFromGuid (
-  uint32_t         *FspMemoryBase,
-  uint32_t         *FspMemoryLength,
-  EFI_GUID          FspReservedMemoryGuid
-  )
-{
-  EFI_PEI_HOB_POINTERS    Hob;
-
-  //
-  // Get the HOB list for processing
-  //
-  Hob.Raw = GetHobList();
-  *FspMemoryBase = 0;
-  *FspMemoryLength = 0;
-
-  //
-  // Collect memory ranges
-  //
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
-      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED) {
-        if (CompareGuid(&Hob.ResourceDescriptor->Owner, &FspReservedMemoryGuid)) {
-          *FspMemoryBase = (uint32_t) (Hob.ResourceDescriptor->PhysicalStart);
-          *FspMemoryLength = (uint32_t) (Hob.ResourceDescriptor->ResourceLength);
-		      break;
-        }
-      }
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-
-  return;
-}
-
-void
-GetFspNVStorageMemory (
-  VOID         **FspNVStorageHob,
-  uint16_t     *DataSize
-  )
-{
-
-  EFI_GUID                FspNVStorageHobGuid = FSP_NON_VOLATILE_STORAGE_HOB_GUID;
-  uint8_t                 *GuidHob;
-  EFI_HOB_GENERIC_HEADER  *GuidHobHdr;
-
-  GuidHob = GetFirstGuidHob(&FspNVStorageHobGuid);
-  if (!GuidHob) {
-    *FspNVStorageHob = 0;
-    *DataSize = 0;
-  } else {
-    *FspNVStorageHob = GET_GUID_HOB_DATA (GuidHob);
-    GuidHobHdr = (EFI_HOB_GENERIC_HEADER *)GuidHob;
-    *DataSize =  GET_GUID_HOB_DATA_SIZE (GuidHobHdr);
-  }
-}
-
-void
-GetTempRamStack (
-  VOID         **TempRamStackPtr,
-  uint16_t     *DataSize
-  )
-{
-
-  EFI_GUID                FspBootloaderTemporaryMemoryHobGuid = FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID;
-  uint8_t                 *GuidHob;
-  EFI_HOB_GENERIC_HEADER  *GuidHobHdr;
-
-  GuidHob = GetFirstGuidHob(&FspBootloaderTemporaryMemoryHobGuid);
-  if (!GuidHob) {
-    *TempRamStackPtr = 0;
-    *DataSize = 0;
-  } else {
-    *TempRamStackPtr = GET_GUID_HOB_DATA (GuidHob);
-    GuidHobHdr = (EFI_HOB_GENERIC_HEADER *)GuidHob;
-    *DataSize =  GET_GUID_HOB_DATA_SIZE (GuidHobHdr);
-  }
-}
diff --git a/src/vendorcode/intel/fsp1_0/baytrail/srx/fsphob.c b/src/vendorcode/intel/fsp1_0/baytrail/srx/fsphob.c
deleted file mode 100644
index 5d6e890..0000000
--- a/src/vendorcode/intel/fsp1_0/baytrail/srx/fsphob.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-/***********************************************************************
- *
- * fsphob.c
- *
- * HOB infrastructure code.
- *
- **********************************************************************/
-#include <string.h>
-
-#include "fsptypes.h"
-#include "fsphob.h"
-
-//
-// Pointer to the HOB should be initialized with the output of FSP INIT PARAMS
-//
-extern volatile void *FspHobListPtr;
-
-/**
-  Reads a 64-bit value from memory that may be unaligned.
-
-  This function returns the 64-bit value pointed to by Buffer. The function
-  guarantees that the read operation does not produce an alignment fault.
-
-  If the Buffer is NULL, then ASSERT().
-
-  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
-
-  @return The 64-bit value read from Buffer.
-
-**/
-UINT64
-EFIAPI
-ReadUnaligned64 (
-  CONST UINT64              *Buffer
-  )
-{
-  ASSERT (Buffer != NULL);
-
-  return *Buffer;
-}
-
-/**
-  Compares two GUIDs.
-
-  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
-  If there are any bit differences in the two GUIDs, then FALSE is returned.
-
-  If Guid1 is NULL, then ASSERT().
-  If Guid2 is NULL, then ASSERT().
-
-  @param  Guid1       A pointer to a 128 bit GUID.
-  @param  Guid2       A pointer to a 128 bit GUID.
-
-  @retval TRUE        Guid1 and Guid2 are identical.
-  @retval FALSE       Guid1 and Guid2 are not identical.
-
-**/
-BOOLEAN
-EFIAPI
-CompareGuid (
-  CONST EFI_GUID  *Guid1,
-  CONST EFI_GUID  *Guid2
-  )
-{
-  UINT64  LowPartOfGuid1;
-  UINT64  LowPartOfGuid2;
-  UINT64  HighPartOfGuid1;
-  UINT64  HighPartOfGuid2;
-
-  LowPartOfGuid1  = ReadUnaligned64 ((CONST UINT64*) Guid1);
-  LowPartOfGuid2  = ReadUnaligned64 ((CONST UINT64*) Guid2);
-  HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1);
-  HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1);
-
-  return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2);
-}
-
-/**
-  Returns the pointer to the HOB list.
-**/
-VOID *
-EFIAPI
-GetHobList (
-  VOID
-  )
-{
-  ASSERT (FspHobListPtr != NULL);
-  return ((VOID *)FspHobListPtr);
-}
-
-/**
-  Returns the next instance of a HOB type from the starting HOB.
-**/
-VOID *
-EFIAPI
-GetNextHob (
-  UINT16                 Type,
-  CONST VOID             *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  Hob;
-
-  ASSERT (HobStart != NULL);
-
-  Hob.Raw = (UINT8 *) HobStart;
-  //
-  // Parse the HOB list until end of list or matching type is found.
-  //
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == Type) {
-      return Hob.Raw;
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-  return NULL;
-}
-
-/**
-  Returns the first instance of a HOB type among the whole HOB list.
-**/
-VOID *
-EFIAPI
-GetFirstHob (
-  UINT16                 Type
-  )
-{
-  VOID      *HobList;
-
-  HobList = GetHobList ();
-  return GetNextHob (Type, HobList);
-}
-
-/**
-  Returns the next instance of the matched GUID HOB from the starting HOB.
-**/
-VOID *
-EFIAPI
-GetNextGuidHob (
-  CONST EFI_GUID         *Guid,
-  CONST VOID             *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  GuidHob;
-
-  GuidHob.Raw = (UINT8 *) HobStart;
-  while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
-    if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
-      break;
-    }
-    GuidHob.Raw = GET_NEXT_HOB (GuidHob);
-  }
-  return GuidHob.Raw;
-}
-
-/**
-  Returns the first instance of the matched GUID HOB among the whole HOB list.
-**/
-VOID *
-EFIAPI
-GetFirstGuidHob (
-  CONST EFI_GUID         *Guid
-  )
-{
-  VOID      *HobList;
-
-  HobList = GetHobList ();
-  return GetNextGuidHob (Guid, HobList);
-}
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fsp.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fsp.h
deleted file mode 100644
index 22d2ee9..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fsp.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_H__
-#define __FSP_H__
-
-#include "fsptypes.h"
-#include "fspfv.h"
-#include "fspffs.h"
-#include "fspapi.h"
-#include "fsphob.h"
-#include "fspplatform.h"
-#include "fspinfoheader.h"
-#include "fspbootmode.h"
-#include "fspvpd.h"
-#include "fspsupport.h"
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspapi.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspapi.h
deleted file mode 100644
index 0211e26..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspapi.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_API_H__
-#define __FSP_API_H__
-
-///
-/// FSP Init continuation function prototype.
-/// Control will be returned to this callback function after FspInit API call.
-///
-typedef VOID       (FSPAPI *CONTINUATION_PROC)  (EFI_STATUS Status,  VOID *HobListPtr);
-
-#pragma pack(1)
-
-typedef struct {
-  ///
-  /// Non-volatile storage buffer pointer.
-  ///
-  VOID               *NvsBufferPtr;
-  ///
-  /// Runtime buffer pointer
-  ///
-  VOID               *RtBufferPtr;
-  ///
-  /// Continuation function address
-  ///
-  CONTINUATION_PROC   ContinuationFunc;
-} FSP_INIT_PARAMS;
-
-typedef struct {
-  ///
-  /// Stack top pointer used by the bootloader.
-  /// The new stack frame will be set up at this location after FspInit API call.
-  ///
-  UINT32             *StackTop;
-  ///
-  /// Current system boot mode.
-  ///
-  UINT32              BootMode;
-  ///
-  /// User platform configuraiton data region pointer.
-  ///
-  VOID               *UpdDataRgnPtr;
-  ///
-  /// Reserved
-  ///
-  UINT32              Reserved[7];
-} FSP_INIT_RT_COMMON_BUFFER;
-
-typedef enum {
-  ///
-  /// Notification code for post PCI enuermation
-  ///
-  EnumInitPhaseAfterPciEnumeration = 0x20,
-  ///
-  /// Notification code before transfering control to the payload
-  ///
-  EnumInitPhaseReadyToBoot         = 0x40
-} FSP_INIT_PHASE;
-
-typedef struct {
-  ///
-  /// Notification phase used for NotifyPhase API
-  ///
-  FSP_INIT_PHASE     Phase;
-} NOTIFY_PHASE_PARAMS;
-
-#pragma pack()
-
-///
-/// FspInit API function prototype
-///
-typedef FSP_STATUS (FSPAPI *FSP_FSP_INIT)       (FSP_INIT_PARAMS     *FspInitParamPtr);
-
-///
-/// NotifyPhase API function prototype
-///
-typedef FSP_STATUS (FSPAPI *FSP_NOTFY_PHASE)    (NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr);
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspbootmode.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspbootmode.h
deleted file mode 100644
index f3c121b..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspbootmode.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_BOOTMODE_H__
-#define __FSP_BOOTMODE_H__
-
-///
-/// EFI boot mode
-///
-typedef UINT32  EFI_BOOT_MODE;
-
-//
-// 0x21 - 0xf..f are reserved.
-//
-#define BOOT_WITH_FULL_CONFIGURATION                  0x00
-#define BOOT_ON_S3_RESUME                             0x11
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspffs.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspffs.h
deleted file mode 100644
index 9c4e669..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspffs.h
+++ /dev/null
@@ -1,506 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_FFS_H__
-#define __FSP_FFS_H__
-
-#pragma pack(1)
-///
-/// Used to verify the integrity of the file.
-///
-typedef union {
-  struct {
-    ///
-    /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
-    /// header. The State and IntegrityCheck.Checksum.File fields are assumed
-    /// to be zero and the checksum is calculated such that the entire header sums to zero.
-    ///
-    UINT8   Header;
-    ///
-    /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
-    /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
-    /// checksum of the file data.
-    /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
-    /// the IntegrityCheck.Checksum.File field must be initialized with a value of
-    /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
-    /// EFI_FILE_DATA_VALID bit is set in the State field.
-    ///
-    UINT8   File;
-  } Checksum;
-  ///
-  /// This is the full 16 bits of the IntegrityCheck field.
-  ///
-  UINT16    Checksum16;
-} EFI_FFS_INTEGRITY_CHECK;
-
-///
-/// FFS_FIXED_CHECKSUM is the checksum value used when the
-/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
-///
-#define FFS_FIXED_CHECKSUM  0xAA
-
-typedef UINT8 EFI_FV_FILETYPE;
-typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
-typedef UINT8 EFI_FFS_FILE_STATE;
-
-///
-/// File Types Definitions
-///
-#define EFI_FV_FILETYPE_ALL                   0x00
-#define EFI_FV_FILETYPE_RAW                   0x01
-#define EFI_FV_FILETYPE_FREEFORM              0x02
-#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
-#define EFI_FV_FILETYPE_PEI_CORE              0x04
-#define EFI_FV_FILETYPE_DXE_CORE              0x05
-#define EFI_FV_FILETYPE_PEIM                  0x06
-#define EFI_FV_FILETYPE_DRIVER                0x07
-#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
-#define EFI_FV_FILETYPE_APPLICATION           0x09
-#define EFI_FV_FILETYPE_SMM                   0x0A
-#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
-#define EFI_FV_FILETYPE_COMBINED_SMM_DXE      0x0C
-#define EFI_FV_FILETYPE_SMM_CORE              0x0D
-#define EFI_FV_FILETYPE_OEM_MIN               0xc0
-#define EFI_FV_FILETYPE_OEM_MAX               0xdf
-#define EFI_FV_FILETYPE_DEBUG_MIN             0xe0
-#define EFI_FV_FILETYPE_DEBUG_MAX             0xef
-#define EFI_FV_FILETYPE_FFS_MIN               0xf0
-#define EFI_FV_FILETYPE_FFS_MAX               0xff
-#define EFI_FV_FILETYPE_FFS_PAD               0xf0
-
-///
-/// FFS File Attributes.
-///
-#define FFS_ATTRIB_LARGE_FILE         0x01
-#define FFS_ATTRIB_FIXED              0x04
-#define FFS_ATTRIB_DATA_ALIGNMENT     0x38
-#define FFS_ATTRIB_CHECKSUM           0x40
-
-///
-/// FFS File State Bits.
-///
-#define EFI_FILE_HEADER_CONSTRUCTION  0x01
-#define EFI_FILE_HEADER_VALID         0x02
-#define EFI_FILE_DATA_VALID           0x04
-#define EFI_FILE_MARKED_FOR_UPDATE    0x08
-#define EFI_FILE_DELETED              0x10
-#define EFI_FILE_HEADER_INVALID       0x20
-
-
-///
-/// Each file begins with the header that describe the
-/// contents and state of the files.
-///
-typedef struct {
-  ///
-  /// This GUID is the file name. It is used to uniquely identify the file.
-  ///
-  EFI_GUID                Name;
-  ///
-  /// Used to verify the integrity of the file.
-  ///
-  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
-  ///
-  /// Identifies the type of file.
-  ///
-  EFI_FV_FILETYPE         Type;
-  ///
-  /// Declares various file attribute bits.
-  ///
-  EFI_FFS_FILE_ATTRIBUTES Attributes;
-  ///
-  /// The length of the file in bytes, including the FFS header.
-  ///
-  UINT8                   Size[3];
-  ///
-  /// Used to track the state of the file throughout the life of the file from creation to deletion.
-  ///
-  EFI_FFS_FILE_STATE      State;
-} EFI_FFS_FILE_HEADER;
-
-typedef struct {
-  ///
-  /// This GUID is the file name. It is used to uniquely identify the file. There may be only
-  /// one instance of a file with the file name GUID of Name in any given firmware
-  /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
-  ///
-  EFI_GUID                  Name;
-
-  ///
-  /// Used to verify the integrity of the file.
-  ///
-  EFI_FFS_INTEGRITY_CHECK   IntegrityCheck;
-
-  ///
-  /// Identifies the type of file.
-  ///
-  EFI_FV_FILETYPE           Type;
-
-  ///
-  /// Declares various file attribute bits.
-  ///
-  EFI_FFS_FILE_ATTRIBUTES   Attributes;
-
-  ///
-  /// The length of the file in bytes, including the FFS header.
-  /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
-  /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
-  /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
-  /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
-  ///
-  UINT8                     Size[3];
-
-  ///
-  /// Used to track the state of the file throughout the life of the file from creation to deletion.
-  ///
-  EFI_FFS_FILE_STATE        State;
-
-  ///
-  /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
-  /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
-  ///
-  UINT32                    ExtendedSize;
-} EFI_FFS_FILE_HEADER2;
-
-#define IS_FFS_FILE2(FfsFileHeaderPtr) \
-    (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
-
-#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
-
-#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
-    (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
-
-typedef UINT8 EFI_SECTION_TYPE;
-
-///
-/// Pseudo type. It is used as a wild card when retrieving sections.
-///  The section type EFI_SECTION_ALL matches all section types.
-///
-#define EFI_SECTION_ALL                   0x00
-
-///
-/// Encapsulation section Type values.
-///
-#define EFI_SECTION_COMPRESSION           0x01
-
-#define EFI_SECTION_GUID_DEFINED          0x02
-
-#define EFI_SECTION_DISPOSABLE            0x03
-
-///
-/// Leaf section Type values.
-///
-#define EFI_SECTION_PE32                  0x10
-#define EFI_SECTION_PIC                   0x11
-#define EFI_SECTION_TE                    0x12
-#define EFI_SECTION_DXE_DEPEX             0x13
-#define EFI_SECTION_VERSION               0x14
-#define EFI_SECTION_USER_INTERFACE        0x15
-#define EFI_SECTION_COMPATIBILITY16       0x16
-#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
-#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
-#define EFI_SECTION_RAW                   0x19
-#define EFI_SECTION_PEI_DEPEX             0x1B
-#define EFI_SECTION_SMM_DEPEX             0x1C
-
-///
-/// Common section header.
-///
-typedef struct {
-  ///
-  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
-  /// including the EFI_COMMON_SECTION_HEADER.
-  ///
-  UINT8             Size[3];
-  EFI_SECTION_TYPE  Type;
-  ///
-  /// Declares the section type.
-  ///
-} EFI_COMMON_SECTION_HEADER;
-
-typedef struct {
-  ///
-  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
-  /// including the EFI_COMMON_SECTION_HEADER.
-  ///
-  UINT8             Size[3];
-
-  EFI_SECTION_TYPE  Type;
-
-  ///
-  /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
-  /// Size is not equal to 0xFFFFFF, then this field does not exist.
-  ///
-  UINT32            ExtendedSize;
-} EFI_COMMON_SECTION_HEADER2;
-
-///
-/// Leaf section type that contains an
-/// IA-32 16-bit executable image.
-///
-typedef EFI_COMMON_SECTION_HEADER  EFI_COMPATIBILITY16_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
-
-///
-/// CompressionType of EFI_COMPRESSION_SECTION.
-///
-#define EFI_NOT_COMPRESSED        0x00
-#define EFI_STANDARD_COMPRESSION  0x01
-///
-/// An encapsulation section type in which the
-/// section data is compressed.
-///
-typedef struct {
-  ///
-  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// The UINT32 that indicates the size of the section data after decompression.
-  ///
-  UINT32                      UncompressedLength;
-  ///
-  /// Indicates which compression algorithm is used.
-  ///
-  UINT8                       CompressionType;
-} EFI_COMPRESSION_SECTION;
-
-typedef struct {
-  ///
-  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// UINT32 that indicates the size of the section data after decompression.
-  ///
-  UINT32                        UncompressedLength;
-  ///
-  /// Indicates which compression algorithm is used.
-  ///
-  UINT8                         CompressionType;
-} EFI_COMPRESSION_SECTION2;
-
-///
-/// An encapsulation section type in which the section data is disposable.
-/// A disposable section is an encapsulation section in which the section data may be disposed of during
-/// the process of creating or updating a firmware image without significant impact on the usefulness of
-/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
-/// allows optional or descriptive data to be included with the firmware file which can be removed in
-/// order to conserve space. The contents of this section are implementation specific, but might contain
-/// debug data or detailed integration instructions.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_DISPOSABLE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_DISPOSABLE_SECTION2;
-
-///
-/// The leaf section which could be used to determine the dispatch order of DXEs.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_DXE_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_DXE_DEPEX_SECTION2;
-
-///
-/// The leaf section which contains a PI FV.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
-
-///
-/// The leaf section which contains a single GUID.
-///
-typedef struct {
-  ///
-  /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
-  ///
-  EFI_GUID                    SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
-
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
-  ///
-  EFI_GUID                      SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
-
-///
-/// Attributes of EFI_GUID_DEFINED_SECTION.
-///
-#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED  0x01
-#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID    0x02
-///
-/// The leaf section which is encapsulation defined by specific GUID.
-///
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
-  ///
-  EFI_GUID                    SectionDefinitionGuid;
-  ///
-  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
-  ///
-  UINT16                      DataOffset;
-  ///
-  /// The bit field that declares some specific characteristics of the section contents.
-  ///
-  UINT16                      Attributes;
-} EFI_GUID_DEFINED_SECTION;
-
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
-  ///
-  EFI_GUID                      SectionDefinitionGuid;
-  ///
-  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
-  ///
-  UINT16                        DataOffset;
-  ///
-  /// The bit field that declares some specific characteristics of the section contents.
-  ///
-  UINT16                        Attributes;
-} EFI_GUID_DEFINED_SECTION2;
-
-///
-/// The leaf section which contains PE32+ image.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PE32_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PE32_SECTION2;
-
-///
-/// The leaf section used to determine the dispatch order of PEIMs.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PEI_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PEI_DEPEX_SECTION2;
-
-///
-/// A leaf section type that contains a position-independent-code (PIC) image.
-/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
-/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
-/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
-/// relocation information has been stripped from the image and the image can be moved and will
-/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
-/// be used if the section is 16MB or larger.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PIC_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PIC_SECTION2;
-
-///
-/// The leaf section which constains the position-independent-code image.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_TE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_TE_SECTION2;
-
-///
-/// The leaf section which contains an array of zero or more bytes.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_RAW_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_RAW_SECTION2;
-
-///
-/// The SMM dependency expression section is a leaf section that contains a dependency expression that
-/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
-/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
-/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
-/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
-/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
-///
-typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
-
-///
-/// The leaf section which contains a unicode string that
-/// is human readable file name.
-///
-typedef struct {
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-
-  ///
-  /// Array of unicode string.
-  ///
-  CHAR16                      FileNameString[1];
-} EFI_USER_INTERFACE_SECTION;
-
-typedef struct {
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  CHAR16                        FileNameString[1];
-} EFI_USER_INTERFACE_SECTION2;
-
-///
-/// The leaf section which contains a numeric build number and
-/// an optional unicode string that represents the file revision.
-///
-typedef struct {
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  UINT16                      BuildNumber;
-
-  ///
-  /// Array of unicode string.
-  ///
-  CHAR16                      VersionString[1];
-} EFI_VERSION_SECTION;
-
-typedef struct {
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// A UINT16 that represents a particular build. Subsequent builds have monotonically
-  /// increasing build numbers relative to earlier builds.
-  ///
-  UINT16                        BuildNumber;
-  CHAR16                        VersionString[1];
-} EFI_VERSION_SECTION2;
-
-#define IS_SECTION2(SectionHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
-
-#define SECTION_SIZE(SectionHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
-
-#define SECTION2_SIZE(SectionHeaderPtr) \
-    (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspfv.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspfv.h
deleted file mode 100644
index 5696a78..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspfv.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_FV___
-#define __FSP_FV___
-
-///
-/// EFI_FV_FILE_ATTRIBUTES
-///
-typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
-
-//
-// Value of EFI_FV_FILE_ATTRIBUTES.
-//
-#define EFI_FV_FILE_ATTRIB_ALIGNMENT      0x0000001F
-#define EFI_FV_FILE_ATTRIB_FIXED          0x00000100
-#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED  0x00000200
-
-///
-/// type of EFI FVB attribute
-///
-typedef UINT32  EFI_FVB_ATTRIBUTES_2;
-
-//
-// Attributes bit definitions
-//
-#define EFI_FVB2_READ_DISABLED_CAP  0x00000001
-#define EFI_FVB2_READ_ENABLED_CAP   0x00000002
-#define EFI_FVB2_READ_STATUS        0x00000004
-#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
-#define EFI_FVB2_WRITE_ENABLED_CAP  0x00000010
-#define EFI_FVB2_WRITE_STATUS       0x00000020
-#define EFI_FVB2_LOCK_CAP           0x00000040
-#define EFI_FVB2_LOCK_STATUS        0x00000080
-#define EFI_FVB2_STICKY_WRITE       0x00000200
-#define EFI_FVB2_MEMORY_MAPPED      0x00000400
-#define EFI_FVB2_ERASE_POLARITY     0x00000800
-#define EFI_FVB2_READ_LOCK_CAP      0x00001000
-#define EFI_FVB2_READ_LOCK_STATUS   0x00002000
-#define EFI_FVB2_WRITE_LOCK_CAP     0x00004000
-#define EFI_FVB2_WRITE_LOCK_STATUS  0x00008000
-#define EFI_FVB2_ALIGNMENT          0x001F0000
-#define EFI_FVB2_ALIGNMENT_1        0x00000000
-#define EFI_FVB2_ALIGNMENT_2        0x00010000
-#define EFI_FVB2_ALIGNMENT_4        0x00020000
-#define EFI_FVB2_ALIGNMENT_8        0x00030000
-#define EFI_FVB2_ALIGNMENT_16       0x00040000
-#define EFI_FVB2_ALIGNMENT_32       0x00050000
-#define EFI_FVB2_ALIGNMENT_64       0x00060000
-#define EFI_FVB2_ALIGNMENT_128      0x00070000
-#define EFI_FVB2_ALIGNMENT_256      0x00080000
-#define EFI_FVB2_ALIGNMENT_512      0x00090000
-#define EFI_FVB2_ALIGNMENT_1K       0x000A0000
-#define EFI_FVB2_ALIGNMENT_2K       0x000B0000
-#define EFI_FVB2_ALIGNMENT_4K       0x000C0000
-#define EFI_FVB2_ALIGNMENT_8K       0x000D0000
-#define EFI_FVB2_ALIGNMENT_16K      0x000E0000
-#define EFI_FVB2_ALIGNMENT_32K      0x000F0000
-#define EFI_FVB2_ALIGNMENT_64K      0x00100000
-#define EFI_FVB2_ALIGNMENT_128K     0x00110000
-#define EFI_FVB2_ALIGNMENT_256K     0x00120000
-#define EFI_FVB2_ALIGNMENT_512K     0x00130000
-#define EFI_FVB2_ALIGNMENT_1M       0x00140000
-#define EFI_FVB2_ALIGNMENT_2M       0x00150000
-#define EFI_FVB2_ALIGNMENT_4M       0x00160000
-#define EFI_FVB2_ALIGNMENT_8M       0x00170000
-#define EFI_FVB2_ALIGNMENT_16M      0x00180000
-#define EFI_FVB2_ALIGNMENT_32M      0x00190000
-#define EFI_FVB2_ALIGNMENT_64M      0x001A0000
-#define EFI_FVB2_ALIGNMENT_128M     0x001B0000
-#define EFI_FVB2_ALIGNMENT_256M     0x001C0000
-#define EFI_FVB2_ALIGNMENT_512M     0x001D0000
-#define EFI_FVB2_ALIGNMENT_1G       0x001E0000
-#define EFI_FVB2_ALIGNMENT_2G       0x001F0000
-
-
-typedef struct {
-  ///
-  /// The number of sequential blocks which are of the same size.
-  ///
-  UINT32 NumBlocks;
-  ///
-  /// The size of the blocks.
-  ///
-  UINT32 Length;
-} EFI_FV_BLOCK_MAP_ENTRY;
-
-///
-/// Describes the features and layout of the firmware volume.
-///
-typedef struct {
-  ///
-  /// The first 16 bytes are reserved to allow for the reset vector of
-  /// processors whose reset vector is at address 0.
-  ///
-  UINT8                     ZeroVector[16];
-  ///
-  /// Declares the file system with which the firmware volume is formatted.
-  ///
-  EFI_GUID                  FileSystemGuid;
-  ///
-  /// Length in bytes of the complete firmware volume, including the header.
-  ///
-  UINT64                    FvLength;
-  ///
-  /// Set to EFI_FVH_SIGNATURE
-  ///
-  UINT32                    Signature;
-  ///
-  /// Declares capabilities and power-on defaults for the firmware volume.
-  ///
-  EFI_FVB_ATTRIBUTES_2      Attributes;
-  ///
-  /// Length in bytes of the complete firmware volume header.
-  ///
-  UINT16                    HeaderLength;
-  ///
-  /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
-  ///
-  UINT16                    Checksum;
-  ///
-  /// Offset, relative to the start of the header, of the extended header
-  /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
-  ///
-  UINT16                    ExtHeaderOffset;
-  ///
-  /// This field must always be set to zero.
-  ///
-  UINT8                     Reserved[1];
-  ///
-  /// Set to 2. Future versions of this specification may define new header fields and will
-  /// increment the Revision field accordingly.
-  ///
-  UINT8                     Revision;
-  ///
-  /// An array of run-length encoded FvBlockMapEntry structures. The array is
-  /// terminated with an entry of {0,0}.
-  ///
-  EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
-} EFI_FIRMWARE_VOLUME_HEADER;
-
-#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
-
-///
-/// Firmware Volume Header Revision definition
-///
-#define EFI_FVH_REVISION  0x02
-
-///
-/// Extension header pointed by ExtHeaderOffset of volume header.
-///
-typedef struct {
-  ///
-  /// Firmware volume name.
-  ///
-  EFI_GUID  FvName;
-  ///
-  /// Size of the rest of the extension header, including this structure.
-  ///
-  UINT32    ExtHeaderSize;
-} EFI_FIRMWARE_VOLUME_EXT_HEADER;
-
-///
-/// Entry struture for describing FV extension header
-///
-typedef struct {
-  ///
-  /// Size of this header extension.
-  ///
-  UINT16    ExtEntrySize;
-  ///
-  /// Type of the header.
-  ///
-  UINT16    ExtEntryType;
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
-
-#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
-///
-/// This extension header provides a mapping between a GUID and an OEM file type.
-///
-typedef struct {
-  ///
-  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
-  ///
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
-  ///
-  /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
-  /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
-  ///
-  UINT32    TypeMask;
-  ///
-  /// An array of GUIDs, each GUID representing an OEM file type.
-  ///
-  /// EFI_GUID  Types[1];
-  ///
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
-
-#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002
-
-///
-/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
-/// GUID FormatType type which includes a length and a successive series of data bytes.
-///
-typedef struct {
-  ///
-  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
-  ///
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY     Hdr;
-  ///
-  /// Vendor-specific GUID.
-  ///
-  EFI_GUID                          FormatType;
-  ///
-  /// An arry of bytes of length Length.
-  ///
-  /// UINT8                             Data[1];
-  ///
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fsphob.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fsphob.h
deleted file mode 100644
index 59e34ef..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fsphob.h
+++ /dev/null
@@ -1,427 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_HOB_H__
-#define __FSP_HOB_H__
-
-//
-// HobType of EFI_HOB_GENERIC_HEADER.
-//
-#define EFI_HOB_TYPE_MEMORY_ALLOCATION    0x0002
-#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
-#define EFI_HOB_TYPE_GUID_EXTENSION       0x0004
-#define EFI_HOB_TYPE_UNUSED               0xFFFE
-#define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF
-
-///
-/// Describes the format and size of the data inside the HOB.
-/// All HOBs must contain this generic HOB header.
-///
-typedef struct {
-  ///
-  /// Identifies the HOB data structure type.
-  ///
-  UINT16    HobType;
-  ///
-  /// The length in bytes of the HOB.
-  ///
-  UINT16    HobLength;
-  ///
-  /// This field must always be set to zero.
-  ///
-  UINT32    Reserved;
-} EFI_HOB_GENERIC_HEADER;
-
-///
-/// Enumeration of memory types introduced in UEFI.
-///
-typedef enum {
-  ///
-  /// Not used.
-  ///
-  EfiReservedMemoryType,
-  ///
-  /// The code portions of a loaded application.
-  /// (Note that UEFI OS loaders are UEFI applications.)
-  ///
-  EfiLoaderCode,
-  ///
-  /// The data portions of a loaded application and the default data allocation
-  /// type used by an application to allocate pool memory.
-  ///
-  EfiLoaderData,
-  ///
-  /// The code portions of a loaded Boot Services Driver.
-  ///
-  EfiBootServicesCode,
-  ///
-  /// The data portions of a loaded Boot Serves Driver, and the default data
-  /// allocation type used by a Boot Services Driver to allocate pool memory.
-  ///
-  EfiBootServicesData,
-  ///
-  /// The code portions of a loaded Runtime Services Driver.
-  ///
-  EfiRuntimeServicesCode,
-  ///
-  /// The data portions of a loaded Runtime Services Driver and the default
-  /// data allocation type used by a Runtime Services Driver to allocate pool memory.
-  ///
-  EfiRuntimeServicesData,
-  ///
-  /// Free (unallocated) memory.
-  ///
-  EfiConventionalMemory,
-  ///
-  /// Memory in which errors have been detected.
-  ///
-  EfiUnusableMemory,
-  ///
-  /// Memory that holds the ACPI tables.
-  ///
-  EfiACPIReclaimMemory,
-  ///
-  /// Address space reserved for use by the firmware.
-  ///
-  EfiACPIMemoryNVS,
-  ///
-  /// Used by system firmware to request that a memory-mapped IO region
-  /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
-  ///
-  EfiMemoryMappedIO,
-  ///
-  /// System memory-mapped IO region that is used to translate memory
-  /// cycles to IO cycles by the processor.
-  ///
-  EfiMemoryMappedIOPortSpace,
-  ///
-  /// Address space reserved by the firmware for code that is part of the processor.
-  ///
-  EfiPalCode,
-  EfiMaxMemoryType
-} EFI_MEMORY_TYPE;
-
-///
-/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
-/// various attributes of the logical memory allocation. The type field will be used for
-/// subsequent inclusion in the UEFI memory map.
-///
-typedef struct {
-  ///
-  /// A GUID that defines the memory allocation region's type and purpose, as well as
-  /// other fields within the memory allocation HOB. This GUID is used to define the
-  /// additional data within the HOB that may be present for the memory allocation HOB.
-  /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
-  /// specification.
-  ///
-  EFI_GUID              Name;
-
-  ///
-  /// The base address of memory allocated by this HOB. Type
-  /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
-  /// specification.
-  ///
-  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
-
-  ///
-  /// The length in bytes of memory allocated by this HOB.
-  ///
-  UINT64                MemoryLength;
-
-  ///
-  /// Defines the type of memory allocated by this HOB. The memory type definition
-  /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
-  /// in AllocatePages() in the UEFI 2.0 specification.
-  ///
-  EFI_MEMORY_TYPE       MemoryType;
-
-  ///
-  /// Padding for Itanium processor family
-  ///
-  UINT8                 Reserved[4];
-} EFI_HOB_MEMORY_ALLOCATION_HEADER;
-
-///
-/// Describes all memory ranges used during the HOB producer
-/// phase that exist outside the HOB list. This HOB type
-/// describes how memory is used, not the physical attributes of memory.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
-  ///
-  EFI_HOB_GENERIC_HEADER            Header;
-  ///
-  /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
-  /// various attributes of the logical memory allocation.
-  ///
-  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
-  //
-  // Additional data pertaining to the "Name" Guid memory
-  // may go here.
-  //
-} EFI_HOB_MEMORY_ALLOCATION;
-
-///
-/// The resource type.
-///
-typedef UINT32 EFI_RESOURCE_TYPE;
-
-//
-// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
-//
-#define EFI_RESOURCE_SYSTEM_MEMORY          0x00000000
-#define EFI_RESOURCE_MEMORY_MAPPED_IO       0x00000001
-#define EFI_RESOURCE_IO                     0x00000002
-#define EFI_RESOURCE_FIRMWARE_DEVICE        0x00000003
-#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  0x00000004
-#define EFI_RESOURCE_MEMORY_RESERVED        0x00000005
-#define EFI_RESOURCE_IO_RESERVED            0x00000006
-#define EFI_RESOURCE_MAX_MEMORY_TYPE        0x00000007
-
-///
-/// A type of recount attribute type.
-///
-typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
-
-//
-// These types can be ORed together as needed.
-//
-// The first three enumerations describe settings
-//
-#define EFI_RESOURCE_ATTRIBUTE_PRESENT              0x00000001
-#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED          0x00000002
-#define EFI_RESOURCE_ATTRIBUTE_TESTED               0x00000004
-//
-// The rest of the settings describe capabilities
-//
-#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC           0x00000008
-#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC         0x00000010
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1           0x00000020
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2           0x00000040
-#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100
-#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE              0x00000400
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE        0x00000800
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE  0x00001000
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE     0x00002000
-#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO                0x00004000
-#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO                0x00008000
-#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000
-
-///
-/// Describes the resource properties of all fixed,
-/// nonrelocatable resource ranges found on the processor
-/// host bus during the HOB producer phase.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
-  ///
-  EFI_HOB_GENERIC_HEADER      Header;
-  ///
-  /// A GUID representing the owner of the resource. This GUID is used by HOB
-  /// consumer phase components to correlate device ownership of a resource.
-  ///
-  EFI_GUID                    Owner;
-  ///
-  /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
-  ///
-  EFI_RESOURCE_TYPE           ResourceType;
-  ///
-  /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
-  ///
-  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
-  ///
-  /// The physical start address of the resource region.
-  ///
-  EFI_PHYSICAL_ADDRESS        PhysicalStart;
-  ///
-  /// The number of bytes of the resource region.
-  ///
-  UINT64                      ResourceLength;
-} EFI_HOB_RESOURCE_DESCRIPTOR;
-
-///
-/// Allows writers of executable content in the HOB producer phase to
-/// maintain and manage HOBs with specific GUID.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
-  ///
-  EFI_HOB_GENERIC_HEADER      Header;
-  ///
-  /// A GUID that defines the contents of this HOB.
-  ///
-  EFI_GUID                    Name;
-  //
-  // Guid specific data goes here
-  //
-} EFI_HOB_GUID_TYPE;
-
-///
-/// Union of all the possible HOB Types.
-///
-typedef union {
-  EFI_HOB_GENERIC_HEADER              *Header;
-  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
-  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
-  EFI_HOB_GUID_TYPE                   *Guid;
-  UINT8                               *Raw;
-} EFI_PEI_HOB_POINTERS;
-
-
-/**
-  Returns the type of a HOB.
-
-  This macro returns the HobType field from the HOB header for the
-  HOB specified by HobStart.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return HobType.
-
-**/
-#define GET_HOB_TYPE(HobStart) \
-  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobType)
-
-/**
-  Returns the length, in bytes, of a HOB.
-
-  This macro returns the HobLength field from the HOB header for the
-  HOB specified by HobStart.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return HobLength.
-
-**/
-#define GET_HOB_LENGTH(HobStart) \
-  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobLength)
-
-/**
-  Returns a pointer to the next HOB in the HOB list.
-
-  This macro returns a pointer to HOB that follows the
-  HOB specified by HobStart in the HOB List.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return A pointer to the next HOB in the HOB list.
-
-**/
-#define GET_NEXT_HOB(HobStart) \
-  (VOID *)(*(UINT8 **)&(HobStart) + GET_HOB_LENGTH (HobStart))
-
-/**
-  Determines if a HOB is the last HOB in the HOB list.
-
-  This macro determine if the HOB specified by HobStart is the
-  last HOB in the HOB list.  If HobStart is last HOB in the HOB list,
-  then TRUE is returned.  Otherwise, FALSE is returned.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @retval TRUE       The HOB specified by HobStart is the last HOB in the HOB list.
-  @retval FALSE      The HOB specified by HobStart is not the last HOB in the HOB list.
-
-**/
-#define END_OF_HOB_LIST(HobStart)  (GET_HOB_TYPE (HobStart) == (UINT16)EFI_HOB_TYPE_END_OF_HOB_LIST)
-
-/**
-  Returns a pointer to data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  This macro returns a pointer to the data buffer in a HOB specified by HobStart.
-  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  @param   GuidHob   A pointer to a HOB.
-
-  @return  A pointer to the data buffer in a HOB.
-
-**/
-#define GET_GUID_HOB_DATA(HobStart) \
-  (VOID *)(*(UINT8 **)&(HobStart) + sizeof (EFI_HOB_GUID_TYPE))
-
-/**
-  Returns the size of the data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  This macro returns the size, in bytes, of the data buffer in a HOB specified by HobStart.
-  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  @param   GuidHob   A pointer to a HOB.
-
-  @return  The size of the data buffer.
-**/
-#define GET_GUID_HOB_DATA_SIZE(HobStart) \
-  (UINT16)(GET_HOB_LENGTH (HobStart) - sizeof (EFI_HOB_GUID_TYPE))
-
-
-/**
-
- FSP specific GUID HOB definitions
-
- **/
-#define FSP_INFO_HEADER_GUID \
-  { \
-  0x912740BE, 0x2284, 0x4734, {0xB9, 0x71, 0x84, 0xB0, 0x27, 0x35, 0x3F, 0x0C} \
-  }
-
-#define FSP_NON_VOLATILE_STORAGE_HOB_GUID \
-  { \
-  0x721acf02, 0x4d77, 0x4c2a, { 0xb3, 0xdc, 0x27, 0xb, 0x7b, 0xa9, 0xe4, 0xb0 } \
-  }
-
-#define FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID \
-  { \
-  0xbbcff46c, 0xc8d3, 0x4113, { 0x89, 0x85, 0xb9, 0xd4, 0xf3, 0xb3, 0xf6, 0x4e } \
-  }
-
-#define FSP_HOB_RESOURCE_OWNER_FSP_GUID \
-  { \
-  0x69a79759, 0x1373, 0x4367, { 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e } \
-  }
-
-#define FSP_HOB_RESOURCE_OWNER_TSEG_GUID \
-  { \
-  0xd038747c, 0xd00c, 0x4980, { 0xb3, 0x19, 0x49, 0x01, 0x99, 0xa4, 0x7d, 0x55 } \
-  }
-
-#define FSP_HOB_RESOURCE_OWNER_GRAPHICS_GUID \
-  { \
-  0x9c7c3aa7, 0x5332, 0x4917, { 0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07 } \
-  }
-
-#define FSP_HOB_GRAPHICS_INFO_GUID \
-{ 0x39f62cce, 0x6825, 0x4669, { 0xbb, 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, 0x07 } }
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspinfoheader.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspinfoheader.h
deleted file mode 100644
index e630788..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspinfoheader.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_INFOHEADER_H__
-#define __FSP_INFOHEADER_H__
-
-///
-/// Fixed FSP header offset in the FSP image
-///
-#define  FSP_INFO_HEADER_OFF    0x94
-
-#pragma pack(1)
-
-typedef struct  {
-  ///
-  /// Signature ('FSPH') for the FSP Information Header
-  ///
-  UINT32  Signature;
-  ///
-  /// Length of the FSP Information Header
-  ///
-  UINT32  HeaderLength;
-  ///
-  /// Reserved
-  ///
-  UINT8   Reserved1[3];
-  ///
-  /// Revision of the FSP Information Header
-  ///
-  UINT8   HeaderRevision;
-  ///
-  /// Revision of the FSP binary
-  ///
-  UINT32  ImageRevision;
-
-
-  ///
-  /// Signature string that will help match the FSP Binary to a supported
-  /// hardware configuration.
-  ///
-  CHAR8   ImageId[8];
-  ///
-  /// Size of the entire FSP binary
-  ///
-  UINT32  ImageSize;
-  ///
-  /// FSP binary preferred base address
-  ///
-  UINT32  ImageBase;
-
-
-  ///
-  /// Attribute for the FSP binary
-  ///
-  UINT32  ImageAttribute;
-  ///
-  /// Offset of the FSP configuration region
-  ///
-  UINT32  CfgRegionOffset;
-  ///
-  /// Size of the FSP configuration region
-  ///
-  UINT32  CfgRegionSize;
-  ///
-  /// Number of API entries this FSP supports
-  ///
-  UINT32  ApiEntryNum;
-
-
-  ///
-  /// TempRamInit API entry offset
-  ///
-  UINT32  TempRamInitEntry;
-  ///
-  /// FspInit API entry offset
-  ///
-  UINT32  FspInitEntry;
-  ///
-  /// NotifyPhase API entry offset
-  ///
-  UINT32  NotifyPhaseEntry;
-  ///
-  /// Reserved
-  ///
-  UINT32  Reserved2;
-
-} FSP_INFO_HEADER;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspplatform.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspplatform.h
deleted file mode 100644
index 4bb03d5..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspplatform.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_PLATFORM_H__
-#define __FSP_PLATFORM_H__
-
-#pragma pack(1)
-
-typedef struct {
-  uint32_t            RedMask;
-  uint32_t            GreenMask;
-  uint32_t            BlueMask;
-  uint32_t            ReservedMask;
-} EFI_PIXEL_BITMASK;
-
-typedef enum {
-  PixelRedGreenBlueReserved8BitPerColor,
-  PixelBlueGreenRedReserved8BitPerColor,
-  PixelBitMask,
-  PixelBltOnly,
-  PixelFormatMax
-} EFI_GRAPHICS_PIXEL_FORMAT;
-
-typedef struct {
-  uint32_t                     Version;
-  uint32_t                     HorizontalResolution;
-  uint32_t                     VerticalResolution;
-  EFI_GRAPHICS_PIXEL_FORMAT  PixelFormat;
-  EFI_PIXEL_BITMASK          PixelInformation;
-  uint32_t                     PixelsPerScanLine;
-} EFI_GRAPHICS_OUTPUT_MODE_INFORMATION;
-
-typedef struct {
-  uint64_t FrameBufferBase;
-  uint64_t FrameBufferSize;
-  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION GraphicsMode;
-} PLATFORM_GRAPHICS_OUTPUT;
-
-typedef struct {
-  ///
-  /// FSP common runtime data structure
-  ///
-  FSP_INIT_RT_COMMON_BUFFER  Common;
-} FSP_INIT_RT_BUFFER;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspsupport.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspsupport.h
deleted file mode 100644
index a12cf27..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspsupport.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/**
-
-Copyright (C) 2013-2016 Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_SUPPORT_H__
-#define __FSP_SUPPORT_H__
-
-UINT32
-GetPhysicalLowMemTop (
-  CONST VOID       *HobStart
-  );
-
-UINT32
-GetUsableLowMemTop (
-  CONST VOID             *HobListPtr
-  );
-
-UINT64
-GetUsableHighMemTop (
-  CONST VOID             *HobListPtr
-  );
-
-VOID *
-GetGuidHobDataBuffer (
-  CONST VOID             *HobListPtr,
-  UINT32                 *Length,
-  EFI_GUID               *Guid
-  );
-
-UINT64
-GetFspReservedMemoryFromGuid (
-  CONST VOID             *HobListPtr,
-  UINT64                 *FspMemoryLength,
-  EFI_GUID               *FspReservedMemoryGuid
-  );
-
-UINT32
-GetTsegReservedMemory (
-  CONST VOID             *HobListPtr,
-  UINT32                 *Length
-  );
-
-UINT32
-GetFspReservedMemory (
-  CONST VOID             *HobListPtr,
-  UINT32                 *Length
-  );
-
-VOID*
-GetFspNvsDataBuffer (
-  CONST VOID             *HobListPtr,
-  UINT32                 *Length
-  );
-
-VOID *
-GetBootloaderTempMemoryBuffer (
-  CONST VOID             *HobListPtr,
-  UINT32                 *Length
-  );
-
-VOID *
-EFIAPI
-GetNextHob (
-  UINT16                 Type,
-  CONST VOID             *HobStart
-  );
-
-VOID *
-EFIAPI
-GetFirstHob (
-  UINT16                 Type
-  );
-
-VOID *
-EFIAPI
-GetNextGuidHob (
-  CONST EFI_GUID         *Guid,
-  CONST VOID             *HobStart
-  );
-
-VOID *
-EFIAPI
-GetFirstGuidHob (
-  CONST EFI_GUID         *Guid
-  );
-
-VOID
-UpdateFspUpdConfigs (
-  UPD_DATA_REGION        *UpdDataRgn
-  );
-
-#endif
\ No newline at end of file
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fsptypes.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fsptypes.h
deleted file mode 100644
index c8e38e4..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fsptypes.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_TYPES_H__
-#define __FSP_TYPES_H__
-
-///
-/// 8-byte unsigned value.
-///
-typedef unsigned long long  UINT64;
-
-///
-/// 8-byte signed value.
-///
-typedef long long           INT64;
-
-///
-/// 4-byte unsigned value.
-///
-typedef unsigned int        UINT32;
-
-///
-/// 4-byte signed value.
-///
-typedef int                 INT32;
-
-///
-/// 2-byte unsigned value.
-///
-typedef unsigned short      UINT16;
-
-///
-/// 2-byte Character.
-///
-typedef unsigned short      CHAR16;
-///
-/// 2-byte signed value.
-///
-typedef short               INT16;
-
-///
-/// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
-/// values are undefined.
-///
-typedef unsigned char       BOOLEAN;
-
-///
-/// 1-byte unsigned value.
-///
-typedef unsigned char       UINT8;
-
-///
-/// 1-byte Character
-///
-typedef char                CHAR8;
-
-///
-/// 1-byte signed value
-///
-typedef char                INT8;
-
-///
-/// Undeclared type.
-///
-typedef void                VOID;
-
-///
-/// 64-bit physical memory address.
-///
-typedef UINT64              EFI_PHYSICAL_ADDRESS;
-
-///
-/// UEFI and FSP defined status.
-///
-typedef UINT32              EFI_STATUS;
-#define FSP_STATUS          EFI_STATUS
-
-///
-/// Datum is read-only.
-///
-#define CONST     const
-
-///
-/// Datum is scoped to the current file or function.
-///
-#define STATIC    static
-
-///
-/// Boolean true value.  UEFI Specification defines this value to be 1,
-/// but this form is more portable.
-///
-#define TRUE  ((BOOLEAN)(1==1))
-
-///
-/// Boolean false value.  UEFI Specification defines this value to be 0,
-/// but this form is more portable.
-///
-#define FALSE ((BOOLEAN)(0==1))
-
-///
-/// Null pointer
-///
-#ifndef NULL
-#define NULL  ((VOID *) 0)
-#endif
-
-///
-/// Modifier to ensure that all API functions use the correct C calling
-/// convention.
-///
-#define EFIAPI __attribute__((cdecl))
-#define FSPAPI EFIAPI
-
-///
-/// 128 bit buffer containing a unique identifier value.
-///
-typedef struct {
-  UINT32  Data1;
-  UINT16  Data2;
-  UINT16  Data3;
-  UINT8   Data4[8];
-} EFI_GUID;
-
-/**
-  Returns a 16-bit signature built from 2 ASCII characters.
-
-  This macro returns a 16-bit value built from the two ASCII characters specified
-  by A and B.
-
-  @param  A    The first ASCII character.
-  @param  B    The second ASCII character.
-
-  @return A 16-bit value built from the two ASCII characters specified by A and B.
-
-**/
-#define SIGNATURE_16(A, B)        ((A) | (B << 8))
-
-/**
-  Returns a 32-bit signature built from 4 ASCII characters.
-
-  This macro returns a 32-bit value built from the four ASCII characters specified
-  by A, B, C, and D.
-
-  @param  A    The first ASCII character.
-  @param  B    The second ASCII character.
-  @param  C    The third ASCII character.
-  @param  D    The fourth ASCII character.
-
-  @return A 32-bit value built from the two ASCII characters specified by A, B,
-          C and D.
-
-**/
-#define SIGNATURE_32(A, B, C, D)  (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16))
-
-/**
-  Returns a 64-bit signature built from 8 ASCII characters.
-
-  This macro returns a 64-bit value built from the eight ASCII characters specified
-  by A, B, C, D, E, F, G,and H.
-
-  @param  A    The first ASCII character.
-  @param  B    The second ASCII character.
-  @param  C    The third ASCII character.
-  @param  D    The fourth ASCII character.
-  @param  E    The fifth ASCII character.
-  @param  F    The sixth ASCII character.
-  @param  G    The seventh ASCII character.
-  @param  H    The eighth ASCII character.
-
-  @return A 64-bit value built from the two ASCII characters specified by A, B,
-          C, D, E, F, G and H.
-
-**/
-#define SIGNATURE_64(A, B, C, D, E, F, G, H) \
-    (SIGNATURE_32 (A, B, C, D) | ((UINT64) (SIGNATURE_32 (E, F, G, H)) << 32))
-
-///
-/// Assertion for debug
-///
-#define ASSERT(Expression)    do { if (!(Expression)) for (;;); } while (FALSE)
-
-///
-/// Define FSP API return status code.
-/// Compatiable with EFI_STATUS defined in PI Spec.
-///
-#define FSP_SUCCESS               0
-#define FSP_INVALID_PARAMETER     0x80000002
-#define FSP_UNSUPPORTED           0x80000003
-#define FSP_DEVICE_ERROR          0x80000007
-#define FSP_NOT_FOUND             0x8000000E
-#define FSP_ALREADY_STARTED       0x80000014
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspvpd.h b/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspvpd.h
deleted file mode 100644
index f5f862a..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/include/fspvpd.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
-
-Copyright (C) 2015-2016 Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_VPD_H__
-#define __FSP_VPD_H__
-
-#pragma pack(1)
-
-typedef struct _UPD_DATA_REGION {
-  UINT64              Signature;                        /* Offset 0x0000 */
-  UINT64              Reserved;                         /* Offset 0x0008 */
-  UINT8               UnusedUpdSpace0[16];              /* Offset 0x0010 */
-  UINT8               SerialPortType;                   /* Offset 0x0020 */
-  UINT32              SerialPortAddress;                /* Offset 0x0021 */
-  UINT8               SerialPortConfigure;              /* Offset 0x0025 */
-  UINT8               SerialPortBaudRate;               /* Offset 0x0026 */
-  UINT8               SerialPortControllerInit0;        /* Offset 0x0027 */
-  UINT8               SerialPortControllerInit1;        /* Offset 0x0028 */
-  UINT8               ConfigIOU1_PciPort3;              /* Offset 0x0029 */
-  UINT8               ConfigIOU2_PciPort1;              /* Offset 0x002A */
-  UINT8               PowerStateAfterG3;                /* Offset 0x002B */
-  UINT8               PchPciPort1;                      /* Offset 0x002C */
-  UINT8               PchPciPort2;                      /* Offset 0x002D */
-  UINT8               PchPciPort3;                      /* Offset 0x002E */
-  UINT8               PchPciPort4;                      /* Offset 0x002F */
-  UINT8               PchPciPort5;                      /* Offset 0x0030 */
-  UINT8               PchPciPort6;                      /* Offset 0x0031 */
-  UINT8               PchPciPort7;                      /* Offset 0x0032 */
-  UINT8               PchPciPort8;                      /* Offset 0x0033 */
-  UINT8               HotPlug_PchPciPort1;              /* Offset 0x0034 */
-  UINT8               HotPlug_PchPciPort2;              /* Offset 0x0035 */
-  UINT8               HotPlug_PchPciPort3;              /* Offset 0x0036 */
-  UINT8               HotPlug_PchPciPort4;              /* Offset 0x0037 */
-  UINT8               HotPlug_PchPciPort5;              /* Offset 0x0038 */
-  UINT8               HotPlug_PchPciPort6;              /* Offset 0x0039 */
-  UINT8               HotPlug_PchPciPort7;              /* Offset 0x003A */
-  UINT8               HotPlug_PchPciPort8;              /* Offset 0x003B */
-  UINT8               Ehci1Enable;                      /* Offset 0x003C */
-  UINT8               Ehci2Enable;                      /* Offset 0x003D */
-  UINT8               HyperThreading;                   /* Offset 0x003E */
-  UINT8               DebugOutputLevel;                 /* Offset 0x003F */
-  UINT8               TcoTimerHaltLock;                 /* Offset 0x0040 */
-  UINT8               TurboMode;                        /* Offset 0x0041 */
-  UINT8               BootPerfMode;                     /* Offset 0x0042 */
-  UINT8               PciePort1aAspm;                   /* Offset 0x0043 */
-  UINT8               PciePort1bAspm;                   /* Offset 0x0044 */
-  UINT8               PciePort3aAspm;                   /* Offset 0x0045 */
-  UINT8               PciePort3bAspm;                   /* Offset 0x0046 */
-  UINT8               PciePort3cAspm;                   /* Offset 0x0047 */
-  UINT8               PciePort3dAspm;                   /* Offset 0x0048 */
-  UINT8               PchPciePort1Aspm;                 /* Offset 0x0049 */
-  UINT8               PchPciePort2Aspm;                 /* Offset 0x004A */
-  UINT8               PchPciePort3Aspm;                 /* Offset 0x004B */
-  UINT8               PchPciePort4Aspm;                 /* Offset 0x004C */
-  UINT8               PchPciePort5Aspm;                 /* Offset 0x004D */
-  UINT8               PchPciePort6Aspm;                 /* Offset 0x004E */
-  UINT8               PchPciePort7Aspm;                 /* Offset 0x004F */
-  UINT8               PchPciePort8Aspm;                 /* Offset 0x0050 */
-  UINT8               DFXEnable;                        /* Offset 0x0051 */
-  UINT8               ThermalDeviceEnable;              /* Offset 0x0052 */
-  UINT8               UnusedUpdSpace1[88];              /* Offset 0x0053 */
-  UINT8               MemEccSupport;                    /* Offset 0x00AB */
-  UINT8               MemDdrMemoryType;                 /* Offset 0x00AC */
-  UINT8               MemRankMultiplication;            /* Offset 0x00AD */
-  UINT8               MemRankMarginTool;                /* Offset 0x00AE */
-  UINT8               MemScrambling;                    /* Offset 0x00AF */
-  UINT8               MemRefreshMode;                   /* Offset 0x00B0 */
-  UINT8               MemMcOdtOverride;                 /* Offset 0x00B1 */
-  UINT8               MemCAParity;                      /* Offset 0x00B2 */
-  UINT8               MemThermalThrottling;             /* Offset 0x00B3 */
-  UINT8               MemPowerSavingsMode;              /* Offset 0x00B4 */
-  UINT8               MemElectricalThrottling;          /* Offset 0x00B5 */
-  UINT8               MemPagePolicy;                    /* Offset 0x00B6 */
-  UINT8               MemSocketInterleaveBelow4G;       /* Offset 0x00B7 */
-  UINT8               MemChannelInterleave;             /* Offset 0x00B8 */
-  UINT8               MemRankInterleave;                /* Offset 0x00B9 */
-  UINT8               MemDownEnable;                    /* Offset 0x00BA */
-  UINT32              MemDownCh0Dimm0SpdPtr;            /* Offset 0x00BB */
-  UINT32              MemDownCh0Dimm1SpdPtr;            /* Offset 0x00BF */
-  UINT32              MemDownCh1Dimm0SpdPtr;            /* Offset 0x00C3 */
-  UINT32              MemDownCh1Dimm1SpdPtr;            /* Offset 0x00C7 */
-  UINT8               MemFastBoot;                      /* Offset 0x00CB */
-  UINT8               pam0_hienable;                    /* Offset 0x00CC */
-  UINT8               pam1_loenable;                    /* Offset 0x00CD */
-  UINT8               pam1_hienable;                    /* Offset 0x00CE */
-  UINT8               pam2_loenable;                    /* Offset 0x00CF */
-  UINT8               pam2_hienable;                    /* Offset 0x00D0 */
-  UINT8               pam3_loenable;                    /* Offset 0x00D1 */
-  UINT8               pam3_hienable;                    /* Offset 0x00D2 */
-  UINT8               pam4_loenable;                    /* Offset 0x00D3 */
-  UINT8               pam4_hienable;                    /* Offset 0x00D4 */
-  UINT8               pam5_loenable;                    /* Offset 0x00D5 */
-  UINT8               pam5_hienable;                    /* Offset 0x00D6 */
-  UINT8               pam6_loenable;                    /* Offset 0x00D7 */
-  UINT8               pam6_hienable;                    /* Offset 0x00D8 */
-  UINT8               MemAdr;                           /* Offset 0x00D9 */
-  UINT8               MemAdrResumePath;                 /* Offset 0x00DA */
-  UINT8               MemBlockScTrafficOnAdr;           /* Offset 0x00DB */
-  UINT16              MemPlatformReleaseAdrClampsPort;  /* Offset 0x00DC */
-  UINT32              MemPlatformReleaseAdrClampsAnd;   /* Offset 0x00DE */
-  UINT32              MemPlatformReleaseAdrClampsOr;    /* Offset 0x00E2 */
-  UINT8               UnusedUpdSpace2[24];              /* Offset 0x00E6 */
-  UINT16              PcdRegionTerminator;              /* Offset 0x00FE */
-} UPD_DATA_REGION;
-
-#define FSP_IMAGE_ID  0x5F45442D5844425F                /* '_BDX-DE_' */
-#define FSP_IMAGE_REV 0x00000301
-
-typedef struct _VPD_DATA_REGION {
-  UINT64              PcdVpdRegionSign;                 /* Offset 0x0000 */
-  UINT32              PcdImageRevision;                 /* Offset 0x0008 */
-  UINT32              PcdUpdRegionOffset;               /* Offset 0x000C */
-  UINT8               UnusedVpdSpace0[16];              /* Offset 0x0010 */
-  UINT32              PcdFspReservedMemoryLength;       /* Offset 0x0020 */
-} VPD_DATA_REGION;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/broadwell_de/srx/fspsupport.c b/src/vendorcode/intel/fsp1_0/broadwell_de/srx/fspsupport.c
deleted file mode 100644
index 96fd984..0000000
--- a/src/vendorcode/intel/fsp1_0/broadwell_de/srx/fspsupport.c
+++ /dev/null
@@ -1,454 +0,0 @@
-/**
-
-Copyright (C) 2013-2016 Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#include <types.h>
-#include <string.h>
-#include <fsp.h>
-
-/**
-  Reads a 64-bit value from memory that may be unaligned.
-
-  This function returns the 64-bit value pointed to by Buffer. The function
-  guarantees that the read operation does not produce an alignment fault.
-
-  If the Buffer is NULL, then ASSERT().
-
-  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
-  @return The 64-bit value read from Buffer.
-
-**/
-STATIC
-UINT64
-EFIAPI
-ReadUnaligned64 (
-  CONST UINT64        *Buffer
-  )
-{
-  ASSERT (Buffer != NULL);
-  return *Buffer;
-}
-
-/**
-  Compares two GUIDs.
-
-  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
-  If there are any bit differences in the two GUIDs, then FALSE is returned.
-
-  If Guid1 is NULL, then ASSERT().
-  If Guid2 is NULL, then ASSERT().
-
-  @param  Guid1     A pointer to a 128 bit GUID.
-  @param  Guid2     A pointer to a 128 bit GUID.
-  @retval TRUE      Guid1 and Guid2 are identical.
-  @retval FALSE     Guid1 and Guid2 are not identical.
-
-**/
-STATIC
-BOOLEAN
-EFIAPI
-CompareGuid (
-  CONST EFI_GUID  *Guid1,
-  CONST EFI_GUID  *Guid2
-  )
-{
-  UINT64  LowPartOfGuid1;
-  UINT64  LowPartOfGuid2;
-  UINT64  HighPartOfGuid1;
-  UINT64  HighPartOfGuid2;
-
-  LowPartOfGuid1  = ReadUnaligned64 ((CONST UINT64*) Guid1);
-  LowPartOfGuid2  = ReadUnaligned64 ((CONST UINT64*) Guid2);
-  HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1);
-  HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1);
-
-  return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2);
-}
-
-/**
-  Returns the next instance of a HOB type from the starting HOB.
-
-  @param  Type      HOB type to search
-  @param  HobStart  A pointer to the HOB list
-  @retval a HOB object with matching type; Otherwise NULL.
-
-**/
-VOID *
-EFIAPI
-GetNextHob (
-  UINT16           Type,
-  CONST VOID       *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  Hob;
-
-  ASSERT (HobStart != NULL);
-
-  Hob.Raw = (UINT8 *) HobStart;
-  /*
-   * Parse the HOB list until end of list or matching type is found.
-   */
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == Type) {
-      return Hob.Raw;
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-
-  return NULL;
-}
-
-/**
-  Returns the next instance of the matched GUID HOB from the starting HOB.
-
-  @param  Guid      GUID to search
-  @param  HobStart  A pointer to the HOB list
-  @retval a HOB object with matching GUID; Otherwise NULL.
-
-**/
-VOID *
-EFIAPI
-GetNextGuidHob (
-  CONST EFI_GUID     *Guid,
-  CONST VOID         *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  GuidHob;
-
-  GuidHob.Raw = (UINT8 *) HobStart;
-  while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
-    if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
-      break;
-    }
-    GuidHob.Raw = GET_NEXT_HOB (GuidHob);
-  }
-
-  return GuidHob.Raw;
-}
-
-/**
-  This function retrieves the top of usable low memory.
-
-  @param    HobListPtr   A HOB list pointer.
-  @retval                Usable low memory top.
-
-**/
-UINT32
-GetUsableLowMemTop (
-  CONST VOID       *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  Hob;
-  UINT32          MemLen;
-  /*
-   * Get the HOB list for processing
-   */
-  Hob.Raw = (VOID *)HobStart;
-
-  /*
-   * Collect memory ranges
-   */
-  MemLen = 0x100000;
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
-      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
-        /*
-         * Need memory above 1MB to be collected here
-         */
-        if (Hob.ResourceDescriptor->PhysicalStart >= 0x100000 &&
-            Hob.ResourceDescriptor->PhysicalStart < (EFI_PHYSICAL_ADDRESS) 0x100000000) {
-          MemLen += (UINT32) (Hob.ResourceDescriptor->ResourceLength);
-        }
-      }
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-
-  return MemLen;
-}
-
-/**
-  This function retrieves the top of system low memory.
-
-  @param    HobListPtr   A HOB list pointer.
-  @retval                Usable low memory top.
-
-**/
-UINT32
-GetPhysicalLowMemTop (
-  CONST VOID       *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  Hob;
-  UINT32            MemBase;
-  UINT32            MemLen;
-
-  /*
-   * Get the HOB list for processing
-   */
-  Hob.Raw = (VOID *)HobStart;
-
-  /*
-   * Collect memory ranges
-   */
-  MemBase = 0x100000;
-  MemLen  = 0;
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
-      if ((Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) ||
-           (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED)) {
-        /*
-         * Need memory above 1MB to be collected here
-         */
-        if (Hob.ResourceDescriptor->PhysicalStart >= MemBase &&
-            Hob.ResourceDescriptor->PhysicalStart < (EFI_PHYSICAL_ADDRESS) 0x100000000) {
-          MemBase = (UINT32) (Hob.ResourceDescriptor->PhysicalStart);
-          MemLen  = (UINT32) (Hob.ResourceDescriptor->ResourceLength);
-        }
-      }
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-
-  return MemBase + MemLen;
-}
-
-/**
-  This function retrieves the top of usable high memory.
-
-  @param  HobListPtr   A HOB list pointer.
-  @retval              Usable high memory top.
-
-**/
-UINT64
-GetUsableHighMemTop (
-  CONST VOID       *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  Hob;
-  UINT64                MemTop;
-  /*
-   * Get the HOB list for processing
-   */
-  Hob.Raw = (VOID *)HobStart;
-
-  /*
-   * Collect memory ranges
-   */
-  MemTop = 0x100000000;
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
-      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
-        /*
-         * Need memory above 1MB to be collected here
-         */
-        if (Hob.ResourceDescriptor->PhysicalStart >= (EFI_PHYSICAL_ADDRESS) 0x100000000) {
-          MemTop += (UINT64) (Hob.ResourceDescriptor->ResourceLength);
-        }
-      }
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-
-  return MemTop;
-}
-
-/**
-  This function retrieves a special reserved memory region.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the GUID HOB data buffer length.  If the GUID HOB is
-                       located, the length will be updated.
-  @param  OwnerGuid    A pointer to the owner guild.
-  @retval              Reserved region start address.  0 if this region does not exist.
-
-**/
-UINT64
-GetFspReservedMemoryFromGuid (
-  CONST VOID     *HobListPtr,
-  UINT64         *Length,
-  EFI_GUID       *OwnerGuid
-  )
-{
-  EFI_PEI_HOB_POINTERS    Hob;
-
-  /*
-   * Get the HOB list for processing
-   */
-  Hob.Raw = (VOID *)HobListPtr;
-
-  /*
-   * Collect memory ranges
-   */
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
-      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED) {
-        if (CompareGuid(&Hob.ResourceDescriptor->Owner, OwnerGuid)) {
-          if (Length) {
-            *Length = (UINT32) (Hob.ResourceDescriptor->ResourceLength);
-          }
-          return (UINT64)(Hob.ResourceDescriptor->PhysicalStart);
-        }
-      }
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-
-  return 0;
-}
-
-/**
-  This function retrieves the TSEG reserved normal memory.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the TSEG reserved memory length buffer.  If the GUID HOB is
-                       located, the length will be updated.
-  @param  Guid         A pointer to owner HOB GUID.
-  @retval NULL         Failed to find the TSEG reserved memory.
-  @retval others       TSEG reserved memory base.
-
-**/
-UINT32
-GetTsegReservedMemory (
-  CONST VOID       *HobListPtr,
-  UINT32           *Length
-  )
-{
-  const EFI_GUID    TsegOwnerHobGuid = FSP_HOB_RESOURCE_OWNER_TSEG_GUID;
-  UINT64            Length64;
-  UINT32            Base;
-
-  Base = (UINT32)GetFspReservedMemoryFromGuid (HobListPtr, &Length64, (EFI_GUID *)&TsegOwnerHobGuid);
-  if ((Length != 0) && (Base != 0)) {
-    *Length = (UINT32)Length64;
-  }
-
-  return Base;
-}
-
-/**
-  This function retrieves the FSP reserved normal memory.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the FSP reserved memory length buffer.  If the GUID HOB is
-                       located, the length will be updated.
-  @param  Guid         A pointer to owner HOB GUID.
-  @retval NULL         Failed to find the FSP reserved memory.
-  @retval others       FSP reserved memory base.
-
-**/
-UINT32
-GetFspReservedMemory (
-  CONST VOID       *HobListPtr,
-  UINT32           *Length
-  )
-{
-  const EFI_GUID    FspOwnerHobGuid = FSP_HOB_RESOURCE_OWNER_FSP_GUID;
-  UINT64            Length64;
-  UINT32            Base;
-
-  Base = (UINT32)GetFspReservedMemoryFromGuid (HobListPtr, &Length64, (EFI_GUID *)&FspOwnerHobGuid);
-  if ((Length != 0) && (Base != 0)) {
-    *Length = (UINT32)Length64;
-  }
-
-  return Base;
-}
-
-/**
-  This function retrieves a GUIDed HOB data buffer and size.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the GUID HOB data buffer length.  If the
-                       GUID HOB is located, the length will be updated.
-  @param  Guid         A pointer to HOB GUID.
-  @retval NULL         Failed to find the GUID HOB.
-  @retval others       GUID HOB data buffer pointer.
-
-**/
-VOID *
-GetGuidHobDataBuffer (
-  CONST VOID       *HobListPtr,
-  UINT32           *Length,
-  EFI_GUID         *Guid
-  )
-{
-  UINT8        *GuidHob;
-
-  /* FSP NVS DATA HOB */
-  GuidHob = GetNextGuidHob(Guid, HobListPtr);
-  if (GuidHob == NULL) {
-    return NULL;
-  } else {
-    if (Length) {
-      *Length = GET_GUID_HOB_DATA_SIZE (GuidHob);
-    }
-    return GET_GUID_HOB_DATA (GuidHob);
-  }
-}
-
-/**
-  This function retrieves FSP Non-volatile Storage HOB buffer and size.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the NVS data buffer length.  If the FSP NVS
-                       HOB is located, the length will be updated.
-  @retval NULL         Failed to find the NVS HOB.
-  @retval others       FSP NVS data buffer pointer.
-
-**/
-VOID *
-GetFspNvsDataBuffer (
-  CONST VOID       *HobListPtr,
-  UINT32           *Length
-  )
-{
-  const EFI_GUID    FspNvsHobGuid = FSP_NON_VOLATILE_STORAGE_HOB_GUID;
-  return GetGuidHobDataBuffer (HobListPtr, Length, (EFI_GUID *)&FspNvsHobGuid);
-}
-
-/**
-  This function retrieves Bootloader temporary stack buffer and size.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the Bootloader temporary stack length.
-                       If the HOB is located, the length will be updated.
-  @retval NULL         Failed to find the Bootloader temporary stack HOB.
-  @retval others       Bootloader temporary stackbuffer pointer.
-
-**/
-VOID *
-GetBootloaderTempMemoryBuffer (
-  CONST VOID       *HobListPtr,
-  UINT32           *Length
-  )
-{
-  const EFI_GUID    FspBootloaderTemporaryMemoryHobGuid = FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID;
-  return GetGuidHobDataBuffer (HobListPtr, Length, (EFI_GUID *)&FspBootloaderTemporaryMemoryHobGuid);
-}
\ No newline at end of file
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspapi.h b/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspapi.h
deleted file mode 100644
index 9520736..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspapi.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_API_H_
-#define _FSP_API_H_
-
-#pragma pack(1)
-
-typedef VOID (* CONTINUATION_PROC)(EFI_STATUS Status, VOID *HobListPtr);
-
-typedef struct {
-  VOID              *NvsBufferPtr;
-  VOID              *RtBufferPtr;
-  CONTINUATION_PROC   ContinuationFunc;
-} FSP_INIT_PARAMS;
-
-typedef struct {
-  UINT32            *StackTop;
-  UINT32             BootMode;
-} FSP_INIT_RT_COMMON_BUFFER;
-
-typedef enum {
-  EnumInitPhaseAfterPciEnumeration = 0x20,
-  EnumInitPhaseReadyToBoot = 0x40
-} FSP_INIT_PHASE;
-
-typedef struct {
-  FSP_INIT_PHASE     Phase;
-} NOTIFY_PHASE_PARAMS;
-
-#pragma pack()
-
-typedef FSP_STATUS (FSPAPI *FSP_FSP_INIT)    (FSP_INIT_PARAMS     *FspInitParamPtr);
-typedef FSP_STATUS (FSPAPI *FSP_NOTFY_PHASE) (NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr);
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspffs.h b/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspffs.h
deleted file mode 100644
index 7a7c367..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspffs.h
+++ /dev/null
@@ -1,506 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-
-#ifndef __PI_FIRMWARE_FILE_H__
-#define __PI_FIRMWARE_FILE_H__
-
-#pragma pack(1)
-///
-/// Used to verify the integrity of the file.
-///
-typedef union {
-  struct {
-    ///
-    /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
-    /// header. The State and IntegrityCheck.Checksum.File fields are assumed
-    /// to be zero and the checksum is calculated such that the entire header sums to zero.
-    ///
-    UINT8   Header;
-    ///
-    /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
-    /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
-    /// checksum of the file data.
-    /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
-    /// the IntegrityCheck.Checksum.File field must be initialized with a value of
-    /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
-    /// EFI_FILE_DATA_VALID bit is set in the State field.
-    ///
-    UINT8   File;
-  } Checksum;
-  ///
-  /// This is the full 16 bits of the IntegrityCheck field.
-  ///
-  UINT16    Checksum16;
-} EFI_FFS_INTEGRITY_CHECK;
-
-///
-/// FFS_FIXED_CHECKSUM is the checksum value used when the
-/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
-///
-#define FFS_FIXED_CHECKSUM  0xAA
-
-typedef UINT8 EFI_FV_FILETYPE;
-typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
-typedef UINT8 EFI_FFS_FILE_STATE;
-
-///
-/// File Types Definitions
-///
-#define EFI_FV_FILETYPE_ALL                   0x00
-#define EFI_FV_FILETYPE_RAW                   0x01
-#define EFI_FV_FILETYPE_FREEFORM              0x02
-#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
-#define EFI_FV_FILETYPE_PEI_CORE              0x04
-#define EFI_FV_FILETYPE_DXE_CORE              0x05
-#define EFI_FV_FILETYPE_PEIM                  0x06
-#define EFI_FV_FILETYPE_DRIVER                0x07
-#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
-#define EFI_FV_FILETYPE_APPLICATION           0x09
-#define EFI_FV_FILETYPE_SMM                   0x0A
-#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
-#define EFI_FV_FILETYPE_COMBINED_SMM_DXE      0x0C
-#define EFI_FV_FILETYPE_SMM_CORE              0x0D
-#define EFI_FV_FILETYPE_OEM_MIN               0xc0
-#define EFI_FV_FILETYPE_OEM_MAX               0xdf
-#define EFI_FV_FILETYPE_DEBUG_MIN             0xe0
-#define EFI_FV_FILETYPE_DEBUG_MAX             0xef
-#define EFI_FV_FILETYPE_FFS_MIN               0xf0
-#define EFI_FV_FILETYPE_FFS_MAX               0xff
-#define EFI_FV_FILETYPE_FFS_PAD               0xf0
-///
-/// FFS File Attributes.
-///
-#define FFS_ATTRIB_LARGE_FILE         0x01
-#define FFS_ATTRIB_FIXED              0x04
-#define FFS_ATTRIB_DATA_ALIGNMENT     0x38
-#define FFS_ATTRIB_CHECKSUM           0x40
-
-///
-/// FFS File State Bits.
-///
-#define EFI_FILE_HEADER_CONSTRUCTION  0x01
-#define EFI_FILE_HEADER_VALID         0x02
-#define EFI_FILE_DATA_VALID           0x04
-#define EFI_FILE_MARKED_FOR_UPDATE    0x08
-#define EFI_FILE_DELETED              0x10
-#define EFI_FILE_HEADER_INVALID       0x20
-
-
-///
-/// Each file begins with the header that describe the
-/// contents and state of the files.
-///
-typedef struct {
-  ///
-  /// This GUID is the file name. It is used to uniquely identify the file.
-  ///
-  EFI_GUID                Name;
-  ///
-  /// Used to verify the integrity of the file.
-  ///
-  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
-  ///
-  /// Identifies the type of file.
-  ///
-  EFI_FV_FILETYPE         Type;
-  ///
-  /// Declares various file attribute bits.
-  ///
-  EFI_FFS_FILE_ATTRIBUTES Attributes;
-  ///
-  /// The length of the file in bytes, including the FFS header.
-  ///
-  UINT8                   Size[3];
-  ///
-  /// Used to track the state of the file throughout the life of the file from creation to deletion.
-  ///
-  EFI_FFS_FILE_STATE      State;
-} EFI_FFS_FILE_HEADER;
-
-typedef struct {
-  ///
-  /// This GUID is the file name. It is used to uniquely identify the file. There may be only
-  /// one instance of a file with the file name GUID of Name in any given firmware
-  /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
-  ///
-  EFI_GUID                  Name;
-
-  ///
-  /// Used to verify the integrity of the file.
-  ///
-  EFI_FFS_INTEGRITY_CHECK   IntegrityCheck;
-
-  ///
-  /// Identifies the type of file.
-  ///
-  EFI_FV_FILETYPE           Type;
-
-  ///
-  /// Declares various file attribute bits.
-  ///
-  EFI_FFS_FILE_ATTRIBUTES   Attributes;
-
-  ///
-  /// The length of the file in bytes, including the FFS header.
-  /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
-  /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
-  /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
-  /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
-  ///
-  UINT8                     Size[3];
-
-  ///
-  /// Used to track the state of the file throughout the life of the file from creation to deletion.
-  ///
-  EFI_FFS_FILE_STATE        State;
-
-  ///
-  /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
-  /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
-  ///
-  UINT32                    ExtendedSize;
-} EFI_FFS_FILE_HEADER2;
-
-#define IS_FFS_FILE2(FfsFileHeaderPtr) \
-    (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
-
-#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
-
-#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
-    (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
-
-typedef UINT8 EFI_SECTION_TYPE;
-
-///
-/// Pseudo type. It is used as a wild card when retrieving sections.
-///  The section type EFI_SECTION_ALL matches all section types.
-///
-#define EFI_SECTION_ALL                   0x00
-
-///
-/// Encapsulation section Type values.
-///
-#define EFI_SECTION_COMPRESSION           0x01
-
-#define EFI_SECTION_GUID_DEFINED          0x02
-
-#define EFI_SECTION_DISPOSABLE            0x03
-
-///
-/// Leaf section Type values.
-///
-#define EFI_SECTION_PE32                  0x10
-#define EFI_SECTION_PIC                   0x11
-#define EFI_SECTION_TE                    0x12
-#define EFI_SECTION_DXE_DEPEX             0x13
-#define EFI_SECTION_VERSION               0x14
-#define EFI_SECTION_USER_INTERFACE        0x15
-#define EFI_SECTION_COMPATIBILITY16       0x16
-#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
-#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
-#define EFI_SECTION_RAW                   0x19
-#define EFI_SECTION_PEI_DEPEX             0x1B
-#define EFI_SECTION_SMM_DEPEX             0x1C
-
-///
-/// Common section header.
-///
-typedef struct {
-  ///
-  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
-  /// including the EFI_COMMON_SECTION_HEADER.
-  ///
-  UINT8             Size[3];
-  EFI_SECTION_TYPE  Type;
-  ///
-  /// Declares the section type.
-  ///
-} EFI_COMMON_SECTION_HEADER;
-
-typedef struct {
-  ///
-  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
-  /// including the EFI_COMMON_SECTION_HEADER.
-  ///
-  UINT8             Size[3];
-
-  EFI_SECTION_TYPE  Type;
-
-  ///
-  /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
-  /// Size is not equal to 0xFFFFFF, then this field does not exist.
-  ///
-  UINT32            ExtendedSize;
-} EFI_COMMON_SECTION_HEADER2;
-
-///
-/// Leaf section type that contains an
-/// IA-32 16-bit executable image.
-///
-typedef EFI_COMMON_SECTION_HEADER  EFI_COMPATIBILITY16_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
-
-///
-/// CompressionType of EFI_COMPRESSION_SECTION.
-///
-#define EFI_NOT_COMPRESSED        0x00
-#define EFI_STANDARD_COMPRESSION  0x01
-///
-/// An encapsulation section type in which the
-/// section data is compressed.
-///
-typedef struct {
-  ///
-  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// The UINT32 that indicates the size of the section data after decompression.
-  ///
-  UINT32                      UncompressedLength;
-  ///
-  /// Indicates which compression algorithm is used.
-  ///
-  UINT8                       CompressionType;
-} EFI_COMPRESSION_SECTION;
-
-typedef struct {
-  ///
-  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// UINT32 that indicates the size of the section data after decompression.
-  ///
-  UINT32                        UncompressedLength;
-  ///
-  /// Indicates which compression algorithm is used.
-  ///
-  UINT8                         CompressionType;
-} EFI_COMPRESSION_SECTION2;
-
-///
-/// An encapsulation section type in which the section data is disposable.
-/// A disposable section is an encapsulation section in which the section data may be disposed of during
-/// the process of creating or updating a firmware image without significant impact on the usefulness of
-/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
-/// allows optional or descriptive data to be included with the firmware file which can be removed in
-/// order to conserve space. The contents of this section are implementation specific, but might contain
-/// debug data or detailed integration instructions.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_DISPOSABLE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_DISPOSABLE_SECTION2;
-
-///
-/// The leaf section which could be used to determine the dispatch order of DXEs.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_DXE_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_DXE_DEPEX_SECTION2;
-
-///
-/// The leaf section which contains a PI FV.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
-
-///
-/// The leaf section which contains a single GUID.
-///
-typedef struct {
-  ///
-  /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
-  ///
-  EFI_GUID                    SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
-
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
-  ///
-  EFI_GUID                      SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
-
-///
-/// Attributes of EFI_GUID_DEFINED_SECTION.
-///
-#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED  0x01
-#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID    0x02
-///
-/// The leaf section which is encapsulation defined by specific GUID.
-///
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
-  ///
-  EFI_GUID                    SectionDefinitionGuid;
-  ///
-  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
-  ///
-  UINT16                      DataOffset;
-  ///
-  /// The bit field that declares some specific characteristics of the section contents.
-  ///
-  UINT16                      Attributes;
-} EFI_GUID_DEFINED_SECTION;
-
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
-  ///
-  EFI_GUID                      SectionDefinitionGuid;
-  ///
-  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
-  ///
-  UINT16                        DataOffset;
-  ///
-  /// The bit field that declares some specific characteristics of the section contents.
-  ///
-  UINT16                        Attributes;
-} EFI_GUID_DEFINED_SECTION2;
-
-///
-/// The leaf section which contains PE32+ image.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PE32_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PE32_SECTION2;
-
-///
-/// The leaf section used to determine the dispatch order of PEIMs.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PEI_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PEI_DEPEX_SECTION2;
-
-///
-/// A leaf section type that contains a position-independent-code (PIC) image.
-/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
-/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
-/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
-/// relocation information has been stripped from the image and the image can be moved and will
-/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
-/// be used if the section is 16MB or larger.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PIC_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PIC_SECTION2;
-
-///
-/// The leaf section which constains the position-independent-code image.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_TE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_TE_SECTION2;
-
-///
-/// The leaf section which contains an array of zero or more bytes.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_RAW_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_RAW_SECTION2;
-
-///
-/// The SMM dependency expression section is a leaf section that contains a dependency expression that
-/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
-/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
-/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
-/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
-/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
-///
-typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
-
-///
-/// The leaf section which contains a unicode string that
-/// is human readable file name.
-///
-typedef struct {
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-
-  ///
-  /// Array of unicode string.
-  ///
-  CHAR16                      FileNameString[1];
-} EFI_USER_INTERFACE_SECTION;
-
-typedef struct {
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  CHAR16                        FileNameString[1];
-} EFI_USER_INTERFACE_SECTION2;
-
-///
-/// The leaf section which contains a numeric build number and
-/// an optional unicode string that represents the file revision.
-///
-typedef struct {
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  UINT16                      BuildNumber;
-
-  ///
-  /// Array of unicode string.
-  ///
-  CHAR16                      VersionString[1];
-} EFI_VERSION_SECTION;
-
-typedef struct {
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// A UINT16 that represents a particular build. Subsequent builds have monotonically
-  /// increasing build numbers relative to earlier builds.
-  ///
-  UINT16                        BuildNumber;
-  CHAR16                        VersionString[1];
-} EFI_VERSION_SECTION2;
-
-#define IS_SECTION2(SectionHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
-
-#define SECTION_SIZE(SectionHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
-
-#define SECTION2_SIZE(SectionHeaderPtr) \
-    (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspfv.h b/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspfv.h
deleted file mode 100644
index 75d17fa..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspfv.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __PI_FIRMWAREVOLUME_H__
-#define __PI_FIRMWAREVOLUME_H__
-
-///
-/// EFI_FV_FILE_ATTRIBUTES
-///
-typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
-
-//
-// Value of EFI_FV_FILE_ATTRIBUTES.
-//
-#define EFI_FV_FILE_ATTRIB_ALIGNMENT      0x0000001F
-#define EFI_FV_FILE_ATTRIB_FIXED          0x00000100
-#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED  0x00000200
-
-///
-/// type of EFI FVB attribute
-///
-typedef UINT32  EFI_FVB_ATTRIBUTES_2;
-
-//
-// Attributes bit definitions
-//
-#define EFI_FVB2_READ_DISABLED_CAP  0x00000001
-#define EFI_FVB2_READ_ENABLED_CAP   0x00000002
-#define EFI_FVB2_READ_STATUS        0x00000004
-#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
-#define EFI_FVB2_WRITE_ENABLED_CAP  0x00000010
-#define EFI_FVB2_WRITE_STATUS       0x00000020
-#define EFI_FVB2_LOCK_CAP           0x00000040
-#define EFI_FVB2_LOCK_STATUS        0x00000080
-#define EFI_FVB2_STICKY_WRITE       0x00000200
-#define EFI_FVB2_MEMORY_MAPPED      0x00000400
-#define EFI_FVB2_ERASE_POLARITY     0x00000800
-#define EFI_FVB2_READ_LOCK_CAP      0x00001000
-#define EFI_FVB2_READ_LOCK_STATUS   0x00002000
-#define EFI_FVB2_WRITE_LOCK_CAP     0x00004000
-#define EFI_FVB2_WRITE_LOCK_STATUS  0x00008000
-#define EFI_FVB2_ALIGNMENT          0x001F0000
-#define EFI_FVB2_ALIGNMENT_1        0x00000000
-#define EFI_FVB2_ALIGNMENT_2        0x00010000
-#define EFI_FVB2_ALIGNMENT_4        0x00020000
-#define EFI_FVB2_ALIGNMENT_8        0x00030000
-#define EFI_FVB2_ALIGNMENT_16       0x00040000
-#define EFI_FVB2_ALIGNMENT_32       0x00050000
-#define EFI_FVB2_ALIGNMENT_64       0x00060000
-#define EFI_FVB2_ALIGNMENT_128      0x00070000
-#define EFI_FVB2_ALIGNMENT_256      0x00080000
-#define EFI_FVB2_ALIGNMENT_512      0x00090000
-#define EFI_FVB2_ALIGNMENT_1K       0x000A0000
-#define EFI_FVB2_ALIGNMENT_2K       0x000B0000
-#define EFI_FVB2_ALIGNMENT_4K       0x000C0000
-#define EFI_FVB2_ALIGNMENT_8K       0x000D0000
-#define EFI_FVB2_ALIGNMENT_16K      0x000E0000
-#define EFI_FVB2_ALIGNMENT_32K      0x000F0000
-#define EFI_FVB2_ALIGNMENT_64K      0x00100000
-#define EFI_FVB2_ALIGNMENT_128K     0x00110000
-#define EFI_FVB2_ALIGNMENT_256K     0x00120000
-#define EFI_FVB2_ALIGNMENT_512K     0x00130000
-#define EFI_FVB2_ALIGNMENT_1M       0x00140000
-#define EFI_FVB2_ALIGNMENT_2M       0x00150000
-#define EFI_FVB2_ALIGNMENT_4M       0x00160000
-#define EFI_FVB2_ALIGNMENT_8M       0x00170000
-#define EFI_FVB2_ALIGNMENT_16M      0x00180000
-#define EFI_FVB2_ALIGNMENT_32M      0x00190000
-#define EFI_FVB2_ALIGNMENT_64M      0x001A0000
-#define EFI_FVB2_ALIGNMENT_128M     0x001B0000
-#define EFI_FVB2_ALIGNMENT_256M     0x001C0000
-#define EFI_FVB2_ALIGNMENT_512M     0x001D0000
-#define EFI_FVB2_ALIGNMENT_1G       0x001E0000
-#define EFI_FVB2_ALIGNMENT_2G       0x001F0000
-
-
-typedef struct {
-  ///
-  /// The number of sequential blocks which are of the same size.
-  ///
-  UINT32 NumBlocks;
-  ///
-  /// The size of the blocks.
-  ///
-  UINT32 Length;
-} EFI_FV_BLOCK_MAP_ENTRY;
-
-///
-/// Describes the features and layout of the firmware volume.
-///
-typedef struct {
-  ///
-  /// The first 16 bytes are reserved to allow for the reset vector of
-  /// processors whose reset vector is at address 0.
-  ///
-  UINT8                     ZeroVector[16];
-  ///
-  /// Declares the file system with which the firmware volume is formatted.
-  ///
-  EFI_GUID                  FileSystemGuid;
-  ///
-  /// Length in bytes of the complete firmware volume, including the header.
-  ///
-  UINT64                    FvLength;
-  ///
-  /// Set to EFI_FVH_SIGNATURE
-  ///
-  UINT32                    Signature;
-  ///
-  /// Declares capabilities and power-on defaults for the firmware volume.
-  ///
-  EFI_FVB_ATTRIBUTES_2      Attributes;
-  ///
-  /// Length in bytes of the complete firmware volume header.
-  ///
-  UINT16                    HeaderLength;
-  ///
-  /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
-  ///
-  UINT16                    Checksum;
-  ///
-  /// Offset, relative to the start of the header, of the extended header
-  /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
-  ///
-  UINT16                    ExtHeaderOffset;
-  ///
-  /// This field must always be set to zero.
-  ///
-  UINT8                     Reserved[1];
-  ///
-  /// Set to 2. Future versions of this specification may define new header fields and will
-  /// increment the Revision field accordingly.
-  ///
-  UINT8                     Revision;
-  ///
-  /// An array of run-length encoded FvBlockMapEntry structures. The array is
-  /// terminated with an entry of {0,0}.
-  ///
-  EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
-} EFI_FIRMWARE_VOLUME_HEADER;
-
-#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
-
-///
-/// Firmware Volume Header Revision definition
-///
-#define EFI_FVH_REVISION  0x02
-
-///
-/// Extension header pointed by ExtHeaderOffset of volume header.
-///
-typedef struct {
-  ///
-  /// Firmware volume name.
-  ///
-  EFI_GUID  FvName;
-  ///
-  /// Size of the rest of the extension header, including this structure.
-  ///
-  UINT32    ExtHeaderSize;
-} EFI_FIRMWARE_VOLUME_EXT_HEADER;
-
-///
-/// Entry struture for describing FV extension header
-///
-typedef struct {
-  ///
-  /// Size of this header extension.
-  ///
-  UINT16    ExtEntrySize;
-  ///
-  /// Type of the header.
-  ///
-  UINT16    ExtEntryType;
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
-
-#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
-///
-/// This extension header provides a mapping between a GUID and an OEM file type.
-///
-typedef struct {
-  ///
-  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
-  ///
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
-  ///
-  /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
-  /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
-  ///
-  UINT32    TypeMask;
-  ///
-  /// An array of GUIDs, each GUID representing an OEM file type.
-  ///
-  /// EFI_GUID  Types[1];
-  ///
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
-
-#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002
-
-///
-/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
-/// GUID FormatType type which includes a length and a successive series of data bytes.
-///
-typedef struct {
-  ///
-  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
-  ///
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY     Hdr;
-  ///
-  /// Vendor-specific GUID.
-  ///
-  EFI_GUID                          FormatType;
-  ///
-  /// An arry of bytes of length Length.
-  ///
-  /// UINT8                             Data[1];
-  ///
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fsphob.h b/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fsphob.h
deleted file mode 100644
index 5840907..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fsphob.h
+++ /dev/null
@@ -1,507 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __PI_HOB_H__
-#define __PI_HOB_H__
-
-//
-// HobType of EFI_HOB_GENERIC_HEADER.
-//
-#define EFI_HOB_TYPE_MEMORY_ALLOCATION    0x0002
-#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
-#define EFI_HOB_TYPE_GUID_EXTENSION       0x0004
-#define EFI_HOB_TYPE_UNUSED               0xFFFE
-#define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF
-
-///
-/// Describes the format and size of the data inside the HOB.
-/// All HOBs must contain this generic HOB header.
-///
-typedef struct {
-  ///
-  /// Identifies the HOB data structure type.
-  ///
-  UINT16    HobType;
-  ///
-  /// The length in bytes of the HOB.
-  ///
-  UINT16    HobLength;
-  ///
-  /// This field must always be set to zero.
-  ///
-  UINT32    Reserved;
-} EFI_HOB_GENERIC_HEADER;
-
-///
-/// Enumeration of memory types introduced in UEFI.
-///
-typedef enum {
-  ///
-  /// Not used.
-  ///
-  EfiReservedMemoryType,
-  ///
-  /// The code portions of a loaded application.
-  /// (Note that UEFI OS loaders are UEFI applications.)
-  ///
-  EfiLoaderCode,
-  ///
-  /// The data portions of a loaded application and the default data allocation
-  /// type used by an application to allocate pool memory.
-  ///
-  EfiLoaderData,
-  ///
-  /// The code portions of a loaded Boot Services Driver.
-  ///
-  EfiBootServicesCode,
-  ///
-  /// The data portions of a loaded Boot Serves Driver, and the default data
-  /// allocation type used by a Boot Services Driver to allocate pool memory.
-  ///
-  EfiBootServicesData,
-  ///
-  /// The code portions of a loaded Runtime Services Driver.
-  ///
-  EfiRuntimeServicesCode,
-  ///
-  /// The data portions of a loaded Runtime Services Driver and the default
-  /// data allocation type used by a Runtime Services Driver to allocate pool memory.
-  ///
-  EfiRuntimeServicesData,
-  ///
-  /// Free (unallocated) memory.
-  ///
-  EfiConventionalMemory,
-  ///
-  /// Memory in which errors have been detected.
-  ///
-  EfiUnusableMemory,
-  ///
-  /// Memory that holds the ACPI tables.
-  ///
-  EfiACPIReclaimMemory,
-  ///
-  /// Address space reserved for use by the firmware.
-  ///
-  EfiACPIMemoryNVS,
-  ///
-  /// Used by system firmware to request that a memory-mapped IO region
-  /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
-  ///
-  EfiMemoryMappedIO,
-  ///
-  /// System memory-mapped IO region that is used to translate memory
-  /// cycles to IO cycles by the processor.
-  ///
-  EfiMemoryMappedIOPortSpace,
-  ///
-  /// Address space reserved by the firmware for code that is part of the processor.
-  ///
-  EfiPalCode,
-  EfiMaxMemoryType
-} EFI_MEMORY_TYPE;
-
-///
-/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
-/// various attributes of the logical memory allocation. The type field will be used for
-/// subsequent inclusion in the UEFI memory map.
-///
-typedef struct {
-  ///
-  /// A GUID that defines the memory allocation region's type and purpose, as well as
-  /// other fields within the memory allocation HOB. This GUID is used to define the
-  /// additional data within the HOB that may be present for the memory allocation HOB.
-  /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
-  /// specification.
-  ///
-  EFI_GUID              Name;
-
-  ///
-  /// The base address of memory allocated by this HOB. Type
-  /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
-  /// specification.
-  ///
-  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
-
-  ///
-  /// The length in bytes of memory allocated by this HOB.
-  ///
-  UINT64                MemoryLength;
-
-  ///
-  /// Defines the type of memory allocated by this HOB. The memory type definition
-  /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
-  /// in AllocatePages() in the UEFI 2.0 specification.
-  ///
-  EFI_MEMORY_TYPE       MemoryType;
-
-  ///
-  /// Padding for Itanium processor family
-  ///
-  UINT8                 Reserved[4];
-} EFI_HOB_MEMORY_ALLOCATION_HEADER;
-
-///
-/// Describes all memory ranges used during the HOB producer
-/// phase that exist outside the HOB list. This HOB type
-/// describes how memory is used, not the physical attributes of memory.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
-  ///
-  EFI_HOB_GENERIC_HEADER            Header;
-  ///
-  /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
-  /// various attributes of the logical memory allocation.
-  ///
-  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
-  //
-  // Additional data pertaining to the "Name" Guid memory
-  // may go here.
-  //
-} EFI_HOB_MEMORY_ALLOCATION;
-
-///
-/// The resource type.
-///
-typedef UINT32 EFI_RESOURCE_TYPE;
-
-//
-// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
-//
-#define EFI_RESOURCE_SYSTEM_MEMORY          0x00000000
-#define EFI_RESOURCE_MEMORY_MAPPED_IO       0x00000001
-#define EFI_RESOURCE_IO                     0x00000002
-#define EFI_RESOURCE_FIRMWARE_DEVICE        0x00000003
-#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  0x00000004
-#define EFI_RESOURCE_MEMORY_RESERVED        0x00000005
-#define EFI_RESOURCE_IO_RESERVED            0x00000006
-#define EFI_RESOURCE_MAX_MEMORY_TYPE        0x00000007
-
-///
-/// A type of recount attribute type.
-///
-typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
-
-//
-// These types can be ORed together as needed.
-//
-// The first three enumerations describe settings
-//
-#define EFI_RESOURCE_ATTRIBUTE_PRESENT              0x00000001
-#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED          0x00000002
-#define EFI_RESOURCE_ATTRIBUTE_TESTED               0x00000004
-//
-// The rest of the settings describe capabilities
-//
-#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC           0x00000008
-#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC         0x00000010
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1           0x00000020
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2           0x00000040
-#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100
-#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE              0x00000400
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE        0x00000800
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE  0x00001000
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE     0x00002000
-#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO                0x00004000
-#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO                0x00008000
-#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000
-
-///
-/// Describes the resource properties of all fixed,
-/// nonrelocatable resource ranges found on the processor
-/// host bus during the HOB producer phase.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
-  ///
-  EFI_HOB_GENERIC_HEADER      Header;
-  ///
-  /// A GUID representing the owner of the resource. This GUID is used by HOB
-  /// consumer phase components to correlate device ownership of a resource.
-  ///
-  EFI_GUID                    Owner;
-  ///
-  /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
-  ///
-  EFI_RESOURCE_TYPE           ResourceType;
-  ///
-  /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
-  ///
-  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
-  ///
-  /// The physical start address of the resource region.
-  ///
-  EFI_PHYSICAL_ADDRESS        PhysicalStart;
-  ///
-  /// The number of bytes of the resource region.
-  ///
-  UINT64                      ResourceLength;
-} EFI_HOB_RESOURCE_DESCRIPTOR;
-
-///
-/// Allows writers of executable content in the HOB producer phase to
-/// maintain and manage HOBs with specific GUID.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
-  ///
-  EFI_HOB_GENERIC_HEADER      Header;
-  ///
-  /// A GUID that defines the contents of this HOB.
-  ///
-  EFI_GUID                    Name;
-  //
-  // Guid specific data goes here
-  //
-} EFI_HOB_GUID_TYPE;
-
-///
-/// Union of all the possible HOB Types.
-///
-typedef union {
-  EFI_HOB_GENERIC_HEADER              *Header;
-  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
-  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
-  EFI_HOB_GUID_TYPE                   *Guid;
-  UINT8                               *Raw;
-} EFI_PEI_HOB_POINTERS;
-
-
-/**
-  Returns the type of a HOB.
-
-  This macro returns the HobType field from the HOB header for the
-  HOB specified by HobStart.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return HobType.
-
-**/
-#define GET_HOB_TYPE(HobStart) \
-  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobType)
-
-/**
-  Returns the length, in bytes, of a HOB.
-
-  This macro returns the HobLength field from the HOB header for the
-  HOB specified by HobStart.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return HobLength.
-
-**/
-#define GET_HOB_LENGTH(HobStart) \
-  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobLength)
-
-/**
-  Returns a pointer to the next HOB in the HOB list.
-
-  This macro returns a pointer to HOB that follows the
-  HOB specified by HobStart in the HOB List.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return A pointer to the next HOB in the HOB list.
-
-**/
-#define GET_NEXT_HOB(HobStart) \
-  (VOID *)(*(UINT8 **)&(HobStart) + GET_HOB_LENGTH (HobStart))
-
-/**
-  Determines if a HOB is the last HOB in the HOB list.
-
-  This macro determine if the HOB specified by HobStart is the
-  last HOB in the HOB list.  If HobStart is last HOB in the HOB list,
-  then TRUE is returned.  Otherwise, FALSE is returned.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @retval TRUE       The HOB specified by HobStart is the last HOB in the HOB list.
-  @retval FALSE      The HOB specified by HobStart is not the last HOB in the HOB list.
-
-**/
-#define END_OF_HOB_LIST(HobStart)  (GET_HOB_TYPE (HobStart) == (UINT16)EFI_HOB_TYPE_END_OF_HOB_LIST)
-
-/**
-  Returns a pointer to data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  This macro returns a pointer to the data buffer in a HOB specified by HobStart.
-  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  @param   GuidHob   A pointer to a HOB.
-
-  @return  A pointer to the data buffer in a HOB.
-
-**/
-#define GET_GUID_HOB_DATA(HobStart) \
-  (VOID *)(*(UINT8 **)&(HobStart) + sizeof (EFI_HOB_GUID_TYPE))
-
-/**
-  Returns the size of the data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  This macro returns the size, in bytes, of the data buffer in a HOB specified by HobStart.
-  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  @param   GuidHob   A pointer to a HOB.
-
-  @return  The size of the data buffer.
-**/
-#define GET_GUID_HOB_DATA_SIZE(HobStart) \
-  (UINT16)(GET_HOB_LENGTH (HobStart) - sizeof (EFI_HOB_GUID_TYPE))
-
-/**
-  Returns the pointer to the HOB list.
-
-  This function returns the pointer to first HOB in the list.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-
-  @return The pointer to the HOB list.
-
-**/
-VOID *
-EFIAPI
-GetHobList (
-  VOID
-  );
-
-/**
-  Returns the next instance of a HOB type from the starting HOB.
-
-  This function searches the first instance of a HOB type from the starting HOB pointer.
-  If there does not exist such HOB type from the starting HOB pointer, it will return NULL.
-  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
-  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
-  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
-
-  If HobStart is NULL, then ASSERT().
-
-  @param  Type          The HOB type to return.
-  @param  HobStart      The starting HOB pointer to search from.
-
-  @return The next instance of a HOB type from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetNextHob (
-  UINT16                 Type,
-  CONST VOID             *HobStart
-  );
-
-/**
-  Returns the first instance of a HOB type among the whole HOB list.
-
-  This function searches the first instance of a HOB type among the whole HOB list.
-  If there does not exist such HOB type in the HOB list, it will return NULL.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-
-  @param  Type          The HOB type to return.
-
-  @return The next instance of a HOB type from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetFirstHob (
-  UINT16                 Type
-  );
-
-/**
-  Returns the next instance of the matched GUID HOB from the starting HOB.
-
-  This function searches the first instance of a HOB from the starting HOB pointer.
-  Such HOB should satisfy two conditions:
-  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
-  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
-  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
-  to extract the data section and its size info respectively.
-  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
-  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
-  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
-
-  If Guid is NULL, then ASSERT().
-  If HobStart is NULL, then ASSERT().
-
-  @param  Guid          The GUID to match with in the HOB list.
-  @param  HobStart      A pointer to a Guid.
-
-  @return The next instance of the matched GUID HOB from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetNextGuidHob (
-  CONST EFI_GUID         *Guid,
-  CONST VOID             *HobStart
-  );
-
-/**
-  Returns the first instance of the matched GUID HOB among the whole HOB list.
-
-  This function searches the first instance of a HOB among the whole HOB list.
-  Such HOB should satisfy two conditions:
-  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
-  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
-  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
-  to extract the data section and its size info respectively.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-  If Guid is NULL, then ASSERT().
-
-  @param  Guid          The GUID to match with in the HOB list.
-
-  @return The first instance of the matched GUID HOB among the whole HOB list.
-
-**/
-VOID *
-EFIAPI
-GetFirstGuidHob (
-  CONST EFI_GUID         *Guid
-  );
-
-BOOLEAN
-EFIAPI
-CompareGuid (
-  CONST EFI_GUID  *Guid1,
-  CONST EFI_GUID  *Guid2
-  );
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspinfoheader.h b/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspinfoheader.h
deleted file mode 100644
index 0f7b3a9..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspinfoheader.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_INFO_HEADER_H_
-#define _FSP_INFO_HEADER_H_
-
-#pragma pack(1)
-
-typedef struct  {
-
-  UINT32  Signature;       // Off 0x94
-  UINT32  HeaderLength;
-  UINT8   Reserved1[3];
-  UINT8   HeaderRevision;
-  UINT32  ImageRevision;
-
-  CHAR8   ImageId[8];      // Off 0xA4
-  UINT32  ImageSize;
-  UINT32  ImageBase;
-
-  UINT32  ImageAttribute;  // Off 0xB4
-  UINT32  CfgRegionOffset;
-  UINT32  CfgRegionSize;
-  UINT32  ApiEntryNum;
-
-  UINT32  NemInitEntry;    // Off 0xC4
-  UINT32  FspInitEntry;
-  UINT32  NotifyPhaseEntry;
-  UINT32  Reserved2;
-
-} FSP_INFO_HEADER;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspplatform.h b/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspplatform.h
deleted file mode 100644
index 06cf67e..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fspplatform.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_PLATFORM_H_
-#define _FSP_PLATFORM_H_
-
-#include "fsptypes.h"
-#include "fspapi.h"
-#include "mem_config.h"
-
-#pragma pack(1)
-
-typedef struct {
-    MEM_CONFIG  *MemoryConfig;
-} FSP_INIT_RT_PLATFORM_BUFFER;
-
-typedef struct {
-    uint8_t  HTEnable;
-    uint8_t  TurboEnable;
-    uint8_t  MemoryDownEnable;
-    uint8_t  FastBootEnable;
-} PLATFORM_CONFIG;
-
-typedef struct {
-    const PLATFORM_CONFIG  *PlatformConfig;
-} FSP_INIT_RT_CONFIG_BUFFER;
-
-typedef struct {
-    FSP_INIT_RT_COMMON_BUFFER  Common;
-    FSP_INIT_RT_CONFIG_BUFFER  PlatformConfiguration;
-    FSP_INIT_RT_PLATFORM_BUFFER  Platform;
-} FSP_INIT_RT_BUFFER;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fsptypes.h b/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fsptypes.h
deleted file mode 100644
index a3a54c0..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/fsptypes.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-/** \file  fsptypes.h
- *
- *
- */
-
-#ifndef __FSP_TYPES_H__
-#define __FSP_TYPES_H__
-
-///
-/// 8-byte unsigned value.
-///
-typedef unsigned long long  UINT64;
-///
-/// 8-byte signed value.
-///
-typedef long long           INT64;
-///
-/// 4-byte unsigned value.
-///
-typedef unsigned int        UINT32;
-///
-/// 4-byte signed value.
-///
-typedef int                 INT32;
-///
-/// 2-byte unsigned value.
-///
-typedef unsigned short      UINT16;
-///
-/// 2-byte Character.  Unless otherwise specified all strings are stored in the
-/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
-///
-typedef unsigned short      CHAR16;
-///
-/// 2-byte signed value.
-///
-typedef short               INT16;
-///
-/// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
-/// values are undefined.
-///
-typedef unsigned char       BOOLEAN;
-///
-/// 1-byte unsigned value.
-///
-typedef unsigned char       UINT8;
-///
-/// 1-byte Character
-///
-typedef char                CHAR8;
-///
-/// 1-byte signed value
-///
-typedef char                INT8;
-
-typedef void                VOID;
-
-typedef UINT64              EFI_PHYSICAL_ADDRESS;
-
-typedef struct {
-  UINT32  Data1;
-  UINT16  Data2;
-  UINT16  Data3;
-  UINT8   Data4[8];
-} EFI_GUID;
-
-#define CONST     const
-#define STATIC    static
-
-#define TRUE  ((BOOLEAN)(1==1))
-#define FALSE ((BOOLEAN)(0==1))
-
-#define FSPAPI __attribute__((cdecl))
-#define EFIAPI __attribute__((cdecl))
-
-#define ASSERT(Expression)      \
-  do {                          \
-    if (!(Expression)) {        \
-      for (;;);                 \
-    }                           \
-  } while (FALSE)
-
-typedef UINT32 FSP_STATUS;
-typedef UINT32 EFI_STATUS;
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/mem_config.h b/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/mem_config.h
deleted file mode 100644
index 26deb90..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/mem_config.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-//
-// mem_config.h
-//
-
-#ifndef _MEM_CONFIG_H_
-#define _MEM_CONFIG_H_
-
-typedef enum {
-  fi1067_IVB=0,
-  fi1333_IVB,
-  fi1400_IVB,
-  fi1600_IVB,
-  fi1800_IVB,
-  fi1867_IVB,
-  fi2000_IVB,
-  fi2133_IVB,
-  fi2200_IVB,
-  fi2400_IVB,
-  fi2600_IVB,
-  fi2667_IVB,
-  fi2800_IVB,
-  fiUnsupport_IVB,
-}TFrequencyIndex_IVB;
-
-#define NUM_IVB_MEM_CLK_FREQUENCIES 13
-
-// DDR3 memory SPD data
-//
-// NOTE: This only includes the SPD bytes that are relevant to the MRC
-typedef struct {                             // BYTE
-    uint8_t  SPDGeneral;                     // 0   Number of Serial PD Bytes Written / SPD Device Size / CRC Coverage 1, 2
-    uint8_t  SPDRevision;                    // 1   SPD Revision
-    uint8_t  DRAMDeviceType;                 // 2   DRAM Device Type
-    uint8_t  ModuleType;                     // 3   Module Type
-    uint8_t  SDRAMDensityAndBanks;           // 4   SDRAM Density and Banks
-    uint8_t  SDRAMAddressing;                // 5   SDRAM Addressing
-    uint8_t  VDD;                            // 6   Module Nominal Voltage
-    uint8_t  ModuleOrganization;             // 7   Module Organization
-    uint8_t  ModuleMemoryBusWidth;           // 8   Module Memory Bus Width
-    uint8_t  FineTimebase;                   // 9   Fine Timebase (FTB) Dividend / Divisor
-    uint8_t  TimebaseDividend;               // 10  Medium Timebase (MTB) Dividend
-    uint8_t  TimebaseDivisor;                // 11  Medium Timebase (MTB) Divisor
-    uint8_t  SDRAMMinimumCycleTime;          // 12  SDRAM Minimum Cycle Time (tCKmin)
-    uint8_t  Reserved0;                      // 13  Reserved0
-    uint8_t  CASLatenciesLSB;                // 14  CAS Latencies Supported, Least Significant Byte
-    uint8_t  CASLatenciesMSB;                // 15  CAS Latencies Supported, Most Significant Byte
-    uint8_t  MinimumCASLatencyTime;          // 16  Minimum CAS Latency Time (tAAmin)
-    uint8_t  MinimumWriteRecoveryTime;       // 17  Minimum Write Recovery Time (tWRmin)
-    uint8_t  MinimumRASToCASDelayTime;       // 18  Minimum RAS# to CAS# Delay Time (tRCDmin)
-    uint8_t  MinimumRowToRowDelayTime;       // 19  Minimum Row Active to Row Active Delay Time (tRRDmin)
-    uint8_t  MinimumRowPrechargeDelayTime;   // 20  Minimum Row Precharge Delay Time (tRPmin)
-    uint8_t  UpperNibblesFortRASAndtRC;      // 21  Upper Nibbles for tRAS and tRC
-    uint8_t  tRASmin;                        // 22  Minimum Active to Precharge Delay Time (tRASmin), Least Significant Byte
-    uint8_t  tRCmin;                         // 23  Minimum Active to Active/Refresh Delay Time (tRCmin), Least Significant Byte
-    uint8_t  tRFCminLeastSignificantByte;    // 24  Minimum Refresh Recovery Delay Time (tRFCmin), Least Significant Byte
-    uint8_t  tRFCminMostSignificantByte;     // 25  Minimum Refresh Recovery Delay Time (tRFCmin), Most Significant Byte
-    uint8_t  tWTRmin;                        // 26  Minimum Internal Write to Read Command Delay Time (tWTRmin)
-    uint8_t  tRTPmin;                        // 27  Minimum Internal Read to Precharge Command Delay Time (tRTPmin)
-    uint8_t  UpperNibbleFortFAW;             // 28  Upper Nibble for tFAW
-    uint8_t  tFAWmin;                        // 29  Minimum Four Activate Window Delay Time (tFAWmin)
-    uint8_t  SDRAMOptionalFeatures;          // 30  SDRAM Optional Features
-    uint8_t  SDRAMThermalAndRefreshOptions;  // 31  SDRAMThermalAndRefreshOptions
-    uint8_t  ModuleThermalSensor;            // 32  ModuleThermalSensor
-    uint8_t  SDRAMDeviceType;                // 33  SDRAM Device Type
-    int8_t   tCKminFine;                     // 34  Fine Offset for SDRAM Minimum Cycle Time (tCKmin)
-    int8_t   tAAminFine;                     // 35  Fine Offset for Minimum CAS Latency Time (tAAmin)
-    int8_t   tRCDminFine;                    // 36  Fine Offset for Minimum RAS# to CAS# Delay Time (tRCDmin)
-    int8_t   tRPminFine;                     // 37  Fine Offset for Minimum Row Precharge Delay Time (tRPmin)
-    int8_t   tRCminFine;                     // 38  Fine Offset for Minimum Active to Active/Refresh Delay Time (tRCmin)
-    uint8_t  ReferenceRawCardUsed;           // 62  Reference Raw Card Used
-    uint8_t  AddressMappingEdgeConnector;    // 63  Address Mapping from Edge Connector to DRAM
-    uint8_t  ThermalHeatSpreaderSolution;    // 64  ThermalHeatSpreaderSolution
-    uint8_t  ModuleManufacturerIdCodeLsb;    // 117 Module Manufacturer ID Code, Least Significant Byte
-    uint8_t  ModuleManufacturerIdCodeMsb;    // 118 Module Manufacturer ID Code, Most Significant Byte
-    uint8_t  ModuleManufacturingLocation;    // 119 Module Manufacturing Location
-    uint8_t  ModuleManufacturingDateYear;    // 120 Module Manufacturing Date Year
-    uint8_t  ModuleManufacturingDateWW;      // 121 Module Manufacturing Date creation work week
-    uint8_t  ModuleSerialNumberA;            // 122 Module Serial Number A
-    uint8_t  ModuleSerialNumberB;            // 123 Module Serial Number B
-    uint8_t  ModuleSerialNumberC;            // 124 Module Serial Number C
-    uint8_t  ModuleSerialNumberD;            // 125 Module Serial Number D
-    uint8_t  CRCA;                           // 126 CRC A
-    uint8_t  CRCB;                           // 127 CRC B
-} DDR3_SPD;
-
-// Configuration for each memory channel/bank
-typedef struct {
-    uint32_t  Exists;
-    DDR3_SPD  SpdData;
-    uint8_t   InitClkPiValue[NUM_IVB_MEM_CLK_FREQUENCIES];
-} MEM_BANK_CONFIG;
-
-// Memory configuration
-typedef struct {
-    MEM_BANK_CONFIG  ChannelABank0;
-    MEM_BANK_CONFIG  ChannelABank1;
-    MEM_BANK_CONFIG  ChannelBBank0;
-    MEM_BANK_CONFIG  ChannelBBank1;
-} MEM_CONFIG;
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/peifsp.h b/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/peifsp.h
deleted file mode 100644
index dc3e60f..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/include/peifsp.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-/** \file  peifsp.h
- *
- *
- */
-#include <stdint.h>
-#include "fsptypes.h"
-#include "fspfv.h"
-#include "fspffs.h"
-#include "fsphob.h"
-#include "fspapi.h"
-#include "fspplatform.h"
-#include "fspinfoheader.h"
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/srx/fsphob.c b/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/srx/fsphob.c
deleted file mode 100644
index 4214b3a..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x/srx/fsphob.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-/***********************************************************************
- *
- * fsphob.c
- *
- * HOB infrastructure code.
- *
- **********************************************************************/
-#include <string.h>
-
-#include "fsptypes.h"
-#include "fsphob.h"
-
-//
-// Pointer to the HOB should be initialized with the output of FSP INIT PARAMS
-//
-extern volatile void *FspHobListPtr;
-
-//
-// Function prototype
-//
-UINT64
-EFIAPI
-ReadUnaligned64 (
-  CONST UINT64              *Buffer
-  );
-
-/**
-  Reads a 64-bit value from memory that may be unaligned.
-
-  This function returns the 64-bit value pointed to by Buffer. The function
-  guarantees that the read operation does not produce an alignment fault.
-
-  If the Buffer is NULL, then ASSERT().
-
-  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
-
-  @return The 64-bit value read from Buffer.
-
-**/
-UINT64
-EFIAPI
-ReadUnaligned64 (
-  CONST UINT64              *Buffer
-  )
-{
-  ASSERT (Buffer != NULL);
-
-  return *Buffer;
-}
-
-/**
-  Compares two GUIDs.
-
-  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
-  If there are any bit differences in the two GUIDs, then FALSE is returned.
-
-  If Guid1 is NULL, then ASSERT().
-  If Guid2 is NULL, then ASSERT().
-
-  @param  Guid1       A pointer to a 128 bit GUID.
-  @param  Guid2       A pointer to a 128 bit GUID.
-
-  @retval TRUE        Guid1 and Guid2 are identical.
-  @retval FALSE       Guid1 and Guid2 are not identical.
-
-**/
-BOOLEAN
-EFIAPI
-CompareGuid (
-  CONST EFI_GUID  *Guid1,
-  CONST EFI_GUID  *Guid2
-  )
-{
-  UINT64  LowPartOfGuid1;
-  UINT64  LowPartOfGuid2;
-  UINT64  HighPartOfGuid1;
-  UINT64  HighPartOfGuid2;
-
-  LowPartOfGuid1  = ReadUnaligned64 ((CONST UINT64*) Guid1);
-  LowPartOfGuid2  = ReadUnaligned64 ((CONST UINT64*) Guid2);
-  HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1);
-  HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1);
-
-  return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2);
-}
-
-/**
-  Returns the pointer to the HOB list.
-**/
-VOID *
-EFIAPI
-GetHobList (
-  VOID
-  )
-{
-  ASSERT (FspHobListPtr != NULL);
-  return ((VOID *)FspHobListPtr);
-}
-
-/**
-  Returns the next instance of a HOB type from the starting HOB.
-**/
-VOID *
-EFIAPI
-GetNextHob (
-  UINT16                 Type,
-  CONST VOID             *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  Hob;
-
-  ASSERT (HobStart != NULL);
-
-  Hob.Raw = (UINT8 *) HobStart;
-  //
-  // Parse the HOB list until end of list or matching type is found.
-  //
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == Type) {
-      return Hob.Raw;
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-  return NULL;
-}
-
-/**
-  Returns the first instance of a HOB type among the whole HOB list.
-**/
-VOID *
-EFIAPI
-GetFirstHob (
-  UINT16                 Type
-  )
-{
-  VOID      *HobList;
-
-  HobList = GetHobList ();
-  return GetNextHob (Type, HobList);
-}
-
-/**
-  Returns the next instance of the matched GUID HOB from the starting HOB.
-**/
-VOID *
-EFIAPI
-GetNextGuidHob (
-  CONST EFI_GUID         *Guid,
-  CONST VOID             *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  GuidHob;
-
-  GuidHob.Raw = (UINT8 *) HobStart;
-  while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
-    if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
-      break;
-    }
-    GuidHob.Raw = GET_NEXT_HOB (GuidHob);
-  }
-  return GuidHob.Raw;
-}
-
-/**
-  Returns the first instance of the matched GUID HOB among the whole HOB list.
-**/
-VOID *
-EFIAPI
-GetFirstGuidHob (
-  CONST EFI_GUID         *Guid
-  )
-{
-  VOID      *HobList;
-
-  HobList = GetHobList ();
-  return GetNextGuidHob (Guid, HobList);
-}
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fsp_vpd.h b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fsp_vpd.h
deleted file mode 100644
index fdee5f4..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fsp_vpd.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __VPDHEADER_H__
-#define __VPDHEADER_H__
-
-#pragma pack(1)
-
-typedef struct _UPD_DATA_REGION {
-  UINT64   Signature;                             /* Offset 0x0000 */
-  UINT64   Reserved;                              /* Offset 0x0008 */
-  UINT8    HTEnable;                              /* Offset 0x0010 */
-  UINT8    TurboEnable;                           /* Offset 0x0011 */
-  UINT8    MemoryDownEnable;                      /* Offset 0x0012 */
-  UINT8    FastBootEnable;                        /* Offset 0x0013 */
-  UINT16   PcdRegionTerminator;                   /* Offset 0x0310 */
-} UPD_DATA_REGION;
-
-
-#define VPD_IMAGE_SIGN  0x565053462d325453        /* 'ST2-FSPV' */
-#define VPD_IMAGE_REV   0x00000001
-
-typedef struct _VPD_DATA_REGION {
-  UINT64   PcdVpdRegionSign;                      /* Offset 0x0000 */
-  UINT32   PcdImageRevision;                      /* Offset 0x0008 */
-  UINT32   PcdUpdRegionOffset;                    /* Offset 0x000C */
-  UINT8    Padding0[16];                          /* Offset 0x0010 */
-  UINT32   PcdFspReservedMemoryLength;            /* Offset 0x0020 */
-} VPD_DATA_REGION;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspapi.h b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspapi.h
deleted file mode 100644
index 18a1582..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspapi.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
-
-Copyright (c) 2008 - 2013, Intel Corporation. All rights reserved.
-This software and associated documentation (if any) is furnished
-under a license and may only be used or copied in accordance
-with the terms of the license. Except as permitted by such
-license, no part of this software or documentation may be
-reproduced, stored in a retrieval system, or transmitted in any
-form or by any means without the express written consent of
-Intel Corporation.
-
-**/
-
-#ifndef _FSP_API_H_
-#define _FSP_API_H_
-
-#pragma pack(1)
-
-typedef VOID (* CONTINUATION_PROC)(EFI_STATUS Status, VOID *HobListPtr);
-
-typedef struct {
-  VOID               *NvsBufferPtr;
-  VOID               *RtBufferPtr;
-  CONTINUATION_PROC   ContinuationFunc;
-} FSP_INIT_PARAMS;
-
-typedef struct {
-  UINT32            *StackTop;
-  UINT32             BootMode;  /* Refer to boot mode defined in MdePkg\Include\Pi\PiBootMode.h */
-  VOID              *UpdDataRgnPtr;
-  UINT32             Reserved[7];
-} FSP_INIT_RT_COMMON_BUFFER;
-
-typedef enum {
-  EnumInitPhaseAfterPciEnumeration = 0x20,
-  EnumInitPhaseReadyToBoot = 0x40
-} FSP_INIT_PHASE;
-
-typedef struct {
-  FSP_INIT_PHASE     Phase;
-} NOTIFY_PHASE_PARAMS;
-
-#pragma pack()
-
-
-typedef FSP_STATUS (FSPAPI *FSP_FSP_INIT)    (FSP_INIT_PARAMS     *FspInitParamPtr);
-typedef FSP_STATUS (FSPAPI *FSP_NOTFY_PHASE) (NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr);
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspffs.h b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspffs.h
deleted file mode 100644
index 7a7c367..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspffs.h
+++ /dev/null
@@ -1,506 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-
-#ifndef __PI_FIRMWARE_FILE_H__
-#define __PI_FIRMWARE_FILE_H__
-
-#pragma pack(1)
-///
-/// Used to verify the integrity of the file.
-///
-typedef union {
-  struct {
-    ///
-    /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
-    /// header. The State and IntegrityCheck.Checksum.File fields are assumed
-    /// to be zero and the checksum is calculated such that the entire header sums to zero.
-    ///
-    UINT8   Header;
-    ///
-    /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
-    /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
-    /// checksum of the file data.
-    /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
-    /// the IntegrityCheck.Checksum.File field must be initialized with a value of
-    /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
-    /// EFI_FILE_DATA_VALID bit is set in the State field.
-    ///
-    UINT8   File;
-  } Checksum;
-  ///
-  /// This is the full 16 bits of the IntegrityCheck field.
-  ///
-  UINT16    Checksum16;
-} EFI_FFS_INTEGRITY_CHECK;
-
-///
-/// FFS_FIXED_CHECKSUM is the checksum value used when the
-/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
-///
-#define FFS_FIXED_CHECKSUM  0xAA
-
-typedef UINT8 EFI_FV_FILETYPE;
-typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
-typedef UINT8 EFI_FFS_FILE_STATE;
-
-///
-/// File Types Definitions
-///
-#define EFI_FV_FILETYPE_ALL                   0x00
-#define EFI_FV_FILETYPE_RAW                   0x01
-#define EFI_FV_FILETYPE_FREEFORM              0x02
-#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
-#define EFI_FV_FILETYPE_PEI_CORE              0x04
-#define EFI_FV_FILETYPE_DXE_CORE              0x05
-#define EFI_FV_FILETYPE_PEIM                  0x06
-#define EFI_FV_FILETYPE_DRIVER                0x07
-#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
-#define EFI_FV_FILETYPE_APPLICATION           0x09
-#define EFI_FV_FILETYPE_SMM                   0x0A
-#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
-#define EFI_FV_FILETYPE_COMBINED_SMM_DXE      0x0C
-#define EFI_FV_FILETYPE_SMM_CORE              0x0D
-#define EFI_FV_FILETYPE_OEM_MIN               0xc0
-#define EFI_FV_FILETYPE_OEM_MAX               0xdf
-#define EFI_FV_FILETYPE_DEBUG_MIN             0xe0
-#define EFI_FV_FILETYPE_DEBUG_MAX             0xef
-#define EFI_FV_FILETYPE_FFS_MIN               0xf0
-#define EFI_FV_FILETYPE_FFS_MAX               0xff
-#define EFI_FV_FILETYPE_FFS_PAD               0xf0
-///
-/// FFS File Attributes.
-///
-#define FFS_ATTRIB_LARGE_FILE         0x01
-#define FFS_ATTRIB_FIXED              0x04
-#define FFS_ATTRIB_DATA_ALIGNMENT     0x38
-#define FFS_ATTRIB_CHECKSUM           0x40
-
-///
-/// FFS File State Bits.
-///
-#define EFI_FILE_HEADER_CONSTRUCTION  0x01
-#define EFI_FILE_HEADER_VALID         0x02
-#define EFI_FILE_DATA_VALID           0x04
-#define EFI_FILE_MARKED_FOR_UPDATE    0x08
-#define EFI_FILE_DELETED              0x10
-#define EFI_FILE_HEADER_INVALID       0x20
-
-
-///
-/// Each file begins with the header that describe the
-/// contents and state of the files.
-///
-typedef struct {
-  ///
-  /// This GUID is the file name. It is used to uniquely identify the file.
-  ///
-  EFI_GUID                Name;
-  ///
-  /// Used to verify the integrity of the file.
-  ///
-  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
-  ///
-  /// Identifies the type of file.
-  ///
-  EFI_FV_FILETYPE         Type;
-  ///
-  /// Declares various file attribute bits.
-  ///
-  EFI_FFS_FILE_ATTRIBUTES Attributes;
-  ///
-  /// The length of the file in bytes, including the FFS header.
-  ///
-  UINT8                   Size[3];
-  ///
-  /// Used to track the state of the file throughout the life of the file from creation to deletion.
-  ///
-  EFI_FFS_FILE_STATE      State;
-} EFI_FFS_FILE_HEADER;
-
-typedef struct {
-  ///
-  /// This GUID is the file name. It is used to uniquely identify the file. There may be only
-  /// one instance of a file with the file name GUID of Name in any given firmware
-  /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
-  ///
-  EFI_GUID                  Name;
-
-  ///
-  /// Used to verify the integrity of the file.
-  ///
-  EFI_FFS_INTEGRITY_CHECK   IntegrityCheck;
-
-  ///
-  /// Identifies the type of file.
-  ///
-  EFI_FV_FILETYPE           Type;
-
-  ///
-  /// Declares various file attribute bits.
-  ///
-  EFI_FFS_FILE_ATTRIBUTES   Attributes;
-
-  ///
-  /// The length of the file in bytes, including the FFS header.
-  /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
-  /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
-  /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
-  /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
-  ///
-  UINT8                     Size[3];
-
-  ///
-  /// Used to track the state of the file throughout the life of the file from creation to deletion.
-  ///
-  EFI_FFS_FILE_STATE        State;
-
-  ///
-  /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
-  /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
-  ///
-  UINT32                    ExtendedSize;
-} EFI_FFS_FILE_HEADER2;
-
-#define IS_FFS_FILE2(FfsFileHeaderPtr) \
-    (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
-
-#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
-
-#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
-    (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
-
-typedef UINT8 EFI_SECTION_TYPE;
-
-///
-/// Pseudo type. It is used as a wild card when retrieving sections.
-///  The section type EFI_SECTION_ALL matches all section types.
-///
-#define EFI_SECTION_ALL                   0x00
-
-///
-/// Encapsulation section Type values.
-///
-#define EFI_SECTION_COMPRESSION           0x01
-
-#define EFI_SECTION_GUID_DEFINED          0x02
-
-#define EFI_SECTION_DISPOSABLE            0x03
-
-///
-/// Leaf section Type values.
-///
-#define EFI_SECTION_PE32                  0x10
-#define EFI_SECTION_PIC                   0x11
-#define EFI_SECTION_TE                    0x12
-#define EFI_SECTION_DXE_DEPEX             0x13
-#define EFI_SECTION_VERSION               0x14
-#define EFI_SECTION_USER_INTERFACE        0x15
-#define EFI_SECTION_COMPATIBILITY16       0x16
-#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
-#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
-#define EFI_SECTION_RAW                   0x19
-#define EFI_SECTION_PEI_DEPEX             0x1B
-#define EFI_SECTION_SMM_DEPEX             0x1C
-
-///
-/// Common section header.
-///
-typedef struct {
-  ///
-  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
-  /// including the EFI_COMMON_SECTION_HEADER.
-  ///
-  UINT8             Size[3];
-  EFI_SECTION_TYPE  Type;
-  ///
-  /// Declares the section type.
-  ///
-} EFI_COMMON_SECTION_HEADER;
-
-typedef struct {
-  ///
-  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
-  /// including the EFI_COMMON_SECTION_HEADER.
-  ///
-  UINT8             Size[3];
-
-  EFI_SECTION_TYPE  Type;
-
-  ///
-  /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
-  /// Size is not equal to 0xFFFFFF, then this field does not exist.
-  ///
-  UINT32            ExtendedSize;
-} EFI_COMMON_SECTION_HEADER2;
-
-///
-/// Leaf section type that contains an
-/// IA-32 16-bit executable image.
-///
-typedef EFI_COMMON_SECTION_HEADER  EFI_COMPATIBILITY16_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
-
-///
-/// CompressionType of EFI_COMPRESSION_SECTION.
-///
-#define EFI_NOT_COMPRESSED        0x00
-#define EFI_STANDARD_COMPRESSION  0x01
-///
-/// An encapsulation section type in which the
-/// section data is compressed.
-///
-typedef struct {
-  ///
-  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// The UINT32 that indicates the size of the section data after decompression.
-  ///
-  UINT32                      UncompressedLength;
-  ///
-  /// Indicates which compression algorithm is used.
-  ///
-  UINT8                       CompressionType;
-} EFI_COMPRESSION_SECTION;
-
-typedef struct {
-  ///
-  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// UINT32 that indicates the size of the section data after decompression.
-  ///
-  UINT32                        UncompressedLength;
-  ///
-  /// Indicates which compression algorithm is used.
-  ///
-  UINT8                         CompressionType;
-} EFI_COMPRESSION_SECTION2;
-
-///
-/// An encapsulation section type in which the section data is disposable.
-/// A disposable section is an encapsulation section in which the section data may be disposed of during
-/// the process of creating or updating a firmware image without significant impact on the usefulness of
-/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
-/// allows optional or descriptive data to be included with the firmware file which can be removed in
-/// order to conserve space. The contents of this section are implementation specific, but might contain
-/// debug data or detailed integration instructions.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_DISPOSABLE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_DISPOSABLE_SECTION2;
-
-///
-/// The leaf section which could be used to determine the dispatch order of DXEs.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_DXE_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_DXE_DEPEX_SECTION2;
-
-///
-/// The leaf section which contains a PI FV.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
-
-///
-/// The leaf section which contains a single GUID.
-///
-typedef struct {
-  ///
-  /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
-  ///
-  EFI_GUID                    SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
-
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
-  ///
-  EFI_GUID                      SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
-
-///
-/// Attributes of EFI_GUID_DEFINED_SECTION.
-///
-#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED  0x01
-#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID    0x02
-///
-/// The leaf section which is encapsulation defined by specific GUID.
-///
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
-  ///
-  EFI_GUID                    SectionDefinitionGuid;
-  ///
-  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
-  ///
-  UINT16                      DataOffset;
-  ///
-  /// The bit field that declares some specific characteristics of the section contents.
-  ///
-  UINT16                      Attributes;
-} EFI_GUID_DEFINED_SECTION;
-
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
-  ///
-  EFI_GUID                      SectionDefinitionGuid;
-  ///
-  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
-  ///
-  UINT16                        DataOffset;
-  ///
-  /// The bit field that declares some specific characteristics of the section contents.
-  ///
-  UINT16                        Attributes;
-} EFI_GUID_DEFINED_SECTION2;
-
-///
-/// The leaf section which contains PE32+ image.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PE32_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PE32_SECTION2;
-
-///
-/// The leaf section used to determine the dispatch order of PEIMs.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PEI_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PEI_DEPEX_SECTION2;
-
-///
-/// A leaf section type that contains a position-independent-code (PIC) image.
-/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
-/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
-/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
-/// relocation information has been stripped from the image and the image can be moved and will
-/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
-/// be used if the section is 16MB or larger.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PIC_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PIC_SECTION2;
-
-///
-/// The leaf section which constains the position-independent-code image.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_TE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_TE_SECTION2;
-
-///
-/// The leaf section which contains an array of zero or more bytes.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_RAW_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_RAW_SECTION2;
-
-///
-/// The SMM dependency expression section is a leaf section that contains a dependency expression that
-/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
-/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
-/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
-/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
-/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
-///
-typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
-
-///
-/// The leaf section which contains a unicode string that
-/// is human readable file name.
-///
-typedef struct {
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-
-  ///
-  /// Array of unicode string.
-  ///
-  CHAR16                      FileNameString[1];
-} EFI_USER_INTERFACE_SECTION;
-
-typedef struct {
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  CHAR16                        FileNameString[1];
-} EFI_USER_INTERFACE_SECTION2;
-
-///
-/// The leaf section which contains a numeric build number and
-/// an optional unicode string that represents the file revision.
-///
-typedef struct {
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  UINT16                      BuildNumber;
-
-  ///
-  /// Array of unicode string.
-  ///
-  CHAR16                      VersionString[1];
-} EFI_VERSION_SECTION;
-
-typedef struct {
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// A UINT16 that represents a particular build. Subsequent builds have monotonically
-  /// increasing build numbers relative to earlier builds.
-  ///
-  UINT16                        BuildNumber;
-  CHAR16                        VersionString[1];
-} EFI_VERSION_SECTION2;
-
-#define IS_SECTION2(SectionHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
-
-#define SECTION_SIZE(SectionHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
-
-#define SECTION2_SIZE(SectionHeaderPtr) \
-    (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspfv.h b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspfv.h
deleted file mode 100644
index 75d17fa..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspfv.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __PI_FIRMWAREVOLUME_H__
-#define __PI_FIRMWAREVOLUME_H__
-
-///
-/// EFI_FV_FILE_ATTRIBUTES
-///
-typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
-
-//
-// Value of EFI_FV_FILE_ATTRIBUTES.
-//
-#define EFI_FV_FILE_ATTRIB_ALIGNMENT      0x0000001F
-#define EFI_FV_FILE_ATTRIB_FIXED          0x00000100
-#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED  0x00000200
-
-///
-/// type of EFI FVB attribute
-///
-typedef UINT32  EFI_FVB_ATTRIBUTES_2;
-
-//
-// Attributes bit definitions
-//
-#define EFI_FVB2_READ_DISABLED_CAP  0x00000001
-#define EFI_FVB2_READ_ENABLED_CAP   0x00000002
-#define EFI_FVB2_READ_STATUS        0x00000004
-#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
-#define EFI_FVB2_WRITE_ENABLED_CAP  0x00000010
-#define EFI_FVB2_WRITE_STATUS       0x00000020
-#define EFI_FVB2_LOCK_CAP           0x00000040
-#define EFI_FVB2_LOCK_STATUS        0x00000080
-#define EFI_FVB2_STICKY_WRITE       0x00000200
-#define EFI_FVB2_MEMORY_MAPPED      0x00000400
-#define EFI_FVB2_ERASE_POLARITY     0x00000800
-#define EFI_FVB2_READ_LOCK_CAP      0x00001000
-#define EFI_FVB2_READ_LOCK_STATUS   0x00002000
-#define EFI_FVB2_WRITE_LOCK_CAP     0x00004000
-#define EFI_FVB2_WRITE_LOCK_STATUS  0x00008000
-#define EFI_FVB2_ALIGNMENT          0x001F0000
-#define EFI_FVB2_ALIGNMENT_1        0x00000000
-#define EFI_FVB2_ALIGNMENT_2        0x00010000
-#define EFI_FVB2_ALIGNMENT_4        0x00020000
-#define EFI_FVB2_ALIGNMENT_8        0x00030000
-#define EFI_FVB2_ALIGNMENT_16       0x00040000
-#define EFI_FVB2_ALIGNMENT_32       0x00050000
-#define EFI_FVB2_ALIGNMENT_64       0x00060000
-#define EFI_FVB2_ALIGNMENT_128      0x00070000
-#define EFI_FVB2_ALIGNMENT_256      0x00080000
-#define EFI_FVB2_ALIGNMENT_512      0x00090000
-#define EFI_FVB2_ALIGNMENT_1K       0x000A0000
-#define EFI_FVB2_ALIGNMENT_2K       0x000B0000
-#define EFI_FVB2_ALIGNMENT_4K       0x000C0000
-#define EFI_FVB2_ALIGNMENT_8K       0x000D0000
-#define EFI_FVB2_ALIGNMENT_16K      0x000E0000
-#define EFI_FVB2_ALIGNMENT_32K      0x000F0000
-#define EFI_FVB2_ALIGNMENT_64K      0x00100000
-#define EFI_FVB2_ALIGNMENT_128K     0x00110000
-#define EFI_FVB2_ALIGNMENT_256K     0x00120000
-#define EFI_FVB2_ALIGNMENT_512K     0x00130000
-#define EFI_FVB2_ALIGNMENT_1M       0x00140000
-#define EFI_FVB2_ALIGNMENT_2M       0x00150000
-#define EFI_FVB2_ALIGNMENT_4M       0x00160000
-#define EFI_FVB2_ALIGNMENT_8M       0x00170000
-#define EFI_FVB2_ALIGNMENT_16M      0x00180000
-#define EFI_FVB2_ALIGNMENT_32M      0x00190000
-#define EFI_FVB2_ALIGNMENT_64M      0x001A0000
-#define EFI_FVB2_ALIGNMENT_128M     0x001B0000
-#define EFI_FVB2_ALIGNMENT_256M     0x001C0000
-#define EFI_FVB2_ALIGNMENT_512M     0x001D0000
-#define EFI_FVB2_ALIGNMENT_1G       0x001E0000
-#define EFI_FVB2_ALIGNMENT_2G       0x001F0000
-
-
-typedef struct {
-  ///
-  /// The number of sequential blocks which are of the same size.
-  ///
-  UINT32 NumBlocks;
-  ///
-  /// The size of the blocks.
-  ///
-  UINT32 Length;
-} EFI_FV_BLOCK_MAP_ENTRY;
-
-///
-/// Describes the features and layout of the firmware volume.
-///
-typedef struct {
-  ///
-  /// The first 16 bytes are reserved to allow for the reset vector of
-  /// processors whose reset vector is at address 0.
-  ///
-  UINT8                     ZeroVector[16];
-  ///
-  /// Declares the file system with which the firmware volume is formatted.
-  ///
-  EFI_GUID                  FileSystemGuid;
-  ///
-  /// Length in bytes of the complete firmware volume, including the header.
-  ///
-  UINT64                    FvLength;
-  ///
-  /// Set to EFI_FVH_SIGNATURE
-  ///
-  UINT32                    Signature;
-  ///
-  /// Declares capabilities and power-on defaults for the firmware volume.
-  ///
-  EFI_FVB_ATTRIBUTES_2      Attributes;
-  ///
-  /// Length in bytes of the complete firmware volume header.
-  ///
-  UINT16                    HeaderLength;
-  ///
-  /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
-  ///
-  UINT16                    Checksum;
-  ///
-  /// Offset, relative to the start of the header, of the extended header
-  /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
-  ///
-  UINT16                    ExtHeaderOffset;
-  ///
-  /// This field must always be set to zero.
-  ///
-  UINT8                     Reserved[1];
-  ///
-  /// Set to 2. Future versions of this specification may define new header fields and will
-  /// increment the Revision field accordingly.
-  ///
-  UINT8                     Revision;
-  ///
-  /// An array of run-length encoded FvBlockMapEntry structures. The array is
-  /// terminated with an entry of {0,0}.
-  ///
-  EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
-} EFI_FIRMWARE_VOLUME_HEADER;
-
-#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
-
-///
-/// Firmware Volume Header Revision definition
-///
-#define EFI_FVH_REVISION  0x02
-
-///
-/// Extension header pointed by ExtHeaderOffset of volume header.
-///
-typedef struct {
-  ///
-  /// Firmware volume name.
-  ///
-  EFI_GUID  FvName;
-  ///
-  /// Size of the rest of the extension header, including this structure.
-  ///
-  UINT32    ExtHeaderSize;
-} EFI_FIRMWARE_VOLUME_EXT_HEADER;
-
-///
-/// Entry struture for describing FV extension header
-///
-typedef struct {
-  ///
-  /// Size of this header extension.
-  ///
-  UINT16    ExtEntrySize;
-  ///
-  /// Type of the header.
-  ///
-  UINT16    ExtEntryType;
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
-
-#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
-///
-/// This extension header provides a mapping between a GUID and an OEM file type.
-///
-typedef struct {
-  ///
-  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
-  ///
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
-  ///
-  /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
-  /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
-  ///
-  UINT32    TypeMask;
-  ///
-  /// An array of GUIDs, each GUID representing an OEM file type.
-  ///
-  /// EFI_GUID  Types[1];
-  ///
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
-
-#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002
-
-///
-/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
-/// GUID FormatType type which includes a length and a successive series of data bytes.
-///
-typedef struct {
-  ///
-  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
-  ///
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY     Hdr;
-  ///
-  /// Vendor-specific GUID.
-  ///
-  EFI_GUID                          FormatType;
-  ///
-  /// An arry of bytes of length Length.
-  ///
-  /// UINT8                             Data[1];
-  ///
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fsphob.h b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fsphob.h
deleted file mode 100644
index 5840907..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fsphob.h
+++ /dev/null
@@ -1,507 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __PI_HOB_H__
-#define __PI_HOB_H__
-
-//
-// HobType of EFI_HOB_GENERIC_HEADER.
-//
-#define EFI_HOB_TYPE_MEMORY_ALLOCATION    0x0002
-#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
-#define EFI_HOB_TYPE_GUID_EXTENSION       0x0004
-#define EFI_HOB_TYPE_UNUSED               0xFFFE
-#define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF
-
-///
-/// Describes the format and size of the data inside the HOB.
-/// All HOBs must contain this generic HOB header.
-///
-typedef struct {
-  ///
-  /// Identifies the HOB data structure type.
-  ///
-  UINT16    HobType;
-  ///
-  /// The length in bytes of the HOB.
-  ///
-  UINT16    HobLength;
-  ///
-  /// This field must always be set to zero.
-  ///
-  UINT32    Reserved;
-} EFI_HOB_GENERIC_HEADER;
-
-///
-/// Enumeration of memory types introduced in UEFI.
-///
-typedef enum {
-  ///
-  /// Not used.
-  ///
-  EfiReservedMemoryType,
-  ///
-  /// The code portions of a loaded application.
-  /// (Note that UEFI OS loaders are UEFI applications.)
-  ///
-  EfiLoaderCode,
-  ///
-  /// The data portions of a loaded application and the default data allocation
-  /// type used by an application to allocate pool memory.
-  ///
-  EfiLoaderData,
-  ///
-  /// The code portions of a loaded Boot Services Driver.
-  ///
-  EfiBootServicesCode,
-  ///
-  /// The data portions of a loaded Boot Serves Driver, and the default data
-  /// allocation type used by a Boot Services Driver to allocate pool memory.
-  ///
-  EfiBootServicesData,
-  ///
-  /// The code portions of a loaded Runtime Services Driver.
-  ///
-  EfiRuntimeServicesCode,
-  ///
-  /// The data portions of a loaded Runtime Services Driver and the default
-  /// data allocation type used by a Runtime Services Driver to allocate pool memory.
-  ///
-  EfiRuntimeServicesData,
-  ///
-  /// Free (unallocated) memory.
-  ///
-  EfiConventionalMemory,
-  ///
-  /// Memory in which errors have been detected.
-  ///
-  EfiUnusableMemory,
-  ///
-  /// Memory that holds the ACPI tables.
-  ///
-  EfiACPIReclaimMemory,
-  ///
-  /// Address space reserved for use by the firmware.
-  ///
-  EfiACPIMemoryNVS,
-  ///
-  /// Used by system firmware to request that a memory-mapped IO region
-  /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
-  ///
-  EfiMemoryMappedIO,
-  ///
-  /// System memory-mapped IO region that is used to translate memory
-  /// cycles to IO cycles by the processor.
-  ///
-  EfiMemoryMappedIOPortSpace,
-  ///
-  /// Address space reserved by the firmware for code that is part of the processor.
-  ///
-  EfiPalCode,
-  EfiMaxMemoryType
-} EFI_MEMORY_TYPE;
-
-///
-/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
-/// various attributes of the logical memory allocation. The type field will be used for
-/// subsequent inclusion in the UEFI memory map.
-///
-typedef struct {
-  ///
-  /// A GUID that defines the memory allocation region's type and purpose, as well as
-  /// other fields within the memory allocation HOB. This GUID is used to define the
-  /// additional data within the HOB that may be present for the memory allocation HOB.
-  /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
-  /// specification.
-  ///
-  EFI_GUID              Name;
-
-  ///
-  /// The base address of memory allocated by this HOB. Type
-  /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
-  /// specification.
-  ///
-  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
-
-  ///
-  /// The length in bytes of memory allocated by this HOB.
-  ///
-  UINT64                MemoryLength;
-
-  ///
-  /// Defines the type of memory allocated by this HOB. The memory type definition
-  /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
-  /// in AllocatePages() in the UEFI 2.0 specification.
-  ///
-  EFI_MEMORY_TYPE       MemoryType;
-
-  ///
-  /// Padding for Itanium processor family
-  ///
-  UINT8                 Reserved[4];
-} EFI_HOB_MEMORY_ALLOCATION_HEADER;
-
-///
-/// Describes all memory ranges used during the HOB producer
-/// phase that exist outside the HOB list. This HOB type
-/// describes how memory is used, not the physical attributes of memory.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
-  ///
-  EFI_HOB_GENERIC_HEADER            Header;
-  ///
-  /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
-  /// various attributes of the logical memory allocation.
-  ///
-  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
-  //
-  // Additional data pertaining to the "Name" Guid memory
-  // may go here.
-  //
-} EFI_HOB_MEMORY_ALLOCATION;
-
-///
-/// The resource type.
-///
-typedef UINT32 EFI_RESOURCE_TYPE;
-
-//
-// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
-//
-#define EFI_RESOURCE_SYSTEM_MEMORY          0x00000000
-#define EFI_RESOURCE_MEMORY_MAPPED_IO       0x00000001
-#define EFI_RESOURCE_IO                     0x00000002
-#define EFI_RESOURCE_FIRMWARE_DEVICE        0x00000003
-#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  0x00000004
-#define EFI_RESOURCE_MEMORY_RESERVED        0x00000005
-#define EFI_RESOURCE_IO_RESERVED            0x00000006
-#define EFI_RESOURCE_MAX_MEMORY_TYPE        0x00000007
-
-///
-/// A type of recount attribute type.
-///
-typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
-
-//
-// These types can be ORed together as needed.
-//
-// The first three enumerations describe settings
-//
-#define EFI_RESOURCE_ATTRIBUTE_PRESENT              0x00000001
-#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED          0x00000002
-#define EFI_RESOURCE_ATTRIBUTE_TESTED               0x00000004
-//
-// The rest of the settings describe capabilities
-//
-#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC           0x00000008
-#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC         0x00000010
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1           0x00000020
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2           0x00000040
-#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100
-#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE              0x00000400
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE        0x00000800
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE  0x00001000
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE     0x00002000
-#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO                0x00004000
-#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO                0x00008000
-#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000
-
-///
-/// Describes the resource properties of all fixed,
-/// nonrelocatable resource ranges found on the processor
-/// host bus during the HOB producer phase.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
-  ///
-  EFI_HOB_GENERIC_HEADER      Header;
-  ///
-  /// A GUID representing the owner of the resource. This GUID is used by HOB
-  /// consumer phase components to correlate device ownership of a resource.
-  ///
-  EFI_GUID                    Owner;
-  ///
-  /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
-  ///
-  EFI_RESOURCE_TYPE           ResourceType;
-  ///
-  /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
-  ///
-  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
-  ///
-  /// The physical start address of the resource region.
-  ///
-  EFI_PHYSICAL_ADDRESS        PhysicalStart;
-  ///
-  /// The number of bytes of the resource region.
-  ///
-  UINT64                      ResourceLength;
-} EFI_HOB_RESOURCE_DESCRIPTOR;
-
-///
-/// Allows writers of executable content in the HOB producer phase to
-/// maintain and manage HOBs with specific GUID.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
-  ///
-  EFI_HOB_GENERIC_HEADER      Header;
-  ///
-  /// A GUID that defines the contents of this HOB.
-  ///
-  EFI_GUID                    Name;
-  //
-  // Guid specific data goes here
-  //
-} EFI_HOB_GUID_TYPE;
-
-///
-/// Union of all the possible HOB Types.
-///
-typedef union {
-  EFI_HOB_GENERIC_HEADER              *Header;
-  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
-  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
-  EFI_HOB_GUID_TYPE                   *Guid;
-  UINT8                               *Raw;
-} EFI_PEI_HOB_POINTERS;
-
-
-/**
-  Returns the type of a HOB.
-
-  This macro returns the HobType field from the HOB header for the
-  HOB specified by HobStart.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return HobType.
-
-**/
-#define GET_HOB_TYPE(HobStart) \
-  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobType)
-
-/**
-  Returns the length, in bytes, of a HOB.
-
-  This macro returns the HobLength field from the HOB header for the
-  HOB specified by HobStart.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return HobLength.
-
-**/
-#define GET_HOB_LENGTH(HobStart) \
-  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobLength)
-
-/**
-  Returns a pointer to the next HOB in the HOB list.
-
-  This macro returns a pointer to HOB that follows the
-  HOB specified by HobStart in the HOB List.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return A pointer to the next HOB in the HOB list.
-
-**/
-#define GET_NEXT_HOB(HobStart) \
-  (VOID *)(*(UINT8 **)&(HobStart) + GET_HOB_LENGTH (HobStart))
-
-/**
-  Determines if a HOB is the last HOB in the HOB list.
-
-  This macro determine if the HOB specified by HobStart is the
-  last HOB in the HOB list.  If HobStart is last HOB in the HOB list,
-  then TRUE is returned.  Otherwise, FALSE is returned.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @retval TRUE       The HOB specified by HobStart is the last HOB in the HOB list.
-  @retval FALSE      The HOB specified by HobStart is not the last HOB in the HOB list.
-
-**/
-#define END_OF_HOB_LIST(HobStart)  (GET_HOB_TYPE (HobStart) == (UINT16)EFI_HOB_TYPE_END_OF_HOB_LIST)
-
-/**
-  Returns a pointer to data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  This macro returns a pointer to the data buffer in a HOB specified by HobStart.
-  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  @param   GuidHob   A pointer to a HOB.
-
-  @return  A pointer to the data buffer in a HOB.
-
-**/
-#define GET_GUID_HOB_DATA(HobStart) \
-  (VOID *)(*(UINT8 **)&(HobStart) + sizeof (EFI_HOB_GUID_TYPE))
-
-/**
-  Returns the size of the data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  This macro returns the size, in bytes, of the data buffer in a HOB specified by HobStart.
-  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  @param   GuidHob   A pointer to a HOB.
-
-  @return  The size of the data buffer.
-**/
-#define GET_GUID_HOB_DATA_SIZE(HobStart) \
-  (UINT16)(GET_HOB_LENGTH (HobStart) - sizeof (EFI_HOB_GUID_TYPE))
-
-/**
-  Returns the pointer to the HOB list.
-
-  This function returns the pointer to first HOB in the list.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-
-  @return The pointer to the HOB list.
-
-**/
-VOID *
-EFIAPI
-GetHobList (
-  VOID
-  );
-
-/**
-  Returns the next instance of a HOB type from the starting HOB.
-
-  This function searches the first instance of a HOB type from the starting HOB pointer.
-  If there does not exist such HOB type from the starting HOB pointer, it will return NULL.
-  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
-  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
-  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
-
-  If HobStart is NULL, then ASSERT().
-
-  @param  Type          The HOB type to return.
-  @param  HobStart      The starting HOB pointer to search from.
-
-  @return The next instance of a HOB type from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetNextHob (
-  UINT16                 Type,
-  CONST VOID             *HobStart
-  );
-
-/**
-  Returns the first instance of a HOB type among the whole HOB list.
-
-  This function searches the first instance of a HOB type among the whole HOB list.
-  If there does not exist such HOB type in the HOB list, it will return NULL.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-
-  @param  Type          The HOB type to return.
-
-  @return The next instance of a HOB type from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetFirstHob (
-  UINT16                 Type
-  );
-
-/**
-  Returns the next instance of the matched GUID HOB from the starting HOB.
-
-  This function searches the first instance of a HOB from the starting HOB pointer.
-  Such HOB should satisfy two conditions:
-  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
-  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
-  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
-  to extract the data section and its size info respectively.
-  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
-  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
-  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
-
-  If Guid is NULL, then ASSERT().
-  If HobStart is NULL, then ASSERT().
-
-  @param  Guid          The GUID to match with in the HOB list.
-  @param  HobStart      A pointer to a Guid.
-
-  @return The next instance of the matched GUID HOB from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetNextGuidHob (
-  CONST EFI_GUID         *Guid,
-  CONST VOID             *HobStart
-  );
-
-/**
-  Returns the first instance of the matched GUID HOB among the whole HOB list.
-
-  This function searches the first instance of a HOB among the whole HOB list.
-  Such HOB should satisfy two conditions:
-  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
-  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
-  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
-  to extract the data section and its size info respectively.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-  If Guid is NULL, then ASSERT().
-
-  @param  Guid          The GUID to match with in the HOB list.
-
-  @return The first instance of the matched GUID HOB among the whole HOB list.
-
-**/
-VOID *
-EFIAPI
-GetFirstGuidHob (
-  CONST EFI_GUID         *Guid
-  );
-
-BOOLEAN
-EFIAPI
-CompareGuid (
-  CONST EFI_GUID  *Guid1,
-  CONST EFI_GUID  *Guid2
-  );
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspinfoheader.h b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspinfoheader.h
deleted file mode 100644
index 0f7b3a9..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspinfoheader.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_INFO_HEADER_H_
-#define _FSP_INFO_HEADER_H_
-
-#pragma pack(1)
-
-typedef struct  {
-
-  UINT32  Signature;       // Off 0x94
-  UINT32  HeaderLength;
-  UINT8   Reserved1[3];
-  UINT8   HeaderRevision;
-  UINT32  ImageRevision;
-
-  CHAR8   ImageId[8];      // Off 0xA4
-  UINT32  ImageSize;
-  UINT32  ImageBase;
-
-  UINT32  ImageAttribute;  // Off 0xB4
-  UINT32  CfgRegionOffset;
-  UINT32  CfgRegionSize;
-  UINT32  ApiEntryNum;
-
-  UINT32  NemInitEntry;    // Off 0xC4
-  UINT32  FspInitEntry;
-  UINT32  NotifyPhaseEntry;
-  UINT32  Reserved2;
-
-} FSP_INFO_HEADER;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspplatform.h b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspplatform.h
deleted file mode 100644
index e78ac47..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fspplatform.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_PLATFORM_H_
-#define _FSP_PLATFORM_H_
-
-#include "fsptypes.h"
-#include "fspapi.h"
-#include "mem_config.h"
-
-#pragma pack(1)
-
-typedef struct {
-    MEM_CONFIG  *MemoryConfig;
-} FSP_INIT_RT_PLATFORM_BUFFER;
-
-
-typedef struct {
-    FSP_INIT_RT_COMMON_BUFFER  Common;
-    FSP_INIT_RT_PLATFORM_BUFFER  Platform;
-} FSP_INIT_RT_BUFFER;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fsptypes.h b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fsptypes.h
deleted file mode 100644
index a3a54c0..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/fsptypes.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-/** \file  fsptypes.h
- *
- *
- */
-
-#ifndef __FSP_TYPES_H__
-#define __FSP_TYPES_H__
-
-///
-/// 8-byte unsigned value.
-///
-typedef unsigned long long  UINT64;
-///
-/// 8-byte signed value.
-///
-typedef long long           INT64;
-///
-/// 4-byte unsigned value.
-///
-typedef unsigned int        UINT32;
-///
-/// 4-byte signed value.
-///
-typedef int                 INT32;
-///
-/// 2-byte unsigned value.
-///
-typedef unsigned short      UINT16;
-///
-/// 2-byte Character.  Unless otherwise specified all strings are stored in the
-/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
-///
-typedef unsigned short      CHAR16;
-///
-/// 2-byte signed value.
-///
-typedef short               INT16;
-///
-/// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
-/// values are undefined.
-///
-typedef unsigned char       BOOLEAN;
-///
-/// 1-byte unsigned value.
-///
-typedef unsigned char       UINT8;
-///
-/// 1-byte Character
-///
-typedef char                CHAR8;
-///
-/// 1-byte signed value
-///
-typedef char                INT8;
-
-typedef void                VOID;
-
-typedef UINT64              EFI_PHYSICAL_ADDRESS;
-
-typedef struct {
-  UINT32  Data1;
-  UINT16  Data2;
-  UINT16  Data3;
-  UINT8   Data4[8];
-} EFI_GUID;
-
-#define CONST     const
-#define STATIC    static
-
-#define TRUE  ((BOOLEAN)(1==1))
-#define FALSE ((BOOLEAN)(0==1))
-
-#define FSPAPI __attribute__((cdecl))
-#define EFIAPI __attribute__((cdecl))
-
-#define ASSERT(Expression)      \
-  do {                          \
-    if (!(Expression)) {        \
-      for (;;);                 \
-    }                           \
-  } while (FALSE)
-
-typedef UINT32 FSP_STATUS;
-typedef UINT32 EFI_STATUS;
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/mem_config.h b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/mem_config.h
deleted file mode 100644
index 26deb90..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/mem_config.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-//
-// mem_config.h
-//
-
-#ifndef _MEM_CONFIG_H_
-#define _MEM_CONFIG_H_
-
-typedef enum {
-  fi1067_IVB=0,
-  fi1333_IVB,
-  fi1400_IVB,
-  fi1600_IVB,
-  fi1800_IVB,
-  fi1867_IVB,
-  fi2000_IVB,
-  fi2133_IVB,
-  fi2200_IVB,
-  fi2400_IVB,
-  fi2600_IVB,
-  fi2667_IVB,
-  fi2800_IVB,
-  fiUnsupport_IVB,
-}TFrequencyIndex_IVB;
-
-#define NUM_IVB_MEM_CLK_FREQUENCIES 13
-
-// DDR3 memory SPD data
-//
-// NOTE: This only includes the SPD bytes that are relevant to the MRC
-typedef struct {                             // BYTE
-    uint8_t  SPDGeneral;                     // 0   Number of Serial PD Bytes Written / SPD Device Size / CRC Coverage 1, 2
-    uint8_t  SPDRevision;                    // 1   SPD Revision
-    uint8_t  DRAMDeviceType;                 // 2   DRAM Device Type
-    uint8_t  ModuleType;                     // 3   Module Type
-    uint8_t  SDRAMDensityAndBanks;           // 4   SDRAM Density and Banks
-    uint8_t  SDRAMAddressing;                // 5   SDRAM Addressing
-    uint8_t  VDD;                            // 6   Module Nominal Voltage
-    uint8_t  ModuleOrganization;             // 7   Module Organization
-    uint8_t  ModuleMemoryBusWidth;           // 8   Module Memory Bus Width
-    uint8_t  FineTimebase;                   // 9   Fine Timebase (FTB) Dividend / Divisor
-    uint8_t  TimebaseDividend;               // 10  Medium Timebase (MTB) Dividend
-    uint8_t  TimebaseDivisor;                // 11  Medium Timebase (MTB) Divisor
-    uint8_t  SDRAMMinimumCycleTime;          // 12  SDRAM Minimum Cycle Time (tCKmin)
-    uint8_t  Reserved0;                      // 13  Reserved0
-    uint8_t  CASLatenciesLSB;                // 14  CAS Latencies Supported, Least Significant Byte
-    uint8_t  CASLatenciesMSB;                // 15  CAS Latencies Supported, Most Significant Byte
-    uint8_t  MinimumCASLatencyTime;          // 16  Minimum CAS Latency Time (tAAmin)
-    uint8_t  MinimumWriteRecoveryTime;       // 17  Minimum Write Recovery Time (tWRmin)
-    uint8_t  MinimumRASToCASDelayTime;       // 18  Minimum RAS# to CAS# Delay Time (tRCDmin)
-    uint8_t  MinimumRowToRowDelayTime;       // 19  Minimum Row Active to Row Active Delay Time (tRRDmin)
-    uint8_t  MinimumRowPrechargeDelayTime;   // 20  Minimum Row Precharge Delay Time (tRPmin)
-    uint8_t  UpperNibblesFortRASAndtRC;      // 21  Upper Nibbles for tRAS and tRC
-    uint8_t  tRASmin;                        // 22  Minimum Active to Precharge Delay Time (tRASmin), Least Significant Byte
-    uint8_t  tRCmin;                         // 23  Minimum Active to Active/Refresh Delay Time (tRCmin), Least Significant Byte
-    uint8_t  tRFCminLeastSignificantByte;    // 24  Minimum Refresh Recovery Delay Time (tRFCmin), Least Significant Byte
-    uint8_t  tRFCminMostSignificantByte;     // 25  Minimum Refresh Recovery Delay Time (tRFCmin), Most Significant Byte
-    uint8_t  tWTRmin;                        // 26  Minimum Internal Write to Read Command Delay Time (tWTRmin)
-    uint8_t  tRTPmin;                        // 27  Minimum Internal Read to Precharge Command Delay Time (tRTPmin)
-    uint8_t  UpperNibbleFortFAW;             // 28  Upper Nibble for tFAW
-    uint8_t  tFAWmin;                        // 29  Minimum Four Activate Window Delay Time (tFAWmin)
-    uint8_t  SDRAMOptionalFeatures;          // 30  SDRAM Optional Features
-    uint8_t  SDRAMThermalAndRefreshOptions;  // 31  SDRAMThermalAndRefreshOptions
-    uint8_t  ModuleThermalSensor;            // 32  ModuleThermalSensor
-    uint8_t  SDRAMDeviceType;                // 33  SDRAM Device Type
-    int8_t   tCKminFine;                     // 34  Fine Offset for SDRAM Minimum Cycle Time (tCKmin)
-    int8_t   tAAminFine;                     // 35  Fine Offset for Minimum CAS Latency Time (tAAmin)
-    int8_t   tRCDminFine;                    // 36  Fine Offset for Minimum RAS# to CAS# Delay Time (tRCDmin)
-    int8_t   tRPminFine;                     // 37  Fine Offset for Minimum Row Precharge Delay Time (tRPmin)
-    int8_t   tRCminFine;                     // 38  Fine Offset for Minimum Active to Active/Refresh Delay Time (tRCmin)
-    uint8_t  ReferenceRawCardUsed;           // 62  Reference Raw Card Used
-    uint8_t  AddressMappingEdgeConnector;    // 63  Address Mapping from Edge Connector to DRAM
-    uint8_t  ThermalHeatSpreaderSolution;    // 64  ThermalHeatSpreaderSolution
-    uint8_t  ModuleManufacturerIdCodeLsb;    // 117 Module Manufacturer ID Code, Least Significant Byte
-    uint8_t  ModuleManufacturerIdCodeMsb;    // 118 Module Manufacturer ID Code, Most Significant Byte
-    uint8_t  ModuleManufacturingLocation;    // 119 Module Manufacturing Location
-    uint8_t  ModuleManufacturingDateYear;    // 120 Module Manufacturing Date Year
-    uint8_t  ModuleManufacturingDateWW;      // 121 Module Manufacturing Date creation work week
-    uint8_t  ModuleSerialNumberA;            // 122 Module Serial Number A
-    uint8_t  ModuleSerialNumberB;            // 123 Module Serial Number B
-    uint8_t  ModuleSerialNumberC;            // 124 Module Serial Number C
-    uint8_t  ModuleSerialNumberD;            // 125 Module Serial Number D
-    uint8_t  CRCA;                           // 126 CRC A
-    uint8_t  CRCB;                           // 127 CRC B
-} DDR3_SPD;
-
-// Configuration for each memory channel/bank
-typedef struct {
-    uint32_t  Exists;
-    DDR3_SPD  SpdData;
-    uint8_t   InitClkPiValue[NUM_IVB_MEM_CLK_FREQUENCIES];
-} MEM_BANK_CONFIG;
-
-// Memory configuration
-typedef struct {
-    MEM_BANK_CONFIG  ChannelABank0;
-    MEM_BANK_CONFIG  ChannelABank1;
-    MEM_BANK_CONFIG  ChannelBBank0;
-    MEM_BANK_CONFIG  ChannelBBank1;
-} MEM_CONFIG;
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/peifsp.h b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/peifsp.h
deleted file mode 100644
index dc3e60f..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/include/peifsp.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-/** \file  peifsp.h
- *
- *
- */
-#include <stdint.h>
-#include "fsptypes.h"
-#include "fspfv.h"
-#include "fspffs.h"
-#include "fsphob.h"
-#include "fspapi.h"
-#include "fspplatform.h"
-#include "fspinfoheader.h"
diff --git a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/srx/fsphob.c b/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/srx/fsphob.c
deleted file mode 100644
index 4214b3a..0000000
--- a/src/vendorcode/intel/fsp1_0/ivybridge_i89xx/srx/fsphob.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-/***********************************************************************
- *
- * fsphob.c
- *
- * HOB infrastructure code.
- *
- **********************************************************************/
-#include <string.h>
-
-#include "fsptypes.h"
-#include "fsphob.h"
-
-//
-// Pointer to the HOB should be initialized with the output of FSP INIT PARAMS
-//
-extern volatile void *FspHobListPtr;
-
-//
-// Function prototype
-//
-UINT64
-EFIAPI
-ReadUnaligned64 (
-  CONST UINT64              *Buffer
-  );
-
-/**
-  Reads a 64-bit value from memory that may be unaligned.
-
-  This function returns the 64-bit value pointed to by Buffer. The function
-  guarantees that the read operation does not produce an alignment fault.
-
-  If the Buffer is NULL, then ASSERT().
-
-  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
-
-  @return The 64-bit value read from Buffer.
-
-**/
-UINT64
-EFIAPI
-ReadUnaligned64 (
-  CONST UINT64              *Buffer
-  )
-{
-  ASSERT (Buffer != NULL);
-
-  return *Buffer;
-}
-
-/**
-  Compares two GUIDs.
-
-  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
-  If there are any bit differences in the two GUIDs, then FALSE is returned.
-
-  If Guid1 is NULL, then ASSERT().
-  If Guid2 is NULL, then ASSERT().
-
-  @param  Guid1       A pointer to a 128 bit GUID.
-  @param  Guid2       A pointer to a 128 bit GUID.
-
-  @retval TRUE        Guid1 and Guid2 are identical.
-  @retval FALSE       Guid1 and Guid2 are not identical.
-
-**/
-BOOLEAN
-EFIAPI
-CompareGuid (
-  CONST EFI_GUID  *Guid1,
-  CONST EFI_GUID  *Guid2
-  )
-{
-  UINT64  LowPartOfGuid1;
-  UINT64  LowPartOfGuid2;
-  UINT64  HighPartOfGuid1;
-  UINT64  HighPartOfGuid2;
-
-  LowPartOfGuid1  = ReadUnaligned64 ((CONST UINT64*) Guid1);
-  LowPartOfGuid2  = ReadUnaligned64 ((CONST UINT64*) Guid2);
-  HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1);
-  HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1);
-
-  return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2);
-}
-
-/**
-  Returns the pointer to the HOB list.
-**/
-VOID *
-EFIAPI
-GetHobList (
-  VOID
-  )
-{
-  ASSERT (FspHobListPtr != NULL);
-  return ((VOID *)FspHobListPtr);
-}
-
-/**
-  Returns the next instance of a HOB type from the starting HOB.
-**/
-VOID *
-EFIAPI
-GetNextHob (
-  UINT16                 Type,
-  CONST VOID             *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  Hob;
-
-  ASSERT (HobStart != NULL);
-
-  Hob.Raw = (UINT8 *) HobStart;
-  //
-  // Parse the HOB list until end of list or matching type is found.
-  //
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == Type) {
-      return Hob.Raw;
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-  return NULL;
-}
-
-/**
-  Returns the first instance of a HOB type among the whole HOB list.
-**/
-VOID *
-EFIAPI
-GetFirstHob (
-  UINT16                 Type
-  )
-{
-  VOID      *HobList;
-
-  HobList = GetHobList ();
-  return GetNextHob (Type, HobList);
-}
-
-/**
-  Returns the next instance of the matched GUID HOB from the starting HOB.
-**/
-VOID *
-EFIAPI
-GetNextGuidHob (
-  CONST EFI_GUID         *Guid,
-  CONST VOID             *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  GuidHob;
-
-  GuidHob.Raw = (UINT8 *) HobStart;
-  while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
-    if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
-      break;
-    }
-    GuidHob.Raw = GET_NEXT_HOB (GuidHob);
-  }
-  return GuidHob.Raw;
-}
-
-/**
-  Returns the first instance of the matched GUID HOB among the whole HOB list.
-**/
-VOID *
-EFIAPI
-GetFirstGuidHob (
-  CONST EFI_GUID         *Guid
-  )
-{
-  VOID      *HobList;
-
-  HobList = GetHobList ();
-  return GetNextGuidHob (Guid, HobList);
-}
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fspapi.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fspapi.h
deleted file mode 100644
index 5009246..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fspapi.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_API_H_
-#define _FSP_API_H_
-
-#include <fsptypes.h>
-
-#pragma pack(1)
-
-typedef VOID (* CONTINUATION_PROC)(EFI_STATUS Status, VOID *HobListPtr);
-
-typedef struct {
-  VOID               *NvsBufferPtr;
-  VOID               *RtBufferPtr;
-  CONTINUATION_PROC   ContinuationFunc;
-} FSP_INIT_PARAMS;
-
-typedef struct {
-  UINT32            *StackTop;
-  UINT32             BootMode;  /* Refer to boot mode defined in MdePkg\Include\Pi\PiBootMode.h */
-  VOID              *UpdDataRgnPtr;
-  UINT32             Reserved[7];
-} FSP_INIT_RT_COMMON_BUFFER;
-
-typedef enum {
-  EnumInitPhaseAfterPciEnumeration = 0x20,
-  EnumInitPhaseReadyToBoot = 0x40
-} FSP_INIT_PHASE;
-
-typedef struct {
-  FSP_INIT_PHASE     Phase;
-} NOTIFY_PHASE_PARAMS;
-
-#pragma pack()
-
-typedef FSP_STATUS (FSPAPI *FSP_FSP_INIT)    (FSP_INIT_PARAMS     *FspInitParamPtr);
-typedef FSP_STATUS (FSPAPI *FSP_NOTFY_PHASE) (NOTIFY_PHASE_PARAMS *NotifyPhaseParamPtr);
-
-#endif /* _FSP_API_H_ */
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fspbootmode.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fspbootmode.h
deleted file mode 100644
index 16cddf0..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fspbootmode.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __PI_BOOT_MODE_H__
-#define __PI_BOOT_MODE_H__
-
-///
-/// EFI boot mode
-///
-typedef UINT32  EFI_BOOT_MODE;
-
-//
-// 0x21 - 0xf..f are reserved.
-//
-#define BOOT_WITH_FULL_CONFIGURATION                  0x00
-#define BOOT_WITH_MINIMAL_CONFIGURATION               0x01
-#define BOOT_ASSUMING_NO_CONFIGURATION_CHANGES        0x02
-#define BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS 0x03
-#define BOOT_WITH_DEFAULT_SETTINGS                    0x04
-#define BOOT_ON_S4_RESUME                             0x05
-#define BOOT_ON_S5_RESUME                             0x06
-#define BOOT_ON_S2_RESUME                             0x10
-#define BOOT_ON_S3_RESUME                             0x11
-#define BOOT_ON_FLASH_UPDATE                          0x12
-#define BOOT_IN_RECOVERY_MODE                         0x20
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fspffs.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fspffs.h
deleted file mode 100644
index 9e8244d..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fspffs.h
+++ /dev/null
@@ -1,507 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __PI_FIRMWARE_FILE_H__
-#define __PI_FIRMWARE_FILE_H__
-
-#include <fsptypes.h>
-
-#pragma pack(1)
-///
-/// Used to verify the integrity of the file.
-///
-typedef union {
-  struct {
-    ///
-    /// The IntegrityCheck.Checksum.Header field is an 8-bit checksum of the file
-    /// header. The State and IntegrityCheck.Checksum.File fields are assumed
-    /// to be zero and the checksum is calculated such that the entire header sums to zero.
-    ///
-    UINT8   Header;
-    ///
-    /// If the FFS_ATTRIB_CHECKSUM (see definition below) bit of the Attributes
-    /// field is set to one, the IntegrityCheck.Checksum.File field is an 8-bit
-    /// checksum of the file data.
-    /// If the FFS_ATTRIB_CHECKSUM bit of the Attributes field is cleared to zero,
-    /// the IntegrityCheck.Checksum.File field must be initialized with a value of
-    /// 0xAA. The IntegrityCheck.Checksum.File field is valid any time the
-    /// EFI_FILE_DATA_VALID bit is set in the State field.
-    ///
-    UINT8   File;
-  } Checksum;
-  ///
-  /// This is the full 16 bits of the IntegrityCheck field.
-  ///
-  UINT16    Checksum16;
-} EFI_FFS_INTEGRITY_CHECK;
-
-///
-/// FFS_FIXED_CHECKSUM is the checksum value used when the
-/// FFS_ATTRIB_CHECKSUM attribute bit is clear.
-///
-#define FFS_FIXED_CHECKSUM  0xAA
-
-typedef UINT8 EFI_FV_FILETYPE;
-typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
-typedef UINT8 EFI_FFS_FILE_STATE;
-
-///
-/// File Types Definitions
-///
-#define EFI_FV_FILETYPE_ALL                   0x00
-#define EFI_FV_FILETYPE_RAW                   0x01
-#define EFI_FV_FILETYPE_FREEFORM              0x02
-#define EFI_FV_FILETYPE_SECURITY_CORE         0x03
-#define EFI_FV_FILETYPE_PEI_CORE              0x04
-#define EFI_FV_FILETYPE_DXE_CORE              0x05
-#define EFI_FV_FILETYPE_PEIM                  0x06
-#define EFI_FV_FILETYPE_DRIVER                0x07
-#define EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER  0x08
-#define EFI_FV_FILETYPE_APPLICATION           0x09
-#define EFI_FV_FILETYPE_SMM                   0x0A
-#define EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE 0x0B
-#define EFI_FV_FILETYPE_COMBINED_SMM_DXE      0x0C
-#define EFI_FV_FILETYPE_SMM_CORE              0x0D
-#define EFI_FV_FILETYPE_OEM_MIN               0xc0
-#define EFI_FV_FILETYPE_OEM_MAX               0xdf
-#define EFI_FV_FILETYPE_DEBUG_MIN             0xe0
-#define EFI_FV_FILETYPE_DEBUG_MAX             0xef
-#define EFI_FV_FILETYPE_FFS_MIN               0xf0
-#define EFI_FV_FILETYPE_FFS_MAX               0xff
-#define EFI_FV_FILETYPE_FFS_PAD               0xf0
-///
-/// FFS File Attributes.
-///
-#define FFS_ATTRIB_LARGE_FILE         0x01
-#define FFS_ATTRIB_FIXED              0x04
-#define FFS_ATTRIB_DATA_ALIGNMENT     0x38
-#define FFS_ATTRIB_CHECKSUM           0x40
-
-///
-/// FFS File State Bits.
-///
-#define EFI_FILE_HEADER_CONSTRUCTION  0x01
-#define EFI_FILE_HEADER_VALID         0x02
-#define EFI_FILE_DATA_VALID           0x04
-#define EFI_FILE_MARKED_FOR_UPDATE    0x08
-#define EFI_FILE_DELETED              0x10
-#define EFI_FILE_HEADER_INVALID       0x20
-
-
-///
-/// Each file begins with the header that describe the
-/// contents and state of the files.
-///
-typedef struct {
-  ///
-  /// This GUID is the file name. It is used to uniquely identify the file.
-  ///
-  EFI_GUID                Name;
-  ///
-  /// Used to verify the integrity of the file.
-  ///
-  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
-  ///
-  /// Identifies the type of file.
-  ///
-  EFI_FV_FILETYPE         Type;
-  ///
-  /// Declares various file attribute bits.
-  ///
-  EFI_FFS_FILE_ATTRIBUTES Attributes;
-  ///
-  /// The length of the file in bytes, including the FFS header.
-  ///
-  UINT8                   Size[3];
-  ///
-  /// Used to track the state of the file throughout the life of the file from creation to deletion.
-  ///
-  EFI_FFS_FILE_STATE      State;
-} EFI_FFS_FILE_HEADER;
-
-typedef struct {
-  ///
-  /// This GUID is the file name. It is used to uniquely identify the file. There may be only
-  /// one instance of a file with the file name GUID of Name in any given firmware
-  /// volume, except if the file type is EFI_FV_FILETYPE_FFS_PAD.
-  ///
-  EFI_GUID                  Name;
-
-  ///
-  /// Used to verify the integrity of the file.
-  ///
-  EFI_FFS_INTEGRITY_CHECK   IntegrityCheck;
-
-  ///
-  /// Identifies the type of file.
-  ///
-  EFI_FV_FILETYPE           Type;
-
-  ///
-  /// Declares various file attribute bits.
-  ///
-  EFI_FFS_FILE_ATTRIBUTES   Attributes;
-
-  ///
-  /// The length of the file in bytes, including the FFS header.
-  /// The length of the file data is either (Size - sizeof(EFI_FFS_FILE_HEADER)). This calculation means a
-  /// zero-length file has a Size of 24 bytes, which is sizeof(EFI_FFS_FILE_HEADER).
-  /// Size is not required to be a multiple of 8 bytes. Given a file F, the next file header is
-  /// located at the next 8-byte aligned firmware volume offset following the last byte of the file F.
-  ///
-  UINT8                     Size[3];
-
-  ///
-  /// Used to track the state of the file throughout the life of the file from creation to deletion.
-  ///
-  EFI_FFS_FILE_STATE        State;
-
-  ///
-  /// If FFS_ATTRIB_LARGE_FILE is set in Attributes, then ExtendedSize exists and Size must be set to zero.
-  /// If FFS_ATTRIB_LARGE_FILE is not set then EFI_FFS_FILE_HEADER is used.
-  ///
-  UINT32                    ExtendedSize;
-} EFI_FFS_FILE_HEADER2;
-
-#define IS_FFS_FILE2(FfsFileHeaderPtr) \
-    (((((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Attributes) & FFS_ATTRIB_LARGE_FILE) == FFS_ATTRIB_LARGE_FILE)
-
-#define FFS_FILE_SIZE(FfsFileHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_FFS_FILE_HEADER *) (UINTN) FfsFileHeaderPtr)->Size) & 0x00ffffff))
-
-#define FFS_FILE2_SIZE(FfsFileHeaderPtr) \
-    (((EFI_FFS_FILE_HEADER2 *) (UINTN) FfsFileHeaderPtr)->ExtendedSize)
-
-typedef UINT8 EFI_SECTION_TYPE;
-
-///
-/// Pseudo type. It is used as a wild card when retrieving sections.
-///  The section type EFI_SECTION_ALL matches all section types.
-///
-#define EFI_SECTION_ALL                   0x00
-
-///
-/// Encapsulation section Type values.
-///
-#define EFI_SECTION_COMPRESSION           0x01
-
-#define EFI_SECTION_GUID_DEFINED          0x02
-
-#define EFI_SECTION_DISPOSABLE            0x03
-
-///
-/// Leaf section Type values.
-///
-#define EFI_SECTION_PE32                  0x10
-#define EFI_SECTION_PIC                   0x11
-#define EFI_SECTION_TE                    0x12
-#define EFI_SECTION_DXE_DEPEX             0x13
-#define EFI_SECTION_VERSION               0x14
-#define EFI_SECTION_USER_INTERFACE        0x15
-#define EFI_SECTION_COMPATIBILITY16       0x16
-#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
-#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
-#define EFI_SECTION_RAW                   0x19
-#define EFI_SECTION_PEI_DEPEX             0x1B
-#define EFI_SECTION_SMM_DEPEX             0x1C
-
-///
-/// Common section header.
-///
-typedef struct {
-  ///
-  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
-  /// including the EFI_COMMON_SECTION_HEADER.
-  ///
-  UINT8             Size[3];
-  EFI_SECTION_TYPE  Type;
-  ///
-  /// Declares the section type.
-  ///
-} EFI_COMMON_SECTION_HEADER;
-
-typedef struct {
-  ///
-  /// A 24-bit unsigned integer that contains the total size of the section in bytes,
-  /// including the EFI_COMMON_SECTION_HEADER.
-  ///
-  UINT8             Size[3];
-
-  EFI_SECTION_TYPE  Type;
-
-  ///
-  /// If Size is 0xFFFFFF, then ExtendedSize contains the size of the section. If
-  /// Size is not equal to 0xFFFFFF, then this field does not exist.
-  ///
-  UINT32            ExtendedSize;
-} EFI_COMMON_SECTION_HEADER2;
-
-///
-/// Leaf section type that contains an
-/// IA-32 16-bit executable image.
-///
-typedef EFI_COMMON_SECTION_HEADER  EFI_COMPATIBILITY16_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;
-
-///
-/// CompressionType of EFI_COMPRESSION_SECTION.
-///
-#define EFI_NOT_COMPRESSED        0x00
-#define EFI_STANDARD_COMPRESSION  0x01
-///
-/// An encapsulation section type in which the
-/// section data is compressed.
-///
-typedef struct {
-  ///
-  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// The UINT32 that indicates the size of the section data after decompression.
-  ///
-  UINT32                      UncompressedLength;
-  ///
-  /// Indicates which compression algorithm is used.
-  ///
-  UINT8                       CompressionType;
-} EFI_COMPRESSION_SECTION;
-
-typedef struct {
-  ///
-  /// Usual common section header. CommonHeader.Type = EFI_SECTION_COMPRESSION.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// UINT32 that indicates the size of the section data after decompression.
-  ///
-  UINT32                        UncompressedLength;
-  ///
-  /// Indicates which compression algorithm is used.
-  ///
-  UINT8                         CompressionType;
-} EFI_COMPRESSION_SECTION2;
-
-///
-/// An encapsulation section type in which the section data is disposable.
-/// A disposable section is an encapsulation section in which the section data may be disposed of during
-/// the process of creating or updating a firmware image without significant impact on the usefulness of
-/// the file. The Type field in the section header is set to EFI_SECTION_DISPOSABLE. This
-/// allows optional or descriptive data to be included with the firmware file which can be removed in
-/// order to conserve space. The contents of this section are implementation specific, but might contain
-/// debug data or detailed integration instructions.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_DISPOSABLE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_DISPOSABLE_SECTION2;
-
-///
-/// The leaf section which could be used to determine the dispatch order of DXEs.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_DXE_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_DXE_DEPEX_SECTION2;
-
-///
-/// The leaf section which contains a PI FV.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;
-
-///
-/// The leaf section which contains a single GUID.
-///
-typedef struct {
-  ///
-  /// Common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
-  ///
-  EFI_GUID                    SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
-
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_FREEFORM_SUBTYPE_GUID.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// This GUID is defined by the creator of the file. It is a vendor-defined file type.
-  ///
-  EFI_GUID                      SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;
-
-///
-/// Attributes of EFI_GUID_DEFINED_SECTION.
-///
-#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED  0x01
-#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID    0x02
-///
-/// The leaf section which is encapsulation defined by specific GUID.
-///
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
-  ///
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  ///
-  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
-  ///
-  EFI_GUID                    SectionDefinitionGuid;
-  ///
-  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
-  ///
-  UINT16                      DataOffset;
-  ///
-  /// The bit field that declares some specific characteristics of the section contents.
-  ///
-  UINT16                      Attributes;
-} EFI_GUID_DEFINED_SECTION;
-
-typedef struct {
-  ///
-  /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.
-  ///
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.
-  ///
-  EFI_GUID                      SectionDefinitionGuid;
-  ///
-  /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.
-  ///
-  UINT16                        DataOffset;
-  ///
-  /// The bit field that declares some specific characteristics of the section contents.
-  ///
-  UINT16                        Attributes;
-} EFI_GUID_DEFINED_SECTION2;
-
-///
-/// The leaf section which contains PE32+ image.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PE32_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PE32_SECTION2;
-
-///
-/// The leaf section used to determine the dispatch order of PEIMs.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PEI_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PEI_DEPEX_SECTION2;
-
-///
-/// A leaf section type that contains a position-independent-code (PIC) image.
-/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.
-/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be
-/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all
-/// relocation information has been stripped from the image and the image can be moved and will
-/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must
-/// be used if the section is 16MB or larger.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_PIC_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_PIC_SECTION2;
-
-///
-/// The leaf section which constains the position-independent-code image.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_TE_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_TE_SECTION2;
-
-///
-/// The leaf section which contains an array of zero or more bytes.
-///
-typedef EFI_COMMON_SECTION_HEADER   EFI_RAW_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2  EFI_RAW_SECTION2;
-
-///
-/// The SMM dependency expression section is a leaf section that contains a dependency expression that
-/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the
-/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform
-/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.
-/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol
-/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.
-///
-typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;
-typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;
-
-///
-/// The leaf section which contains a unicode string that
-/// is human readable file name.
-///
-typedef struct {
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-
-  ///
-  /// Array of unicode string.
-  ///
-  CHAR16                      FileNameString[1];
-} EFI_USER_INTERFACE_SECTION;
-
-typedef struct {
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  CHAR16                        FileNameString[1];
-} EFI_USER_INTERFACE_SECTION2;
-
-///
-/// The leaf section which contains a numeric build number and
-/// an optional unicode string that represents the file revision.
-///
-typedef struct {
-  EFI_COMMON_SECTION_HEADER   CommonHeader;
-  UINT16                      BuildNumber;
-
-  ///
-  /// Array of unicode string.
-  ///
-  CHAR16                      VersionString[1];
-} EFI_VERSION_SECTION;
-
-typedef struct {
-  EFI_COMMON_SECTION_HEADER2    CommonHeader;
-  ///
-  /// A UINT16 that represents a particular build. Subsequent builds have monotonically
-  /// increasing build numbers relative to earlier builds.
-  ///
-  UINT16                        BuildNumber;
-  CHAR16                        VersionString[1];
-} EFI_VERSION_SECTION2;
-
-#define IS_SECTION2(SectionHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff) == 0x00ffffff)
-
-#define SECTION_SIZE(SectionHeaderPtr) \
-    ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) (UINTN) SectionHeaderPtr)->Size) & 0x00ffffff))
-
-#define SECTION2_SIZE(SectionHeaderPtr) \
-    (((EFI_COMMON_SECTION_HEADER2 *) (UINTN) SectionHeaderPtr)->ExtendedSize)
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fspfv.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fspfv.h
deleted file mode 100644
index 9688cf4..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fspfv.h
+++ /dev/null
@@ -1,249 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __PI_FIRMWAREVOLUME_H__
-#define __PI_FIRMWAREVOLUME_H__
-
-#include <fsptypes.h>
-
-///
-/// EFI_FV_FILE_ATTRIBUTES
-///
-typedef UINT32  EFI_FV_FILE_ATTRIBUTES;
-
-//
-// Value of EFI_FV_FILE_ATTRIBUTES.
-//
-#define EFI_FV_FILE_ATTRIB_ALIGNMENT      0x0000001F
-#define EFI_FV_FILE_ATTRIB_FIXED          0x00000100
-#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED  0x00000200
-
-///
-/// type of EFI FVB attribute
-///
-typedef UINT32  EFI_FVB_ATTRIBUTES_2;
-
-//
-// Attributes bit definitions
-//
-#define EFI_FVB2_READ_DISABLED_CAP  0x00000001
-#define EFI_FVB2_READ_ENABLED_CAP   0x00000002
-#define EFI_FVB2_READ_STATUS        0x00000004
-#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
-#define EFI_FVB2_WRITE_ENABLED_CAP  0x00000010
-#define EFI_FVB2_WRITE_STATUS       0x00000020
-#define EFI_FVB2_LOCK_CAP           0x00000040
-#define EFI_FVB2_LOCK_STATUS        0x00000080
-#define EFI_FVB2_STICKY_WRITE       0x00000200
-#define EFI_FVB2_MEMORY_MAPPED      0x00000400
-#define EFI_FVB2_ERASE_POLARITY     0x00000800
-#define EFI_FVB2_READ_LOCK_CAP      0x00001000
-#define EFI_FVB2_READ_LOCK_STATUS   0x00002000
-#define EFI_FVB2_WRITE_LOCK_CAP     0x00004000
-#define EFI_FVB2_WRITE_LOCK_STATUS  0x00008000
-#define EFI_FVB2_ALIGNMENT          0x001F0000
-#define EFI_FVB2_ALIGNMENT_1        0x00000000
-#define EFI_FVB2_ALIGNMENT_2        0x00010000
-#define EFI_FVB2_ALIGNMENT_4        0x00020000
-#define EFI_FVB2_ALIGNMENT_8        0x00030000
-#define EFI_FVB2_ALIGNMENT_16       0x00040000
-#define EFI_FVB2_ALIGNMENT_32       0x00050000
-#define EFI_FVB2_ALIGNMENT_64       0x00060000
-#define EFI_FVB2_ALIGNMENT_128      0x00070000
-#define EFI_FVB2_ALIGNMENT_256      0x00080000
-#define EFI_FVB2_ALIGNMENT_512      0x00090000
-#define EFI_FVB2_ALIGNMENT_1K       0x000A0000
-#define EFI_FVB2_ALIGNMENT_2K       0x000B0000
-#define EFI_FVB2_ALIGNMENT_4K       0x000C0000
-#define EFI_FVB2_ALIGNMENT_8K       0x000D0000
-#define EFI_FVB2_ALIGNMENT_16K      0x000E0000
-#define EFI_FVB2_ALIGNMENT_32K      0x000F0000
-#define EFI_FVB2_ALIGNMENT_64K      0x00100000
-#define EFI_FVB2_ALIGNMENT_128K     0x00110000
-#define EFI_FVB2_ALIGNMENT_256K     0x00120000
-#define EFI_FVB2_ALIGNMENT_512K     0x00130000
-#define EFI_FVB2_ALIGNMENT_1M       0x00140000
-#define EFI_FVB2_ALIGNMENT_2M       0x00150000
-#define EFI_FVB2_ALIGNMENT_4M       0x00160000
-#define EFI_FVB2_ALIGNMENT_8M       0x00170000
-#define EFI_FVB2_ALIGNMENT_16M      0x00180000
-#define EFI_FVB2_ALIGNMENT_32M      0x00190000
-#define EFI_FVB2_ALIGNMENT_64M      0x001A0000
-#define EFI_FVB2_ALIGNMENT_128M     0x001B0000
-#define EFI_FVB2_ALIGNMENT_256M     0x001C0000
-#define EFI_FVB2_ALIGNMENT_512M     0x001D0000
-#define EFI_FVB2_ALIGNMENT_1G       0x001E0000
-#define EFI_FVB2_ALIGNMENT_2G       0x001F0000
-
-
-typedef struct {
-  ///
-  /// The number of sequential blocks which are of the same size.
-  ///
-  UINT32 NumBlocks;
-  ///
-  /// The size of the blocks.
-  ///
-  UINT32 Length;
-} EFI_FV_BLOCK_MAP_ENTRY;
-
-///
-/// Describes the features and layout of the firmware volume.
-///
-typedef struct {
-  ///
-  /// The first 16 bytes are reserved to allow for the reset vector of
-  /// processors whose reset vector is at address 0.
-  ///
-  UINT8                     ZeroVector[16];
-  ///
-  /// Declares the file system with which the firmware volume is formatted.
-  ///
-  EFI_GUID                  FileSystemGuid;
-  ///
-  /// Length in bytes of the complete firmware volume, including the header.
-  ///
-  UINT64                    FvLength;
-  ///
-  /// Set to EFI_FVH_SIGNATURE
-  ///
-  UINT32                    Signature;
-  ///
-  /// Declares capabilities and power-on defaults for the firmware volume.
-  ///
-  EFI_FVB_ATTRIBUTES_2      Attributes;
-  ///
-  /// Length in bytes of the complete firmware volume header.
-  ///
-  UINT16                    HeaderLength;
-  ///
-  /// A 16-bit checksum of the firmware volume header. A valid header sums to zero.
-  ///
-  UINT16                    Checksum;
-  ///
-  /// Offset, relative to the start of the header, of the extended header
-  /// (EFI_FIRMWARE_VOLUME_EXT_HEADER) or zero if there is no extended header.
-  ///
-  UINT16                    ExtHeaderOffset;
-  ///
-  /// This field must always be set to zero.
-  ///
-  UINT8                     Reserved[1];
-  ///
-  /// Set to 2. Future versions of this specification may define new header fields and will
-  /// increment the Revision field accordingly.
-  ///
-  UINT8                     Revision;
-  ///
-  /// An array of run-length encoded FvBlockMapEntry structures. The array is
-  /// terminated with an entry of {0,0}.
-  ///
-  EFI_FV_BLOCK_MAP_ENTRY    BlockMap[1];
-} EFI_FIRMWARE_VOLUME_HEADER;
-
-#define EFI_FVH_SIGNATURE SIGNATURE_32 ('_', 'F', 'V', 'H')
-
-///
-/// Firmware Volume Header Revision definition
-///
-#define EFI_FVH_REVISION  0x02
-
-///
-/// Extension header pointed by ExtHeaderOffset of volume header.
-///
-typedef struct {
-  ///
-  /// Firmware volume name.
-  ///
-  EFI_GUID  FvName;
-  ///
-  /// Size of the rest of the extension header, including this structure.
-  ///
-  UINT32    ExtHeaderSize;
-} EFI_FIRMWARE_VOLUME_EXT_HEADER;
-
-///
-/// Entry struture for describing FV extension header
-///
-typedef struct {
-  ///
-  /// Size of this header extension.
-  ///
-  UINT16    ExtEntrySize;
-  ///
-  /// Type of the header.
-  ///
-  UINT16    ExtEntryType;
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
-
-#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
-///
-/// This extension header provides a mapping between a GUID and an OEM file type.
-///
-typedef struct {
-  ///
-  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
-  ///
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
-  ///
-  /// A bit mask, one bit for each file type between 0xC0 (bit 0) and 0xDF (bit 31). If a bit
-  /// is '1', then the GUID entry exists in Types. If a bit is '0' then no GUID entry exists in Types.
-  ///
-  UINT32    TypeMask;
-  ///
-  /// An array of GUIDs, each GUID representing an OEM file type.
-  ///
-  /// EFI_GUID  Types[1];
-  ///
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
-
-#define EFI_FV_EXT_TYPE_GUID_TYPE 0x0002
-
-///
-/// This extension header EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE provides a vendor specific
-/// GUID FormatType type which includes a length and a successive series of data bytes.
-///
-typedef struct {
-  ///
-  /// Standard extension entry, with the type EFI_FV_EXT_TYPE_OEM_TYPE.
-  ///
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY     Hdr;
-  ///
-  /// Vendor-specific GUID.
-  ///
-  EFI_GUID                          FormatType;
-  ///
-  /// An arry of bytes of length Length.
-  ///
-  /// UINT8                             Data[1];
-  ///
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_GUID_TYPE;
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fspguid.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fspguid.h
deleted file mode 100644
index b9a6183..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fspguid.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/** @file
-
-Copyright (C) 2014, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_GUID_H__
-#define __FSP_GUID_H__
-
-/**
-
- FSP specific GUID HOB definitions
-
- **/
-#define FSP_INFO_HEADER_GUID \
-  { \
-  0x912740BE, 0x2284, 0x4734, {0xB9, 0x71, 0x84, 0xB0, 0x27, 0x35, 0x3F, 0x0C} \
-  }
-
-#define FSP_NON_VOLATILE_STORAGE_HOB_GUID \
-  { \
-  0x721acf02, 0x4d77, 0x4c2a, { 0xb3, 0xdc, 0x27, 0xb, 0x7b, 0xa9, 0xe4, 0xb0 } \
-  }
-
-#define FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID \
-  { \
-  0xbbcff46c, 0xc8d3, 0x4113, { 0x89, 0x85, 0xb9, 0xd4, 0xf3, 0xb3, 0xf6, 0x4e } \
-  }
-
-#define FSP_HOB_RESOURCE_OWNER_FSP_GUID \
-  { \
-  0x69a79759, 0x1373, 0x4367, { 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e } \
-  }
-
-#define FSP_HOB_RESOURCE_OWNER_TSEG_GUID \
-  { \
-  0xd038747c, 0xd00c, 0x4980, { 0xb3, 0x19, 0x49, 0x01, 0x99, 0xa4, 0x7d, 0x55 } \
-  }
-
-#define FSP_HOB_RESOURCE_OWNER_GRAPHICS_GUID \
-  { \
-  0x9c7c3aa7, 0x5332, 0x4917, { 0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07 } \
-  }
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fsphob.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fsphob.h
deleted file mode 100644
index 0f743b5..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fsphob.h
+++ /dev/null
@@ -1,544 +0,0 @@
-/** @file
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __PI_HOB_H__
-#define __PI_HOB_H__
-
-#include <fsptypes.h>
-
-//
-// HobType of EFI_HOB_GENERIC_HEADER.
-//
-#define EFI_HOB_TYPE_MEMORY_ALLOCATION    0x0002
-#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
-#define EFI_HOB_TYPE_GUID_EXTENSION       0x0004
-#define EFI_HOB_TYPE_UNUSED               0xFFFE
-#define EFI_HOB_TYPE_END_OF_HOB_LIST      0xFFFF
-
-///
-/// Describes the format and size of the data inside the HOB.
-/// All HOBs must contain this generic HOB header.
-///
-typedef struct {
-  ///
-  /// Identifies the HOB data structure type.
-  ///
-  UINT16    HobType;
-  ///
-  /// The length in bytes of the HOB.
-  ///
-  UINT16    HobLength;
-  ///
-  /// This field must always be set to zero.
-  ///
-  UINT32    Reserved;
-} EFI_HOB_GENERIC_HEADER;
-
-///
-/// Enumeration of memory types introduced in UEFI.
-///
-typedef enum {
-  ///
-  /// Not used.
-  ///
-  EfiReservedMemoryType,
-  ///
-  /// The code portions of a loaded application.
-  /// (Note that UEFI OS loaders are UEFI applications.)
-  ///
-  EfiLoaderCode,
-  ///
-  /// The data portions of a loaded application and the default data allocation
-  /// type used by an application to allocate pool memory.
-  ///
-  EfiLoaderData,
-  ///
-  /// The code portions of a loaded Boot Services Driver.
-  ///
-  EfiBootServicesCode,
-  ///
-  /// The data portions of a loaded Boot Serves Driver, and the default data
-  /// allocation type used by a Boot Services Driver to allocate pool memory.
-  ///
-  EfiBootServicesData,
-  ///
-  /// The code portions of a loaded Runtime Services Driver.
-  ///
-  EfiRuntimeServicesCode,
-  ///
-  /// The data portions of a loaded Runtime Services Driver and the default
-  /// data allocation type used by a Runtime Services Driver to allocate pool memory.
-  ///
-  EfiRuntimeServicesData,
-  ///
-  /// Free (unallocated) memory.
-  ///
-  EfiConventionalMemory,
-  ///
-  /// Memory in which errors have been detected.
-  ///
-  EfiUnusableMemory,
-  ///
-  /// Memory that holds the ACPI tables.
-  ///
-  EfiACPIReclaimMemory,
-  ///
-  /// Address space reserved for use by the firmware.
-  ///
-  EfiACPIMemoryNVS,
-  ///
-  /// Used by system firmware to request that a memory-mapped IO region
-  /// be mapped by the OS to a virtual address so it can be accessed by EFI runtime services.
-  ///
-  EfiMemoryMappedIO,
-  ///
-  /// System memory-mapped IO region that is used to translate memory
-  /// cycles to IO cycles by the processor.
-  ///
-  EfiMemoryMappedIOPortSpace,
-  ///
-  /// Address space reserved by the firmware for code that is part of the processor.
-  ///
-  EfiPalCode,
-  EfiMaxMemoryType
-} EFI_MEMORY_TYPE;
-
-///
-/// EFI_HOB_MEMORY_ALLOCATION_HEADER describes the
-/// various attributes of the logical memory allocation. The type field will be used for
-/// subsequent inclusion in the UEFI memory map.
-///
-typedef struct {
-  ///
-  /// A GUID that defines the memory allocation region's type and purpose, as well as
-  /// other fields within the memory allocation HOB. This GUID is used to define the
-  /// additional data within the HOB that may be present for the memory allocation HOB.
-  /// Type EFI_GUID is defined in InstallProtocolInterface() in the UEFI 2.0
-  /// specification.
-  ///
-  EFI_GUID              Name;
-
-  ///
-  /// The base address of memory allocated by this HOB. Type
-  /// EFI_PHYSICAL_ADDRESS is defined in AllocatePages() in the UEFI 2.0
-  /// specification.
-  ///
-  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
-
-  ///
-  /// The length in bytes of memory allocated by this HOB.
-  ///
-  UINT64                MemoryLength;
-
-  ///
-  /// Defines the type of memory allocated by this HOB. The memory type definition
-  /// follows the EFI_MEMORY_TYPE definition. Type EFI_MEMORY_TYPE is defined
-  /// in AllocatePages() in the UEFI 2.0 specification.
-  ///
-  EFI_MEMORY_TYPE       MemoryType;
-
-  ///
-  /// Padding for Itanium processor family
-  ///
-  UINT8                 Reserved[4];
-} EFI_HOB_MEMORY_ALLOCATION_HEADER;
-
-///
-/// Describes all memory ranges used during the HOB producer
-/// phase that exist outside the HOB list. This HOB type
-/// describes how memory is used, not the physical attributes of memory.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_MEMORY_ALLOCATION.
-  ///
-  EFI_HOB_GENERIC_HEADER            Header;
-  ///
-  /// An instance of the EFI_HOB_MEMORY_ALLOCATION_HEADER that describes the
-  /// various attributes of the logical memory allocation.
-  ///
-  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
-  //
-  // Additional data pertaining to the "Name" Guid memory
-  // may go here.
-  //
-} EFI_HOB_MEMORY_ALLOCATION;
-
-///
-/// The resource type.
-///
-typedef UINT32 EFI_RESOURCE_TYPE;
-
-//
-// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
-//
-#define EFI_RESOURCE_SYSTEM_MEMORY          0x00000000
-#define EFI_RESOURCE_MEMORY_MAPPED_IO       0x00000001
-#define EFI_RESOURCE_IO                     0x00000002
-#define EFI_RESOURCE_FIRMWARE_DEVICE        0x00000003
-#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  0x00000004
-#define EFI_RESOURCE_MEMORY_RESERVED        0x00000005
-#define EFI_RESOURCE_IO_RESERVED            0x00000006
-#define EFI_RESOURCE_MAX_MEMORY_TYPE        0x00000007
-
-///
-/// A type of recount attribute type.
-///
-typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
-
-//
-// These types can be ORed together as needed.
-//
-// The first three enumerations describe settings
-//
-#define EFI_RESOURCE_ATTRIBUTE_PRESENT              0x00000001
-#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED          0x00000002
-#define EFI_RESOURCE_ATTRIBUTE_TESTED               0x00000004
-//
-// The rest of the settings describe capabilities
-//
-#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC           0x00000008
-#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC         0x00000010
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1           0x00000020
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2           0x00000040
-#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED           0x00000080
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED          0x00000100
-#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED      0x00000200
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE              0x00000400
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE        0x00000800
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE  0x00001000
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE     0x00002000
-#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO                0x00004000
-#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO                0x00008000
-#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO                0x00010000
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED        0x00020000
-
-///
-/// Describes the resource properties of all fixed,
-/// nonrelocatable resource ranges found on the processor
-/// host bus during the HOB producer phase.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_RESOURCE_DESCRIPTOR.
-  ///
-  EFI_HOB_GENERIC_HEADER      Header;
-  ///
-  /// A GUID representing the owner of the resource. This GUID is used by HOB
-  /// consumer phase components to correlate device ownership of a resource.
-  ///
-  EFI_GUID                    Owner;
-  ///
-  /// The resource type enumeration as defined by EFI_RESOURCE_TYPE.
-  ///
-  EFI_RESOURCE_TYPE           ResourceType;
-  ///
-  /// Resource attributes as defined by EFI_RESOURCE_ATTRIBUTE_TYPE.
-  ///
-  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
-  ///
-  /// The physical start address of the resource region.
-  ///
-  EFI_PHYSICAL_ADDRESS        PhysicalStart;
-  ///
-  /// The number of bytes of the resource region.
-  ///
-  UINT64                      ResourceLength;
-} EFI_HOB_RESOURCE_DESCRIPTOR;
-
-///
-/// Allows writers of executable content in the HOB producer phase to
-/// maintain and manage HOBs with specific GUID.
-///
-typedef struct {
-  ///
-  /// The HOB generic header. Header.HobType = EFI_HOB_TYPE_GUID_EXTENSION.
-  ///
-  EFI_HOB_GENERIC_HEADER      Header;
-  ///
-  /// A GUID that defines the contents of this HOB.
-  ///
-  EFI_GUID                    Name;
-  //
-  // Guid specific data goes here
-  //
-} EFI_HOB_GUID_TYPE;
-
-///
-/// Union of all the possible HOB Types.
-///
-typedef union {
-  EFI_HOB_GENERIC_HEADER              *Header;
-  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
-  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
-  EFI_HOB_GUID_TYPE                   *Guid;
-  UINT8                               *Raw;
-} EFI_PEI_HOB_POINTERS;
-
-
-/**
-  Returns the type of a HOB.
-
-  This macro returns the HobType field from the HOB header for the
-  HOB specified by HobStart.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return HobType.
-
-**/
-#define GET_HOB_TYPE(HobStart) \
-  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobType)
-
-/**
-  Returns the length, in bytes, of a HOB.
-
-  This macro returns the HobLength field from the HOB header for the
-  HOB specified by HobStart.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return HobLength.
-
-**/
-#define GET_HOB_LENGTH(HobStart) \
-  ((*(EFI_HOB_GENERIC_HEADER **)&(HobStart))->HobLength)
-
-/**
-  Returns a pointer to the next HOB in the HOB list.
-
-  This macro returns a pointer to HOB that follows the
-  HOB specified by HobStart in the HOB List.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @return A pointer to the next HOB in the HOB list.
-
-**/
-#define GET_NEXT_HOB(HobStart) \
-  (VOID *)(*(UINT8 **)&(HobStart) + GET_HOB_LENGTH (HobStart))
-
-/**
-  Determines if a HOB is the last HOB in the HOB list.
-
-  This macro determine if the HOB specified by HobStart is the
-  last HOB in the HOB list.  If HobStart is last HOB in the HOB list,
-  then TRUE is returned.  Otherwise, FALSE is returned.
-
-  @param  HobStart   A pointer to a HOB.
-
-  @retval TRUE       The HOB specified by HobStart is the last HOB in the HOB list.
-  @retval FALSE      The HOB specified by HobStart is not the last HOB in the HOB list.
-
-**/
-#define END_OF_HOB_LIST(HobStart)  (GET_HOB_TYPE (HobStart) == (UINT16)EFI_HOB_TYPE_END_OF_HOB_LIST)
-
-/**
-  Returns a pointer to data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  This macro returns a pointer to the data buffer in a HOB specified by HobStart.
-  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  @param   GuidHob   A pointer to a HOB.
-
-  @return  A pointer to the data buffer in a HOB.
-
-**/
-#define GET_GUID_HOB_DATA(HobStart) \
-  (VOID *)(*(UINT8 **)&(HobStart) + sizeof (EFI_HOB_GUID_TYPE))
-
-/**
-  Returns the size of the data buffer from a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  This macro returns the size, in bytes, of the data buffer in a HOB specified by HobStart.
-  HobStart is assumed to be a HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
-
-  @param   GuidHob   A pointer to a HOB.
-
-  @return  The size of the data buffer.
-**/
-#define GET_GUID_HOB_DATA_SIZE(HobStart) \
-  (UINT16)(GET_HOB_LENGTH (HobStart) - sizeof (EFI_HOB_GUID_TYPE))
-
-/**
-  Returns the pointer to the HOB list.
-
-  This function returns the pointer to first HOB in the list.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-
-  @return The pointer to the HOB list.
-
-**/
-VOID *
-EFIAPI
-GetHobList (
-  VOID
-  );
-
-/**
-  Returns the next instance of a HOB type from the starting HOB.
-
-  This function searches the first instance of a HOB type from the starting HOB pointer.
-  If there does not exist such HOB type from the starting HOB pointer, it will return NULL.
-  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
-  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
-  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
-
-  If HobStart is NULL, then ASSERT().
-
-  @param  Type          The HOB type to return.
-  @param  HobStart      The starting HOB pointer to search from.
-
-  @return The next instance of a HOB type from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetNextHob (
-  UINT16                 Type,
-  CONST VOID             *HobStart
-  );
-
-/**
-  Returns the first instance of a HOB type among the whole HOB list.
-
-  This function searches the first instance of a HOB type among the whole HOB list.
-  If there does not exist such HOB type in the HOB list, it will return NULL.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-
-  @param  Type          The HOB type to return.
-
-  @return The next instance of a HOB type from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetFirstHob (
-  UINT16                 Type
-  );
-
-/**
-  Returns the next instance of the matched GUID HOB from the starting HOB.
-
-  This function searches the first instance of a HOB from the starting HOB pointer.
-  Such HOB should satisfy two conditions:
-  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
-  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
-  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
-  to extract the data section and its size info respectively.
-  In contrast with macro GET_NEXT_HOB(), this function does not skip the starting HOB pointer
-  unconditionally: it returns HobStart back if HobStart itself meets the requirement;
-  caller is required to use GET_NEXT_HOB() if it wishes to skip current HobStart.
-
-  If Guid is NULL, then ASSERT().
-  If HobStart is NULL, then ASSERT().
-
-  @param  Guid          The GUID to match with in the HOB list.
-  @param  HobStart      A pointer to a Guid.
-
-  @return The next instance of the matched GUID HOB from the starting HOB.
-
-**/
-VOID *
-EFIAPI
-GetNextGuidHob (
-  CONST EFI_GUID         *Guid,
-  CONST VOID             *HobStart
-  );
-
-/**
-  Returns the first instance of the matched GUID HOB among the whole HOB list.
-
-  This function searches the first instance of a HOB among the whole HOB list.
-  Such HOB should satisfy two conditions:
-  its HOB type is EFI_HOB_TYPE_GUID_EXTENSION and its GUID Name equals to the input Guid.
-  If there does not exist such HOB from the starting HOB pointer, it will return NULL.
-  Caller is required to apply GET_GUID_HOB_DATA () and GET_GUID_HOB_DATA_SIZE ()
-  to extract the data section and its size info respectively.
-
-  If the pointer to the HOB list is NULL, then ASSERT().
-  If Guid is NULL, then ASSERT().
-
-  @param  Guid          The GUID to match with in the HOB list.
-
-  @return The first instance of the matched GUID HOB among the whole HOB list.
-
-**/
-VOID *
-EFIAPI
-GetFirstGuidHob (
-  CONST EFI_GUID         *Guid
-  );
-
-/**
-  Compares two GUIDs.
-
-  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
-  If there are any bit differences in the two GUIDs, then FALSE is returned.
-
-  If Guid1 is NULL, then ASSERT().
-  If Guid2 is NULL, then ASSERT().
-
-  @param  Guid1       A pointer to a 128 bit GUID.
-  @param  Guid2       A pointer to a 128 bit GUID.
-
-  @retval TRUE        Guid1 and Guid2 are identical.
-  @retval FALSE       Guid1 and Guid2 are not identical.
-
-**/
-BOOLEAN
-EFIAPI
-CompareGuid (
-  CONST EFI_GUID  *Guid1,
-  CONST EFI_GUID  *Guid2
-  );
-
-/**
-  Reads a 64-bit value from memory that may be unaligned.
-
-  This function returns the 64-bit value pointed to by Buffer. The function
-  guarantees that the read operation does not produce an alignment fault.
-
-  If the Buffer is NULL, then ASSERT().
-
-  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
-
-  @return The 64-bit value read from Buffer.
-
-**/
-UINT64
-EFIAPI
-ReadUnaligned64 (
-  CONST UINT64              *Buffer
-  );
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fspinfoheader.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fspinfoheader.h
deleted file mode 100644
index 28382cf..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fspinfoheader.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*++
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_INFO_HEADER_H_
-#define _FSP_INFO_HEADER_H_
-
-#pragma pack(1)
-
-typedef struct  {
-
-  UINT32  Signature;       // Off 0x94
-  UINT32  HeaderLength;
-  UINT8   Reserved1[3];
-  UINT8   HeaderRevision;
-  UINT32  ImageRevision;
-
-  CHAR8   ImageId[8];      // Off 0xA4
-  UINT32  ImageSize;
-  UINT32  ImageBase;
-
-  UINT32  ImageAttribute;  // Off 0xB4
-  UINT32  CfgRegionOffset;
-  UINT32  CfgRegionSize;
-  UINT32  ApiEntryNum;
-
-  UINT32  NemInitEntry;    // Off 0xC4
-  UINT32  FspInitEntry;
-  UINT32  NotifyPhaseEntry;
-  UINT32  Reserved2;
-
-} FSP_INFO_HEADER;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fspplatform.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fspplatform.h
deleted file mode 100644
index c35dca0..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fspplatform.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
-
-Copyright (C) 2013 - 2015, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef _FSP_PLATFORM_H_
-#define _FSP_PLATFORM_H_
-
-#include "fsptypes.h"
-#include "fspapi.h"
-
-//
-// Maximum number of SDRAM channels supported by each CPU
-//
-#define MAX_CHANNELS                 2
-//
-// Maximum number of DIMM sockets supported by each channel
-//
-#define MAX_DIMMS                    2
-
-#pragma pack(1)
-//
-// SPD DDR3 structure
-//
-typedef struct {
-  UINT8  DRAMDeviceType;                 // 2   DRAM Device Type
-  UINT8  ModuleType;                     // 3   Module Type
-  UINT8  SDRAMDensityAndBanks;           // 4   SDRAM Density and Banks
-  UINT8  SDRAMAddressing;                // 5   SDRAM Addressing
-  UINT8  VDD;                            // 6   Module Nominal Voltage
-  UINT8  ModuleOrganization;             // 7   Module Organization
-  UINT8  ModuleMemoryBusWidth;           // 8   Module Memory Bus Width
-  UINT8  TimebaseDividend;               // 10  Medium Timebase (MTB) Dividend
-  UINT8  TimebaseDivisor;                // 11  Medium Timebase (MTB) Divisor
-  UINT8  SDRAMMinimumCycleTime;          // 12  SDRAM Minimum Cycle Time (tCKmin)
-  UINT8  CASLatenciesLSB;                // 14  CAS Latencies Supported, Least Significant Byte
-  UINT8  CASLatenciesMSB;                // 15  CAS Latencies Supported, Most Significant Byte
-  UINT8  MinimumCASLatencyTime;          // 16  Minimum CAS Latency Time (tAAmin)
-  UINT8  MinimumWriteRecoveryTime;       // 17  Minimum Write Recovery Time (tWRmin)
-  UINT8  MinimumRASToCASDelayTime;       // 18  Minimum RAS# to CAS# Delay Time (tRCDmin)
-  UINT8  MinimumRowToRowDelayTime;       // 19  Minimum Row Active to Row Active Delay Time (tRRDmin)
-  UINT8  MinimumRowPrechargeDelayTime;   // 20  Minimum Row Precharge Delay Time (tRPmin)
-  UINT8  UpperNibblesFortRASAndtRC;      // 21  Upper Nibbles for tRAS and tRC
-  UINT8  tRASmin;                        // 22  Minimum Active to Precharge Delay Time (tRASmin), Least Significant Byte
-  UINT8  tRCmin;                         // 23  Minimum Active to Active/Refresh Delay Time (tRCmin), Least Significant Byte
-  UINT8  tRFCminLeastSignificantByte;    // 24  Minimum Refresh Recovery Delay Time (tRFCmin), Least Significant Byte
-  UINT8  tRFCminMostSignificantByte;     // 25  Minimum Refresh Recovery Delay Time (tRFCmin), Most Significant Byte
-  UINT8  tWTRmin;                        // 26  Minimum Internal Write to Read Command Delay Time (tWTRmin)
-  UINT8  tRTPmin;                        // 27  Minimum Internal Read to Precharge Command Delay Time (tRTPmin)
-  UINT8  UpperNibbleFortFAW;             // 28  Upper Nibble for tFAW
-  UINT8  tFAWmin;                        // 29  Minimum Four Activate Window Delay Time (tFAWmin)
-  UINT8  SdramThermalRefreshOption;      // 31  SdramThermalRefreshOption
-  UINT8  ModuleThermalSensor;            // 32  ModuleThermalSensor
-  UINT8  SDRAMDeviceType;                // 33  SDRAM Device Type
-  UINT8  tCKminFine;                     // 34  Fine Offset for SDRAM Minimum Cycle Time (tCKmin)
-  UINT8  tAAminFine;                     // 35  Fine Offset for Minimum CAS Latency Time (tAAmin)
-  UINT8  MACCount;                       // 41  Maximum Activate Count
-  UINT8  ReferenceRawCardUsed;           // 62  Reference Raw Card Used
-  UINT8  AddressMappingEdgeConnector;    // 63  Address Mapping from Edge Connector to DRAM
-  UINT8  ModuleManufacturerIdCodeLsb;    // 117 Module Manufacturer ID Code, Least Significant Byte
-  UINT8  ModuleManufacturerIdCodeMsb;    // 118 Module Manufacturer ID Code, Most Significant Byte
-  UINT8  ModuleManufacturingLocation;    // 119 Module Manufacturing Location
-  UINT8  ModuleManufacturingDateYear;    // 120 Module Manufacturing Date Year
-  UINT8  ModuleManufacturingDateWW;      // 121 Module Manufacturing Date creation work week
-  UINT8  ModuleSerialNumberA;            // 122 Module Serial Number A
-  UINT8  ModuleSerialNumberB;            // 123 Module Serial Number B
-  UINT8  ModuleSerialNumberC;            // 124 Module Serial Number C
-  UINT8  ModuleSerialNumberD;            // 125 Module Serial Number D
-  UINT8  DramManufacturerIdLsb;          // 148 DRAM Manufacturer ID Code, LSB
-  UINT8  DramManufacturerIdMsb;          // 149 DRAM Manufacturer ID Code, MSB
-} MEM_DOWN_DIMM_SPD_DATA;
-
-typedef struct {
-  UINT32   MemoryDownDimmPopulation;  // 0 - Empty, 1 - DIMM populated
-  MEM_DOWN_DIMM_SPD_DATA   MemoryDownDimmSpdData;
-} MEM_DOWN_DIMM_CONFIG;
-
-typedef struct {
-  CONST MEM_DOWN_DIMM_CONFIG  *MemDownDimmConfig[MAX_CHANNELS][MAX_DIMMS];
-} FSP_INIT_RT_PLATFORM_BUFFER;
-
-typedef struct {
-  FSP_INIT_RT_COMMON_BUFFER  Common;
-  FSP_INIT_RT_PLATFORM_BUFFER Platform;
-} FSP_INIT_RT_BUFFER;
-
-#pragma pack()
-
-#endif
\ No newline at end of file
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fspsupport.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fspsupport.h
deleted file mode 100644
index dbbbf77..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fspsupport.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/** @file
-
-Copyright (C) 2013 - 2014, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#ifndef __FSP_SUPPORT_H__
-#define __FSP_SUPPORT_H__
-
-#include "fsptypes.h"
-#include "fspfv.h"
-#include "fspffs.h"
-#include "fspapi.h"
-#include "fsphob.h"
-#include "fspguid.h"
-#include "fspplatform.h"
-#include "fspinfoheader.h"
-#include "fspbootmode.h"
-#include "fspvpd.h"
-
-UINT32
-GetUsableLowMemTop (
-  CONST VOID             *HobListPtr
-  );
-
-UINT64
-GetUsableHighMemTop (
-  CONST VOID             *HobListPtr
-  );
-
-VOID *
-GetGuidHobDataBuffer (
-  CONST VOID             *HobListPtr,
-  UINT32                 *Length,
-  EFI_GUID               *Guid
-  );
-
-VOID
-GetFspReservedMemoryFromGuid (
-  CONST VOID             *HobListPtr,
-  EFI_PHYSICAL_ADDRESS   *FspMemoryBase,
-  UINT64                 *FspMemoryLength,
-  EFI_GUID               *FspReservedMemoryGuid
-  );
-
-UINT32
-GetTsegReservedMemory (
-  CONST VOID             *HobListPtr,
-  UINT32                 *Length
-);
-
-UINT32
-GetFspReservedMemory (
-  CONST VOID             *HobListPtr,
-  UINT32                 *Length
-);
-
-VOID*
-GetFspNvsDataBuffer (
-  CONST VOID             *HobListPtr,
-  UINT32                 *Length
-  );
-
-VOID *
-GetBootloaderTempMemoryBuffer (
-  CONST VOID             *HobListPtr,
-  UINT32                 *Length
-  );
-
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fsptypes.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fsptypes.h
deleted file mode 100644
index da19250..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fsptypes.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/******************************************************************************
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
- *****************************************************************************/
-
-/** \file  fsptypes.h
- *
- *
- */
-
-#ifndef __FSP_TYPES_H__
-#define __FSP_TYPES_H__
-
-///
-/// 8-byte unsigned value.
-///
-typedef unsigned long long  UINT64;
-///
-/// 8-byte signed value.
-///
-typedef long long           INT64;
-///
-/// 4-byte unsigned value.
-///
-typedef unsigned int        UINT32;
-///
-/// 4-byte signed value.
-///
-typedef int                 INT32;
-///
-/// 2-byte unsigned value.
-///
-typedef unsigned short      UINT16;
-///
-/// 2-byte Character.  Unless otherwise specified all strings are stored in the
-/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
-///
-typedef unsigned short      CHAR16;
-///
-/// 2-byte signed value.
-///
-typedef short               INT16;
-///
-/// Logical Boolean.  1-byte value containing 0 for FALSE or a 1 for TRUE.  Other
-/// values are undefined.
-///
-typedef unsigned char       BOOLEAN;
-///
-/// 1-byte unsigned value.
-///
-typedef unsigned char       UINT8;
-///
-/// 1-byte Character
-///
-typedef char                CHAR8;
-///
-/// 1-byte signed value
-///
-typedef char                INT8;
-
-typedef void                VOID;
-
-typedef UINT64              EFI_PHYSICAL_ADDRESS;
-
-typedef struct {
-  UINT32  Data1;
-  UINT16  Data2;
-  UINT16  Data3;
-  UINT8   Data4[8];
-} EFI_GUID;
-
-#define CONST     const
-#define STATIC    static
-
-#define TRUE  ((BOOLEAN)(1==1))
-#define FALSE ((BOOLEAN)(0==1))
-
-static inline void DebugDeadLoop(void) {
-  for (;;);
-}
-
-#define FSPAPI __attribute__((cdecl))
-#define EFIAPI __attribute__((cdecl))
-
-#define _ASSERT(Expression)  DebugDeadLoop()
-#define ASSERT(Expression)      \
-  do {                          \
-    if (!(Expression)) {        \
-      _ASSERT (Expression);     \
-    }                           \
-  } while (FALSE)
-
-typedef UINT32 FSP_STATUS;
-typedef UINT32 EFI_STATUS;
-
-///
-/// Compatiable with EFI_STATUS defined in PI Spec.
-#define FSP_SUCCESS               0
-#define FSP_INVALID_PARAMETER     0x80000002
-#define FSP_UNSUPPORTED           0x80000003
-#define FSP_DEVICE_ERROR          0x80000007
-#define FSP_NOT_FOUND             0x8000000E
-#define FSP_ALREADY_STARTED       0x80000014
-
-/**
-  Returns a 16-bit signature built from 2 ASCII characters.
-
-  This macro returns a 16-bit value built from the two ASCII characters specified
-  by A and B.
-
-  @param  A    The first ASCII character.
-  @param  B    The second ASCII character.
-
-  @return A 16-bit value built from the two ASCII characters specified by A and B.
-
-**/
-#define SIGNATURE_16(A, B)        ((A) | (B << 8))
-
-/**
-  Returns a 32-bit signature built from 4 ASCII characters.
-
-  This macro returns a 32-bit value built from the four ASCII characters specified
-  by A, B, C, and D.
-
-  @param  A    The first ASCII character.
-  @param  B    The second ASCII character.
-  @param  C    The third ASCII character.
-  @param  D    The fourth ASCII character.
-
-  @return A 32-bit value built from the two ASCII characters specified by A, B,
-          C and D.
-
-**/
-#define SIGNATURE_32(A, B, C, D)  (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16))
-
-/**
-  Returns a 64-bit signature built from 8 ASCII characters.
-
-  This macro returns a 64-bit value built from the eight ASCII characters specified
-  by A, B, C, D, E, F, G,and H.
-
-  @param  A    The first ASCII character.
-  @param  B    The second ASCII character.
-  @param  C    The third ASCII character.
-  @param  D    The fourth ASCII character.
-  @param  E    The fifth ASCII character.
-  @param  F    The sixth ASCII character.
-  @param  G    The seventh ASCII character.
-  @param  H    The eighth ASCII character.
-
-  @return A 64-bit value built from the two ASCII characters specified by A, B,
-          C, D, E, F, G and H.
-
-**/
-#define SIGNATURE_64(A, B, C, D, E, F, G, H) \
-    (SIGNATURE_32 (A, B, C, D) | ((UINT64) (SIGNATURE_32 (E, F, G, H)) << 32))
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/include/fspvpd.h b/src/vendorcode/intel/fsp1_0/rangeley/include/fspvpd.h
deleted file mode 100644
index 4ba1a28..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/include/fspvpd.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/** @file
-
-Copyright (C) 2015, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-  This file is automatically generated. Please do NOT modify !!!
-
-**/
-
-#ifndef __FSP_VPD_H__
-#define __FSP_VPD_H__
-
-#pragma pack(1)
-
-
-
-typedef struct _UPD_DATA_REGION {
-  UINT64                      Signature;                     /* Offset 0x0000 */
-  UINT64                      Reserved;                      /* Offset 0x0008 */
-  UINT8                       UnusedUpdSpace0[16];           /* Offset 0x0010 */
-  UINT8                       PcdMrcInitTsegSize;            /* Offset 0x0020 */
-  UINT8                       PcdMemoryDown;                 /* Offset 0x0021 */
-  UINT8                       PcdMrcRmtSupport;              /* Offset 0x0022 */
-  UINT8                       PcdMrcRmtCpgcExpLoopCntValue;  /* Offset 0x0023 */
-  UINT8                       PcdMrcRmtCpgcNumBursts;        /* Offset 0x0024 */
-  UINT8                       PcdSpdBaseAddress_0_0;         /* Offset 0x0025 */
-  UINT8                       PcdSpdBaseAddress_0_1;         /* Offset 0x0026 */
-  UINT8                       PcdSpdBaseAddress_1_0;         /* Offset 0x0027 */
-  UINT8                       PcdSpdBaseAddress_1_1;         /* Offset 0x0028 */
-  UINT8                       PcdExtendedTemperatureEnable;  /* Offset 0x0029 */
-  UINT8                       UnusedUpdSpace1[6];            /* Offset 0x002A */
-  UINT8                       PcdEnableLan;                  /* Offset 0x0030 */
-  UINT8                       PcdEnableSata2;                /* Offset 0x0031 */
-  UINT8                       PcdEnableSata3;                /* Offset 0x0032 */
-  UINT8                       PcdEnableIQAT;                 /* Offset 0x0033 */
-  UINT8                       PcdEnableUsb20;                /* Offset 0x0034 */
-  UINT8                       PcdBifurcation;                /* Offset 0x0035 */
-  UINT8                       PcdPcieRootPort1DeEmphasis;    /* Offset 0x0036 */
-  UINT8                       PcdPcieRootPort2DeEmphasis;    /* Offset 0x0037 */
-  UINT8                       PcdPcieRootPort3DeEmphasis;    /* Offset 0x0038 */
-  UINT8                       PcdPcieRootPort4DeEmphasis;    /* Offset 0x0039 */
-  UINT8                       UnusedUpdSpace2[6];            /* Offset 0x003A */
-  UINT8                       PcdPrintDebugMessages;         /* Offset 0x0040 */
-  UINT8                       PcdFastboot;                   /* Offset 0x0041 */
-  UINT8                       PcdEccSupport;                 /* Offset 0x0042 */
-  UINT8                       PcdSerialPortBaudRate;         /* Offset 0x0043 */
-  UINT8                       PcdCustomerRevision[32];       /* Offset 0x0044 */
-  UINT8                       UnusedUpdSpace3[12];           /* Offset 0x0064 */
-  UINT16                      PcdRegionTerminator;           /* Offset 0x0070 */
-} UPD_DATA_REGION;
-
-#define VPD_IMAGE_ID    0x562D474E524E5641        /* 'AVNRNG-V' */
-#define VPD_IMAGE_REV   0x00000140
-
-typedef struct _VPD_DATA_REGION {
-  UINT64                      PcdVpdRegionSign;              /* Offset 0x0000 */
-  UINT32                      PcdImageRevision;              /* Offset 0x0008 */
-  UINT32                      PcdUpdRegionOffset;            /* Offset 0x000C */
-  UINT8                       UnusedVpdSpace0[16];           /* Offset 0x0010 */
-  UINT32                      PcdFspReservedMemoryLength;    /* Offset 0x0020 */
-  UINT8                       PcdSpdWriteProtect;            /* Offset 0x0024 */
-} VPD_DATA_REGION;
-
-#pragma pack()
-
-#endif
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/srx/fsp_support.c b/src/vendorcode/intel/fsp1_0/rangeley/srx/fsp_support.c
deleted file mode 100644
index 9f15b3e..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/srx/fsp_support.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/** @file
-
-Copyright (C) 2013 - 2014, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
-**/
-
-#include <types.h>
-#include <string.h>
-#include "fspsupport.h"
-
-/**
-  This function retrieves the top of usable low memory.
-
-  @param    HobListPtr   A HOB list pointer.
-
-  @retval                Usable low memory top.
-
-**/
-UINT32
-GetUsableLowMemTop (
-  CONST VOID       *HobStart
-)
-{
-  EFI_PEI_HOB_POINTERS  Hob;
-  UINT32          MemLen;
-  /*
-   * Get the HOB list for processing
-   */
-  Hob.Raw = (VOID *)HobStart;
-
-  /*
-   * Collect memory ranges
-   */
-  MemLen = 0x100000;
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
-      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
-        /*
-         * Need memory above 1MB to be collected here
-         */
-        if (Hob.ResourceDescriptor->PhysicalStart >= 0x100000 &&
-            Hob.ResourceDescriptor->PhysicalStart < (EFI_PHYSICAL_ADDRESS) 0x100000000) {
-          MemLen += (UINT32) (Hob.ResourceDescriptor->ResourceLength);
-        }
-      }
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-
-  return MemLen;
-}
-
-/**
-  This function retrieves the top of usable high memory.
-
-  @param  HobListPtr   A HOB list pointer.
-
-  @retval              Usable high memory top.
-
-**/
-UINT64
-GetUsableHighMemTop (
-  CONST VOID       *HobStart
-)
-{
-  EFI_PEI_HOB_POINTERS  Hob;
-  UINT64                MemTop;
-  /*
-   * Get the HOB list for processing
-   */
-  Hob.Raw = (VOID *)HobStart;
-
-  /*
-   * Collect memory ranges
-   */
-  MemTop = 0x100000000;
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
-      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
-        /*
-         * Need memory above 1MB to be collected here
-         */
-        if (Hob.ResourceDescriptor->PhysicalStart >= (EFI_PHYSICAL_ADDRESS) 0x100000000) {
-          MemTop += (UINT32) (Hob.ResourceDescriptor->ResourceLength);
-        }
-      }
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-
-  return MemTop;
-}
-
-/**
-  This function retrieves a special reserved memory region.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the GUID HOB data buffer length.  If the GUID HOB is
-                       located, the length will be updated.
-  @param  OwnerGuid    A pointer to the owner guild.
-  @retval              Reserved region start address.  0 if this region does not exist.
-
-**/
-VOID
-GetFspReservedMemoryFromGuid (
-  CONST VOID     *HobListPtr,
-  EFI_PHYSICAL_ADDRESS  *Base,
-  UINT64         *Length,
-  EFI_GUID       *OwnerGuid
-)
-{
-  EFI_PEI_HOB_POINTERS    Hob;
-
-  /*
-   * Get the HOB list for processing
-   */
-  Hob.Raw = (VOID *)HobListPtr;
-
-  /*
-   * Collect memory ranges
-   */
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
-      if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED) {
-        if (CompareGuid(&Hob.ResourceDescriptor->Owner, OwnerGuid)) {
-          *Base = (EFI_PHYSICAL_ADDRESS) (Hob.ResourceDescriptor->PhysicalStart);
-          *Length = (UINT64) (Hob.ResourceDescriptor->ResourceLength);
-          break;
-        }
-      }
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-}
-
-/**
-  This function retrieves the TSEG reserved normal memory.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the TSEG reserved memory length buffer.  If the GUID HOB is
-                       located, the length will be updated.
-  @param  Guid         A pointer to owner HOB GUID.
-  @retval NULL         Failed to find the TSEG reserved memory.
-  @retval others       TSEG reserved memory base.
-
-**/
-UINT32
-GetTsegReservedMemory (
-  CONST VOID       *HobListPtr,
-  UINT32           *Length
-)
-{
-  const EFI_GUID    TsegOwnerHobGuid = FSP_HOB_RESOURCE_OWNER_TSEG_GUID;
-  UINT64            Length64 = 0;
-  EFI_PHYSICAL_ADDRESS  Base = 0;
-
-  GetFspReservedMemoryFromGuid (HobListPtr, &Base, &Length64, (EFI_GUID *)&TsegOwnerHobGuid);
-  if ((Length != NULL) && (Base != 0)) {
-    *Length = (UINT32)Length64;
-  }
-  return (UINT32)Base;
-}
-
-/**
-  This function retrieves the FSP reserved normal memory.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the FSP reserved memory length buffer.  If the GUID HOB is
-                       located, the length will be updated.
-  @param  Guid         A pointer to owner HOB GUID.
-  @retval NULL         Failed to find the FSP reserved memory.
-  @retval others       FSP reserved memory base.
-
-**/
-UINT32
-GetFspReservedMemory (
-  CONST VOID       *HobListPtr,
-  UINT32           *Length
-)
-{
-  const EFI_GUID    FspOwnerHobGuid = FSP_HOB_RESOURCE_OWNER_FSP_GUID;
-  UINT64            Length64 = 0;
-  EFI_PHYSICAL_ADDRESS  Base = 0;
-
-  GetFspReservedMemoryFromGuid (HobListPtr, &Base, &Length64, (EFI_GUID *)&FspOwnerHobGuid);
-  if ((Length != NULL) && (Base != 0)) {
-    *Length = (UINT32)Length64;
-  }
-  return (UINT32)Base;
-}
-
-
-/**
-  This function retrieves a GUIDed HOB data buffer and size.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the GUID HOB data buffer length.  If the
-                       GUID HOB is located, the length will be updated.
-  @param  Guid         A pointer to HOB GUID.
-  @retval NULL         Failed to find the GUID HOB.
-  @retval others       GUID HOB data buffer pointer.
-
-**/
-VOID *
-GetGuidHobDataBuffer (
-  CONST VOID       *HobListPtr,
-  UINT32           *Length,
-  EFI_GUID         *Guid
-)
-{
-  UINT8        *GuidHob;
-
-  /* FSP NVS DATA HOB */
-  GuidHob = GetNextGuidHob(Guid, HobListPtr);
-  if (GuidHob == NULL) {
-    return NULL;
-  } else {
-    if (Length) {
-      *Length = GET_GUID_HOB_DATA_SIZE (GuidHob);
-    }
-    return GET_GUID_HOB_DATA (GuidHob);
-  }
-}
-
-/**
-  This function retrieves FSP Non-volatile Storage HOB buffer and size.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the NVS data buffer length.  If the FSP NVS
-                       HOB is located, the length will be updated.
-  @retval NULL         Failed to find the NVS HOB.
-  @retval others       FSP NVS data buffer pointer.
-
-**/
-VOID *
-GetFspNvsDataBuffer (
-  CONST VOID       *HobListPtr,
-  UINT32           *Length
-)
-{
-  const EFI_GUID    FspNvsHobGuid = FSP_NON_VOLATILE_STORAGE_HOB_GUID;
-  return GetGuidHobDataBuffer (HobListPtr, Length, (EFI_GUID *)&FspNvsHobGuid);
-}
-
-
-/**
-  This function retrieves Bootloader temporary stack buffer and size.
-
-  @param  HobListPtr   A HOB list pointer.
-  @param  Length       A pointer to the Bootloader temporary stack length.
-                       If the HOB is located, the length will be updated.
-  @retval NULL         Failed to find the Bootloader temporary stack HOB.
-  @retval others       Bootloader temporary stackbuffer pointer.
-
-**/
-VOID *
-GetBootloaderTempMemoryBuffer (
-  CONST VOID       *HobListPtr,
-  UINT32           *Length
-)
-{
-  const EFI_GUID    FspBootloaderTemporaryMemoryHobGuid = FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID;
-  return GetGuidHobDataBuffer (HobListPtr, Length, (EFI_GUID *)&FspBootloaderTemporaryMemoryHobGuid);
-}
diff --git a/src/vendorcode/intel/fsp1_0/rangeley/srx/fsphob.c b/src/vendorcode/intel/fsp1_0/rangeley/srx/fsphob.c
deleted file mode 100644
index 4986d52..0000000
--- a/src/vendorcode/intel/fsp1_0/rangeley/srx/fsphob.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/******************************************************************************
-
-Copyright (C) 2013, Intel Corporation
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of Intel Corporation nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
-
- ******************************************************************************/
-
-/***********************************************************************
- *
- * fsphob.c
- *
- * HOB infrastructure code.
- *
- **********************************************************************/
-#include <string.h>
-
-#include "fsptypes.h"
-#include "fsphob.h"
-
-//
-// Pointer to the HOB should be initialized with the output of FSP INIT PARAMS
-//
-#ifndef __PRE_RAM__
-extern volatile void *FspHobListPtr;
-#endif
-
-/**
-  Reads a 64-bit value from memory that may be unaligned.
-
-  This function returns the 64-bit value pointed to by Buffer. The function
-  guarantees that the read operation does not produce an alignment fault.
-
-  If the Buffer is NULL, then ASSERT().
-
-  @param  Buffer  Pointer to a 64-bit value that may be unaligned.
-
-  @return The 64-bit value read from Buffer.
-
-**/
-UINT64
-EFIAPI
-ReadUnaligned64 (
-  CONST UINT64              *Buffer
-  )
-{
-  ASSERT (Buffer != NULL);
-
-  return *Buffer;
-}
-
-/**
-  Compares two GUIDs.
-
-  This function compares Guid1 to Guid2.  If the GUIDs are identical then TRUE is returned.
-  If there are any bit differences in the two GUIDs, then FALSE is returned.
-
-  If Guid1 is NULL, then ASSERT().
-  If Guid2 is NULL, then ASSERT().
-
-  @param  Guid1       A pointer to a 128 bit GUID.
-  @param  Guid2       A pointer to a 128 bit GUID.
-
-  @retval TRUE        Guid1 and Guid2 are identical.
-  @retval FALSE       Guid1 and Guid2 are not identical.
-
-**/
-BOOLEAN
-EFIAPI
-CompareGuid (
-  CONST EFI_GUID  *Guid1,
-  CONST EFI_GUID  *Guid2
-  )
-{
-  UINT64  LowPartOfGuid1;
-  UINT64  LowPartOfGuid2;
-  UINT64  HighPartOfGuid1;
-  UINT64  HighPartOfGuid2;
-
-  LowPartOfGuid1  = ReadUnaligned64 ((CONST UINT64*) Guid1);
-  LowPartOfGuid2  = ReadUnaligned64 ((CONST UINT64*) Guid2);
-  HighPartOfGuid1 = ReadUnaligned64 ((CONST UINT64*) Guid1 + 1);
-  HighPartOfGuid2 = ReadUnaligned64 ((CONST UINT64*) Guid2 + 1);
-
-  return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2);
-}
-
-/**
-  Returns the pointer to the HOB list.
-**/
-VOID *
-EFIAPI
-GetHobList (
-  VOID
-  )
-{
-#ifndef __PRE_RAM__
-  ASSERT (FspHobListPtr != NULL);
-  return ((VOID *)FspHobListPtr);
-#else
-  return ((VOID *)NULL);
-#endif
-}
-
-/**
-  Returns the next instance of a HOB type from the starting HOB.
-**/
-VOID *
-EFIAPI
-GetNextHob (
-  UINT16                 Type,
-  CONST VOID             *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  Hob;
-
-  ASSERT (HobStart != NULL);
-
-  Hob.Raw = (UINT8 *) HobStart;
-  //
-  // Parse the HOB list until end of list or matching type is found.
-  //
-  while (!END_OF_HOB_LIST (Hob)) {
-    if (Hob.Header->HobType == Type) {
-      return Hob.Raw;
-    }
-    Hob.Raw = GET_NEXT_HOB (Hob);
-  }
-  return NULL;
-}
-
-/**
-  Returns the first instance of a HOB type among the whole HOB list.
-**/
-VOID *
-EFIAPI
-GetFirstHob (
-  UINT16                 Type
-  )
-{
-  VOID      *HobList;
-
-  HobList = GetHobList ();
-  return GetNextHob (Type, HobList);
-}
-
-/**
-  Returns the next instance of the matched GUID HOB from the starting HOB.
-**/
-VOID *
-EFIAPI
-GetNextGuidHob (
-  CONST EFI_GUID         *Guid,
-  CONST VOID             *HobStart
-  )
-{
-  EFI_PEI_HOB_POINTERS  GuidHob;
-
-  GuidHob.Raw = (UINT8 *) HobStart;
-  while ((GuidHob.Raw = GetNextHob (EFI_HOB_TYPE_GUID_EXTENSION, GuidHob.Raw)) != NULL) {
-    if (CompareGuid (Guid, &GuidHob.Guid->Name)) {
-      break;
-    }
-    GuidHob.Raw = GET_NEXT_HOB (GuidHob);
-  }
-  return GuidHob.Raw;
-}
-
-/**
-  Returns the first instance of the matched GUID HOB among the whole HOB list.
-**/
-VOID *
-EFIAPI
-GetFirstGuidHob (
-  CONST EFI_GUID         *Guid
-  )
-{
-  VOID      *HobList;
-
-  HobList = GetHobList ();
-  return GetNextGuidHob (Guid, HobList);
-}



More information about the coreboot-gerrit mailing list