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:
		
				
					committed by
					
						 Patrick Georgi
						Patrick Georgi
					
				
			
			
				
	
			
			
			
						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; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user