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 <furquan@google.com> Reviewed-on: https://review.coreboot.org/14749 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
This commit is contained in:
parent
61c1a05c07
commit
b0c2fe0554
|
@ -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
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
#include <console/console.h>
|
||||
#include <commonlib/endian.h>
|
||||
#include <commonlib/fsp1_1.h>
|
||||
#include <commonlib/fsp.h>
|
||||
/*
|
||||
* 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);
|
||||
}
|
|
@ -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 <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
@ -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
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
#include <console/console.h>
|
||||
#include <cbmem.h>
|
||||
#include <commonlib/fsp1_1.h>
|
||||
#include <commonlib/fsp.h>
|
||||
#include <fsp/util.h>
|
||||
|
||||
int fsp_relocate(struct prog *fsp_relocd, const struct region_device *fsp_src)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "cbfs_sections.h"
|
||||
#include "fit.h"
|
||||
#include "partitioned_file.h"
|
||||
#include <commonlib/fsp1_1.h>
|
||||
#include <commonlib/fsp.h>
|
||||
|
||||
#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. */
|
||||
|
|
Loading…
Reference in New Issue