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 LAPIC_MONOTONIC_TIMER
|
||||
select SPI_FLASH if HAVE_ACPI_RESUME
|
||||
select CAR_GLOBAL_MIGRATION if BINARYPI_LEGACY_WRAPPER
|
||||
select SMM_ASEG
|
||||
select NO_FIXED_XIP_ROM_SIZE
|
||||
|
||||
if CPU_AMD_PI
|
||||
|
||||
config BINARYPI_LEGACY_WRAPPER
|
||||
def_bool n
|
||||
|
||||
config UDELAY_LAPIC_FIXED_FSB
|
||||
int
|
||||
default 200
|
||||
|
|
|
@ -14,9 +14,3 @@
|
|||
subdirs-$(CONFIG_CPU_AMD_PI_00630F01) += 00630F01
|
||||
subdirs-$(CONFIG_CPU_AMD_PI_00730F01) += 00730F01
|
||||
subdirs-$(CONFIG_CPU_AMD_PI_00660F01) += 00660F01
|
||||
|
||||
ifeq ($(CONFIG_BINARYPI_LEGACY_WRAPPER), y)
|
||||
cpu_incs-y += $(src)/drivers/amd/agesa/cache_as_ram.S
|
||||
romstage-y += romstage.c
|
||||
ramstage-y += amd_late_init.c
|
||||
endif
|
||||
|
|
|
@ -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)
|
||||
|
||||
ifneq ($(CONFIG_BINARYPI_LEGACY_WRAPPER),y)
|
||||
|
||||
romstage-y += romstage.c
|
||||
romstage-y += mtrr_fixme.c
|
||||
romstage-y += state_machine.c
|
||||
|
@ -24,12 +22,6 @@ ramstage-y += state_machine.c
|
|||
cpu_incs-y += $(src)/drivers/amd/agesa/cache_as_ram.S
|
||||
postcar-y += cache_as_ram.S
|
||||
|
||||
else
|
||||
|
||||
romstage-y += heapmanager.c
|
||||
|
||||
endif
|
||||
|
||||
romstage-y += def_callouts.c
|
||||
romstage-y += eventlog.c
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ AGESA_STATUS GetBiosCallout (UINT32 Func, UINTN Data, VOID *ConfigPtr)
|
|||
AGESA_STATUS status;
|
||||
UINTN i;
|
||||
|
||||
if (HAS_LEGACY_WRAPPER || ENV_RAMSTAGE) {
|
||||
if (ENV_RAMSTAGE) {
|
||||
/* One HeapManager serves them all. */
|
||||
status = HeapManagerCallout(Func, Data, ConfigPtr);
|
||||
if (status != AGESA_UNSUPPORTED)
|
||||
|
@ -43,7 +43,7 @@ AGESA_STATUS GetBiosCallout (UINT32 Func, UINTN Data, VOID *ConfigPtr)
|
|||
}
|
||||
|
||||
#if HAS_AGESA_FCH_OEM_CALLOUT
|
||||
if (!HAS_LEGACY_WRAPPER && Func == AGESA_FCH_OEM_CALLOUT) {
|
||||
if (Func == AGESA_FCH_OEM_CALLOUT) {
|
||||
agesa_fch_oem_config(Data, ConfigPtr);
|
||||
return AGESA_SUCCESS;
|
||||
}
|
||||
|
@ -120,24 +120,12 @@ AGESA_STATUS agesa_RunFuncOnAp (UINT32 Func, UINTN Data, VOID *ConfigPtr)
|
|||
AP_EXE_PARAMS ApExeParams;
|
||||
|
||||
memset(&ApExeParams, 0, sizeof(AP_EXE_PARAMS));
|
||||
|
||||
if (HAS_LEGACY_WRAPPER) {
|
||||
ApExeParams.StdHeader.AltImageBasePtr = 0;
|
||||
ApExeParams.StdHeader.CalloutPtr = &GetBiosCallout;
|
||||
ApExeParams.StdHeader.Func = 0;
|
||||
ApExeParams.StdHeader.ImageBasePtr = 0;
|
||||
} else {
|
||||
memcpy(&ApExeParams.StdHeader, StdHeader, sizeof(*StdHeader));
|
||||
}
|
||||
memcpy(&ApExeParams.StdHeader, StdHeader, sizeof(*StdHeader));
|
||||
|
||||
ApExeParams.FunctionNumber = Func;
|
||||
ApExeParams.RelatedDataBlock = ConfigPtr;
|
||||
|
||||
#if HAS_LEGACY_WRAPPER
|
||||
status = AmdLateRunApTask(&ApExeParams);
|
||||
#else
|
||||
status = module_dispatch(AMD_LATE_RUN_AP_TASK, &ApExeParams.StdHeader);
|
||||
#endif
|
||||
|
||||
ASSERT(status == AGESA_SUCCESS);
|
||||
return status;
|
||||
|
|
|
@ -180,11 +180,7 @@ static void amd_flush_eventlog(EVENT_PARAMS *Event)
|
|||
|
||||
do {
|
||||
AGESA_STATUS status;
|
||||
#if HAS_LEGACY_WRAPPER
|
||||
status = AmdReadEventLog(Event);
|
||||
#else
|
||||
status = module_dispatch(AMD_READ_EVENT_LOG, &Event->StdHeader);
|
||||
#endif
|
||||
if (status != AGESA_SUCCESS)
|
||||
return;
|
||||
if (Event->EventClass == 0)
|
||||
|
@ -203,16 +199,7 @@ void agesawrapper_trace(AGESA_STATUS ret, AMD_CONFIG_PARAMS *StdHeader,
|
|||
return;
|
||||
|
||||
memset(&AmdEventParams, 0, sizeof(EVENT_PARAMS));
|
||||
|
||||
if (HAS_LEGACY_WRAPPER) {
|
||||
AmdEventParams.StdHeader.AltImageBasePtr = 0;
|
||||
AmdEventParams.StdHeader.CalloutPtr = &GetBiosCallout;
|
||||
AmdEventParams.StdHeader.Func = 0;
|
||||
AmdEventParams.StdHeader.ImageBasePtr = 0;
|
||||
AmdEventParams.StdHeader.HeapStatus = StdHeader->HeapStatus;
|
||||
} else {
|
||||
memcpy(&AmdEventParams.StdHeader, StdHeader, sizeof(*StdHeader));
|
||||
}
|
||||
memcpy(&AmdEventParams.StdHeader, StdHeader, sizeof(*StdHeader));
|
||||
|
||||
amd_flush_eventlog(&AmdEventParams);
|
||||
}
|
||||
|
|
|
@ -30,9 +30,6 @@
|
|||
#if !CONFIG(POSTCAR_STAGE)
|
||||
#error "Only POSTCAR_STAGE is supported."
|
||||
#endif
|
||||
#if HAS_LEGACY_WRAPPER
|
||||
#error "LEGACY_WRAPPER code not supported"
|
||||
#endif
|
||||
|
||||
void asmlinkage early_all_cores(void)
|
||||
{
|
||||
|
|
|
@ -8,6 +8,5 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx);
|
|||
void asmlinkage early_all_cores(void);
|
||||
|
||||
void *asmlinkage romstage_main(unsigned long bist);
|
||||
void asmlinkage romstage_after_car(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <northbridge/amd/pi/dimmSpd.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <boardid.h>
|
||||
|
||||
#include "imc.h"
|
||||
|
|
|
@ -20,7 +20,7 @@ if BOARD_AMD_BETTONG
|
|||
|
||||
config BOARD_SPECIFIC_OPTIONS
|
||||
def_bool y
|
||||
select BINARYPI_LEGACY_WRAPPER
|
||||
#select BINARYPI_LEGACY_WRAPPER
|
||||
select CPU_AMD_PI_00660F01
|
||||
select NORTHBRIDGE_AMD_PI_00660F01
|
||||
select SOUTHBRIDGE_AMD_PI_KERN
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
*/
|
||||
|
||||
#include <AGESA.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <PlatformMemoryConfiguration.h>
|
||||
#include <boardid.h>
|
||||
|
||||
|
|
|
@ -21,8 +21,6 @@
|
|||
#include <cpu/x86/bist.h>
|
||||
#include <cpu/amd/car.h>
|
||||
#include <northbridge/amd/agesa/state_machine.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <northbridge/amd/pi/agesawrapper_call.h>
|
||||
#include <southbridge/amd/pi/hudson/hudson.h>
|
||||
|
||||
void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||
|
|
|
@ -21,7 +21,7 @@ if BOARD_AMD_DB_FT3B_LC
|
|||
|
||||
config BOARD_SPECIFIC_OPTIONS
|
||||
def_bool y
|
||||
select BINARYPI_LEGACY_WRAPPER
|
||||
#select BINARYPI_LEGACY_WRAPPER
|
||||
select CPU_AMD_PI_00730F01
|
||||
select NORTHBRIDGE_AMD_PI_00730F01
|
||||
select SOUTHBRIDGE_AMD_PI_AVALON
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
*/
|
||||
|
||||
#include <AGESA.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <PlatformMemoryConfiguration.h>
|
||||
|
||||
|
||||
|
|
|
@ -21,8 +21,6 @@
|
|||
#include <console/console.h>
|
||||
#include <cpu/amd/car.h>
|
||||
#include <northbridge/amd/agesa/state_machine.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <northbridge/amd/pi/agesawrapper_call.h>
|
||||
#include <cpu/x86/bist.h>
|
||||
#include <southbridge/amd/pi/hudson/hudson.h>
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ if BOARD_AMD_LAMAR
|
|||
|
||||
config BOARD_SPECIFIC_OPTIONS
|
||||
def_bool y
|
||||
select BINARYPI_LEGACY_WRAPPER
|
||||
#select BINARYPI_LEGACY_WRAPPER
|
||||
select CPU_AMD_PI_00630F01
|
||||
select NORTHBRIDGE_AMD_PI_00630F01
|
||||
select SOUTHBRIDGE_AMD_PI_BOLTON
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
*/
|
||||
|
||||
#include <AGESA.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
|
||||
|
||||
static const PCIe_PORT_DESCRIPTOR PortList[] = {
|
||||
|
|
|
@ -21,8 +21,6 @@
|
|||
#include <console/console.h>
|
||||
#include <cpu/amd/car.h>
|
||||
#include <northbridge/amd/agesa/state_machine.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <northbridge/amd/pi/agesawrapper_call.h>
|
||||
#include <cpu/x86/bist.h>
|
||||
#include <southbridge/amd/common/amd_defs.h>
|
||||
#include <southbridge/amd/pi/hudson/hudson.h>
|
||||
|
|
|
@ -20,7 +20,7 @@ if BOARD_AMD_OLIVEHILLPLUS
|
|||
|
||||
config BOARD_SPECIFIC_OPTIONS
|
||||
def_bool y
|
||||
select BINARYPI_LEGACY_WRAPPER
|
||||
#select BINARYPI_LEGACY_WRAPPER
|
||||
select CPU_AMD_PI_00730F01
|
||||
select NORTHBRIDGE_AMD_PI_00730F01
|
||||
select SOUTHBRIDGE_AMD_PI_AVALON
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
*/
|
||||
|
||||
#include <AGESA.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
|
||||
|
||||
static const PCIe_PORT_DESCRIPTOR PortList[] = {
|
||||
|
|
|
@ -21,8 +21,6 @@
|
|||
#include <console/console.h>
|
||||
#include <cpu/amd/car.h>
|
||||
#include <northbridge/amd/agesa/state_machine.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <northbridge/amd/pi/agesawrapper_call.h>
|
||||
#include <cpu/x86/bist.h>
|
||||
#include <southbridge/amd/pi/hudson/hudson.h>
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ if BOARD_ODE_E21XX
|
|||
|
||||
config BOARD_SPECIFIC_OPTIONS
|
||||
def_bool y
|
||||
select BINARYPI_LEGACY_WRAPPER
|
||||
#select BINARYPI_LEGACY_WRAPPER
|
||||
select CPU_AMD_PI_00730F01
|
||||
select NORTHBRIDGE_AMD_PI_00730F01
|
||||
select SOUTHBRIDGE_AMD_PI_AVALON
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
*/
|
||||
|
||||
#include <AGESA.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
|
||||
|
||||
static const PCIe_PORT_DESCRIPTOR PortList[] = {
|
||||
|
|
|
@ -21,8 +21,6 @@
|
|||
#include <console/console.h>
|
||||
#include <cpu/amd/car.h>
|
||||
#include <northbridge/amd/agesa/state_machine.h>
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <northbridge/amd/pi/agesawrapper_call.h>
|
||||
#include <cpu/x86/bist.h>
|
||||
#include <southbridge/amd/pi/hudson/hudson.h>
|
||||
#include <superio/fintek/common/fintek.h>
|
||||
|
|
|
@ -20,8 +20,6 @@
|
|||
#include <AGESA.h>
|
||||
#include <AMD.h>
|
||||
|
||||
#define HAS_LEGACY_WRAPPER CONFIG(BINARYPI_LEGACY_WRAPPER)
|
||||
|
||||
/* eventlog */
|
||||
void agesawrapper_trace(AGESA_STATUS ret, AMD_CONFIG_PARAMS *StdHeader, const char *func);
|
||||
AGESA_STATUS agesawrapper_amdreadeventlog(UINT8 HeapStatus);
|
||||
|
|
|
@ -34,10 +34,6 @@
|
|||
#include <arch/acpigen.h>
|
||||
#include <northbridge/amd/pi/nb_common.h>
|
||||
#include <northbridge/amd/agesa/agesa_helper.h>
|
||||
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <northbridge/amd/pi/agesawrapper_call.h>
|
||||
#endif
|
||||
|
||||
#define MAX_NODE_NUMS MAX_NODES
|
||||
|
||||
|
@ -608,16 +604,6 @@ static void domain_read_resources(struct device *dev)
|
|||
|
||||
static void domain_enable_resources(struct device *dev)
|
||||
{
|
||||
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
|
||||
/* Must be called after PCI enumeration and resource allocation */
|
||||
if (!acpi_is_wakeup_s3()) {
|
||||
/* Enable MMIO on AMD CPU Address Map Controller */
|
||||
amd_initcpuio();
|
||||
|
||||
agesawrapper_amdinitmid();
|
||||
}
|
||||
printk(BIOS_DEBUG, " ader - leaving %s.\n", __func__);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if CONFIG_HW_MEM_HOLE_SIZEK != 0
|
||||
|
|
|
@ -34,10 +34,6 @@
|
|||
#include <arch/acpigen.h>
|
||||
#include <northbridge/amd/pi/nb_common.h>
|
||||
#include <northbridge/amd/agesa/agesa_helper.h>
|
||||
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <northbridge/amd/pi/agesawrapper_call.h>
|
||||
#endif
|
||||
|
||||
#define MAX_NODE_NUMS MAX_NODES
|
||||
|
||||
|
@ -609,13 +605,6 @@ static void domain_read_resources(struct device *dev)
|
|||
|
||||
static void domain_enable_resources(struct device *dev)
|
||||
{
|
||||
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
|
||||
/* Must be called after PCI enumeration and resource allocation */
|
||||
if (!acpi_is_wakeup_s3())
|
||||
AGESAWRAPPER(amdinitmid);
|
||||
|
||||
printk(BIOS_DEBUG, " ader - leaving domain_enable_resources.\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
#if CONFIG_HW_MEM_HOLE_SIZEK != 0
|
||||
|
|
|
@ -18,7 +18,5 @@ romstage-y += dimmSpd.c
|
|||
ramstage-y += northbridge.c
|
||||
ramstage-y += iommu.c
|
||||
|
||||
ifneq ($(CONFIG_BINARYPI_LEGACY_WRAPPER), y)
|
||||
romstage-y += state_machine.c
|
||||
ramstage-y += state_machine.c
|
||||
endif
|
||||
|
|
|
@ -36,10 +36,6 @@
|
|||
#include <arch/acpigen.h>
|
||||
#include <northbridge/amd/pi/nb_common.h>
|
||||
#include <northbridge/amd/agesa/agesa_helper.h>
|
||||
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
|
||||
#include <northbridge/amd/pi/agesawrapper.h>
|
||||
#include <northbridge/amd/pi/agesawrapper_call.h>
|
||||
#endif
|
||||
|
||||
#define MAX_NODE_NUMS MAX_NODES
|
||||
|
||||
|
@ -835,13 +831,6 @@ static void domain_read_resources(struct device *dev)
|
|||
|
||||
static void domain_enable_resources(struct device *dev)
|
||||
{
|
||||
#if CONFIG(BINARYPI_LEGACY_WRAPPER)
|
||||
/* Must be called after PCI enumeration and resource allocation */
|
||||
if (!acpi_is_wakeup_s3())
|
||||
AGESAWRAPPER(amdinitmid);
|
||||
|
||||
printk(BIOS_DEBUG, " ader - leaving domain_enable_resources.\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
#if CONFIG_HW_MEM_HOLE_SIZEK != 0
|
||||
|
|
|
@ -19,11 +19,6 @@ subdirs-$(CONFIG_NORTHBRIDGE_AMD_PI_00630F01) += 00630F01
|
|||
subdirs-$(CONFIG_NORTHBRIDGE_AMD_PI_00730F01) += 00730F01
|
||||
subdirs-$(CONFIG_NORTHBRIDGE_AMD_PI_00660F01) += 00660F01
|
||||
|
||||
ifeq ($(CONFIG_BINARYPI_LEGACY_WRAPPER), y)
|
||||
romstage-y += agesawrapper.c
|
||||
ramstage-y += agesawrapper.c
|
||||
endif
|
||||
|
||||
romstage-y += ramtop.c
|
||||
postcar-y += ramtop.c
|
||||
ramstage-y += ramtop.c
|
||||
|
|
|
@ -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
|
||||
bool "Add instrumentation for AGESA calls"
|
||||
default n
|
||||
depends on !BINARYPI_LEGACY_WRAPPER
|
||||
depends on DRIVERS_AMD_PI
|
||||
help
|
||||
Insert additional timestamps around each entrypoint into
|
||||
|
|
|
@ -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])
|
||||
|
||||
ifeq ($(CONFIG_BINARYPI_LEGACY_WRAPPER),y)
|
||||
agesa_raw_files += $(wildcard $(AGESA_ROOT)/binaryPI/*.[cS])
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_CPU_AMD_PI_00660F01),y)
|
||||
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Fch/Kern/KernImc/*.[cS])
|
||||
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Fch/Common/*.[cS])
|
||||
|
|
Loading…
Reference in New Issue