AGESA: Move debug helper to eventlog file
Change-Id: I2d74f934936e250886526b9c8482f500628a1158 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/31513 Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
ec85e2f55d
commit
d1d4f937ec
|
@ -1,6 +1,8 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* Copyright (C) 2016 Kyösti Mälkki
|
||||
*
|
||||
* 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.
|
||||
|
@ -18,6 +20,7 @@
|
|||
#include <northbridge/amd/agesa/state_machine.h>
|
||||
#include <northbridge/amd/agesa/BiosCallOuts.h>
|
||||
#include <amdlib.h>
|
||||
#include <debug_util.h>
|
||||
#include <AGESA.h>
|
||||
#include <AMD.h>
|
||||
|
||||
|
@ -40,7 +43,7 @@ static const char *AgesaFunctionNameStr[] = {
|
|||
* under vendorcode/ tree.
|
||||
*/
|
||||
|
||||
const char *agesa_struct_name(int state)
|
||||
static const char *agesa_struct_name(AGESA_STRUCT_NAME state)
|
||||
{
|
||||
#if CONFIG(CPU_AMD_AGESA_OPENSOURCE)
|
||||
if ((state < AMD_INIT_RECOVERY) || (state > AMD_IDENTIFY_DIMMS))
|
||||
|
@ -57,6 +60,27 @@ const char *agesa_struct_name(int state)
|
|||
return AgesaFunctionNameStr[index];
|
||||
}
|
||||
|
||||
void agesa_state_on_entry(struct agesa_state *task, AGESA_STRUCT_NAME func)
|
||||
{
|
||||
task->apic_id = (u8) (cpuid_ebx(1) >> 24);
|
||||
task->func = func;
|
||||
task->function_name = agesa_struct_name(func);
|
||||
|
||||
printk(BIOS_DEBUG, "\nAPIC %02d: ** Enter %s [%08x]\n",
|
||||
task->apic_id, task->function_name, task->func);
|
||||
}
|
||||
|
||||
void agesa_state_on_exit(struct agesa_state *task,
|
||||
AMD_CONFIG_PARAMS *StdHeader)
|
||||
{
|
||||
printk(BIOS_DEBUG, "APIC %02d: Heap in %s (%d) at 0x%08x\n",
|
||||
task->apic_id, heap_status_name(StdHeader->HeapStatus),
|
||||
StdHeader->HeapStatus, (u32)StdHeader->HeapBasePtr);
|
||||
|
||||
printk(BIOS_DEBUG, "APIC %02d: ** Exit %s [%08x]\n",
|
||||
task->apic_id, task->function_name, task->func);
|
||||
}
|
||||
|
||||
/*
|
||||
* Possible AGESA_STATUS values:
|
||||
*
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include <northbridge/amd/agesa/BiosCallOuts.h>
|
||||
#include <amdlib.h>
|
||||
|
||||
#include <debug_util.h>
|
||||
#include <AMD.h>
|
||||
|
||||
#if CONFIG(CPU_AMD_AGESA_OPENSOURCE)
|
||||
|
@ -231,38 +230,6 @@ static AGESA_STATUS ramstage_dispatch(struct sysinfo *cb,
|
|||
return status;
|
||||
}
|
||||
|
||||
/* DEBUG trace helper */
|
||||
|
||||
struct agesa_state
|
||||
{
|
||||
u8 apic_id;
|
||||
|
||||
AGESA_STRUCT_NAME func;
|
||||
const char *function_name;
|
||||
};
|
||||
|
||||
static void state_on_entry(struct agesa_state *task, AGESA_STRUCT_NAME func,
|
||||
const char *struct_name)
|
||||
{
|
||||
task->apic_id = (u8) (cpuid_ebx(1) >> 24);
|
||||
task->func = func;
|
||||
task->function_name = struct_name;
|
||||
|
||||
printk(BIOS_DEBUG, "\nAPIC %02d: ** Enter %s [%08x]\n",
|
||||
task->apic_id, task->function_name, task->func);
|
||||
}
|
||||
|
||||
static void state_on_exit(struct agesa_state *task,
|
||||
AMD_CONFIG_PARAMS *StdHeader)
|
||||
{
|
||||
printk(BIOS_DEBUG, "APIC %02d: Heap in %s (%d) at 0x%08x\n",
|
||||
task->apic_id, heap_status_name(StdHeader->HeapStatus),
|
||||
StdHeader->HeapStatus, (u32)StdHeader->HeapBasePtr);
|
||||
|
||||
printk(BIOS_DEBUG, "APIC %02d: ** Exit %s [%08x]\n",
|
||||
task->apic_id, task->function_name, task->func);
|
||||
}
|
||||
|
||||
int agesa_execute_state(struct sysinfo *cb, AGESA_STRUCT_NAME func)
|
||||
{
|
||||
AMD_INTERFACE_PARAMS aip;
|
||||
|
@ -272,13 +239,12 @@ int agesa_execute_state(struct sysinfo *cb, AGESA_STRUCT_NAME func)
|
|||
} agesa_params;
|
||||
void *buf = NULL;
|
||||
size_t len = 0;
|
||||
const char *state_name = agesa_struct_name(func);
|
||||
|
||||
AGESA_STATUS status, final;
|
||||
|
||||
struct agesa_state task;
|
||||
memset(&task, 0, sizeof(task));
|
||||
state_on_entry(&task, func, state_name);
|
||||
agesa_state_on_entry(&task, func);
|
||||
|
||||
aip.StdHeader = cb->StdHeader;
|
||||
|
||||
|
@ -302,13 +268,13 @@ int agesa_execute_state(struct sysinfo *cb, AGESA_STRUCT_NAME func)
|
|||
if (ENV_RAMSTAGE)
|
||||
final = ramstage_dispatch(cb, func, StdHeader);
|
||||
|
||||
agesawrapper_trace(final, StdHeader, state_name);
|
||||
agesawrapper_trace(final, StdHeader, task.function_name);
|
||||
ASSERT(final < AGESA_FATAL);
|
||||
|
||||
status = amd_release_struct(&aip);
|
||||
ASSERT(status == AGESA_SUCCESS);
|
||||
|
||||
state_on_exit(&task, &aip.StdHeader);
|
||||
agesa_state_on_exit(&task, &aip.StdHeader);
|
||||
|
||||
return (final < AGESA_FATAL) ? 0 : -1;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#define HAS_LEGACY_WRAPPER CONFIG(BINARYPI_LEGACY_WRAPPER)
|
||||
|
||||
/* eventlog */
|
||||
const char *agesa_struct_name(int state);
|
||||
void agesawrapper_trace(AGESA_STATUS ret, AMD_CONFIG_PARAMS *StdHeader, const char *func);
|
||||
AGESA_STATUS agesawrapper_amdreadeventlog(UINT8 HeapStatus);
|
||||
|
||||
|
@ -54,6 +53,17 @@ void board_BeforeAgesa(struct sysinfo *cb);
|
|||
void platform_once(struct sysinfo *cb);
|
||||
|
||||
void agesa_set_interface(struct sysinfo *cb);
|
||||
|
||||
struct agesa_state {
|
||||
u8 apic_id;
|
||||
|
||||
AGESA_STRUCT_NAME func;
|
||||
const char *function_name;
|
||||
};
|
||||
|
||||
void agesa_state_on_entry(struct agesa_state *task, AGESA_STRUCT_NAME func);
|
||||
void agesa_state_on_exit(struct agesa_state *task,
|
||||
AMD_CONFIG_PARAMS *StdHeader);
|
||||
int agesa_execute_state(struct sysinfo *cb, AGESA_STRUCT_NAME func);
|
||||
|
||||
/* AGESA dispatchers */
|
||||
|
|
Loading…
Reference in New Issue