binaryPI: Drop BINARYPI_LEGACY_WRAPPER support

Drop all the sources that were guarded with this.

Change-Id: I6c6fd19875cb57f0caf42a1a94f59efed83bfe0d
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/19275
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
This commit is contained in:
Kyösti Mälkki 2017-09-06 15:42:23 +03:00
parent b81731d9db
commit 46f04cbb49
39 changed files with 9 additions and 2074 deletions

View File

@ -26,15 +26,11 @@ config CPU_AMD_PI
select UDELAY_LAPIC
select LAPIC_MONOTONIC_TIMER
select SPI_FLASH if HAVE_ACPI_RESUME
select CAR_GLOBAL_MIGRATION if BINARYPI_LEGACY_WRAPPER
select SMM_ASEG
select NO_FIXED_XIP_ROM_SIZE
if CPU_AMD_PI
config BINARYPI_LEGACY_WRAPPER
def_bool n
config UDELAY_LAPIC_FIXED_FSB
int
default 200

View File

@ -14,9 +14,3 @@
subdirs-$(CONFIG_CPU_AMD_PI_00630F01) += 00630F01
subdirs-$(CONFIG_CPU_AMD_PI_00730F01) += 00730F01
subdirs-$(CONFIG_CPU_AMD_PI_00660F01) += 00660F01
ifeq ($(CONFIG_BINARYPI_LEGACY_WRAPPER), y)
cpu_incs-y += $(src)/drivers/amd/agesa/cache_as_ram.S
romstage-y += romstage.c
ramstage-y += amd_late_init.c
endif

View File

@ -1,36 +0,0 @@
/*
* This file is part of the coreboot project.
*
* 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.
*/
#include <arch/acpi.h>
#include <bootstate.h>
#include <device/device.h>
#include <device/pci_def.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/pi/agesawrapper_call.h>
static void agesawrapper_post_device(void *unused)
{
if (acpi_is_wakeup_s3())
return;
AGESAWRAPPER(amdinitlate);
if (!acpi_s3_resume_allowed())
return;
AGESAWRAPPER(amdS3Save);
}
BOOT_STATE_INIT_ENTRY(BS_POST_DEVICE, BS_ON_EXIT,
agesawrapper_post_device, NULL);

View File

@ -1,55 +0,0 @@
/*
* This file is part of the coreboot project.
*
* 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.
*/
#include <arch/cpu.h>
#include <cbmem.h>
#include <cpu/amd/car.h>
#include <cpu/x86/mtrr.h>
#include <console/console.h>
#include <program_loading.h>
#include <romstage_handoff.h>
#include <northbridge/amd/agesa/agesa_helper.h>
#include <northbridge/amd/agesa/state_machine.h>
void asmlinkage early_all_cores(void)
{
amd_initmmio();
}
void *asmlinkage romstage_main(unsigned long bist)
{
int s3resume = 0;
u8 initial_apic_id = cpuid_ebx(1) >> 24;
/* Only BSP returns from here. */
cache_as_ram_main(bist, initial_apic_id);
cbmem_recovery(s3resume);
romstage_handoff_init(s3resume);
char *stack_top = cbmem_add(CBMEM_ID_ROMSTAGE_RAM_STACK, HIGH_ROMSTAGE_STACK_SIZE);
stack_top += HIGH_ROMSTAGE_STACK_SIZE;
printk(BIOS_DEBUG, "Move CAR stack.\n");
return (void *)stack_top;
}
void asmlinkage romstage_after_car(void)
{
printk(BIOS_DEBUG, "CAR disabled.\n");
agesa_postcar(NULL);
run_ramstage();
}

View File

@ -13,8 +13,6 @@
ifeq ($(CONFIG_DRIVERS_AMD_PI),y)
ifneq ($(CONFIG_BINARYPI_LEGACY_WRAPPER),y)
romstage-y += romstage.c
romstage-y += mtrr_fixme.c
romstage-y += state_machine.c
@ -24,12 +22,6 @@ ramstage-y += state_machine.c
cpu_incs-y += $(src)/drivers/amd/agesa/cache_as_ram.S
postcar-y += cache_as_ram.S
else
romstage-y += heapmanager.c
endif
romstage-y += def_callouts.c
romstage-y += eventlog.c

View File

@ -35,7 +35,7 @@ AGESA_STATUS GetBiosCallout (UINT32 Func, UINTN Data, VOID *ConfigPtr)
AGESA_STATUS status;
UINTN i;
if (HAS_LEGACY_WRAPPER || ENV_RAMSTAGE) {
if (ENV_RAMSTAGE) {
/* One HeapManager serves them all. */
status = HeapManagerCallout(Func, Data, ConfigPtr);
if (status != AGESA_UNSUPPORTED)
@ -43,7 +43,7 @@ AGESA_STATUS GetBiosCallout (UINT32 Func, UINTN Data, VOID *ConfigPtr)
}
#if HAS_AGESA_FCH_OEM_CALLOUT
if (!HAS_LEGACY_WRAPPER && Func == AGESA_FCH_OEM_CALLOUT) {
if (Func == AGESA_FCH_OEM_CALLOUT) {
agesa_fch_oem_config(Data, ConfigPtr);
return AGESA_SUCCESS;
}
@ -120,24 +120,12 @@ AGESA_STATUS agesa_RunFuncOnAp (UINT32 Func, UINTN Data, VOID *ConfigPtr)
AP_EXE_PARAMS ApExeParams;
memset(&ApExeParams, 0, sizeof(AP_EXE_PARAMS));
if (HAS_LEGACY_WRAPPER) {
ApExeParams.StdHeader.AltImageBasePtr = 0;
ApExeParams.StdHeader.CalloutPtr = &GetBiosCallout;
ApExeParams.StdHeader.Func = 0;
ApExeParams.StdHeader.ImageBasePtr = 0;
} else {
memcpy(&ApExeParams.StdHeader, StdHeader, sizeof(*StdHeader));
}
memcpy(&ApExeParams.StdHeader, StdHeader, sizeof(*StdHeader));
ApExeParams.FunctionNumber = Func;
ApExeParams.RelatedDataBlock = ConfigPtr;
#if HAS_LEGACY_WRAPPER
status = AmdLateRunApTask(&ApExeParams);
#else
status = module_dispatch(AMD_LATE_RUN_AP_TASK, &ApExeParams.StdHeader);
#endif
ASSERT(status == AGESA_SUCCESS);
return status;

View File

@ -180,11 +180,7 @@ static void amd_flush_eventlog(EVENT_PARAMS *Event)
do {
AGESA_STATUS status;
#if HAS_LEGACY_WRAPPER
status = AmdReadEventLog(Event);
#else
status = module_dispatch(AMD_READ_EVENT_LOG, &Event->StdHeader);
#endif
if (status != AGESA_SUCCESS)
return;
if (Event->EventClass == 0)
@ -203,16 +199,7 @@ void agesawrapper_trace(AGESA_STATUS ret, AMD_CONFIG_PARAMS *StdHeader,
return;
memset(&AmdEventParams, 0, sizeof(EVENT_PARAMS));
if (HAS_LEGACY_WRAPPER) {
AmdEventParams.StdHeader.AltImageBasePtr = 0;
AmdEventParams.StdHeader.CalloutPtr = &GetBiosCallout;
AmdEventParams.StdHeader.Func = 0;
AmdEventParams.StdHeader.ImageBasePtr = 0;
AmdEventParams.StdHeader.HeapStatus = StdHeader->HeapStatus;
} else {
memcpy(&AmdEventParams.StdHeader, StdHeader, sizeof(*StdHeader));
}
memcpy(&AmdEventParams.StdHeader, StdHeader, sizeof(*StdHeader));
amd_flush_eventlog(&AmdEventParams);
}

View File

@ -30,9 +30,6 @@
#if !CONFIG(POSTCAR_STAGE)
#error "Only POSTCAR_STAGE is supported."
#endif
#if HAS_LEGACY_WRAPPER
#error "LEGACY_WRAPPER code not supported"
#endif
void asmlinkage early_all_cores(void)
{

View File

@ -8,6 +8,5 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx);
void asmlinkage early_all_cores(void);
void *asmlinkage romstage_main(unsigned long bist);
void asmlinkage romstage_after_car(void);
#endif

View File

@ -23,7 +23,6 @@
#include <stdlib.h>
#include <string.h>
#include <northbridge/amd/pi/dimmSpd.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <boardid.h>
#include "imc.h"

View File

@ -20,7 +20,7 @@ if BOARD_AMD_BETTONG
config BOARD_SPECIFIC_OPTIONS
def_bool y
select BINARYPI_LEGACY_WRAPPER
#select BINARYPI_LEGACY_WRAPPER
select CPU_AMD_PI_00660F01
select NORTHBRIDGE_AMD_PI_00660F01
select SOUTHBRIDGE_AMD_PI_KERN

View File

@ -14,7 +14,6 @@
*/
#include <AGESA.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <PlatformMemoryConfiguration.h>
#include <boardid.h>

View File

@ -21,8 +21,6 @@
#include <cpu/x86/bist.h>
#include <cpu/amd/car.h>
#include <northbridge/amd/agesa/state_machine.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/pi/agesawrapper_call.h>
#include <southbridge/amd/pi/hudson/hudson.h>
void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)

View File

@ -21,7 +21,7 @@ if BOARD_AMD_DB_FT3B_LC
config BOARD_SPECIFIC_OPTIONS
def_bool y
select BINARYPI_LEGACY_WRAPPER
#select BINARYPI_LEGACY_WRAPPER
select CPU_AMD_PI_00730F01
select NORTHBRIDGE_AMD_PI_00730F01
select SOUTHBRIDGE_AMD_PI_AVALON

View File

@ -14,7 +14,6 @@
*/
#include <AGESA.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <PlatformMemoryConfiguration.h>

View File

@ -21,8 +21,6 @@
#include <console/console.h>
#include <cpu/amd/car.h>
#include <northbridge/amd/agesa/state_machine.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/pi/agesawrapper_call.h>
#include <cpu/x86/bist.h>
#include <southbridge/amd/pi/hudson/hudson.h>

View File

@ -20,7 +20,7 @@ if BOARD_AMD_LAMAR
config BOARD_SPECIFIC_OPTIONS
def_bool y
select BINARYPI_LEGACY_WRAPPER
#select BINARYPI_LEGACY_WRAPPER
select CPU_AMD_PI_00630F01
select NORTHBRIDGE_AMD_PI_00630F01
select SOUTHBRIDGE_AMD_PI_BOLTON

View File

@ -15,7 +15,6 @@
*/
#include <AGESA.h>
#include <northbridge/amd/pi/agesawrapper.h>
static const PCIe_PORT_DESCRIPTOR PortList[] = {

View File

@ -21,8 +21,6 @@
#include <console/console.h>
#include <cpu/amd/car.h>
#include <northbridge/amd/agesa/state_machine.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/pi/agesawrapper_call.h>
#include <cpu/x86/bist.h>
#include <southbridge/amd/common/amd_defs.h>
#include <southbridge/amd/pi/hudson/hudson.h>

View File

@ -20,7 +20,7 @@ if BOARD_AMD_OLIVEHILLPLUS
config BOARD_SPECIFIC_OPTIONS
def_bool y
select BINARYPI_LEGACY_WRAPPER
#select BINARYPI_LEGACY_WRAPPER
select CPU_AMD_PI_00730F01
select NORTHBRIDGE_AMD_PI_00730F01
select SOUTHBRIDGE_AMD_PI_AVALON

View File

@ -14,7 +14,6 @@
*/
#include <AGESA.h>
#include <northbridge/amd/pi/agesawrapper.h>
static const PCIe_PORT_DESCRIPTOR PortList[] = {

View File

@ -21,8 +21,6 @@
#include <console/console.h>
#include <cpu/amd/car.h>
#include <northbridge/amd/agesa/state_machine.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/pi/agesawrapper_call.h>
#include <cpu/x86/bist.h>
#include <southbridge/amd/pi/hudson/hudson.h>

View File

@ -20,7 +20,7 @@ if BOARD_ODE_E21XX
config BOARD_SPECIFIC_OPTIONS
def_bool y
select BINARYPI_LEGACY_WRAPPER
#select BINARYPI_LEGACY_WRAPPER
select CPU_AMD_PI_00730F01
select NORTHBRIDGE_AMD_PI_00730F01
select SOUTHBRIDGE_AMD_PI_AVALON

View File

@ -14,7 +14,6 @@
*/
#include <AGESA.h>
#include <northbridge/amd/pi/agesawrapper.h>
static const PCIe_PORT_DESCRIPTOR PortList[] = {

View File

@ -21,8 +21,6 @@
#include <console/console.h>
#include <cpu/amd/car.h>
#include <northbridge/amd/agesa/state_machine.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/pi/agesawrapper_call.h>
#include <cpu/x86/bist.h>
#include <southbridge/amd/pi/hudson/hudson.h>
#include <superio/fintek/common/fintek.h>

View File

@ -20,8 +20,6 @@
#include <AGESA.h>
#include <AMD.h>
#define HAS_LEGACY_WRAPPER CONFIG(BINARYPI_LEGACY_WRAPPER)
/* eventlog */
void agesawrapper_trace(AGESA_STATUS ret, AMD_CONFIG_PARAMS *StdHeader, const char *func);
AGESA_STATUS agesawrapper_amdreadeventlog(UINT8 HeapStatus);

View File

@ -34,10 +34,6 @@
#include <arch/acpigen.h>
#include <northbridge/amd/pi/nb_common.h>
#include <northbridge/amd/agesa/agesa_helper.h>
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/pi/agesawrapper_call.h>
#endif
#define MAX_NODE_NUMS MAX_NODES
@ -608,16 +604,6 @@ static void domain_read_resources(struct device *dev)
static void domain_enable_resources(struct device *dev)
{
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
/* Must be called after PCI enumeration and resource allocation */
if (!acpi_is_wakeup_s3()) {
/* Enable MMIO on AMD CPU Address Map Controller */
amd_initcpuio();
agesawrapper_amdinitmid();
}
printk(BIOS_DEBUG, " ader - leaving %s.\n", __func__);
#endif
}
#if CONFIG_HW_MEM_HOLE_SIZEK != 0

View File

@ -34,10 +34,6 @@
#include <arch/acpigen.h>
#include <northbridge/amd/pi/nb_common.h>
#include <northbridge/amd/agesa/agesa_helper.h>
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/pi/agesawrapper_call.h>
#endif
#define MAX_NODE_NUMS MAX_NODES
@ -609,13 +605,6 @@ static void domain_read_resources(struct device *dev)
static void domain_enable_resources(struct device *dev)
{
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
/* Must be called after PCI enumeration and resource allocation */
if (!acpi_is_wakeup_s3())
AGESAWRAPPER(amdinitmid);
printk(BIOS_DEBUG, " ader - leaving domain_enable_resources.\n");
#endif
}
#if CONFIG_HW_MEM_HOLE_SIZEK != 0

View File

@ -18,7 +18,5 @@ romstage-y += dimmSpd.c
ramstage-y += northbridge.c
ramstage-y += iommu.c
ifneq ($(CONFIG_BINARYPI_LEGACY_WRAPPER), y)
romstage-y += state_machine.c
ramstage-y += state_machine.c
endif

View File

@ -36,10 +36,6 @@
#include <arch/acpigen.h>
#include <northbridge/amd/pi/nb_common.h>
#include <northbridge/amd/agesa/agesa_helper.h>
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/pi/agesawrapper_call.h>
#endif
#define MAX_NODE_NUMS MAX_NODES
@ -835,13 +831,6 @@ static void domain_read_resources(struct device *dev)
static void domain_enable_resources(struct device *dev)
{
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
/* Must be called after PCI enumeration and resource allocation */
if (!acpi_is_wakeup_s3())
AGESAWRAPPER(amdinitmid);
printk(BIOS_DEBUG, " ader - leaving domain_enable_resources.\n");
#endif
}
#if CONFIG_HW_MEM_HOLE_SIZEK != 0

View File

@ -19,11 +19,6 @@ subdirs-$(CONFIG_NORTHBRIDGE_AMD_PI_00630F01) += 00630F01
subdirs-$(CONFIG_NORTHBRIDGE_AMD_PI_00730F01) += 00730F01
subdirs-$(CONFIG_NORTHBRIDGE_AMD_PI_00660F01) += 00660F01
ifeq ($(CONFIG_BINARYPI_LEGACY_WRAPPER), y)
romstage-y += agesawrapper.c
ramstage-y += agesawrapper.c
endif
romstage-y += ramtop.c
postcar-y += ramtop.c
ramstage-y += ramtop.c

View File

@ -1,317 +0,0 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2012 - 2014 Advanced Micro Devices, 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.
*/
#include <AGESA.h>
#include <cbfs.h>
#include <cbmem.h>
#include <delay.h>
#include <console/console.h>
#include <cpu/x86/mtrr.h>
#include <FchPlatform.h>
#include <heapManager.h>
#include <northbridge/amd/agesa/agesa_helper.h>
#include <northbridge/amd/agesa/state_machine.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/agesa/BiosCallOuts.h>
void __weak OemPostParams(AMD_POST_PARAMS *PostParams) {}
#define FILECODE UNASSIGNED_FILE_FILECODE
AGESA_STATUS agesawrapper_amdinitreset(void)
{
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct;
AMD_RESET_PARAMS AmdResetParams;
LibAmdMemFill (&AmdParamStruct,
0,
sizeof(AMD_INTERFACE_PARAMS),
&(AmdParamStruct.StdHeader));
LibAmdMemFill (&AmdResetParams,
0,
sizeof(AMD_RESET_PARAMS),
&(AmdResetParams.StdHeader));
AmdParamStruct.AgesaFunctionName = AMD_INIT_RESET;
AmdParamStruct.AllocationMethod = ByHost;
AmdParamStruct.NewStructSize = sizeof(AMD_RESET_PARAMS);
AmdParamStruct.NewStructPtr = &AmdResetParams;
AmdParamStruct.StdHeader.AltImageBasePtr = 0;
AmdParamStruct.StdHeader.CalloutPtr = &GetBiosCallout;
AmdParamStruct.StdHeader.Func = 0;
AmdParamStruct.StdHeader.ImageBasePtr = 0;
AmdCreateStruct (&AmdParamStruct);
AmdResetParams.FchInterface.Xhci0Enable = CONFIG(HUDSON_XHCI_ENABLE);
if (CONFIG(SOUTHBRIDGE_AMD_PI_BOLTON))
AmdResetParams.FchInterface.Xhci1Enable = TRUE;
AmdResetParams.FchInterface.SataEnable = !((CONFIG_HUDSON_SATA_MODE == 0) || (CONFIG_HUDSON_SATA_MODE == 3));
AmdResetParams.FchInterface.IdeEnable = (CONFIG_HUDSON_SATA_MODE == 0) || (CONFIG_HUDSON_SATA_MODE == 3);
status = AmdInitReset(&AmdResetParams);
if (status != AGESA_SUCCESS) agesawrapper_amdreadeventlog(AmdParamStruct.StdHeader.HeapStatus);
AmdReleaseStruct (&AmdParamStruct);
return status;
}
AGESA_STATUS agesawrapper_amdinitearly(void)
{
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct;
AMD_EARLY_PARAMS *AmdEarlyParamsPtr;
LibAmdMemFill (&AmdParamStruct,
0,
sizeof(AMD_INTERFACE_PARAMS),
&(AmdParamStruct.StdHeader));
AmdParamStruct.AgesaFunctionName = AMD_INIT_EARLY;
AmdParamStruct.AllocationMethod = PreMemHeap;
AmdParamStruct.StdHeader.AltImageBasePtr = 0;
AmdParamStruct.StdHeader.CalloutPtr = &GetBiosCallout;
AmdParamStruct.StdHeader.Func = 0;
AmdParamStruct.StdHeader.ImageBasePtr = 0;
AmdCreateStruct (&AmdParamStruct);
AmdEarlyParamsPtr = (AMD_EARLY_PARAMS *)AmdParamStruct.NewStructPtr;
OemCustomizeInitEarly (AmdEarlyParamsPtr);
AmdEarlyParamsPtr->GnbConfig.PsppPolicy = PsppDisabled;
status = AmdInitEarly ((AMD_EARLY_PARAMS *)AmdParamStruct.NewStructPtr);
/*
* init_timer() needs to be called on CZ PI, because AGESA resets the LAPIC reload value
* on the AMD_INIT_EARLY call
*/
if (CONFIG(CPU_AMD_PI_00660F01))
init_timer();
if (status != AGESA_SUCCESS) agesawrapper_amdreadeventlog(AmdParamStruct.StdHeader.HeapStatus);
AmdReleaseStruct (&AmdParamStruct);
return status;
}
AGESA_STATUS agesawrapper_amdinitpost(void)
{
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct;
AMD_POST_PARAMS *PostParams;
LibAmdMemFill (&AmdParamStruct,
0,
sizeof(AMD_INTERFACE_PARAMS),
&(AmdParamStruct.StdHeader));
AmdParamStruct.AgesaFunctionName = AMD_INIT_POST;
AmdParamStruct.AllocationMethod = PreMemHeap;
AmdParamStruct.StdHeader.AltImageBasePtr = NULL;
AmdParamStruct.StdHeader.CalloutPtr = &GetBiosCallout;
AmdParamStruct.StdHeader.Func = 0;
AmdParamStruct.StdHeader.ImageBasePtr = 0;
AmdCreateStruct (&AmdParamStruct);
PostParams = (AMD_POST_PARAMS *)AmdParamStruct.NewStructPtr;
PostParams->MemConfig.UmaMode = CONFIG(GFXUMA) ? UMA_AUTO : UMA_NONE;
PostParams->MemConfig.UmaSize = 0;
PostParams->MemConfig.BottomIo = (UINT16)
(CONFIG_BOTTOMIO_POSITION >> 24);
OemPostParams(PostParams);
status = AmdInitPost (PostParams);
/* If UMA is enabled we currently have it below TOP_MEM as well.
* UMA may or may not be cacheable, so Sub4GCacheTop could be
* higher than UmaBase. With UMA_NONE we see UmaBase==0. */
if (PostParams->MemConfig.UmaBase)
backup_top_of_low_cacheable(PostParams->MemConfig.UmaBase << 16);
else
backup_top_of_low_cacheable(PostParams->MemConfig.Sub4GCacheTop);
printk(
BIOS_SPEW,
"setup_uma_memory: umamode %s\n",
(PostParams->MemConfig.UmaMode == UMA_AUTO) ? "UMA_AUTO" :
(PostParams->MemConfig.UmaMode == UMA_SPECIFIED) ? "UMA_SPECIFIED" :
(PostParams->MemConfig.UmaMode == UMA_NONE) ? "UMA_NONE" :
"unknown"
);
printk(
BIOS_SPEW,
"setup_uma_memory: syslimit 0x%08llX, bottomio 0x%08lx\n",
(unsigned long long)(PostParams->MemConfig.SysLimit) << 16,
(unsigned long)(PostParams->MemConfig.BottomIo) << 16
);
printk(
BIOS_SPEW,
"setup_uma_memory: uma size %luMB, uma start 0x%08lx\n",
(unsigned long)(PostParams->MemConfig.UmaSize) >> (20 - 16),
(unsigned long)(PostParams->MemConfig.UmaBase) << 16
);
if (status != AGESA_SUCCESS) agesawrapper_amdreadeventlog(PostParams->StdHeader.HeapStatus);
AmdReleaseStruct (&AmdParamStruct);
return status;
}
AGESA_STATUS agesawrapper_amdinitenv(void)
{
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct;
AMD_ENV_PARAMS *EnvParam;
/* Initialize heap space */
EmptyHeap();
LibAmdMemFill (&AmdParamStruct,
0,
sizeof(AMD_INTERFACE_PARAMS),
&(AmdParamStruct.StdHeader));
AmdParamStruct.AgesaFunctionName = AMD_INIT_ENV;
AmdParamStruct.AllocationMethod = PostMemDram;
AmdParamStruct.StdHeader.AltImageBasePtr = 0;
AmdParamStruct.StdHeader.CalloutPtr = &GetBiosCallout;
AmdParamStruct.StdHeader.Func = 0;
AmdParamStruct.StdHeader.ImageBasePtr = 0;
status = AmdCreateStruct (&AmdParamStruct);
EnvParam = (AMD_ENV_PARAMS *)AmdParamStruct.NewStructPtr;
EnvParam->FchInterface.AzaliaController = AzEnable;
EnvParam->FchInterface.SataClass = CONFIG_HUDSON_SATA_MODE;
EnvParam->FchInterface.SataEnable = !((CONFIG_HUDSON_SATA_MODE == 0) || (CONFIG_HUDSON_SATA_MODE == 3));
EnvParam->FchInterface.IdeEnable = (CONFIG_HUDSON_SATA_MODE == 0) || (CONFIG_HUDSON_SATA_MODE == 3);
EnvParam->FchInterface.SataIdeMode = (CONFIG_HUDSON_SATA_MODE == 3);
status = AmdInitEnv (EnvParam);
if (status != AGESA_SUCCESS) agesawrapper_amdreadeventlog(EnvParam->StdHeader.HeapStatus);
/* Initialize Subordinate Bus Number and Secondary Bus Number
* In platform BIOS this address is allocated by PCI enumeration code
Modify D1F0x18
*/
return status;
}
AGESA_STATUS agesawrapper_amdinitmid(void)
{
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct;
AMD_MID_PARAMS *MidParam;
/* Enable MMIO on AMD CPU Address Map Controller */
amd_initcpuio ();
LibAmdMemFill (&AmdParamStruct,
0,
sizeof(AMD_INTERFACE_PARAMS),
&(AmdParamStruct.StdHeader));
AmdParamStruct.AgesaFunctionName = AMD_INIT_MID;
AmdParamStruct.AllocationMethod = PostMemDram;
AmdParamStruct.StdHeader.AltImageBasePtr = 0;
AmdParamStruct.StdHeader.CalloutPtr = &GetBiosCallout;
AmdParamStruct.StdHeader.Func = 0;
AmdParamStruct.StdHeader.ImageBasePtr = 0;
AmdCreateStruct (&AmdParamStruct);
MidParam = (AMD_MID_PARAMS *)AmdParamStruct.NewStructPtr;
MidParam->GnbMidConfiguration.iGpuVgaMode = 0;/* 0 iGpuVgaAdapter, 1 iGpuVgaNonAdapter; */
MidParam->GnbMidConfiguration.GnbIoapicAddress = 0xFEC20000;
MidParam->FchInterface.AzaliaController = AzEnable;
MidParam->FchInterface.SataClass = CONFIG_HUDSON_SATA_MODE;
MidParam->FchInterface.SataEnable = !((CONFIG_HUDSON_SATA_MODE == 0) || (CONFIG_HUDSON_SATA_MODE == 3));
MidParam->FchInterface.IdeEnable = (CONFIG_HUDSON_SATA_MODE == 0) || (CONFIG_HUDSON_SATA_MODE == 3);
MidParam->FchInterface.SataIdeMode = (CONFIG_HUDSON_SATA_MODE == 3);
status = AmdInitMid ((AMD_MID_PARAMS *)AmdParamStruct.NewStructPtr);
if (status != AGESA_SUCCESS) agesawrapper_amdreadeventlog(AmdParamStruct.StdHeader.HeapStatus);
AmdReleaseStruct (&AmdParamStruct);
return status;
}
AGESA_STATUS agesawrapper_amdinitlate(void)
{
AGESA_STATUS Status;
AMD_INTERFACE_PARAMS AmdParamStruct;
AMD_LATE_PARAMS *AmdLateParams;
if (!ENV_RAMSTAGE)
return AGESA_UNSUPPORTED;
LibAmdMemFill (&AmdParamStruct,
0,
sizeof(AMD_INTERFACE_PARAMS),
&(AmdParamStruct.StdHeader));
AmdParamStruct.AgesaFunctionName = AMD_INIT_LATE;
AmdParamStruct.AllocationMethod = PostMemDram;
AmdParamStruct.StdHeader.AltImageBasePtr = 0;
AmdParamStruct.StdHeader.CalloutPtr = &GetBiosCallout;
AmdParamStruct.StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
AmdParamStruct.StdHeader.Func = 0;
AmdParamStruct.StdHeader.ImageBasePtr = 0;
/* NOTE: if not call amdcreatestruct, the initializer(AmdInitLateInitializer) would not be called */
AmdCreateStruct(&AmdParamStruct);
AmdLateParams = (AMD_LATE_PARAMS *)AmdParamStruct.NewStructPtr;
AmdLateParams->GnbLateConfiguration.GnbIoapicId = CONFIG_MAX_CPUS + 1;
AmdLateParams->GnbLateConfiguration.FchIoapicId = CONFIG_MAX_CPUS;
/* Code for creating CDIT requires hop count table. If it is not
* present AGESA_ERROR is returned, which confuses users. CDIT is not
* written to the ACPI tables anyway. */
AmdLateParams->PlatformConfig.UserOptionCdit = 0;
Status = AmdInitLate(AmdLateParams);
if (Status != AGESA_SUCCESS) {
agesawrapper_amdreadeventlog(AmdLateParams->StdHeader.HeapStatus);
ASSERT(Status == AGESA_SUCCESS);
}
agesawrapper_setlateinitptr(AmdLateParams);
/* No AmdReleaseStruct(&AmdParamStruct), we need AmdLateParams later. */
return Status;
}
const void *agesawrapper_locate_module (const CHAR8 name[8])
{
const void *agesa;
const AMD_IMAGE_HEADER* image;
const AMD_MODULE_HEADER* module;
size_t file_size;
if (CONFIG(VBOOT)) {
/* Use phys. location in flash and prevent vboot from searching cbmem */
agesa = (void *)CONFIG_AGESA_BINARY_PI_LOCATION;
file_size = 0x100000;
} else {
agesa = cbfs_boot_map_with_leak((const char *)CONFIG_AGESA_CBFS_NAME,
CBFS_TYPE_RAW, &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

@ -1,61 +0,0 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2011 Advanced Micro Devices, 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.
*/
#ifndef _AGESAWRAPPER_H_
#define _AGESAWRAPPER_H_
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
#include <stdint.h>
#include <Porting.h>
#include <AGESA.h>
AGESA_STATUS agesawrapper_amdinitreset(void);
AGESA_STATUS agesawrapper_amdinitearly(void);
AGESA_STATUS agesawrapper_amdinitenv(void);
AGESA_STATUS agesawrapper_amdinitlate(void);
AGESA_STATUS agesawrapper_amdinitpost(void);
AGESA_STATUS agesawrapper_amdinitmid(void);
AGESA_STATUS agesawrapper_amdinitresume(void);
AGESA_STATUS agesawrapper_amdS3Save(void);
AGESA_STATUS agesawrapper_amds3laterestore(void);
AGESA_STATUS agesawrapper_fchs3earlyrestore(void);
AGESA_STATUS agesawrapper_fchs3laterestore(void);
#define AGESA_EVENTLOG(status, stdheader) \
agesawrapper_trace(status, stdheader, __func__)
#else
/* Defined to make unused agesa_main() build. */
static inline int agesawrapper_amdinitreset(void) { return -1; }
static inline int agesawrapper_amdinitearly(void) { return -1; }
static inline int agesawrapper_amdinitenv(void) { return -1; }
static inline int agesawrapper_amdinitpost(void) { return -1; }
static inline int agesawrapper_amdinitresume(void) { return -1; }
static inline int agesawrapper_amds3laterestore(void) { return -1; }
#endif
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
const void *agesawrapper_locate_module (const CHAR8 name[8]);
VOID OemCustomizeInitEarly (IN OUT AMD_EARLY_PARAMS *InitEarly);
void OemPostParams(AMD_POST_PARAMS *PostParams);
#endif
#endif /* _AGESAWRAPPER_H_ */

View File

@ -1,58 +0,0 @@
/*
* This file is part of the coreboot project.
*
* 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.
*/
#ifndef _AGESAWRAPPER_CALL_H_
#define _AGESAWRAPPER_CALL_H_
#include <stdint.h>
#include <console/console.h>
#include <AGESA.h>
/*
* Possible AGESA_STATUS values:
*
* 0x0 = AGESA_SUCCESS
* 0x1 = AGESA_UNSUPPORTED
* 0x2 = AGESA_BOUNDS_CHK
* 0x3 = AGESA_ALERT
* 0x4 = AGESA_WARNING
* 0x5 = AGESA_ERROR
* 0x6 = AGESA_CRITICAL
* 0x7 = AGESA_FATAL
*/
static const char *decodeAGESA_STATUS(AGESA_STATUS sret)
{
const char *statusStrings[] = { "AGESA_SUCCESS", "AGESA_UNSUPPORTED",
"AGESA_BOUNDS_CHK", "AGESA_ALERT",
"AGESA_WARNING", "AGESA_ERROR",
"AGESA_CRITICAL", "AGESA_FATAL"
};
if (sret > 7) return "unknown"; /* Non-AGESA error code */
return statusStrings[sret];
}
static inline u32 do_agesawrapper(AGESA_STATUS (*func)(void), const char *name)
{
AGESA_STATUS ret;
printk(BIOS_DEBUG, "agesawrapper_%s() entry\n", name);
ret = func();
printk(BIOS_DEBUG, "agesawrapper_%s() returned %s\n",
name, decodeAGESA_STATUS(ret));
return (u32)ret;
}
#define AGESAWRAPPER(func) do_agesawrapper(agesawrapper_ ## func, #func)
#define AGESAWRAPPER_PRE_CONSOLE(func) agesawrapper_ ## func()
#endif

View File

@ -50,7 +50,6 @@ endif
config AGESA_EXTRA_TIMESTAMPS
bool "Add instrumentation for AGESA calls"
default n
depends on !BINARYPI_LEGACY_WRAPPER
depends on DRIVERS_AMD_PI
help
Insert additional timestamps around each entrypoint into

View File

@ -1,512 +0,0 @@
/* $NoKeywords:$ */
/**
* @file
*
* Agesa structures and definitions
*
* Contains AMD AGESA core interface
*
* @xrefitem bom "File Content Label" "Release Content"
* @e project: AGESA
* @e sub-project: Include
* @e \$Revision: 85818 $ @e \$Date: 2013-01-11 17:04:21 -0600 (Fri, 11 Jan 2013) $
*/
/*****************************************************************************
*
* Copyright (c) 2008 - 2014, Advanced Micro Devices, Inc.
* 2013 - 2014, Sage Electronic Engineering, LLC
* All rights reserved.
*
* 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 Advanced Micro Devices, Inc. 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 ADVANCED MICRO DEVICES, INC. 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 <AGESA.h>
#include <agesawrapper.h>
#include <AcpiLib.h>
#include <amdlib.h>
#include <cbfs.h>
#include <FchCommonCfg.h>
#include <Fch.h>
#include <FchDef.h>
CONST UINT32 ImageSignature = IMAGE_SIGNATURE;
CONST UINT32 ModuleSignature = MODULE_SIGNATURE;
CONST CHAR8 ModuleIdentifier[] = AGESA_ID;
/************************************************************************
*
* AGESA Basic Level interface structure definition and function prototypes
*
***********************************************************************/
/**********************************************************************
* Interface call: AmdCreateStruct
**********************************************************************/
AGESA_STATUS
AmdCreateStruct (
IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
InterfaceParams->StdHeader.Func = AMD_CREATE_STRUCT;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(InterfaceParams);
}
/**********************************************************************
* Interface call: AmdReleaseStruct
**********************************************************************/
AGESA_STATUS
AmdReleaseStruct (
IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
InterfaceParams->StdHeader.Func = AMD_RELEASE_STRUCT;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(InterfaceParams);
}
/**********************************************************************
* Interface call: AmdInitReset
**********************************************************************/
AGESA_STATUS
AmdInitReset (
IN OUT AMD_RESET_PARAMS *ResetParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
ResetParams->StdHeader.Func = AMD_INIT_RESET;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(ResetParams);
}
/**********************************************************************
* Interface call: AmdInitEarly
**********************************************************************/
AGESA_STATUS
AmdInitEarly (
IN OUT AMD_EARLY_PARAMS *EarlyParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
EarlyParams->StdHeader.Func = AMD_INIT_EARLY;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(EarlyParams);
}
/**********************************************************************
* Interface call: AmdInitPost
**********************************************************************/
AGESA_STATUS
AmdInitPost (
IN OUT AMD_POST_PARAMS *PostParams ///< Amd Cpu init param
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
PostParams->StdHeader.Func = AMD_INIT_POST;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(PostParams);
}
/**********************************************************************
* Interface call: AmdInitEnv
**********************************************************************/
AGESA_STATUS
AmdInitEnv (
IN OUT AMD_ENV_PARAMS *EnvParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
EnvParams->StdHeader.Func = AMD_INIT_ENV;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(EnvParams);
}
/**********************************************************************
* Interface call: AmdInitMid
**********************************************************************/
AGESA_STATUS
AmdInitMid (
IN OUT AMD_MID_PARAMS *MidParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
MidParams->StdHeader.Func = AMD_INIT_MID;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(MidParams);
}
/**********************************************************************
* Interface call: AmdInitLate
**********************************************************************/
AGESA_STATUS
AmdInitLate (
IN OUT AMD_LATE_PARAMS *LateParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
LateParams->StdHeader.Func = AMD_INIT_LATE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(LateParams);
}
/**********************************************************************
* Interface call: AmdInitRecovery
**********************************************************************/
AGESA_STATUS
AmdInitRecovery (
IN OUT AMD_RECOVERY_PARAMS *RecoveryParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
RecoveryParams->StdHeader.Func = AMD_INIT_RECOVERY;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(RecoveryParams);
}
/**********************************************************************
* Interface call: AmdInitResume
**********************************************************************/
AGESA_STATUS
AmdInitResume (
IN AMD_RESUME_PARAMS *ResumeParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
ResumeParams->StdHeader.Func = AMD_INIT_RESUME;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(ResumeParams);
}
/**********************************************************************
* Interface call: AmdS3LateRestore
**********************************************************************/
AGESA_STATUS
AmdS3LateRestore (
IN OUT AMD_S3LATE_PARAMS *S3LateParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
S3LateParams->StdHeader.Func = AMD_S3LATE_RESTORE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(S3LateParams);
}
/**********************************************************************
* Interface call: AmdS3Save
**********************************************************************/
AGESA_STATUS
AmdS3Save (
IN OUT AMD_S3SAVE_PARAMS *AmdS3SaveParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdS3SaveParams->StdHeader.Func = AMD_S3_SAVE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdS3SaveParams);
}
/**********************************************************************
* Interface call: AmdLateRunApTask
**********************************************************************/
AGESA_STATUS
AmdLateRunApTask (
IN AP_EXE_PARAMS *AmdApExeParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdApExeParams->StdHeader.Func = AMD_LATE_RUN_AP_TASK;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdApExeParams);
}
/**********************************************************************
* Interface service call: AmdGetApicId
**********************************************************************/
AGESA_STATUS
AmdGetApicId (
IN OUT AMD_APIC_PARAMS *AmdParamApic
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdParamApic->StdHeader.Func = AMD_GET_APIC_ID;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdParamApic);
}
/**********************************************************************
* Interface service call: AmdGetPciAddress
**********************************************************************/
AGESA_STATUS
AmdGetPciAddress (
IN OUT AMD_GET_PCI_PARAMS *AmdParamGetPci
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdParamGetPci->StdHeader.Func = AMD_GET_PCI_ADDRESS;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdParamGetPci);
}
/**********************************************************************
* Interface service call: AmdIdentifyCore
**********************************************************************/
AGESA_STATUS
AmdIdentifyCore (
IN OUT AMD_IDENTIFY_PARAMS *AmdParamIdentify
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdParamIdentify->StdHeader.Func = AMD_IDENTIFY_CORE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdParamIdentify);
}
/**********************************************************************
* Interface service call: AmdReadEventLog
**********************************************************************/
AGESA_STATUS
AmdReadEventLog (
IN EVENT_PARAMS *Event
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
Event->StdHeader.Func = AMD_READ_EVENT_LOG;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(Event);
}
/**********************************************************************
* Interface service call: AmdIdentifyDimm
**********************************************************************/
AGESA_STATUS
AmdIdentifyDimm (
IN OUT AMD_IDENTIFY_DIMM *AmdDimmIdentify
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdDimmIdentify->StdHeader.Func = AMD_IDENTIFY_DIMMS;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdDimmIdentify);
}
AGESA_STATUS
AmdIdsRunApTaskLate (
IN AP_EXE_PARAMS *AmdApExeParams
)
{
AmdApExeParams->StdHeader.Func = -1;
return AGESA_UNSUPPORTED;
}
/**********************************************************************
* Interface service call: AmdGet2DDataEye
**********************************************************************/
AGESA_STATUS
AmdGet2DDataEye (
IN OUT AMD_GET_DATAEYE *AmdGetDataEye
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdGetDataEye->StdHeader.Func = AMD_GET_2D_DATA_EYE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdGetDataEye);
}
/**********************************************************************
* FCH Functions
**********************************************************************/
VOID FchInitS3LateRestore (IN FCH_DATA_BLOCK *FchDataPtr);
VOID FchInitS3EarlyRestore (IN FCH_DATA_BLOCK *FchDataPtr);
VOID
FchInitS3EarlyRestore (
IN FCH_DATA_BLOCK *FchDataPtr
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
FchDataPtr->StdHeader->Func = FCH_INIT_S3_EARLY_RESTORE;
if (!module) return;
Dispatcher = module->ModuleDispatcher;
Dispatcher(FchDataPtr);
}
VOID
FchInitS3LateRestore (
IN FCH_DATA_BLOCK *FchDataPtr
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
FchDataPtr->StdHeader->Func = FCH_INIT_S3_LATE_RESTORE;
if (!module) return;
Dispatcher = module->ModuleDispatcher;
Dispatcher(FchDataPtr);
}
/**
* WaitForEcLDN9MailboxCmdAck
*
*
* @param[in] StdHeader
*
*/
VOID
WaitForEcLDN9MailboxCmdAck (
IN AMD_CONFIG_PARAMS *StdHeader
)
{
StdHeader->Func = 0;
}
/**
* ImcSleep - IMC Sleep.
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
ImcSleep (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**
* SoftwareDisableImc - Software disable IMC strap
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
SoftwareDisableImc (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**
* ImcEnableSurebootTimer - IMC Enable Sureboot Timer.
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
ImcEnableSurebootTimer (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**
* ImcDisableSurebootTimer - IMC Disable Sureboot Timer.
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
ImcDisableSurebootTimer (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**
* ImcWakeup - IMC Wakeup.
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
ImcWakeup (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**
* ImcIdle - IMC Idle.
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
ImcIdle (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}

View File

@ -1,402 +0,0 @@
/* $NoKeywords:$ */
/**
* @file
*
* Agesa structures and definitions
*
* Contains AMD AGESA core interface
*
* @xrefitem bom "File Content Label" "Release Content"
* @e project: AGESA
* @e sub-project: Include
* @e \$Revision: 85818 $ @e \$Date: 2013-01-11 17:04:21 -0600 (Fri, 11 Jan 2013) $
*/
/*****************************************************************************
*
* Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
* All rights reserved.
*
* 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 Advanced Micro Devices, Inc. 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 ADVANCED MICRO DEVICES, INC. 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.
*
***************************************************************************/
// TODO This list needs to be pruned of anything that is not API
#include "AGESA.h"
#include "agesawrapper.h"
#include "AcpiLib.h"
#include "FchCommonCfg.h"
#include "Fch.h"
#include "FchDef.h"
#include "amdlib.h"
#include "cbfs.h"
#include <console/console.h>
#include <commonlib/loglevel.h>
CONST UINT32 ImageSignature = IMAGE_SIGNATURE;
CONST UINT32 ModuleSignature = MODULE_SIGNATURE;
CONST CHAR8 ModuleIdentifier[] = AGESA_ID;
/**********************************************************************
* Interface call: AmdCreateStruct
**********************************************************************/
AGESA_STATUS
AmdCreateStruct (
IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
InterfaceParams->StdHeader.Func = AMD_CREATE_STRUCT;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(InterfaceParams);
}
/**********************************************************************
* Interface call: AmdReleaseStruct
**********************************************************************/
AGESA_STATUS
AmdReleaseStruct (
IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
InterfaceParams->StdHeader.Func = AMD_RELEASE_STRUCT;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(InterfaceParams);
}
/**********************************************************************
* Interface call: AmdInitReset
**********************************************************************/
AGESA_STATUS
AmdInitReset (
IN OUT AMD_RESET_PARAMS *ResetParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
ResetParams->StdHeader.Func = AMD_INIT_RESET;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(ResetParams);
}
/**********************************************************************
* Interface call: AmdInitEarly
**********************************************************************/
AGESA_STATUS
AmdInitEarly (
IN OUT AMD_EARLY_PARAMS *EarlyParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
EarlyParams->StdHeader.Func = AMD_INIT_EARLY;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(EarlyParams);
}
/**********************************************************************
* Interface call: AmdInitPost
**********************************************************************/
AGESA_STATUS
AmdInitPost (
IN OUT AMD_POST_PARAMS *PostParams ///< Amd Cpu init param
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
PostParams->StdHeader.Func = AMD_INIT_POST;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(PostParams);
}
/**********************************************************************
* Interface call: AmdInitEnv
**********************************************************************/
AGESA_STATUS
AmdInitEnv (
IN OUT AMD_ENV_PARAMS *EnvParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
EnvParams->StdHeader.Func = AMD_INIT_ENV;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(EnvParams);
}
/**********************************************************************
* Interface call: AmdInitMid
**********************************************************************/
AGESA_STATUS
AmdInitMid (
IN OUT AMD_MID_PARAMS *MidParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
MidParams->StdHeader.Func = AMD_INIT_MID;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(MidParams);
}
/**********************************************************************
* Interface call: AmdInitLate
**********************************************************************/
AGESA_STATUS
AmdInitLate (
IN OUT AMD_LATE_PARAMS *LateParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
LateParams->StdHeader.Func = AMD_INIT_LATE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(LateParams);
}
/**********************************************************************
* Interface call: AmdInitRecovery
**********************************************************************/
AGESA_STATUS
AmdInitRecovery (
IN OUT AMD_RECOVERY_PARAMS *RecoveryParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
RecoveryParams->StdHeader.Func = AMD_INIT_RECOVERY;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(RecoveryParams);
}
/**********************************************************************
* Interface call: AmdInitResume
**********************************************************************/
AGESA_STATUS
AmdInitResume (
IN AMD_RESUME_PARAMS *ResumeParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
ResumeParams->StdHeader.Func = AMD_INIT_RESUME;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(ResumeParams);
}
/**********************************************************************
* Interface call: AmdS3LateRestore
**********************************************************************/
AGESA_STATUS
AmdS3LateRestore (
IN OUT AMD_S3LATE_PARAMS *S3LateParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
S3LateParams->StdHeader.Func = AMD_S3LATE_RESTORE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(S3LateParams);
}
/**********************************************************************
* Interface call: AmdInitRtb
**********************************************************************/
AGESA_STATUS
AmdInitRtb (
IN OUT AMD_RTB_PARAMS *AmdInitRtbParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdInitRtbParams->StdHeader.Func = AMD_INIT_RTB;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdInitRtbParams);
}
/**********************************************************************
* Interface call: AmdLateRunApTask
**********************************************************************/
AGESA_STATUS
AmdLateRunApTask (
IN AP_EXE_PARAMS *AmdApExeParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdApExeParams->StdHeader.Func = AMD_LATE_RUN_AP_TASK;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdApExeParams);
}
/**********************************************************************
* Interface service call: AmdGetApicId
**********************************************************************/
AGESA_STATUS
AmdGetApicId (
IN OUT AMD_APIC_PARAMS *AmdParamApic
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdParamApic->StdHeader.Func = AMD_GET_APIC_ID;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdParamApic);
}
/**********************************************************************
* Interface service call: AmdGetPciAddress
**********************************************************************/
AGESA_STATUS
AmdGetPciAddress (
IN OUT AMD_GET_PCI_PARAMS *AmdParamGetPci
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdParamGetPci->StdHeader.Func = AMD_GET_PCI_ADDRESS;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdParamGetPci);
}
/**********************************************************************
* Interface service call: AmdIdentifyCore
**********************************************************************/
AGESA_STATUS
AmdIdentifyCore (
IN OUT AMD_IDENTIFY_PARAMS *AmdParamIdentify
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdParamIdentify->StdHeader.Func = AMD_IDENTIFY_CORE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdParamIdentify);
}
/**********************************************************************
* Interface service call: AmdReadEventLog
**********************************************************************/
AGESA_STATUS
AmdReadEventLog (
IN EVENT_PARAMS *Event
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
Event->StdHeader.Func = AMD_READ_EVENT_LOG;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(Event);
}
/**********************************************************************
* Interface service call: AmdIdentifyDimm
**********************************************************************/
AGESA_STATUS
AmdIdentifyDimm (
IN OUT AMD_IDENTIFY_DIMM *AmdDimmIdentify
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdDimmIdentify->StdHeader.Func = AMD_IDENTIFY_DIMMS;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdDimmIdentify);
}
AGESA_STATUS
AmdIdsRunApTaskLate (
IN AP_EXE_PARAMS *AmdApExeParams
)
{
AmdApExeParams->StdHeader.Func = -1;
return AGESA_UNSUPPORTED;
}
/**********************************************************************
* Interface service call: AmdGet2DDataEye
**********************************************************************/
AGESA_STATUS
AmdGet2DDataEye (
IN OUT AMD_GET_DATAEYE *AmdGetDataEye
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdGetDataEye->StdHeader.Func = AMD_GET_2D_DATA_EYE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdGetDataEye);
}
/**********************************************************************
* FCH Functions
**********************************************************************/
VOID FchInitS3LateRestore (IN FCH_DATA_BLOCK *FchDataPtr);
VOID FchInitS3EarlyRestore (IN FCH_DATA_BLOCK *FchDataPtr);
VOID
FchInitS3EarlyRestore (
IN FCH_DATA_BLOCK *FchDataPtr
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
FchDataPtr->StdHeader->Func = FCH_INIT_S3_EARLY_RESTORE;
if (!module) return;
Dispatcher = module->ModuleDispatcher;
Dispatcher(FchDataPtr);
}
VOID
FchInitS3LateRestore (
IN FCH_DATA_BLOCK *FchDataPtr
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
FchDataPtr->StdHeader->Func = FCH_INIT_S3_LATE_RESTORE;
if (!module) return;
Dispatcher = module->ModuleDispatcher;
Dispatcher(FchDataPtr);
}

View File

@ -1,511 +0,0 @@
/* $NoKeywords:$ */
/**
* @file
*
* Agesa structures and definitions
*
* Contains AMD AGESA core interface
*
* @xrefitem bom "File Content Label" "Release Content"
* @e project: AGESA
* @e sub-project: Include
* @e \$Revision: 85818 $ @e \$Date: 2013-01-11 17:04:21 -0600 (Fri, 11 Jan 2013) $
*/
/*****************************************************************************
*
* Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
* All rights reserved.
*
* 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 Advanced Micro Devices, Inc. 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 ADVANCED MICRO DEVICES, INC. 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.
*
***************************************************************************/
// TODO This list needs to be pruned of anything that is not API
#include "AGESA.h"
#include <agesawrapper.h>
#include "AcpiLib.h"
#include "FchCommonCfg.h"
#include "Fch.h"
#include "FchDef.h"
#include "amdlib.h"
CONST UINT32 ImageSignature = IMAGE_SIGNATURE;
CONST UINT32 ModuleSignature = MODULE_SIGNATURE;
CONST CHAR8 ModuleIdentifier[] = AGESA_ID;
/************************************************************************
*
* AGESA Basic Level interface structure definition and function prototypes
*
***********************************************************************/
/**********************************************************************
* Interface call: AmdCreateStruct
**********************************************************************/
AGESA_STATUS
AmdCreateStruct (
IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
InterfaceParams->StdHeader.Func = AMD_CREATE_STRUCT;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(InterfaceParams);
}
/**********************************************************************
* Interface call: AmdReleaseStruct
**********************************************************************/
AGESA_STATUS
AmdReleaseStruct (
IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
InterfaceParams->StdHeader.Func = AMD_RELEASE_STRUCT;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(InterfaceParams);
}
/**********************************************************************
* Interface call: AmdInitReset
**********************************************************************/
AGESA_STATUS
AmdInitReset (
IN OUT AMD_RESET_PARAMS *ResetParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
ResetParams->StdHeader.Func = AMD_INIT_RESET;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(ResetParams);
}
/**********************************************************************
* Interface call: AmdInitEarly
**********************************************************************/
AGESA_STATUS
AmdInitEarly (
IN OUT AMD_EARLY_PARAMS *EarlyParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
EarlyParams->StdHeader.Func = AMD_INIT_EARLY;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(EarlyParams);
}
/**********************************************************************
* Interface call: AmdInitPost
**********************************************************************/
AGESA_STATUS
AmdInitPost (
IN OUT AMD_POST_PARAMS *PostParams ///< Amd Cpu init param
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
PostParams->StdHeader.Func = AMD_INIT_POST;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(PostParams);
}
/**********************************************************************
* Interface call: AmdInitEnv
**********************************************************************/
AGESA_STATUS
AmdInitEnv (
IN OUT AMD_ENV_PARAMS *EnvParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
EnvParams->StdHeader.Func = AMD_INIT_ENV;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(EnvParams);
}
/**********************************************************************
* Interface call: AmdInitMid
**********************************************************************/
AGESA_STATUS
AmdInitMid (
IN OUT AMD_MID_PARAMS *MidParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
MidParams->StdHeader.Func = AMD_INIT_MID;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(MidParams);
}
/**********************************************************************
* Interface call: AmdInitLate
**********************************************************************/
AGESA_STATUS
AmdInitLate (
IN OUT AMD_LATE_PARAMS *LateParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
LateParams->StdHeader.Func = AMD_INIT_LATE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(LateParams);
}
/**********************************************************************
* Interface call: AmdInitRecovery
**********************************************************************/
AGESA_STATUS
AmdInitRecovery (
IN OUT AMD_RECOVERY_PARAMS *RecoveryParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
RecoveryParams->StdHeader.Func = AMD_INIT_RECOVERY;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(RecoveryParams);
}
/**********************************************************************
* Interface call: AmdInitResume
**********************************************************************/
AGESA_STATUS
AmdInitResume (
IN AMD_RESUME_PARAMS *ResumeParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
ResumeParams->StdHeader.Func = AMD_INIT_RESUME;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(ResumeParams);
}
/**********************************************************************
* Interface call: AmdS3LateRestore
**********************************************************************/
AGESA_STATUS
AmdS3LateRestore (
IN OUT AMD_S3LATE_PARAMS *S3LateParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
S3LateParams->StdHeader.Func = AMD_S3LATE_RESTORE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(S3LateParams);
}
/**********************************************************************
* Interface call: AmdS3Save
**********************************************************************/
AGESA_STATUS
AmdS3Save (
IN OUT AMD_S3SAVE_PARAMS *AmdS3SaveParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdS3SaveParams->StdHeader.Func = AMD_S3_SAVE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdS3SaveParams);
}
/**********************************************************************
* Interface call: AmdLateRunApTask
**********************************************************************/
AGESA_STATUS
AmdLateRunApTask (
IN AP_EXE_PARAMS *AmdApExeParams
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdApExeParams->StdHeader.Func = AMD_LATE_RUN_AP_TASK;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdApExeParams);
}
/**********************************************************************
* Interface service call: AmdGetApicId
**********************************************************************/
AGESA_STATUS
AmdGetApicId (
IN OUT AMD_APIC_PARAMS *AmdParamApic
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdParamApic->StdHeader.Func = AMD_GET_APIC_ID;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdParamApic);
}
/**********************************************************************
* Interface service call: AmdGetPciAddress
**********************************************************************/
AGESA_STATUS
AmdGetPciAddress (
IN OUT AMD_GET_PCI_PARAMS *AmdParamGetPci
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdParamGetPci->StdHeader.Func = AMD_GET_PCI_ADDRESS;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdParamGetPci);
}
/**********************************************************************
* Interface service call: AmdIdentifyCore
**********************************************************************/
AGESA_STATUS
AmdIdentifyCore (
IN OUT AMD_IDENTIFY_PARAMS *AmdParamIdentify
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdParamIdentify->StdHeader.Func = AMD_IDENTIFY_CORE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdParamIdentify);
}
/**********************************************************************
* Interface service call: AmdReadEventLog
**********************************************************************/
AGESA_STATUS
AmdReadEventLog (
IN EVENT_PARAMS *Event
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
Event->StdHeader.Func = AMD_READ_EVENT_LOG;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(Event);
}
/**********************************************************************
* Interface service call: AmdIdentifyDimm
**********************************************************************/
AGESA_STATUS
AmdIdentifyDimm (
IN OUT AMD_IDENTIFY_DIMM *AmdDimmIdentify
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdDimmIdentify->StdHeader.Func = AMD_IDENTIFY_DIMMS;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdDimmIdentify);
}
AGESA_STATUS
AmdIdsRunApTaskLate (
IN AP_EXE_PARAMS *AmdApExeParams
)
{
AmdApExeParams->StdHeader.Func = -1;
return AGESA_UNSUPPORTED;
}
/**********************************************************************
* Interface service call: AmdGet2DDataEye
**********************************************************************/
AGESA_STATUS
AmdGet2DDataEye (
IN OUT AMD_GET_DATAEYE *AmdGetDataEye
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AmdGetDataEye->StdHeader.Func = AMD_GET_2D_DATA_EYE;
if (!module) return AGESA_UNSUPPORTED;
Dispatcher = module->ModuleDispatcher;
return Dispatcher(AmdGetDataEye);
}
/**********************************************************************
* FCH Functions
**********************************************************************/
VOID FchInitS3LateRestore (IN FCH_DATA_BLOCK *FchDataPtr);
VOID FchInitS3EarlyRestore (IN FCH_DATA_BLOCK *FchDataPtr);
VOID
FchInitS3EarlyRestore (
IN FCH_DATA_BLOCK *FchDataPtr
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
FchDataPtr->StdHeader->Func = FCH_INIT_S3_EARLY_RESTORE;
if (!module) return;
Dispatcher = module->ModuleDispatcher;
Dispatcher(FchDataPtr);
}
VOID
FchInitS3LateRestore (
IN FCH_DATA_BLOCK *FchDataPtr
)
{
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
FchDataPtr->StdHeader->Func = FCH_INIT_S3_LATE_RESTORE;
if (!module) return;
Dispatcher = module->ModuleDispatcher;
Dispatcher(FchDataPtr);
}
/**
* WaitForEcLDN9MailboxCmdAck
*
*
* @param[in] StdHeader
*
*/
VOID
WaitForEcLDN9MailboxCmdAck (
IN AMD_CONFIG_PARAMS *StdHeader
)
{
StdHeader->Func = 0;
}
/**
* ImcSleep - IMC Sleep.
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
ImcSleep (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**
* SoftwareDisableImc - Software disable IMC strap
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
SoftwareDisableImc (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**
* ImcEnableSurebootTimer - IMC Enable Sureboot Timer.
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
ImcEnableSurebootTimer (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**
* ImcDisableSurebootTimer - IMC Disable Sureboot Timer.
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
ImcDisableSurebootTimer (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**
* ImcWakeup - IMC Wakeup.
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
ImcWakeup (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**
* ImcIdle - IMC Idle.
*
*
* @param[in] FchDataPtr Fch configuration structure pointer.
*
*/
VOID
ImcIdle (
IN VOID *FchDataPtr
)
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}

View File

@ -110,10 +110,6 @@ endef
agesa_raw_files += $(wildcard $(src)/vendorcode/amd/pi/Lib/*.[cS])
ifeq ($(CONFIG_BINARYPI_LEGACY_WRAPPER),y)
agesa_raw_files += $(wildcard $(AGESA_ROOT)/binaryPI/*.[cS])
endif
ifeq ($(CONFIG_CPU_AMD_PI_00660F01),y)
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Fch/Kern/KernImc/*.[cS])
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Fch/Common/*.[cS])