amd/pi: Move AGESA cbfs access into the wrapper

The AGESA.c file in 3rdparty has cbfs access functions
for locating the AGESA binaries. coreboot access functions
need to be within coreboot where they can be updated with
cbfs changes. Move the offending function to coreboot.

Change-Id: Ibf6136d04dfbdb0198e90cc3ce719dc286c5610e
Signed-off-by: Marc Jones <marc.jones@se-eng.com>
Reviewed-on: http://review.coreboot.org/10058
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Marc Jones 2015-05-05 09:55:57 -06:00 committed by Stefan Reinauer
parent 6310ccc59c
commit a6a566bf0b
4 changed files with 33 additions and 0 deletions

View File

@ -18,6 +18,7 @@
*/ */
#include <AGESA.h> #include <AGESA.h>
#include <cbfs.h>
#include <cpu/amd/pi/s3_resume.h> #include <cpu/amd/pi/s3_resume.h>
#include <cpu/x86/mtrr.h> #include <cpu/x86/mtrr.h>
#include <cpuRegisters.h> #include <cpuRegisters.h>
@ -589,3 +590,27 @@ AGESA_STATUS agesawrapper_amdreadeventlog (UINT8 HeapStatus)
return Status; return Status;
} }
const void *agesawrapper_locate_module (const CHAR8 name[8])
{
struct cbfs_media media;
struct cbfs_file* file;
const void* agesa;
const AMD_IMAGE_HEADER* image;
const AMD_MODULE_HEADER* module;
size_t file_size;
if (init_default_cbfs_media(&media))
return NULL;
file = cbfs_get_file(&media, (const char*)CONFIG_CBFS_AGESA_NAME);
if (!file)
return NULL;
agesa = cbfs_get_file_content(&media, (const char*)CONFIG_CBFS_AGESA_NAME,
ntohl(file->type), &file_size);
if (!agesa)
return NULL;
image = LibAmdLocateImage(agesa, agesa + file_size - 1, 4096, name);
module = (AMD_MODULE_HEADER*)image->ModuleInfoOffset;
return module;
}

View File

@ -24,6 +24,11 @@
#include "Porting.h" #include "Porting.h"
#include "AGESA.h" #include "AGESA.h"
/* TODO: Add a kconfig option to name the AGESA ROM file in CBFS */
#ifndef CONFIG_CBFS_AGESA_NAME
#define CONFIG_CBFS_AGESA_NAME "AGESA"
#endif
enum { enum {
PICK_DMI, /* DMI Interface */ PICK_DMI, /* DMI Interface */
PICK_PSTATE, /* Acpi Pstate SSDT Table */ PICK_PSTATE, /* Acpi Pstate SSDT Table */
@ -55,5 +60,6 @@ AGESA_STATUS agesawrapper_fchs3laterestore(void);
VOID OemCustomizeInitEarly (IN OUT AMD_EARLY_PARAMS *InitEarly); VOID OemCustomizeInitEarly (IN OUT AMD_EARLY_PARAMS *InitEarly);
VOID amd_initcpuio(void); VOID amd_initcpuio(void);
VOID amd_initmmio(void); VOID amd_initmmio(void);
const void *agesawrapper_locate_module (const CHAR8 name[8]);
#endif /* _AGESAWRAPPER_H_ */ #endif /* _AGESAWRAPPER_H_ */

View File

@ -48,6 +48,7 @@ AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch/Common AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/IDS AGESA_INC += -I$(AGESA_ROOT)/Proc/IDS
AGESA_INC += -I$(src)/northbridge/amd/pi
AGESA_INC += -I$(src)/southbridge/amd/pi/hudson AGESA_INC += -I$(src)/southbridge/amd/pi/hudson
AGESA_INC += -I$(src)/arch/x86/include AGESA_INC += -I$(src)/arch/x86/include

View File

@ -47,6 +47,7 @@ AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Feature
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch/Common AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch/Common
AGESA_INC += -I$(src)/northbridge/amd/pi
AGESA_INC += -I$(src)/southbridge/amd/pi/hudson AGESA_INC += -I$(src)/southbridge/amd/pi/hudson
AGESA_INC += -I$(src)/arch/x86/include AGESA_INC += -I$(src)/arch/x86/include