From b0c2fe05544704bc13e7e9d1d9f27802c38ef00f Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Mon, 9 May 2016 12:23:01 -0700 Subject: [PATCH] cbfstool/fsp: Rename fsp1_1_relocate FSP 2.0 uses the same relocate logic as FSP 1.1. Thus, rename fsp1_1_relocate to more generic fsp_component_relocate that can be used by cbfstool to relocate either FSP 1.1 or FSP 2.0 components. Allow FSP1.1 driver to still call fsp1_1_relocate which acts as a wrapper for fsp_component_relocate. Change-Id: I14a6efde4d86a340663422aff5ee82175362d1b0 Signed-off-by: Furquan Shaikh Reviewed-on: https://review.coreboot.org/14749 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Werner Zeh --- src/commonlib/Makefile.inc | 2 +- src/commonlib/{fsp1_1_relocate.c => fsp_relocate.c} | 11 ++++++++--- src/commonlib/include/commonlib/{fsp1_1.h => fsp.h} | 9 ++++++--- src/drivers/intel/fsp1_1/fsp_relocate.c | 2 +- util/cbfstool/Makefile.inc | 2 +- util/cbfstool/cbfstool.c | 7 ++++--- 6 files changed, 21 insertions(+), 12 deletions(-) rename src/commonlib/{fsp1_1_relocate.c => fsp_relocate.c} (98%) rename src/commonlib/include/commonlib/{fsp1_1.h => fsp.h} (79%) diff --git a/src/commonlib/Makefile.inc b/src/commonlib/Makefile.inc index 7c14f7cb8c..be22e0097d 100644 --- a/src/commonlib/Makefile.inc +++ b/src/commonlib/Makefile.inc @@ -11,7 +11,7 @@ ramstage-y += region.c smm-y += region.c postcar-y += region.c -ramstage-$(CONFIG_PLATFORM_USES_FSP1_1) += fsp1_1_relocate.c +ramstage-$(CONFIG_PLATFORM_USES_FSP1_1) += fsp_relocate.c bootblock-y += cbfs.c verstage-y += cbfs.c diff --git a/src/commonlib/fsp1_1_relocate.c b/src/commonlib/fsp_relocate.c similarity index 98% rename from src/commonlib/fsp1_1_relocate.c rename to src/commonlib/fsp_relocate.c index 501c08d3c9..7f1e49accf 100644 --- a/src/commonlib/fsp1_1_relocate.c +++ b/src/commonlib/fsp_relocate.c @@ -15,7 +15,7 @@ #include #include -#include +#include /* * Intel's code does not have a handle on changing global packing state. * Therefore, one needs to protect against packing policies that are set @@ -482,7 +482,7 @@ static ssize_t relocate_fvh(uintptr_t new_addr, void *fsp, size_t fsp_size, } /* - * The entire FSP 1.1 image can be thought of as one + * The entire FSP image can be thought of as one * program with a single link address even though there * are multiple TEs linked separately. The reason is * that each TE is linked for XIP. So in order to @@ -511,7 +511,7 @@ static ssize_t relocate_fvh(uintptr_t new_addr, void *fsp, size_t fsp_size, return fv_length; } -ssize_t fsp1_1_relocate(uintptr_t new_addr, void *fsp, size_t size) +ssize_t fsp_component_relocate(uintptr_t new_addr, void *fsp, size_t size) { size_t offset; size_t fih_offset; @@ -542,3 +542,8 @@ ssize_t fsp1_1_relocate(uintptr_t new_addr, void *fsp, size_t size) return relocate_remaining_items(fsp, size, new_addr, fih_offset); } + +ssize_t fsp1_1_relocate(uintptr_t new_addr, void *fsp, size_t size) +{ + return fsp_component_relocate(new_addr, fsp, size); +} diff --git a/src/commonlib/include/commonlib/fsp1_1.h b/src/commonlib/include/commonlib/fsp.h similarity index 79% rename from src/commonlib/include/commonlib/fsp1_1.h rename to src/commonlib/include/commonlib/fsp.h index a5bc193ed2..84e2c98a8b 100644 --- a/src/commonlib/include/commonlib/fsp1_1.h +++ b/src/commonlib/include/commonlib/fsp.h @@ -1,7 +1,7 @@ /* * This file is part of the coreboot project. * - * Copyright 2015 Google Inc. + * Copyright 2016 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 @@ -13,8 +13,8 @@ * GNU General Public License for more details. */ -#ifndef _COMMONLIB_FSP1_1_H_ -#define _COMMONLIB_FSP1_1_H_ +#ifndef _COMMONLIB_FSP_H_ +#define _COMMONLIB_FSP_H_ #include #include @@ -23,6 +23,9 @@ * Relocate FSP held within buffer defined by size to new_addr. Returns < 0 * on error, offset to FSP_INFO_HEADER on success. */ +ssize_t fsp_component_relocate(uintptr_t new_addr, void *fsp, size_t size); + +/* API to relocate fsp 1.1 component. */ ssize_t fsp1_1_relocate(uintptr_t new_addr, void *fsp, size_t size); #endif diff --git a/src/drivers/intel/fsp1_1/fsp_relocate.c b/src/drivers/intel/fsp1_1/fsp_relocate.c index 89d7cd9747..16d1dd59dc 100644 --- a/src/drivers/intel/fsp1_1/fsp_relocate.c +++ b/src/drivers/intel/fsp1_1/fsp_relocate.c @@ -15,7 +15,7 @@ #include #include -#include +#include #include int fsp_relocate(struct prog *fsp_relocd, const struct region_device *fsp_src) diff --git a/util/cbfstool/Makefile.inc b/util/cbfstool/Makefile.inc index 568b934afa..aa42f012ad 100644 --- a/util/cbfstool/Makefile.inc +++ b/util/cbfstool/Makefile.inc @@ -12,7 +12,7 @@ cbfsobj += fit.o cbfsobj += partitioned_file.o # COMMONLIB cbfsobj += cbfs.o -cbfsobj += fsp1_1_relocate.o +cbfsobj += fsp_relocate.o cbfsobj += lz4_wrapper.o cbfsobj += mem_pool.o cbfsobj += region.o diff --git a/util/cbfstool/cbfstool.c b/util/cbfstool/cbfstool.c index 744893cdef..0f24af99c9 100644 --- a/util/cbfstool/cbfstool.c +++ b/util/cbfstool/cbfstool.c @@ -29,7 +29,7 @@ #include "cbfs_sections.h" #include "fit.h" #include "partitioned_file.h" -#include +#include #define SECTION_WITH_FIT_TABLE "BOOTBLOCK" @@ -515,12 +515,13 @@ static int cbfstool_convert_fsp(struct buffer *buffer, memcpy(buffer_get(&fsp), buffer_get(buffer), buffer_size(buffer)); /* Replace the buffer contents w/ the relocated ones on success. */ - if (fsp1_1_relocate(address, buffer_get(&fsp), buffer_size(&fsp)) > 0) { + if (fsp_component_relocate(address, buffer_get(&fsp), buffer_size(&fsp)) + > 0) { buffer_delete(buffer); buffer_clone(buffer, &fsp); } else { buffer_delete(&fsp); - WARN("FSP was not a 1.1 variant.\n"); + WARN("Invalid FSP variant.\n"); } /* Let the raw path handle all the cbfs metadata logic. */