##
## This file is part of the coreboot project.
##
## Copyright (C) 2012 The Chromium OS Authors.  All rights reserved.
##
## 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.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##

config ELOG
	depends on SPI_FLASH
	bool "Support for flash based event log"
	default n
	help
	  Enable support for flash based event logging.

if ELOG

config ELOG_DEBUG
	bool "Enable debug output for event logging"
	default n

config ELOG_FLASH_BASE
	hex "Event log offset into flash"
	default 0
	help
	  Offset into the flash chip for the ELOG block.
	  This should be allocated in the FMAP.

config ELOG_AREA_SIZE
	hex "Size of Event Log area in flash"
	default 0x1000
	help
	  This should be a multiple of flash block size.

	  Default is 4K.

config ELOG_FULL_THRESHOLD
	hex "Threshold at which flash is considered full"
	default 0xC00
	help
	  When the Event Log size is larger than this it will be shrunk
	  to ELOG_SHRINK_SIZE.  Must be greater than ELOG_AREA_SIZE, and
	  ELOG_AREA_SIZE - ELOG_FULL_THRESHOLD must be greater than the
	  maximum event size of 128.

	  Default is 75% of the log, or 3K.

config ELOG_SHRINK_SIZE
	hex "Resulting size when the event log is shrunk"
	default 0x400
	help
	  When the Event Log is shrunk it will go to this size.
	  ELOG_AREA_SIZE - ELOG_SHRINK_SIZE must be less than
	  CONFIG_ELOG_FULL_THRESHOLD.

	  Default is 1K.

config ELOG_CBMEM
	bool "Store a copy of ELOG in CBMEM"
	default n
	help
	 This option will have ELOG store a copy of the flash event log
	 in a CBMEM region and export that address in SMBIOS to the OS.
	 This is useful if the ELOG location is not in memory mapped flash,
	 but it means that events added at runtime via the SMI handler
	 will not be reflected in the CBMEM copy of the log.

endif

config ELOG_GSMI
	depends on ELOG && SPI_FLASH_SMM && SMM_TSEG
	bool "SMI interface to write and clear event log"
	default n
	help
	  This interface is compatible with the linux kernel driver
	  available with CONFIG_GOOGLE_GSMI and can be used to write
	  kernel reset/shutdown messages to the event log.

config ELOG_BOOT_COUNT
	depends on ELOG
	bool "Maintain a monotonic boot number in CMOS"
	default n
	help
	  Store a monotonic boot number in CMOS and provide an interface
	  to read the current value and increment the counter.  This boot
	  counter will be logged as part of the System Boot event.

config ELOG_BOOT_COUNT_CMOS_OFFSET
	depends on ELOG && ELOG_BOOT_COUNT && !USE_OPTION_TABLE
	int "Offset in CMOS to store the boot count"
	default 0
	help
	  This value must be greater than 16 bytes so as not to interfere
	  with the standard RTC region.  Requires 8 bytes.