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:
parent
b81731d9db
commit
46f04cbb49
@ -26,15 +26,11 @@ config CPU_AMD_PI
|
|||||||
select UDELAY_LAPIC
|
select UDELAY_LAPIC
|
||||||
select LAPIC_MONOTONIC_TIMER
|
select LAPIC_MONOTONIC_TIMER
|
||||||
select SPI_FLASH if HAVE_ACPI_RESUME
|
select SPI_FLASH if HAVE_ACPI_RESUME
|
||||||
select CAR_GLOBAL_MIGRATION if BINARYPI_LEGACY_WRAPPER
|
|
||||||
select SMM_ASEG
|
select SMM_ASEG
|
||||||
select NO_FIXED_XIP_ROM_SIZE
|
select NO_FIXED_XIP_ROM_SIZE
|
||||||
|
|
||||||
if CPU_AMD_PI
|
if CPU_AMD_PI
|
||||||
|
|
||||||
config BINARYPI_LEGACY_WRAPPER
|
|
||||||
def_bool n
|
|
||||||
|
|
||||||
config UDELAY_LAPIC_FIXED_FSB
|
config UDELAY_LAPIC_FIXED_FSB
|
||||||
int
|
int
|
||||||
default 200
|
default 200
|
||||||
|
@ -14,9 +14,3 @@
|
|||||||
subdirs-$(CONFIG_CPU_AMD_PI_00630F01) += 00630F01
|
subdirs-$(CONFIG_CPU_AMD_PI_00630F01) += 00630F01
|
||||||
subdirs-$(CONFIG_CPU_AMD_PI_00730F01) += 00730F01
|
subdirs-$(CONFIG_CPU_AMD_PI_00730F01) += 00730F01
|
||||||
subdirs-$(CONFIG_CPU_AMD_PI_00660F01) += 00660F01
|
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
|
|
||||||
|
@ -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);
|
|
@ -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();
|
|
||||||
}
|
|
@ -13,8 +13,6 @@
|
|||||||
|
|
||||||
ifeq ($(CONFIG_DRIVERS_AMD_PI),y)
|
ifeq ($(CONFIG_DRIVERS_AMD_PI),y)
|
||||||
|
|
||||||
ifneq ($(CONFIG_BINARYPI_LEGACY_WRAPPER),y)
|
|
||||||
|
|
||||||
romstage-y += romstage.c
|
romstage-y += romstage.c
|
||||||
romstage-y += mtrr_fixme.c
|
romstage-y += mtrr_fixme.c
|
||||||
romstage-y += state_machine.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
|
cpu_incs-y += $(src)/drivers/amd/agesa/cache_as_ram.S
|
||||||
postcar-y += cache_as_ram.S
|
postcar-y += cache_as_ram.S
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
romstage-y += heapmanager.c
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
romstage-y += def_callouts.c
|
romstage-y += def_callouts.c
|
||||||
romstage-y += eventlog.c
|
romstage-y += eventlog.c
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ AGESA_STATUS GetBiosCallout (UINT32 Func, UINTN Data, VOID *ConfigPtr)
|
|||||||
AGESA_STATUS status;
|
AGESA_STATUS status;
|
||||||
UINTN i;
|
UINTN i;
|
||||||
|
|
||||||
if (HAS_LEGACY_WRAPPER || ENV_RAMSTAGE) {
|
if (ENV_RAMSTAGE) {
|
||||||
/* One HeapManager serves them all. */
|
/* One HeapManager serves them all. */
|
||||||
status = HeapManagerCallout(Func, Data, ConfigPtr);
|
status = HeapManagerCallout(Func, Data, ConfigPtr);
|
||||||
if (status != AGESA_UNSUPPORTED)
|
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_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);
|
agesa_fch_oem_config(Data, ConfigPtr);
|
||||||
return AGESA_SUCCESS;
|
return AGESA_SUCCESS;
|
||||||
}
|
}
|
||||||
@ -120,24 +120,12 @@ AGESA_STATUS agesa_RunFuncOnAp (UINT32 Func, UINTN Data, VOID *ConfigPtr)
|
|||||||
AP_EXE_PARAMS ApExeParams;
|
AP_EXE_PARAMS ApExeParams;
|
||||||
|
|
||||||
memset(&ApExeParams, 0, sizeof(AP_EXE_PARAMS));
|
memset(&ApExeParams, 0, sizeof(AP_EXE_PARAMS));
|
||||||
|
memcpy(&ApExeParams.StdHeader, StdHeader, sizeof(*StdHeader));
|
||||||
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));
|
|
||||||
}
|
|
||||||
|
|
||||||
ApExeParams.FunctionNumber = Func;
|
ApExeParams.FunctionNumber = Func;
|
||||||
ApExeParams.RelatedDataBlock = ConfigPtr;
|
ApExeParams.RelatedDataBlock = ConfigPtr;
|
||||||
|
|
||||||
#if HAS_LEGACY_WRAPPER
|
|
||||||
status = AmdLateRunApTask(&ApExeParams);
|
|
||||||
#else
|
|
||||||
status = module_dispatch(AMD_LATE_RUN_AP_TASK, &ApExeParams.StdHeader);
|
status = module_dispatch(AMD_LATE_RUN_AP_TASK, &ApExeParams.StdHeader);
|
||||||
#endif
|
|
||||||
|
|
||||||
ASSERT(status == AGESA_SUCCESS);
|
ASSERT(status == AGESA_SUCCESS);
|
||||||
return status;
|
return status;
|
||||||
|
@ -180,11 +180,7 @@ static void amd_flush_eventlog(EVENT_PARAMS *Event)
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
AGESA_STATUS status;
|
AGESA_STATUS status;
|
||||||
#if HAS_LEGACY_WRAPPER
|
|
||||||
status = AmdReadEventLog(Event);
|
|
||||||
#else
|
|
||||||
status = module_dispatch(AMD_READ_EVENT_LOG, &Event->StdHeader);
|
status = module_dispatch(AMD_READ_EVENT_LOG, &Event->StdHeader);
|
||||||
#endif
|
|
||||||
if (status != AGESA_SUCCESS)
|
if (status != AGESA_SUCCESS)
|
||||||
return;
|
return;
|
||||||
if (Event->EventClass == 0)
|
if (Event->EventClass == 0)
|
||||||
@ -203,16 +199,7 @@ void agesawrapper_trace(AGESA_STATUS ret, AMD_CONFIG_PARAMS *StdHeader,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
memset(&AmdEventParams, 0, sizeof(EVENT_PARAMS));
|
memset(&AmdEventParams, 0, sizeof(EVENT_PARAMS));
|
||||||
|
memcpy(&AmdEventParams.StdHeader, StdHeader, sizeof(*StdHeader));
|
||||||
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));
|
|
||||||
}
|
|
||||||
|
|
||||||
amd_flush_eventlog(&AmdEventParams);
|
amd_flush_eventlog(&AmdEventParams);
|
||||||
}
|
}
|
||||||
|
@ -30,9 +30,6 @@
|
|||||||
#if !CONFIG(POSTCAR_STAGE)
|
#if !CONFIG(POSTCAR_STAGE)
|
||||||
#error "Only POSTCAR_STAGE is supported."
|
#error "Only POSTCAR_STAGE is supported."
|
||||||
#endif
|
#endif
|
||||||
#if HAS_LEGACY_WRAPPER
|
|
||||||
#error "LEGACY_WRAPPER code not supported"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void asmlinkage early_all_cores(void)
|
void asmlinkage early_all_cores(void)
|
||||||
{
|
{
|
||||||
|
@ -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 early_all_cores(void);
|
||||||
|
|
||||||
void *asmlinkage romstage_main(unsigned long bist);
|
void *asmlinkage romstage_main(unsigned long bist);
|
||||||
void asmlinkage romstage_after_car(void);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <northbridge/amd/pi/dimmSpd.h>
|
#include <northbridge/amd/pi/dimmSpd.h>
|
||||||
#include <northbridge/amd/pi/agesawrapper.h>
|
|
||||||
#include <boardid.h>
|
#include <boardid.h>
|
||||||
|
|
||||||
#include "imc.h"
|
#include "imc.h"
|
||||||
|
@ -20,7 +20,7 @@ if BOARD_AMD_BETTONG
|
|||||||
|
|
||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BINARYPI_LEGACY_WRAPPER
|
#select BINARYPI_LEGACY_WRAPPER
|
||||||
select CPU_AMD_PI_00660F01
|
select CPU_AMD_PI_00660F01
|
||||||
select NORTHBRIDGE_AMD_PI_00660F01
|
select NORTHBRIDGE_AMD_PI_00660F01
|
||||||
select SOUTHBRIDGE_AMD_PI_KERN
|
select SOUTHBRIDGE_AMD_PI_KERN
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <AGESA.h>
|
#include <AGESA.h>
|
||||||
#include <northbridge/amd/pi/agesawrapper.h>
|
|
||||||
#include <PlatformMemoryConfiguration.h>
|
#include <PlatformMemoryConfiguration.h>
|
||||||
#include <boardid.h>
|
#include <boardid.h>
|
||||||
|
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
#include <cpu/x86/bist.h>
|
#include <cpu/x86/bist.h>
|
||||||
#include <cpu/amd/car.h>
|
#include <cpu/amd/car.h>
|
||||||
#include <northbridge/amd/agesa/state_machine.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>
|
#include <southbridge/amd/pi/hudson/hudson.h>
|
||||||
|
|
||||||
void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
|
@ -21,7 +21,7 @@ if BOARD_AMD_DB_FT3B_LC
|
|||||||
|
|
||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BINARYPI_LEGACY_WRAPPER
|
#select BINARYPI_LEGACY_WRAPPER
|
||||||
select CPU_AMD_PI_00730F01
|
select CPU_AMD_PI_00730F01
|
||||||
select NORTHBRIDGE_AMD_PI_00730F01
|
select NORTHBRIDGE_AMD_PI_00730F01
|
||||||
select SOUTHBRIDGE_AMD_PI_AVALON
|
select SOUTHBRIDGE_AMD_PI_AVALON
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <AGESA.h>
|
#include <AGESA.h>
|
||||||
#include <northbridge/amd/pi/agesawrapper.h>
|
|
||||||
#include <PlatformMemoryConfiguration.h>
|
#include <PlatformMemoryConfiguration.h>
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <cpu/amd/car.h>
|
#include <cpu/amd/car.h>
|
||||||
#include <northbridge/amd/agesa/state_machine.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 <cpu/x86/bist.h>
|
||||||
#include <southbridge/amd/pi/hudson/hudson.h>
|
#include <southbridge/amd/pi/hudson/hudson.h>
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ if BOARD_AMD_LAMAR
|
|||||||
|
|
||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BINARYPI_LEGACY_WRAPPER
|
#select BINARYPI_LEGACY_WRAPPER
|
||||||
select CPU_AMD_PI_00630F01
|
select CPU_AMD_PI_00630F01
|
||||||
select NORTHBRIDGE_AMD_PI_00630F01
|
select NORTHBRIDGE_AMD_PI_00630F01
|
||||||
select SOUTHBRIDGE_AMD_PI_BOLTON
|
select SOUTHBRIDGE_AMD_PI_BOLTON
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <AGESA.h>
|
#include <AGESA.h>
|
||||||
#include <northbridge/amd/pi/agesawrapper.h>
|
|
||||||
|
|
||||||
|
|
||||||
static const PCIe_PORT_DESCRIPTOR PortList[] = {
|
static const PCIe_PORT_DESCRIPTOR PortList[] = {
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <cpu/amd/car.h>
|
#include <cpu/amd/car.h>
|
||||||
#include <northbridge/amd/agesa/state_machine.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 <cpu/x86/bist.h>
|
||||||
#include <southbridge/amd/common/amd_defs.h>
|
#include <southbridge/amd/common/amd_defs.h>
|
||||||
#include <southbridge/amd/pi/hudson/hudson.h>
|
#include <southbridge/amd/pi/hudson/hudson.h>
|
||||||
|
@ -20,7 +20,7 @@ if BOARD_AMD_OLIVEHILLPLUS
|
|||||||
|
|
||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BINARYPI_LEGACY_WRAPPER
|
#select BINARYPI_LEGACY_WRAPPER
|
||||||
select CPU_AMD_PI_00730F01
|
select CPU_AMD_PI_00730F01
|
||||||
select NORTHBRIDGE_AMD_PI_00730F01
|
select NORTHBRIDGE_AMD_PI_00730F01
|
||||||
select SOUTHBRIDGE_AMD_PI_AVALON
|
select SOUTHBRIDGE_AMD_PI_AVALON
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <AGESA.h>
|
#include <AGESA.h>
|
||||||
#include <northbridge/amd/pi/agesawrapper.h>
|
|
||||||
|
|
||||||
|
|
||||||
static const PCIe_PORT_DESCRIPTOR PortList[] = {
|
static const PCIe_PORT_DESCRIPTOR PortList[] = {
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <cpu/amd/car.h>
|
#include <cpu/amd/car.h>
|
||||||
#include <northbridge/amd/agesa/state_machine.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 <cpu/x86/bist.h>
|
||||||
#include <southbridge/amd/pi/hudson/hudson.h>
|
#include <southbridge/amd/pi/hudson/hudson.h>
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ if BOARD_ODE_E21XX
|
|||||||
|
|
||||||
config BOARD_SPECIFIC_OPTIONS
|
config BOARD_SPECIFIC_OPTIONS
|
||||||
def_bool y
|
def_bool y
|
||||||
select BINARYPI_LEGACY_WRAPPER
|
#select BINARYPI_LEGACY_WRAPPER
|
||||||
select CPU_AMD_PI_00730F01
|
select CPU_AMD_PI_00730F01
|
||||||
select NORTHBRIDGE_AMD_PI_00730F01
|
select NORTHBRIDGE_AMD_PI_00730F01
|
||||||
select SOUTHBRIDGE_AMD_PI_AVALON
|
select SOUTHBRIDGE_AMD_PI_AVALON
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <AGESA.h>
|
#include <AGESA.h>
|
||||||
#include <northbridge/amd/pi/agesawrapper.h>
|
|
||||||
|
|
||||||
|
|
||||||
static const PCIe_PORT_DESCRIPTOR PortList[] = {
|
static const PCIe_PORT_DESCRIPTOR PortList[] = {
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <cpu/amd/car.h>
|
#include <cpu/amd/car.h>
|
||||||
#include <northbridge/amd/agesa/state_machine.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 <cpu/x86/bist.h>
|
||||||
#include <southbridge/amd/pi/hudson/hudson.h>
|
#include <southbridge/amd/pi/hudson/hudson.h>
|
||||||
#include <superio/fintek/common/fintek.h>
|
#include <superio/fintek/common/fintek.h>
|
||||||
|
@ -20,8 +20,6 @@
|
|||||||
#include <AGESA.h>
|
#include <AGESA.h>
|
||||||
#include <AMD.h>
|
#include <AMD.h>
|
||||||
|
|
||||||
#define HAS_LEGACY_WRAPPER CONFIG(BINARYPI_LEGACY_WRAPPER)
|
|
||||||
|
|
||||||
/* eventlog */
|
/* eventlog */
|
||||||
void agesawrapper_trace(AGESA_STATUS ret, AMD_CONFIG_PARAMS *StdHeader, const char *func);
|
void agesawrapper_trace(AGESA_STATUS ret, AMD_CONFIG_PARAMS *StdHeader, const char *func);
|
||||||
AGESA_STATUS agesawrapper_amdreadeventlog(UINT8 HeapStatus);
|
AGESA_STATUS agesawrapper_amdreadeventlog(UINT8 HeapStatus);
|
||||||
|
@ -34,10 +34,6 @@
|
|||||||
#include <arch/acpigen.h>
|
#include <arch/acpigen.h>
|
||||||
#include <northbridge/amd/pi/nb_common.h>
|
#include <northbridge/amd/pi/nb_common.h>
|
||||||
#include <northbridge/amd/agesa/agesa_helper.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
|
#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)
|
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
|
#if CONFIG_HW_MEM_HOLE_SIZEK != 0
|
||||||
|
@ -34,10 +34,6 @@
|
|||||||
#include <arch/acpigen.h>
|
#include <arch/acpigen.h>
|
||||||
#include <northbridge/amd/pi/nb_common.h>
|
#include <northbridge/amd/pi/nb_common.h>
|
||||||
#include <northbridge/amd/agesa/agesa_helper.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
|
#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)
|
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
|
#if CONFIG_HW_MEM_HOLE_SIZEK != 0
|
||||||
|
@ -18,7 +18,5 @@ romstage-y += dimmSpd.c
|
|||||||
ramstage-y += northbridge.c
|
ramstage-y += northbridge.c
|
||||||
ramstage-y += iommu.c
|
ramstage-y += iommu.c
|
||||||
|
|
||||||
ifneq ($(CONFIG_BINARYPI_LEGACY_WRAPPER), y)
|
|
||||||
romstage-y += state_machine.c
|
romstage-y += state_machine.c
|
||||||
ramstage-y += state_machine.c
|
ramstage-y += state_machine.c
|
||||||
endif
|
|
||||||
|
@ -36,10 +36,6 @@
|
|||||||
#include <arch/acpigen.h>
|
#include <arch/acpigen.h>
|
||||||
#include <northbridge/amd/pi/nb_common.h>
|
#include <northbridge/amd/pi/nb_common.h>
|
||||||
#include <northbridge/amd/agesa/agesa_helper.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
|
#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)
|
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
|
#if CONFIG_HW_MEM_HOLE_SIZEK != 0
|
||||||
|
@ -19,11 +19,6 @@ subdirs-$(CONFIG_NORTHBRIDGE_AMD_PI_00630F01) += 00630F01
|
|||||||
subdirs-$(CONFIG_NORTHBRIDGE_AMD_PI_00730F01) += 00730F01
|
subdirs-$(CONFIG_NORTHBRIDGE_AMD_PI_00730F01) += 00730F01
|
||||||
subdirs-$(CONFIG_NORTHBRIDGE_AMD_PI_00660F01) += 00660F01
|
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
|
romstage-y += ramtop.c
|
||||||
postcar-y += ramtop.c
|
postcar-y += ramtop.c
|
||||||
ramstage-y += ramtop.c
|
ramstage-y += ramtop.c
|
||||||
|
@ -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;
|
|
||||||
}
|
|
@ -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_ */
|
|
@ -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
|
|
@ -50,7 +50,6 @@ endif
|
|||||||
config AGESA_EXTRA_TIMESTAMPS
|
config AGESA_EXTRA_TIMESTAMPS
|
||||||
bool "Add instrumentation for AGESA calls"
|
bool "Add instrumentation for AGESA calls"
|
||||||
default n
|
default n
|
||||||
depends on !BINARYPI_LEGACY_WRAPPER
|
|
||||||
depends on DRIVERS_AMD_PI
|
depends on DRIVERS_AMD_PI
|
||||||
help
|
help
|
||||||
Insert additional timestamps around each entrypoint into
|
Insert additional timestamps around each entrypoint into
|
||||||
|
@ -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;
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -110,10 +110,6 @@ endef
|
|||||||
|
|
||||||
agesa_raw_files += $(wildcard $(src)/vendorcode/amd/pi/Lib/*.[cS])
|
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)
|
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/Kern/KernImc/*.[cS])
|
||||||
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Fch/Common/*.[cS])
|
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Fch/Common/*.[cS])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user