[coreboot-gerrit] Patch set updated for coreboot: 35b7eae Drop tianocoreboot ("Project PIANO")

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Tue Dec 2 10:22:57 CET 2014


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7622

-gerrit

commit 35b7eaec6b97af88d23f45d329828df93a7d772c
Author: Patrick Georgi <pgeorgi at google.com>
Date:   Mon Dec 1 22:18:26 2014 +0100

    Drop tianocoreboot ("Project PIANO")
    
    There are four other approaches to provide UEFI on
    top of coreboot that actually get to a UEFI shell.
    No need to keep this experiment and confuse users.
    
    Change-Id: I81c52e24099852f6daf0d5725aec707bdfd75ae1
    Signed-off-by: Patrick Georgi <pgeorgi at google.com>
---
 payloads/tianocoreboot/Makefile                    |  80 ----
 payloads/tianocoreboot/README                      |  27 --
 payloads/tianocoreboot/include/BootMode.h          |  38 --
 .../include/EfiFirmwareVolumeHeader.h              | 213 ---------
 payloads/tianocoreboot/include/EfiTypes.h          | 297 ------------
 .../tianocoreboot/include/MemoryAllocationHob.h    |  34 --
 payloads/tianocoreboot/include/PeiHob.h            | 257 ----------
 payloads/tianocoreboot/include/PiFirmwareFile.h    | 494 -------------------
 payloads/tianocoreboot/include/coff.h              | 106 -----
 payloads/tianocoreboot/include/efi.h               |  36 --
 payloads/tianocoreboot/libpayload.config           |  81 ----
 payloads/tianocoreboot/tianocoreboot.c             | 529 ---------------------
 12 files changed, 2192 deletions(-)

diff --git a/payloads/tianocoreboot/Makefile b/payloads/tianocoreboot/Makefile
deleted file mode 100644
index 3ac541f..0000000
--- a/payloads/tianocoreboot/Makefile
+++ /dev/null
@@ -1,80 +0,0 @@
-##
-## This file is part of the TianoCoreBoot project.
-##
-## Copyright (C) 2013 Google Inc.
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; version 2 of the License.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-##
-
-src := $(shell pwd)
-srctree := $(src)
-obj ?= $(src)/build
-
-export V := $(V)
-
-CONFIG_SHELL := sh
-UNAME_RELEASE := $(shell uname -r)
-HAVE_DOTCONFIG := $(wildcard .config)
-MAKEFLAGS += -rR --no-print-directory
-
-# Make is silent per default, but 'make V=1' will show all compiler calls.
-ifneq ($(V),1)
-Q := @
-endif
-
-LIBCONFIG_PATH := ../libpayload
-LIBPAYLOAD_DIR := $(obj)/libpayload
-LPCC := $(LIBPAYLOAD_DIR)/libpayload/bin/lpgcc
-LPAS := $(LIBPAYLOAD_DIR)/libpayload/bin/lpas
-HAVE_LIBPAYLOAD := $(wildcard $(LIBPAYLOAD_DIR)/libpayload/lib/libpayload.a)
-OBJCOPY ?= objcopy
-
-INCLUDES = -Iinclude
-CFLAGS := -Wall -Werror -Os $(INCLUDES)
-OBJECTS = tianocoreboot.o
-OBJS    = $(patsubst %,$(obj)/%,$(OBJECTS))
-TARGET  = $(obj)/tianocoreboot.elf
-
-all: $(TARGET)
-
-$(TARGET): prepare $(OBJS) libpayload
-	$(Q)printf "    LINK       $(subst $(shell pwd)/,,$(@))\n"
-	$(Q)CC="$(CC)" $(LPCC) -o $@ $(OBJS)
-	$(Q)$(OBJCOPY) --only-keep-debug $@ $(TARGET).debug
-	$(Q)$(OBJCOPY) --strip-debug $@
-	$(Q)$(OBJCOPY) --add-gnu-debuglink=$(TARGET).debug $@
-
-$(obj)/%.o: $(src)/%.c libpayload
-	$(Q)printf "    CC         $(subst $(shell pwd)/,,$(@))\n"
-	$(Q)CC="$(CC)" $(LPCC) $(CFLAGS) -c -o $@ $<
-
-ifneq ($(strip $(HAVE_LIBPAYLOAD)),)
-libpayload:
-	$(Q)printf "Found Libpayload $(LIBPAYLOAD_DIR).\n"
-else
-libpayload:
-	$(Q)printf "Building libpayload @ $(LIBCONFIG_PATH).\n"
-	$(Q)cp libpayload.config .config
-	$(Q)make -C $(LIBCONFIG_PATH) distclean
-	$(Q)make -C $(LIBCONFIG_PATH) DESTDIR=$(LIBPAYLOAD_DIR) install DOTCONFIG=$(shell pwd)/.config
-endif
-
-prepare:
-	$(Q)mkdir -p $(obj)
-
-clean:
-	$(Q)rm -rf $(obj) $(LIBPAYLOAD_DIR) .xcompile .config .config.old
-
-.PHONY: $(PHONY) clean
-
diff --git a/payloads/tianocoreboot/README b/payloads/tianocoreboot/README
deleted file mode 100644
index 0dce08b..0000000
--- a/payloads/tianocoreboot/README
+++ /dev/null
@@ -1,27 +0,0 @@
-mkdir Tiano
-cd Tiano
-svn co https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2 edk2 --username guest
-cd edk2
-svn co https://edk2-fatdriver2.svn.sourceforge.net/svnroot/edk2-fatdriver2/trunk/FatPkg FatPkg --username guest
-cd ..
-
-make -C edk2/BaseTools
-
-export EDK_TOOLS_PATH=$(pwd)/edk2/BaseTools
-cd edk2
-. ./edksetup.sh BaseTools
-
-vi Conf/target.txt
-
-ACTIVE_PLATFORM       = OvmfPkg/OvmfPkgIa32.dsc
-TOOL_CHAIN_TAG        = GCC46
-
-------
-#TODO
-TARGET_ARCH = IA32 X64
-------
-
-build -D DEBUG_ON_SERIAL_PORT
-
---> ./Build/OvmfIa32/DEBUG_GCC46/FV/DXEFV.Fv
-
diff --git a/payloads/tianocoreboot/include/BootMode.h b/payloads/tianocoreboot/include/BootMode.h
deleted file mode 100644
index 38b7c0c..0000000
--- a/payloads/tianocoreboot/include/BootMode.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*++
-
-Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution.  The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
-  BootMode.h
-
-Abstract:
-
-  This includes for the Boot mode information.
-
---*/
-
-#ifndef _EFI_BOOT_MODE_H
-#define _EFI_BOOT_MODE_H
-
-#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
-#define BOOT_IN_RECOVERY_MODE_MASK                    0x40
-#define BOOT_SPECIAL_MASK                             0x80
-#endif
diff --git a/payloads/tianocoreboot/include/EfiFirmwareVolumeHeader.h b/payloads/tianocoreboot/include/EfiFirmwareVolumeHeader.h
deleted file mode 100644
index 9bbab35..0000000
--- a/payloads/tianocoreboot/include/EfiFirmwareVolumeHeader.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/*++
-
-Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution.  The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
-  EfiFirmwareVolumeHeader.h
-
-Abstract:
-
-  Defines data structure that is the volume header found at the beginning of
-  all firmware volumes that are either memory mapped, or have an
-  associated FirmwareVolumeBlock protocol.
-
---*/
-
-#ifndef _EFI_FIRMWARE_VOLUME_HEADER_H_
-#define _EFI_FIRMWARE_VOLUME_HEADER_H_
-
-
-//
-// Firmware Volume Block Attributes bit definitions
-// They are the shared between Framework and PI1.0.
-//
-typedef UINT32  EFI_FVB_ATTRIBUTES;
-
-#define EFI_FVB_READ_DISABLED_CAP   0x00000001
-#define EFI_FVB_READ_ENABLED_CAP    0x00000002
-#define EFI_FVB_READ_STATUS         0x00000004
-
-#define EFI_FVB_WRITE_DISABLED_CAP  0x00000008
-#define EFI_FVB_WRITE_ENABLED_CAP   0x00000010
-#define EFI_FVB_WRITE_STATUS        0x00000020
-
-#define EFI_FVB_LOCK_CAP            0x00000040
-#define EFI_FVB_LOCK_STATUS         0x00000080
-
-#define EFI_FVB_STICKY_WRITE        0x00000200
-#define EFI_FVB_MEMORY_MAPPED       0x00000400
-#define EFI_FVB_ERASE_POLARITY      0x00000800
-
-
-#if (PI_SPECIFICATION_VERSION < 0x00010000)
-
-#define EFI_FVB_ALIGNMENT_CAP       0x00008000
-#define EFI_FVB_ALIGNMENT_2         0x00010000
-#define EFI_FVB_ALIGNMENT_4         0x00020000
-#define EFI_FVB_ALIGNMENT_8         0x00040000
-#define EFI_FVB_ALIGNMENT_16        0x00080000
-#define EFI_FVB_ALIGNMENT_32        0x00100000
-#define EFI_FVB_ALIGNMENT_64        0x00200000
-#define EFI_FVB_ALIGNMENT_128       0x00400000
-#define EFI_FVB_ALIGNMENT_256       0x00800000
-#define EFI_FVB_ALIGNMENT_512       0x01000000
-#define EFI_FVB_ALIGNMENT_1K        0x02000000
-#define EFI_FVB_ALIGNMENT_2K        0x04000000
-#define EFI_FVB_ALIGNMENT_4K        0x08000000
-#define EFI_FVB_ALIGNMENT_8K        0x10000000
-#define EFI_FVB_ALIGNMENT_16K       0x20000000
-#define EFI_FVB_ALIGNMENT_32K       0x40000000
-#define EFI_FVB_ALIGNMENT_64K       0x80000000
-
-#define EFI_FVB_CAPABILITIES  (EFI_FVB_READ_DISABLED_CAP | \
-                              EFI_FVB_READ_ENABLED_CAP | \
-                              EFI_FVB_WRITE_DISABLED_CAP | \
-                              EFI_FVB_WRITE_ENABLED_CAP | \
-                              EFI_FVB_LOCK_CAP \
-                              )
-
-#define EFI_FVB_STATUS    (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)
-
-
-
-#else
-
-#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
-
-#define EFI_FVB_CAPABILITIES  (EFI_FVB_READ_DISABLED_CAP | \
-                              EFI_FVB_READ_ENABLED_CAP   | \
-                              EFI_FVB_WRITE_DISABLED_CAP | \
-                              EFI_FVB_WRITE_ENABLED_CAP  | \
-                              EFI_FVB_LOCK_CAP           | \
-                              EFI_FVB2_READ_LOCK_CAP     | \
-                              EFI_FVB2_WRITE_LOCK_CAP    )
-
-#define EFI_FVB_STATUS    (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS       | \
-                           EFI_FVB_LOCK_STATUS | EFI_FVB2_READ_LOCK_STATUS  | \
-                           EFI_FVB2_WRITE_LOCK_STATUS )
-
-
-
-//
-// Extended Header Header. Located via ExtHeaderOffset.
-// The extended headers follow each other in memory and are
-// terminated by ExtHeaderType EFI_FV_EXT_TYPE_END
-//
-#define EFI_FV_EXT_TYPE_END   0x00
-typedef struct {
-  UINT16  ExtEntrySize;
-  UINT16  ExtEntryType;
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
-
-//
-// GUID that maps OEM file types to GUIDs
-//
-#define EFI_FV_EXT_TYPE_OEM_TYPE  0x01
-typedef struct {
-  EFI_FIRMWARE_VOLUME_EXT_ENTRY   Hdr;
-  UINT32                          TypeMask;
-  EFI_GUID                        Types[1];
-} EFI_FIRMWARE_VOLUME_EXT_HEADER_OEM_TYPE;
-
-//
-// Unique name of the FV
-//
-typedef struct {
-  EFI_GUID          FvName;
-  UINT32            ExtHeaderSize;
-} EFI_FIRMWARE_VOLUME_EXT_HEADER;
-
-
-#endif
-
-
-//
-// Firmware Volume Header Revision definition
-//
-#define EFI_FVH_REVISION  0x01
-//
-// PI1.0 define Firmware Volume Header Revision to 2
-//
-#define EFI_FVH_PI_REVISION  0x02
-
-//
-// Firmware Volume Header Signature definition
-//
-#define EFI_FVH_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', 'H')
-
-//
-// Firmware Volume Header Block Map Entry definition
-//
-typedef struct {
-  UINT32  NumBlocks;
-  UINT32  BlockLength;
-} EFI_FV_BLOCK_MAP_ENTRY;
-
-//
-// Firmware Volume Header definition
-//
-typedef struct {
-  UINT8                   ZeroVector[16];
-  EFI_GUID                FileSystemGuid;
-  UINT64                  FvLength;
-  UINT32                  Signature;
-  EFI_FVB_ATTRIBUTES      Attributes;
-  UINT16                  HeaderLength;
-  UINT16                  Checksum;
-#if (PI_SPECIFICATION_VERSION < 0x00010000)
-  UINT8                   Reserved[3];
-#else
-  UINT16                  ExtHeaderOffset;
-  UINT8                   Reserved[1];
-#endif
-  UINT8                   Revision;
-  EFI_FV_BLOCK_MAP_ENTRY  FvBlockMap[1];
-} EFI_FIRMWARE_VOLUME_HEADER;
-
-#endif
diff --git a/payloads/tianocoreboot/include/EfiTypes.h b/payloads/tianocoreboot/include/EfiTypes.h
deleted file mode 100644
index 49760d3..0000000
--- a/payloads/tianocoreboot/include/EfiTypes.h
+++ /dev/null
@@ -1,297 +0,0 @@
-/*++
-
-Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution.  The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
-  EfiTypes.h
-
-Abstract:
-
-  EFI defined types. Use these types when ever possible!
-
---*/
-
-#ifndef _EFI_TYPES_H_
-#define _EFI_TYPES_H_
-
-//
-// EFI Data Types based on ANSI C integer types in EfiBind.h
-//
-typedef uint8_t BOOLEAN;
-typedef intn_t INTN;
-typedef uintn_t UINTN;
-typedef int8_t INT8;
-typedef uint8_t UINT8;
-typedef int16_t INT16;
-typedef uint16_t UINT16;
-typedef int32_t INT32;
-typedef uint32_t UINT32;
-typedef int64_t INT64;
-typedef uint64_t UINT64;
-typedef char CHAR8;
-typedef uint16_t CHAR16;
-typedef UINT64 EFI_LBA;
-
-//
-// Modifiers for EFI Data Types used to self document code.
-// Please see EFI coding convention for proper usage.
-//
-#ifndef IN
-//
-// Some other envirnments use this construct, so #ifndef to prevent
-// mulitple definition.
-//
-#define IN
-#define OUT
-#define OPTIONAL
-#endif
-
-#ifndef UNALIGNED
-#define UNALIGNED
-#endif
-
-//
-// Modifiers for EFI Runtime and Boot Services
-//
-#define EFI_RUNTIMESERVICE
-#define EFI_BOOTSERVICE
-
-//
-// Boot Service add in EFI 1.1
-//
-#define EFI_BOOTSERVICE11
-
-//
-// Modifiers to absract standard types to aid in debug of problems
-//
-#define CONST     const
-#define STATIC    static
-#define VOID      void
-#define VOLATILE  volatile
-
-//
-// Modifier to ensure that all protocol member functions and EFI intrinsics
-// use the correct C calling convention. All protocol member functions and
-// EFI intrinsics are required to modify thier member functions with EFIAPI.
-//
-#ifndef EFIAPI
-  #define EFIAPI  _EFIAPI
-#endif
-
-//
-// EFI Constants. They may exist in other build structures, so #ifndef them.
-//
-#ifndef TRUE
-#define TRUE  ((BOOLEAN) (1 == 1))
-#endif
-
-#ifndef FALSE
-#define FALSE ((BOOLEAN) (0 == 1))
-#endif
-
-#ifndef NULL
-#define NULL  ((VOID *) 0)
-#endif
-//
-// EFI Data Types derived from other EFI data types.
-//
-typedef UINTN EFI_STATUS;
-
-typedef VOID *EFI_HANDLE;
-#define NULL_HANDLE ((VOID *) 0)
-
-typedef VOID *EFI_EVENT;
-typedef UINTN EFI_TPL;
-
-typedef struct {
-  UINT32  Data1;
-  UINT16  Data2;
-  UINT16  Data3;
-  UINT8   Data4[8];
-} EFI_GUID;
-
-typedef union {
-  EFI_GUID  Guid;
-  UINT8     Raw[16];
-} EFI_GUID_UNION;
-
-//
-// EFI Time Abstraction:
-//  Year:       2000 - 20XX
-//  Month:      1 - 12
-//  Day:        1 - 31
-//  Hour:       0 - 23
-//  Minute:     0 - 59
-//  Second:     0 - 59
-//  Nanosecond: 0 - 999,999,999
-//  TimeZone:   -1440 to 1440 or 2047
-//
-typedef struct {
-  UINT16  Year;
-  UINT8   Month;
-  UINT8   Day;
-  UINT8   Hour;
-  UINT8   Minute;
-  UINT8   Second;
-  UINT8   Pad1;
-  UINT32  Nanosecond;
-  INT16   TimeZone;
-  UINT8   Daylight;
-  UINT8   Pad2;
-} EFI_TIME;
-
-//
-// Bit definitions for EFI_TIME.Daylight
-//
-#define EFI_TIME_ADJUST_DAYLIGHT  0x01
-#define EFI_TIME_IN_DAYLIGHT      0x02
-
-//
-// Value definition for EFI_TIME.TimeZone
-//
-#define EFI_UNSPECIFIED_TIMEZONE  0x07FF
-
-//
-// Networking
-//
-typedef struct {
-  UINT8 Addr[4];
-} EFI_IPv4_ADDRESS;
-
-typedef struct {
-  UINT8 Addr[16];
-} EFI_IPv6_ADDRESS;
-
-typedef struct {
-  UINT8 Addr[32];
-} EFI_MAC_ADDRESS;
-
-typedef union {
-  UINT32            Addr[4];
-  EFI_IPv4_ADDRESS  v4;
-  EFI_IPv6_ADDRESS  v6;
-} EFI_IP_ADDRESS;
-
-typedef enum {
-  EfiReservedMemoryType,
-  EfiLoaderCode,
-  EfiLoaderData,
-  EfiBootServicesCode,
-  EfiBootServicesData,
-  EfiRuntimeServicesCode,
-  EfiRuntimeServicesData,
-  EfiConventionalMemory,
-  EfiUnusableMemory,
-  EfiACPIReclaimMemory,
-  EfiACPIMemoryNVS,
-  EfiMemoryMappedIO,
-  EfiMemoryMappedIOPortSpace,
-  EfiPalCode,
-  EfiMaxMemoryType
-} EFI_MEMORY_TYPE;
-
-typedef enum {
-  AllocateAnyPages,
-  AllocateMaxAddress,
-  AllocateAddress,
-  MaxAllocateType
-} EFI_ALLOCATE_TYPE;
-
-typedef struct {
-  UINT64  Signature;
-  UINT32  Revision;
-  UINT32  HeaderSize;
-  UINT32  CRC32;
-  UINT32  Reserved;
-} EFI_TABLE_HEADER;
-
-//
-// possible caching types for the memory range
-//
-#define EFI_MEMORY_UC   0x0000000000000001
-#define EFI_MEMORY_WC   0x0000000000000002
-#define EFI_MEMORY_WT   0x0000000000000004
-#define EFI_MEMORY_WB   0x0000000000000008
-#define EFI_MEMORY_UCE  0x0000000000000010
-
-//
-// physical memory protection on range
-//
-#define EFI_MEMORY_WP 0x0000000000001000
-#define EFI_MEMORY_RP 0x0000000000002000
-#define EFI_MEMORY_XP 0x0000000000004000
-
-//
-// range requires a runtime mapping
-//
-#define EFI_MEMORY_RUNTIME  0x8000000000000000ULL
-
-typedef UINT64  EFI_PHYSICAL_ADDRESS;
-typedef UINT64  EFI_VIRTUAL_ADDRESS;
-
-#define EFI_MEMORY_DESCRIPTOR_VERSION 1
-typedef struct {
-  UINT32                Type;
-  UINT32                Pad;
-  EFI_PHYSICAL_ADDRESS  PhysicalStart;
-  EFI_VIRTUAL_ADDRESS   VirtualStart;
-  UINT64                NumberOfPages;
-  UINT64                Attribute;
-} EFI_MEMORY_DESCRIPTOR;
-
-//
-// The EFI memory allocation functions work in units of EFI_PAGEs that are
-// 4K. This should in no way be confused with the page size of the processor.
-// An EFI_PAGE is just the quanta of memory in EFI.
-//
-#define EFI_PAGE_SIZE         4096
-#define EFI_PAGE_MASK         0xFFF
-#define EFI_PAGE_SHIFT        12
-
-#define EFI_SIZE_TO_PAGES(a)  (((a) >> EFI_PAGE_SHIFT) + (((a) & EFI_PAGE_MASK) ? 1 : 0))
-
-#define EFI_PAGES_TO_SIZE(a)   ( (a) << EFI_PAGE_SHIFT)
-
-//
-//  ALIGN_POINTER - aligns a pointer to the lowest boundry
-//
-#define ALIGN_POINTER(p, s) ((VOID *) (p + ((s - ((UINTN) p)) & (s - 1))))
-
-//
-//  ALIGN_VARIABLE - aligns a variable up to the next natural boundry for int size of a processor
-//
-#define ALIGN_VARIABLE(Value, Adjustment) \
-  (UINTN) Adjustment = 0; \
-  if ((UINTN) Value % sizeof (UINTN)) { \
-    (UINTN) Adjustment = sizeof (UINTN) - ((UINTN) Value % sizeof (UINTN)); \
-  } \
-  Value = (UINTN) Value + (UINTN) Adjustment
-
-//
-//  EFI_FIELD_OFFSET - returns the byte offset to a field within a structure
-//
-#define EFI_FIELD_OFFSET(TYPE,Field) ((UINTN)(&(((TYPE *) 0)->Field)))
-
-//
-//  CONTAINING_RECORD - returns a pointer to the structure
-//      from one of it's elements.
-//
-#define _CR(Record, TYPE, Field)  ((TYPE *) ((CHAR8 *) (Record) - (CHAR8 *) &(((TYPE *) 0)->Field)))
-
-//
-// Define macros to build data structure signatures from characters.
-//
-#define EFI_SIGNATURE_16(A, B)        ((A) | (B << 8))
-#define EFI_SIGNATURE_32(A, B, C, D)  (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16))
-#define EFI_SIGNATURE_64(A, B, C, D, E, F, G, H) \
-    (EFI_SIGNATURE_32 (A, B, C, D) | ((UINT64) (EFI_SIGNATURE_32 (E, F, G, H)) << 32))
-
-#endif
diff --git a/payloads/tianocoreboot/include/MemoryAllocationHob.h b/payloads/tianocoreboot/include/MemoryAllocationHob.h
deleted file mode 100644
index fb06757..0000000
--- a/payloads/tianocoreboot/include/MemoryAllocationHob.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/** @file
-  GUIDs for HOBs used in memory allcation
-
-  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
-  This program and the accompanying materials
-  are licensed and made available under the terms and conditions of the BSD License
-  which accompanies this distribution.  The full text of the license may be found at
-  http://opensource.org/licenses/bsd-license.php
-
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-  @par Revision Reference:
-  GUIDs introduced in PI Version 1.0.
-
-**/
-
-#ifndef __MEMORY_ALLOCATION_GUID_H__
-#define __MEMORY_ALLOCATION_GUID_H__
-
-#define EFI_HOB_MEMORY_ALLOC_BSP_STORE_GUID  \
-  {0x564b33cd, 0xc92a, 0x4593, {0x90, 0xbf, 0x24, 0x73, 0xe4, 0x3c, 0x63, 0x22} };
-
-#define EFI_HOB_MEMORY_ALLOC_STACK_GUID  \
-  {0x4ed4bf27, 0x4092, 0x42e9, {0x80, 0x7d, 0x52, 0x7b, 0x1d, 0x0, 0xc9, 0xbd} }
-
-#define EFI_HOB_MEMORY_ALLOC_MODULE_GUID  \
-  {0xf8e21975, 0x899, 0x4f58, {0xa4, 0xbe, 0x55, 0x25, 0xa9, 0xc6, 0xd7, 0x7a} }
-
-extern EFI_GUID gEfiHobMemoryAllocBspStoreGuid;
-extern EFI_GUID gEfiHobMemoryAllocStackGuid;
-extern EFI_GUID gEfiHobMemoryAllocModuleGuid;
-
-#endif
diff --git a/payloads/tianocoreboot/include/PeiHob.h b/payloads/tianocoreboot/include/PeiHob.h
deleted file mode 100644
index 407ea76..0000000
--- a/payloads/tianocoreboot/include/PeiHob.h
+++ /dev/null
@@ -1,257 +0,0 @@
-/*++
-
-Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution.  The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-
-  PeiHob.h
-
-Abstract:
-
-  PEI Hand Off Block (HOB) definition.
-
-  The HOB is a memory data structure used to hand-off system information from
-  PEI to DXE (the next phase).
-
---*/
-
-#ifndef _PEI_HOB_H_
-#define _PEI_HOB_H_
-
-#include "BootMode.h"
-
-//
-// Every Hob must start with this data structure.
-//
-typedef struct {
-  UINT16  HobType;
-  UINT16  HobLength;
-  UINT32  Reserved;
-} EFI_HOB_GENERIC_HEADER;
-
-//
-// End of HOB List HOB
-//
-#define EFI_HOB_TYPE_END_OF_HOB_LIST  0xffff
-
-//
-// Handoff Information Table HOB
-//
-#define EFI_HOB_TYPE_HANDOFF          0x0001
-
-#define EFI_HOB_HANDOFF_TABLE_VERSION 0x0009
-
-typedef UINT32  EFI_BOOT_MODE;
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER  Header;
-  UINT32                  Version;
-  EFI_BOOT_MODE           BootMode;
-  EFI_PHYSICAL_ADDRESS    EfiMemoryTop;
-  EFI_PHYSICAL_ADDRESS    EfiMemoryBottom;
-  EFI_PHYSICAL_ADDRESS    EfiFreeMemoryTop;
-  EFI_PHYSICAL_ADDRESS    EfiFreeMemoryBottom;
-  EFI_PHYSICAL_ADDRESS    EfiEndOfHobList;
-} EFI_HOB_HANDOFF_INFO_TABLE;
-
-//
-// Memory Descriptor HOB
-//
-#define EFI_HOB_TYPE_MEMORY_ALLOCATION  0x0002
-
-typedef struct {
-  EFI_GUID              Name;
-  EFI_PHYSICAL_ADDRESS  MemoryBaseAddress;
-  UINT64                MemoryLength;
-  EFI_MEMORY_TYPE       MemoryType;
-  UINT8                 Reserved[4];
-} EFI_HOB_MEMORY_ALLOCATION_HEADER;
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER            Header;
-  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
-  //
-  // Additional data pertaining to the "Name" Guid memory
-  // may go here.
-  //
-} EFI_HOB_MEMORY_ALLOCATION;
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER            Header;
-  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
-} EFI_HOB_MEMORY_ALLOCATION_BSP_STORE;
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER            Header;
-  EFI_HOB_MEMORY_ALLOCATION_HEADER  AllocDescriptor;
-} EFI_HOB_MEMORY_ALLOCATION_STACK;
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER            Header;
-  EFI_HOB_MEMORY_ALLOCATION_HEADER  MemoryAllocationHeader;
-  EFI_GUID                          ModuleName;
-  EFI_PHYSICAL_ADDRESS              EntryPoint;
-} EFI_HOB_MEMORY_ALLOCATION_MODULE;
-
-#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR  0x0003
-
-typedef UINT32  EFI_RESOURCE_TYPE;
-
-#define EFI_RESOURCE_SYSTEM_MEMORY          0
-#define EFI_RESOURCE_MEMORY_MAPPED_IO       1
-#define EFI_RESOURCE_IO                     2
-#define EFI_RESOURCE_FIRMWARE_DEVICE        3
-#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT  4
-#define EFI_RESOURCE_MEMORY_RESERVED        5
-#define EFI_RESOURCE_IO_RESERVED            6
-#define EFI_RESOURCE_MAX_MEMORY_TYPE        7
-
-typedef UINT32  EFI_RESOURCE_ATTRIBUTE_TYPE;
-
-#define EFI_RESOURCE_ATTRIBUTE_PRESENT                  0x00000001
-#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED              0x00000002
-#define EFI_RESOURCE_ATTRIBUTE_TESTED                   0x00000004
-#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
-//
-// The following values are defined in PI 1.2 errata B.
-//
-#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTABLE         0x00100000
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTABLE        0x00200000
-#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTABLE    0x00400000
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER      Header;
-  EFI_GUID                    Owner;
-  EFI_RESOURCE_TYPE           ResourceType;
-  EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
-  EFI_PHYSICAL_ADDRESS        PhysicalStart;
-  UINT64                      ResourceLength;
-} EFI_HOB_RESOURCE_DESCRIPTOR;
-
-//
-// GUID Extension HOB
-// The HobLength is variable as it includes the GUID specific data.
-//
-#define EFI_HOB_TYPE_GUID_EXTENSION 0x0004
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER  Header;
-  EFI_GUID                Name;
-
-  //
-  // Guid specific data goes here
-  //
-} EFI_HOB_GUID_TYPE;
-
-//
-// Firmware Volume HOB
-//
-#define EFI_HOB_TYPE_FV 0x0005
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER  Header;
-  EFI_PHYSICAL_ADDRESS    BaseAddress;
-  UINT64                  Length;
-} EFI_HOB_FIRMWARE_VOLUME;
-
-//
-// CPU HOB
-//
-#define EFI_HOB_TYPE_CPU  0x0006
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER  Header;
-  UINT8                   SizeOfMemorySpace;
-  UINT8                   SizeOfIoSpace;
-  UINT8                   Reserved[6];
-} EFI_HOB_CPU;
-
-//
-// PEI Core Memory Pool HOB
-// The HobLength is variable as the HOB contains pool allocations by
-// the PeiServices AllocatePool function
-//
-#define EFI_HOB_TYPE_PEI_MEMORY_POOL  0x0007
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER  Header;
-} EFI_HOB_MEMORY_POOL;
-
-//
-// Capsule volume HOB -- identical to a firmware volume
-//
-#define EFI_HOB_TYPE_CV 0x0008
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER  Header;
-  EFI_PHYSICAL_ADDRESS    BaseAddress;
-  UINT64                  Length;
-} EFI_HOB_CAPSULE_VOLUME;
-
-#if (PI_SPECIFICATION_VERSION >= 0x00010000)
-
-#define EFI_HOB_TYPE_FV2    0x0009
-
-typedef struct {
-  EFI_HOB_GENERIC_HEADER  Header;
-  EFI_PHYSICAL_ADDRESS    BaseAddress;
-  UINT64                  Length;
-  EFI_GUID                FvName;
-  EFI_GUID                FileName;
-} EFI_HOB_FIRMWARE_VOLUME2;
-
-#define EFI_HOB_TYPE_LOAD_PEIM_UNUSED     0x000A
-
-#endif
-
-#define EFI_HOB_TYPE_UNUSED 0xFFFE
-
-//
-// Union of all the possible HOB Types
-//
-typedef union {
-  EFI_HOB_GENERIC_HEADER              *Header;
-  EFI_HOB_HANDOFF_INFO_TABLE          *HandoffInformationTable;
-  EFI_HOB_MEMORY_ALLOCATION           *MemoryAllocation;
-  EFI_HOB_MEMORY_ALLOCATION_BSP_STORE *MemoryAllocationBspStore;
-  EFI_HOB_MEMORY_ALLOCATION_STACK     *MemoryAllocationStack;
-  EFI_HOB_MEMORY_ALLOCATION_MODULE    *MemoryAllocationModule;
-  EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;
-  EFI_HOB_GUID_TYPE                   *Guid;
-  EFI_HOB_FIRMWARE_VOLUME             *FirmwareVolume;
-#if (PI_SPECIFICATION_VERSION >= 0x00010000)
-  EFI_HOB_FIRMWARE_VOLUME2            *FirmwareVolume2;
-#endif
-  EFI_HOB_CPU                         *Cpu;
-  EFI_HOB_MEMORY_POOL                 *Pool;
-  EFI_HOB_CAPSULE_VOLUME              *CapsuleVolume;
-  UINT8                               *Raw;
-} EFI_PEI_HOB_POINTERS;
-
-#define GET_HOB_TYPE(Hob)     ((Hob).Header->HobType)
-#define GET_HOB_LENGTH(Hob)   ((Hob).Header->HobLength)
-#define GET_NEXT_HOB(Hob)     ((Hob).Raw + GET_HOB_LENGTH (Hob))
-#define END_OF_HOB_LIST(Hob)  (GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_END_OF_HOB_LIST)
-
-#endif
diff --git a/payloads/tianocoreboot/include/PiFirmwareFile.h b/payloads/tianocoreboot/include/PiFirmwareFile.h
deleted file mode 100644
index 750ba70..0000000
--- a/payloads/tianocoreboot/include/PiFirmwareFile.h
+++ /dev/null
@@ -1,494 +0,0 @@
-/** @file
-  The firmware file related definitions in PI.
-
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials are licensed and made available under
-the terms and conditions of the BSD License that accompanies this distribution.
-The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php.
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-  @par Revision Reference:
-  PI Version 1.2.
-
-**/
-
-
-#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/payloads/tianocoreboot/include/coff.h b/payloads/tianocoreboot/include/coff.h
deleted file mode 100644
index b6569a1..0000000
--- a/payloads/tianocoreboot/include/coff.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This file is part of the TianoCoreBoot project.
- *
- * Copyright (C) 2013 Google Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-typedef struct {
-	 uint8_t  signature[2];
-	 uint16_t lastsize;
-	 uint16_t nblocks;
-	 uint16_t nreloc;
-	 uint16_t hdrsize;
-	 uint16_t minalloc;
-	 uint16_t maxalloc;
-	 uint16_t ss;
-	 uint16_t sp;
-	 uint16_t checksum;
-	 uint16_t ip;
-	 uint16_t cs;
-	 uint16_t relocpos;
-	 uint16_t noverlay;
-	 uint16_t reserved1[4];
-	 uint16_t oem_id;
-	 uint16_t oem_info;
-	 uint16_t reserved2[10];
-	 uint32_t e_lfanew;
-} dos_header_t;
-
-typedef struct {
-	uint8_t  signature[4];
-	uint16_t Machine;
-	uint16_t NumberOfSections;
-	uint32_t TimeDateStamp;
-	uint32_t PointerToSymbolTable;
-	uint32_t NumberOfSymbols;
-	uint16_t SizeOfOptionalHeader;
-	uint16_t Characteristics;
-} coff_header_t;
-
-typedef struct {
-	uint32_t VirtualAddress;
-	uint32_t Size;
-} data_directory;
-
-typedef struct {
-	uint16_t signature;
-	uint8_t  MajorLinkerVersion;
-	uint8_t  MinorLinkerVersion;
-	uint32_t SizeOfCode;
-	uint32_t SizeOfInitializedData;
-	uint32_t SizeOfUninitializedData;
-	uint32_t AddressOfEntryPoint;
-	uint32_t BaseOfCode;
-	uint32_t BaseOfData;
-	uint32_t ImageBase;
-	uint32_t SectionAlignment;
-	uint32_t FileAlignment;
-	uint16_t MajorOSVersion;
-	uint16_t MinorOSVersion;
-	uint16_t MajorImageVersion;
-	uint16_t MinorImageVersion;
-	uint16_t MajorSubsystemVersion;
-	uint16_t MinorSubsystemVersion;
-	uint32_t Reserved;
-	uint32_t SizeOfImage;
-	uint32_t SizeOfHeaders;
-	uint32_t Checksum;
-	uint16_t Subsystem;
-	uint16_t DLLCharacteristics;
-	uint32_t SizeOfStackReserve;
-	uint32_t SizeOfStackCommit;
-	uint32_t SizeOfHeapReserve;
-	uint32_t SizeOfHeapCommit;
-	uint32_t LoaderFlags;
-	uint32_t NumberOfRvaAndSizes;
-	data_directory DataDirectory[16];
-} pe_opt_header_t;
-
-typedef struct {
-	uint8_t  SectionName[8];
-	uint32_t Size;
-	uint32_t RVA;
-	uint32_t PhysicalSizeOnDisk;
-	uint32_t PhysicalLocationOnDisk;
-	uint8_t  Reserved[12];
-	uint32_t SectionFlags;
-} pe_section_t;
-
-typedef struct {
-	uint32_t  VirtualAddress;
-	uint32_t  SizeOfBlock;
-} relocation_t;
-
diff --git a/payloads/tianocoreboot/include/efi.h b/payloads/tianocoreboot/include/efi.h
deleted file mode 100644
index 8deef53..0000000
--- a/payloads/tianocoreboot/include/efi.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * This file is part of the TianoCoreBoot project.
- *
- * Copyright (C) 2013 Google Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <stdint.h>
-
-#define ALIGN(x,a)              __ALIGN_MASK(x,(typeof(x))(a)-1UL)
-#define __ALIGN_MASK(x,mask)    (((x)+(mask))&~(mask))
-
-typedef long intn_t;
-typedef unsigned long uintn_t;
-
-#include <EfiTypes.h>
-#include <EfiFirmwareVolumeHeader.h>
-#include <PiFirmwareFile.h>
-#include <PeiHob.h>
-#include <MemoryAllocationHob.h>
-
-#define EFI_DXE_FILE_GUID \
-  { 0xb1644c1a, 0xc16a, 0x4c5b, { 0x88, 0xde, 0xea, 0xfb, 0xa9, 0x7e, 0x74, 0xd8 } }
-
diff --git a/payloads/tianocoreboot/libpayload.config b/payloads/tianocoreboot/libpayload.config
deleted file mode 100644
index 310f7e8..0000000
--- a/payloads/tianocoreboot/libpayload.config
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# libpayload version: 0.2.0
-# Wed Nov 19 15:45:30 2014
-#
-
-#
-# Generic Options
-#
-# CONFIG_LP_EXPERIMENTAL is not set
-# CONFIG_LP_OBSOLETE is not set
-# CONFIG_LP_DEVELOPER is not set
-# CONFIG_LP_CHROMEOS is not set
-
-#
-# Architecture Options
-#
-# CONFIG_LP_ARCH_ARM is not set
-CONFIG_LP_ARCH_X86=y
-# CONFIG_LP_MEMMAP_RAM_ONLY is not set
-CONFIG_LP_MULTIBOOT=y
-
-#
-# Standard Libraries
-#
-CONFIG_LP_LIBC=y
-CONFIG_LP_CURSES=y
-# CONFIG_LP_TINYCURSES is not set
-CONFIG_LP_PDCURSES=y
-CONFIG_LP_CBFS=y
-CONFIG_LP_LZMA=y
-
-#
-# Console Options
-#
-# CONFIG_LP_SKIP_CONSOLE_INIT is not set
-CONFIG_LP_CBMEM_CONSOLE=y
-CONFIG_LP_SERIAL_CONSOLE=y
-CONFIG_LP_8250_SERIAL_CONSOLE=y
-# CONFIG_LP_S5P_SERIAL_CONSOLE is not set
-# CONFIG_LP_TEGRA_SERIAL_CONSOLE is not set
-# CONFIG_LP_PL011_SERIAL_CONSOLE is not set
-CONFIG_LP_SERIAL_IOBASE=0x3f8
-# CONFIG_LP_SERIAL_SET_SPEED is not set
-# CONFIG_LP_SERIAL_ACS_FALLBACK is not set
-CONFIG_LP_VIDEO_CONSOLE=y
-CONFIG_LP_VGA_VIDEO_CONSOLE=y
-# CONFIG_LP_GEODELX_VIDEO_CONSOLE is not set
-# CONFIG_LP_COREBOOT_VIDEO_CONSOLE is not set
-CONFIG_LP_PC_KEYBOARD=y
-CONFIG_LP_PC_KEYBOARD_LAYOUT_US=y
-# CONFIG_LP_PC_KEYBOARD_LAYOUT_DE is not set
-
-#
-# Drivers
-#
-CONFIG_LP_PCI=y
-CONFIG_LP_NVRAM=y
-# CONFIG_LP_RTC_PORT_EXTENDED_VIA is not set
-CONFIG_LP_SPEAKER=y
-CONFIG_LP_STORAGE=y
-# CONFIG_LP_STORAGE_64BIT_LBA is not set
-CONFIG_LP_STORAGE_ATA=y
-CONFIG_LP_STORAGE_ATAPI=y
-CONFIG_LP_STORAGE_AHCI=y
-CONFIG_LP_STORAGE_AHCI_ONLY_TESTED=y
-CONFIG_LP_TIMER_RDTSC=y
-CONFIG_LP_USB=y
-# CONFIG_LP_USB_UHCI is not set
-# CONFIG_LP_USB_OHCI is not set
-# CONFIG_LP_USB_EHCI is not set
-# CONFIG_LP_USB_XHCI is not set
-CONFIG_LP_USB_HID=y
-CONFIG_LP_USB_HUB=y
-CONFIG_LP_USB_MSC=y
-CONFIG_LP_USB_GEN_HUB=y
-CONFIG_LP_USB_PCI=y
-# CONFIG_LP_BIG_ENDIAN is not set
-CONFIG_LP_LITTLE_ENDIAN=y
-CONFIG_LP_IO_ADDRESS_SPACE=y
-CONFIG_LP_ARCH_SPECIFIC_OPTIONS=y
diff --git a/payloads/tianocoreboot/tianocoreboot.c b/payloads/tianocoreboot/tianocoreboot.c
deleted file mode 100644
index bbdcfaf..0000000
--- a/payloads/tianocoreboot/tianocoreboot.c
+++ /dev/null
@@ -1,529 +0,0 @@
-/*
- * This file is part of the TianoCoreBoot project.
- *
- * Copyright (C) 2013 Google Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <libpayload.h>
-#include <endian.h>
-#include <cbfs.h>
-#include <efi.h>
-#include <coff.h>
-
-#define DXE_CORE_SIZE   (256*1024)
-#define UEFI_STACK_SIZE (128*1024)
-#define HOB_LIST_SIZE   (16*1024)
-
-#undef VERBOSE
-#undef INVENTORY
-
-static void print_guid(EFI_GUID *guid)
-{
-	printf("%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
-		guid->Data1, guid->Data2, guid->Data3,
-		guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
-		guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]);
-}
-
-static void dump_uefi_firmware_volume_header(EFI_FIRMWARE_VOLUME_HEADER *fvh)
-{
-	printf("Found UEFI firmware volume.\n");
-	printf("  GUID: ");
-	print_guid(&(fvh->FileSystemGuid));
-	printf("\n");
-	printf("  length: 0x%016llx\n", fvh->FvLength);
-#ifdef VERBOSE
-	printf("  signature: 0x%08x\n", fvh->Signature);
-	printf("  attributes: 0x%08x\n", fvh->Attributes);
-	printf("  header length: 0x%04x\n", fvh->HeaderLength);
-	printf("  checksum: 0x%04x\n", fvh->Checksum);
-	printf("  revision: 0x%02x\n", fvh->Revision);
-	printf("  block map:\n");
-	int i = 0;
-	EFI_FV_BLOCK_MAP_ENTRY *fbm = &(fvh->FvBlockMap[0]);
-	while (fbm[i].NumBlocks || fbm[i].BlockLength) {
-		printf("    %2d. numblocks = 0x%08x length = 0x%08x\n",
-			i+1, fbm[i].NumBlocks, fbm[i].BlockLength);
-		i++;
-	}
-#endif
-	printf("\n");
-}
-
-#ifdef INVENTORY
-static void dump_uefi_ffs_file_header(EFI_FFS_FILE_HEADER *file)
-{
-	int size;
-
-#ifdef VERBOSE
-	printf("Found FFS file:\n  GUID: ");
-#endif
-	print_guid(&(file->Name));
-#ifdef VERBOSE
-	printf("\n  integrity check: %02x %02x\n",
-		file->IntegrityCheck.Checksum.Header,
-		file->IntegrityCheck.Checksum.File);
-	printf("  file type: ");
-#else
-	printf(" ");
-#endif
-	switch (file->Type) {
-	case EFI_FV_FILETYPE_RAW: printf("raw"); break;
-	case EFI_FV_FILETYPE_FREEFORM: printf("free form"); break;
-	case EFI_FV_FILETYPE_SECURITY_CORE: printf("security core"); break;
-	case EFI_FV_FILETYPE_PEI_CORE: printf("PEIM core"); break;
-	case EFI_FV_FILETYPE_DXE_CORE: printf("DXE core"); break;
-	case EFI_FV_FILETYPE_PEIM: printf("PEIM"); break;
-	case EFI_FV_FILETYPE_DRIVER: printf("driver"); break;
-	case EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER: printf("combined PEIM driver"); break;
-	case EFI_FV_FILETYPE_APPLICATION: printf("application"); break;
-	case EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE: printf("firmware volume image"); break;
-	case EFI_FV_FILETYPE_FFS_PAD: printf("FFS pad"); break;
-	default: printf("unknown");
-	}
-#ifdef VERBOSE
-	printf("\n");
-	printf("  attributes: 0x%02x\n", file->Attributes);
-#endif
-	size = file->Size[0] | (file->Size[1] << 8) | (file->Size[2] << 16);
-#ifdef VERBOSE
-	printf("  size: 0x%06x\n", size);
-	printf("  state: 0x%02x\n", file->State);
-#else
-	printf(" (%d bytes)\n", size);
-#endif
-}
-#endif
-
-void *load_dxe_core(void *pe, void *target)
-{
-	dos_header_t *dos_hdr = (dos_header_t *)pe;
-
-#if VERBOSE
-	printf("Loading DXE core at %p\n", pe);
-#endif
-
-	if (*(uint16_t *)pe != 0x5a4d) {
-		printf("DXE core not a PE binary.\n");
-		return NULL;
-	}
-
-#ifdef VERBOSE
-	printf("e_lfanew = 0x%08x\n", dos_hdr->e_lfanew);
-#endif
-
-	coff_header_t *coff_hdr = (coff_header_t *)(pe + dos_hdr->e_lfanew);
-#ifdef VERBOSE
-	printf("Machine: %x\n", coff_hdr->Machine);
-	printf("NumberOfSections: %x\n", coff_hdr->NumberOfSections);
-	printf("TimeDateStamp: %x\n", coff_hdr->TimeDateStamp);
-	printf("PointerToSymbolTable: %x\n", coff_hdr->PointerToSymbolTable);
-	printf("NumberOfSymbols: %x\n", coff_hdr->NumberOfSymbols);
-	printf("SizeOfOptionalHeader: %x\n", coff_hdr->SizeOfOptionalHeader);
-	printf("Characteristics: %x\n", coff_hdr->Characteristics);
-#endif
-	if (coff_hdr->Machine != 0x14c) {
-		printf("Only x86 supported right now.\n");
-		return NULL;
-	}
-
-	/* Right after the coff header */
-	pe_opt_header_t *pe_hdr = (pe_opt_header_t *)(&coff_hdr[1]);
-	if (pe_hdr->signature != 267) {
-		printf("No valid PE opt header\n");
-		return NULL;
-	}
-
-#ifdef VERBOSE
-	printf("\n");
-	printf("MajorLinkerVersion: %x\n", pe_hdr->MajorLinkerVersion);
-	printf("MinorLinkerVersion: %x\n", pe_hdr->MinorLinkerVersion);
-	printf("SizeOfCode: %x\n", pe_hdr->SizeOfCode);
-	printf("SizeOfInitializedData: %x\n", pe_hdr->SizeOfInitializedData);
-	printf("SizeOfUninitializedData: %x\n", pe_hdr->SizeOfUninitializedData);
-	printf("AddressOfEntryPoint: %x\n", pe_hdr->AddressOfEntryPoint);
-	printf("BaseOfCode: %x\n", pe_hdr->BaseOfCode);
-	printf("BaseOfData: %x\n", pe_hdr->BaseOfData);
-	printf("ImageBase: %x\n", pe_hdr->ImageBase);
-	printf("SectionAlignment: %x\n", pe_hdr->SectionAlignment);
-	printf("FileAlignment: %x\n", pe_hdr->FileAlignment);
-	printf("MajorOSVersion: %x\n", pe_hdr->MajorOSVersion);
-	printf("MinorOSVersion: %x\n", pe_hdr->MinorOSVersion);
-	printf("MajorImageVersion: %x\n", pe_hdr->MajorImageVersion);
-	printf("MinorImageVersion: %x\n", pe_hdr->MinorImageVersion);
-	printf("MajorSubsystemVersion: %x\n", pe_hdr->MajorSubsystemVersion);
-	printf("MinorSubsystemVersion: %x\n", pe_hdr->MinorSubsystemVersion);
-	printf("Reserved: %x\n", pe_hdr->Reserved);
-	printf("SizeOfImage: %x\n", pe_hdr->SizeOfImage);
-	printf("SizeOfHeaders: %x\n", pe_hdr->SizeOfHeaders);
-	printf("Checksum: %x\n", pe_hdr->Checksum);
-	printf("Subsystem: %x\n", pe_hdr->Subsystem);
-	printf("DLLCharacteristics: %x\n", pe_hdr->DLLCharacteristics);
-	printf("SizeOfStackReserve: %x\n", pe_hdr->SizeOfStackReserve);
-	printf("SizeOfStackCommit: %x\n", pe_hdr->SizeOfStackCommit);
-	printf("SizeOfHeapReserve: %x\n", pe_hdr->SizeOfHeapReserve);
-	printf("SizeOfHeapCommit: %x\n", pe_hdr->SizeOfHeapCommit);
-	printf("LoaderFlags: %x\n", pe_hdr->LoaderFlags);
-	printf("NumberOfRvaAndSizes: %x\n", pe_hdr->NumberOfRvaAndSizes);
-#endif
-
-	if(pe_hdr->Subsystem != 0xb) {
-		printf("Not an EFI binary.\n");
-		return NULL;
-	}
-
-	int i;
-#ifdef VERBOSE
-	for (i = 0; i < pe_hdr->NumberOfRvaAndSizes; i++) {
-		if (!pe_hdr->DataDirectory[i].Size)
-			continue;
-		printf("Data Directory %d\n", i+1);
-		printf("  VirtualAddress %x\n", pe_hdr->DataDirectory[i].VirtualAddress);
-		printf("  Size %x\n", pe_hdr->DataDirectory[i].Size);
-	}
-#endif
-
-	pe_section_t *sections = (pe_section_t *)(&pe_hdr[1]);
-
-	int offset = 0;
-
-	for (i = 0; i < coff_hdr->NumberOfSections; i++) {
-		int j;
-		printf("  Section %d: ", i);
-		for (j = 0; j < 8; j++)
-			printf("%c", sections[i].SectionName[j] ? sections[i].SectionName[j] : ' ');
-
-		printf("  size=%08x rva=%08x in file=%08x/%08x flags=%08x\n",
-			sections[i].Size, sections[i].RVA, sections[i].PhysicalSizeOnDisk,
-				sections[i].PhysicalLocationOnDisk, sections[i].SectionFlags);
-
-		if (!strncmp((char *)sections[i].SectionName, ".text", 6)) {
-			// .text section
-			//  size=157a0 rva=240 size on disk=157a0 location on disk=240 flags=60000020
-			memcpy(target, pe + sections[i].PhysicalLocationOnDisk,
-				sections[i].PhysicalSizeOnDisk);
-			offset = sections[i].RVA;
-		} else
-		if (!strncmp((char *)sections[i].SectionName, ".data", 6)) {
-			// .data section
-			//  size=6820 rva=159e0 size on disk=6820 location on disk=159e0 flags=c0000040
-			memcpy(target + sections[i].RVA - offset, pe + sections[i].PhysicalLocationOnDisk,
-				sections[i].PhysicalSizeOnDisk);
-		} else
-		if (!strncmp((char *)sections[i].SectionName, ".reloc", 7)) {
-			// .reloc section
-			// section 2: .reloc
-			//   size=1080 rva=1c200 size on disk=1080 location on disk=1c200 flags=42000040
-			relocation_t *reloc = (relocation_t *)
-				(pe + sections[i].PhysicalLocationOnDisk);
-			while (reloc && reloc->SizeOfBlock) {
-#ifdef VERBOSE
-				printf("Relocation Block Virtual %08x Size %08x\n",
-					 reloc->VirtualAddress, reloc->SizeOfBlock);
-#endif
-				for (i = sizeof(relocation_t); i < reloc->SizeOfBlock; i+= 2) {
-					uint16_t r = *(uint16_t *)((void *)reloc + i);
-					switch (r>>12) {
-					case 3:
-#ifdef VERBOSE
-						printf("  HIGHLOW  %08x\n",
-							reloc->VirtualAddress + (r & 0xfff));
-#endif
-						*(uint32_t *)(target - offset + reloc->VirtualAddress + (r & 0xfff))
-							+= (unsigned long)target - offset;
-						break;
-					case 0:
-#ifdef VERBOSE
-						printf("  ABSOLUTE %08x\n", r & 0xfff);
-#endif
-						break;
-					default:
-						printf("Unknown relocation type %x\n", r);
-						return NULL;
-					}
-				}
-
-				reloc = (relocation_t *)(((void *)reloc) + reloc->SizeOfBlock);
-			}
-		} else
-		if (!strncmp((char *)sections[i].SectionName, ".debug", 7)) {
-			// debug section, silently ignored.
-		} else {
-			printf("section type ");
-			for (j = 0; j < 8; j++)
-				if (sections[i].SectionName[j])
-					printf("%c", sections[i].SectionName[j]);
-			printf(" unknown. ignored.\n");
-		}
-	}
-
-	return (target + pe_hdr->AddressOfEntryPoint - offset);
-}
-
-void start_dxe_core(void *entry, void *stack, void *hoblist)
-{
-	printf("\nJumping to DXE core at %p\n", entry);
-	asm volatile(
-		"movl %1, %%esp\n"
-		"pushl %2\n"
-		"call *%0\n"
-		: : "r"(entry), "r"(stack), "r"(hoblist) : "esp"
-	);
-}
-
-static const EFI_HOB_HANDOFF_INFO_TABLE HandoffInformationTable = {
-	{ EFI_HOB_TYPE_HANDOFF, sizeof(EFI_HOB_HANDOFF_INFO_TABLE), 0 },
-	EFI_HOB_HANDOFF_TABLE_VERSION,
-	BOOT_WITH_FULL_CONFIGURATION,
-	0 /* EfiMemoryTop */,
-	0 /* EfiMemoryBottom */,
-	0 /* EfiFreeMemoryTop */,
-	0 /* EfiFreeMemoryBottom */,
-	0 /* EfiEndOfHobList */
-};
-
-static const EFI_HOB_FIRMWARE_VOLUME FirmwareVolume = {
-	{ EFI_HOB_TYPE_FV, sizeof(EFI_HOB_FIRMWARE_VOLUME), 0 },
-	0 /* BaseAddress */,
-	0 /* Length */
-};
-
-/* 1..n */
-static const EFI_HOB_RESOURCE_DESCRIPTOR ResourceDescriptor = {
-	{ EFI_HOB_TYPE_RESOURCE_DESCRIPTOR, sizeof(EFI_HOB_RESOURCE_DESCRIPTOR), 0 },
-	{ 0 }, // owner EFI_GUID
-	EFI_RESOURCE_SYSTEM_MEMORY,
-	EFI_RESOURCE_ATTRIBUTE_PRESENT | EFI_RESOURCE_ATTRIBUTE_INITIALIZED |
-		EFI_RESOURCE_ATTRIBUTE_TESTED,
-	0, /* PhysicalStart */
-	0 /* ResourceLength */
-};
-
-static const EFI_HOB_MEMORY_ALLOCATION_MODULE MemoryAllocationModule = {
-	{ EFI_HOB_TYPE_MEMORY_ALLOCATION, sizeof(EFI_HOB_MEMORY_ALLOCATION_MODULE), 0 },
-	{ EFI_HOB_MEMORY_ALLOC_MODULE_GUID, 0 /* MemoryBaseAddress */, 0 /* MemoryLength */, EfiBootServicesCode, {0,0,0,0} },
-	EFI_DXE_FILE_GUID,
-	0x0 // ADDR EntryPoint
-};
-
-static const EFI_HOB_CPU Cpu = {
-	{ EFI_HOB_TYPE_CPU, sizeof(EFI_HOB_CPU), 0 },
-	32, /* SizeOfMemorySpace, u8 */
-	16, /* SizeOfIoSpace */
-	{ 0,0,0,0,0,0 }
-};
-
-static const EFI_HOB_GENERIC_HEADER End =
-	{ EFI_HOB_TYPE_END_OF_HOB_LIST, sizeof(EFI_HOB_GENERIC_HEADER), 0 };
-
-
-static void prepare_handoff_blocks(void *hoblist, EFI_FIRMWARE_VOLUME_HEADER *fvh,
-		unsigned long EfiMemoryTop, unsigned long EfiMemoryBottom,
-		unsigned long EfiFreeMemoryTop, unsigned long EfiFreeMemoryBottom,
-		unsigned long dxecore_base)
-{
-	void *ptr = hoblist;
-	int i;
-
-	EFI_HOB_HANDOFF_INFO_TABLE *hit = (EFI_HOB_HANDOFF_INFO_TABLE *)ptr;
-	memcpy(ptr, &HandoffInformationTable, sizeof(HandoffInformationTable));
-	ptr += sizeof(HandoffInformationTable);
-
-	EFI_HOB_FIRMWARE_VOLUME *fv = (EFI_HOB_FIRMWARE_VOLUME *)ptr;
-	memcpy(ptr, &FirmwareVolume, sizeof(FirmwareVolume));
-	ptr += sizeof(FirmwareVolume);
-
-	for (i = 0; i < lib_sysinfo.n_memranges; i++) {
-		EFI_HOB_RESOURCE_DESCRIPTOR *resource;
-		if (lib_sysinfo.memrange[i].type != CB_MEM_RAM)
-			continue;
-		resource = (EFI_HOB_RESOURCE_DESCRIPTOR *)ptr;
-		memcpy(ptr, &ResourceDescriptor, sizeof(ResourceDescriptor));
-		ptr += sizeof(ResourceDescriptor);
-		resource->PhysicalStart = lib_sysinfo.memrange[i].base;
-		resource->ResourceLength = lib_sysinfo.memrange[i].size;
-	}
-
-	EFI_HOB_MEMORY_ALLOCATION_MODULE *allocation = (EFI_HOB_MEMORY_ALLOCATION_MODULE *)ptr;
-	memcpy(ptr, &MemoryAllocationModule, sizeof(MemoryAllocationModule));
-	ptr += sizeof(MemoryAllocationModule);
-
-	memcpy(ptr, &Cpu, sizeof(Cpu));
-	ptr += sizeof(Cpu);
-
-	memcpy(ptr, &End, sizeof(End));
-	ptr += sizeof(Cpu);
-
-	/* Handoff Information Table HOB */
-	hit->EfiMemoryTop = EfiMemoryTop;
-	hit->EfiMemoryBottom = EfiMemoryBottom;
-	hit->EfiFreeMemoryTop = EfiFreeMemoryTop;
-	hit->EfiFreeMemoryBottom = EfiFreeMemoryBottom;
-	hit->EfiEndOfHobList = (unsigned long)ptr;
-
-	/* Firmware Volume HOB */
-	fv->BaseAddress = (unsigned long)fvh;
-	fv->Length = fvh->FvLength;
-
-	allocation->MemoryAllocationHeader.MemoryBaseAddress = dxecore_base;
-	allocation->MemoryAllocationHeader.MemoryLength = DXE_CORE_SIZE;
-}
-
-int main(void)
-{
-	int i;
-	struct cbfs_file *file;
-	void *tiano;
-	unsigned long long ram_seg_base = 0, ram_seg_size = 0;
-	EFI_FIRMWARE_VOLUME_HEADER *fvh = NULL;
-	EFI_PEI_HOB_POINTERS hoblist;
-	EFI_COMMON_SECTION_HEADER *dxecore = NULL;
-
-	printf("\nTiano Core Loader v1.0\n");
-	printf("Copyright (C) 2013 Google Inc. All rights reserved.\n\n");
-
-	printf("Memory Map (%d entries):\n", lib_sysinfo.n_memranges);
-	for (i = 0; i < lib_sysinfo.n_memranges; i++) {
-		printf("  %d. %016llx - %016llx [%02x]\n", i + 1,
-				lib_sysinfo.memrange[i].base,
-				lib_sysinfo.memrange[i].base +
-				lib_sysinfo.memrange[i].size - 1,
-				lib_sysinfo.memrange[i].type);
-
-		/* Look for the last chunk of memory below 4G */
-		if (lib_sysinfo.memrange[i].type == CB_MEM_RAM &&
-				lib_sysinfo.memrange[i].base < 0xffffffff) {
-			ram_seg_base = lib_sysinfo.memrange[i].base;
-			ram_seg_size = lib_sysinfo.memrange[i].size;
-		}
-	}
-	printf("\n");
-
-	if (!ram_seg_base || ram_seg_size < (1024*1024)) {
-		printf("No usable RAM found.\n");
-		halt();
-	}
-
-	/* Find the end of our memory block, align to 4K */
-	unsigned long memory = (ram_seg_base + ram_seg_size) & 0xfffff000;
-
-	/* 256K for DXE core. It's 116K on my system but you never know. */
-	memory -= DXE_CORE_SIZE;
-	unsigned long dxecore_base = memory;
-	memory -= UEFI_STACK_SIZE;
-	unsigned long uefi_stack   = memory;
-
-	memory -= 1024*1024; // FIXME this should go away
-	unsigned long free_memory = memory; // FIXME this should go away
-
-	memory -= HOB_LIST_SIZE;
-	unsigned long hoblist_base   = memory;
-
-	printf("DXE code:  %08lx\n", dxecore_base);
-	printf("DXE stack: %08lx\n", uefi_stack);
-	printf("HOB list:  %08lx\n\n", hoblist_base);
-
-	/* Find UEFI firmware volume in CBFS */
-	file = cbfs_find("fallback/tianocore.fd");
-	if (!file) {
-		printf("Could not find fallback/tianocore.fd in CBFS.\n");
-		halt();
-	}
-
-	tiano = CBFS_SUBHEADER(file);
-	while (tiano < (void *)CBFS_SUBHEADER(file) + ntohl(file->len)) {
-		/* Verify UEFI firmware volume consistency */
-		fvh = (EFI_FIRMWARE_VOLUME_HEADER *)tiano;
-		if (fvh->Signature != 0x4856465f) {
-			printf("Not an UEFI firmware volume.\n");
-			halt();
-		}
-
-		/* Dump UEFI firmware volume header */
-		dump_uefi_firmware_volume_header(fvh);
-
-		/* Dump UEFI firmware file headers */
-		for (i = fvh->HeaderLength; i < fvh->FvLength;) {
-			int size;
-			EFI_FFS_FILE_HEADER *ffs;
-
-			ffs = (EFI_FFS_FILE_HEADER *)(tiano + i);
-
-			size = ffs->Size[0] | (ffs->Size[1] << 8) | (ffs->Size[2] << 16);
-			if (size == 0xffffff)
-				break;
-#ifdef INVENTORY
-			printf("%08x - ", i);
-			dump_uefi_ffs_file_header(ffs);
-#endif
-
-			if (ffs->Type == EFI_FV_FILETYPE_DXE_CORE) {
-				dxecore = (EFI_COMMON_SECTION_HEADER *)&ffs[1];
-#ifndef INVENTORY
-				break;
-#endif
-			}
-
-			i = ALIGN(i + size, 8);
-		}
-
-		tiano += fvh->FvLength;
-#ifdef INVENTORY
-		printf("\n");
-#endif
-	}
-
-	/* Prepare Hand Off Blocks */
-	prepare_handoff_blocks((void *)hoblist_base, fvh,
-			// FIXME memory top, memory bottom
-			(ram_seg_base + ram_seg_size) & 0xfffff000, ram_seg_base,
-			// FIXME free memory top, free memory bottom
-			uefi_stack, free_memory,
-				dxecore_base);
-	hoblist.Raw = (void *)hoblist_base;
-
-	if (!dxecore) {
-		printf("No DXE core found.\n");
-		halt();
-	}
-
-	printf("Found DXE core at %p\n", &dxecore[1]);
-#ifdef VERBOSE
-	int size = dxecore->Size[0] | (dxecore->Size[1] << 8) | (dxecore->Size[2] << 16);
-	printf("  size = %d, type = %x\n", size, dxecore->Type);
-#endif
-
-	void *pe = (void *)&dxecore[1];
-
-	void *entry;
-	entry = load_dxe_core(pe, (void *)dxecore_base);
-
-	if (!entry) {
-		printf("Could not load DXE code.\n");
-		halt();
-	}
-
-	start_dxe_core(entry, (void *)(uefi_stack + UEFI_STACK_SIZE - 4), hoblist.Raw);
-
-	printf("The end.\n");
-	halt();
-
-	return 0;
-}
-
-PAYLOAD_INFO(name, "TianoCoreBoot");
-PAYLOAD_INFO(listname, "Tiano Core");
-PAYLOAD_INFO(desc, "Tiano Core Loader");



More information about the coreboot-gerrit mailing list