coreboot/src/include
Duncan Laurie 7d2b81c18d ELOG: Add support for flash based event log
This is based around the SMBIOS event log specification but
expanded with OEM event types to support more specific and
relevant system events.

It requires flash storage and a minimum 4K block (or flash block
size) that should be allocated in the FMAP.

A copy of the event log is maintained in memory for convenience
and speed and the in-memory copy is written to flash at specific
points.

The log is automatically shunk when it reaches a configurable
full threshold in order to not get stuck with a full log that
needs OS help to clear.

ELOG implements the specification published here:
http://code.google.com/p/firmware-event-log/wiki/FirmwareEventLogDesign

And is similar to what we use in other firmware at Google.
This implementation does not support double-buffered flash
regions.  This is done because speed is valued over the log
reliability and it keeps the code simpler for the first version.

This is a large commit and by itself it just provides a new
driver that is made available to coreboot.  Without additional
patches it is not very useful, but the end result is an event
log that will contain entries like this:

171 | 2012-06-23 16:02:55 | System boot | 285
172 | 2012-06-23 16:02:55 | EC Event | Power Button
173 | 2012-06-23 16:02:55 | SUS Power Fail
174 | 2012-06-23 16:02:55 | System Reset
175 | 2012-06-23 16:02:55 | ACPI Wake | S5

Change-Id: I985524c67f525c8a268eccbd856c1a4c2a426889
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: http://review.coreboot.org/1311
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
2012-07-24 23:43:39 +02:00
..
arch-generic - First stab at getting the ppc ports building and working. 2004-11-18 22:38:08 +00:00
boot Fill out ChromeOS specific coreboot table extensions 2012-04-05 22:47:13 +02:00
console CBMEM CONSOLE: Add CBMEM console driver implementation. 2012-03-29 20:14:25 +02:00
cpu Add code to read Intel microcode from CBFS 2012-07-24 22:15:19 +02:00
device Add support for HM70 and NM70 LPC bridge 2012-07-24 12:26:26 +02:00
pc80 RTC: Add defines for standard clock offsets 2012-07-24 11:42:34 +02:00
smp Clean up #ifs 2012-05-08 00:34:34 +02:00
assert.h We call this cache as ram everywhere, so let's call it the same in Kconfig 2010-08-30 17:53:13 +00:00
cbfs.h Implement stack overflow checking for the BSP 2012-07-24 23:29:12 +02:00
cbfs_core.h Since cbfs_core.h provides a macro that uses ntohl, make sure ntohl is available 2012-03-14 23:00:25 +01:00
cbmem.h Hook up MRC cache update 2012-05-11 00:30:03 +02:00
delay.h Clean up #ifs 2012-05-08 00:34:34 +02:00
ehci.h Fix usb debug dongle support 2011-10-31 04:06:10 +01:00
elog.h ELOG: Add support for flash based event log 2012-07-24 23:43:39 +02:00
fallback.h In 2007 Adrian Reber suggested that we drop ASSEMBLY in favor of __ASSEMBLER__. 2011-04-10 04:15:23 +00:00
ip_checksum.h Add support for the console over Ethernet (through PCI NE2000). 2010-07-16 20:02:09 +00:00
kconfig.h Add config_enabled() from Linux 2012-05-08 00:36:09 +02:00
lib.h Implement stack overflow checking for the BSP 2012-07-24 23:29:12 +02:00
reset.h Clean up #ifs 2012-05-08 00:34:34 +02:00
sdram_mode.h Various license header consistency fixes (trivial). 2010-02-15 23:10:19 +00:00
smbios.h SMBIOS: Add Type 38 (IPMI) data structure 2012-07-09 11:51:30 +02:00
spd.h Some more DIMM0 related cleanups and deduplication. 2010-11-20 20:23:08 +00:00
spd_ddr2.h Add VIA CX700 support, plus VIA vt8454c reference board support. 2009-04-17 08:37:18 +00:00
spi.h SPI flash layer: remove unused function spi_flash_free() 2012-07-24 02:37:39 +02:00
spi_flash.h SPI flash layer: remove unused function spi_flash_free() 2012-07-24 02:37:39 +02:00
stdlib.h Remove unused free() function 2012-07-24 08:38:21 +02:00
string.h Add an implementation for the memchr library function 2012-03-09 20:00:53 +01:00
swab.h Add macros for 64bit byte order swapping 2011-10-21 14:13:19 +02:00
timestamp.h Hook up MRC cache update 2012-05-11 00:30:03 +02:00
trace.h Add support for the tracing infastructure in coreboot. 2011-09-07 01:26:47 +02:00
types.h Some changes required to get yabel working on v2 (and they generally make 2009-03-01 10:16:01 +00:00
uart8250.h Add uartmem_init prototype. 2012-07-24 12:17:21 +02:00
usb_ch9.h USB Debug Port related license header fixes (trivial). 2010-09-23 18:16:46 +00:00
usbdebug.h Fix usb debug dongle support 2011-10-31 04:06:10 +01:00
version.h Rename almost all occurences of LinuxBIOS to coreboot. 2008-01-18 15:08:58 +00:00
watchdog.h Clean up #ifs 2012-05-08 00:34:34 +02:00