summaryrefslogtreecommitdiff
path: root/src/arch/x86/boot
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2012-06-23 16:13:42 -0700
committerRonald G. Minnich <rminnich@gmail.com>2012-07-25 00:46:56 +0200
commit472ec9cd7ecb3d283bc05941c7dbb54a10813614 (patch)
tree99355bde492ce16a6c8b13b380fdd93f07616721 /src/arch/x86/boot
parent696262bd99fb7e4177dbce533ae50a287871d830 (diff)
ELOG: Add support for generating SMBIOS type15 table
This standared SMBIOS 0able describes the location and format of the event log to the OS and applications. In this case the pointer is a 32bit physical address pointer to the log in memory mapped flash. Look for SMBIOS type15 entry with 'dmidecode -t 15' Handle 0x0004, DMI type 15, 23 bytes System Event Log Area Length: 4095 bytes Header Start Offset: 0x0000 Header Length: 8 bytes Data Start Offset: 0x0008 Access Method: Memory-mapped physical 32-bit address Access Address: 0xFFB6F000 Status: Valid, Not Full Change Token: 0x00000000 Header Format: OEM-specific Supported Log Type Descriptors: 0 Change-Id: I1e7729e604000f197e26e69991a2867e869197a6 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: http://review.coreboot.org/1314 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/arch/x86/boot')
-rw-r--r--src/arch/x86/boot/smbios.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/arch/x86/boot/smbios.c b/src/arch/x86/boot/smbios.c
index 3b9e5a1327..9c61e28dcc 100644
--- a/src/arch/x86/boot/smbios.c
+++ b/src/arch/x86/boot/smbios.c
@@ -29,6 +29,7 @@
#include <cpu/x86/name.h>
#include <cbfs_core.h>
#include <arch/byteorder.h>
+#include <elog.h>
#if CONFIG_CHROMEOS
#include <vendorcode/google/chromeos/gnvs.h>
#endif
@@ -296,6 +297,9 @@ unsigned long smbios_write_tables(unsigned long current)
len += smbios_write_type1(&current, handle++);
len += smbios_write_type3(&current, handle++);
len += smbios_write_type4(&current, handle++);
+#if CONFIG_ELOG
+ len += elog_smbios_write_type15(&current, handle++);
+#endif
len += smbios_write_type32(&current, handle++);
len += smbios_walk_device_tree(all_devices, &handle, &current);