northbridge/amd/agesa/agesawrapper_call.h: Decode status codes

Decode obscure AGESA status codes into their respective string forms.

Change-Id: Iccf175ef62e5005af6ebbfb1bd0acec8aedc2eaa
Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-on: http://review.coreboot.org/6402
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
This commit is contained in:
Edward O'Callaghan 2014-07-30 02:19:25 +10:00
parent 7842eb2997
commit c3fda416a7
1 changed files with 25 additions and 1 deletions

View File

@ -22,12 +22,36 @@
#include <console/console.h> #include <console/console.h>
#include "AGESA.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) static inline u32 do_agesawrapper(AGESA_STATUS (*func)(void), const char *name)
{ {
AGESA_STATUS ret; AGESA_STATUS ret;
printk(BIOS_DEBUG, "agesawrapper_%s() entry\n", name); printk(BIOS_DEBUG, "agesawrapper_%s() entry\n", name);
ret = func(); ret = func();
printk(BIOS_DEBUG, "agesawrapper_%s() AGESA_STATUS = %x\n", name, ret); printk(BIOS_DEBUG, "agesawrapper_%s() returned %s\n",
name, decodeAGESA_STATUS(ret));
return (u32)ret; return (u32)ret;
} }