coreboot/util
Julius Werner 3465684df6 UPSTREAM: Turn CBMEM console into a ring buffer that can persist across reboots
This patch allows the CBMEM console to persist across reboots, which
should greatly help post factum debugging of issues involving multiple
reboots. In order to prevent the console from filling up, it will
instead operate as a ring buffer that continues to evict the oldest
lines once full. (This means that if even a single boot doesn't fit into
the buffer, we will now drop the oldest lines whereas previous code
would've dropped the newest lines instead.)

The console control structure is modified in a sorta
backwards-compatible way, so that new readers can continue to work with
old console buffers and vice versa. When an old reader reads a new
buffer that has already once overflowed (i.e. is operating in true ring
buffer mode) it will print lines out of order, but it will at least
still print out the whole console content and not do any illegal memory
accesses (assuming it correctly implemented cursor overflow as it was
already possible before this patch).

BUG=chromium:651966
TEST=Rebooted and confirmed output repeatedly on a Kevin and a Falco.
Also confirmed correct behavior across suspend/resume for the latter.

Change-Id: I927df6bbffa13fdce9d1984278afa340042f7ac9
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: d67c6876b5
Original-Change-Id: Ifcbf59d58e1ad20995b98d111c4647281fbb45ff
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18301
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/482975
2017-04-21 06:03:52 -07:00
..
abuild UPSTREAM: abuild: add timeless build command line parameter 2017-04-05 16:30:07 -07:00
acpi tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
amdfwtool UPSTREAM: util/amdfwtool: Add fanless SMU firmware options 2017-03-30 05:30:05 -07:00
amdtools Remove empty lines at end of file 2015-06-08 00:55:07 +02:00
archive archive: build archive tool with HOSTCC 2016-03-08 17:40:05 +01:00
arm_boot_tools/mksunxiboot arm_boot_tools: Add 'b' to fopen flags for Windows compatibility 2014-12-19 18:55:34 +01:00
autoport UPSTREAM: util/autoport: Create superiotool logs 2017-03-16 00:11:36 -07:00
bimgtool codebase: Change makefile $(shell pwd) commands to $(CURDIR) 2016-03-11 18:48:06 +01:00
blobtool UPSTREAM: util/blobtool & sconfig: Update GENPARSER Kconfig question 2017-04-18 13:19:01 -07:00
board_status UPSTREAM: board_status/towiki.sh: Fix Socket for Sandy and Ivy Bridge 2017-03-14 07:25:39 -07:00
broadcom UPSTREAM: util/broadcom: Check for successful file access 2016-12-19 09:54:20 -08:00
cbfstool UPSTREAM: cbfstool/ifwitool: Remove unnecessary assignment 2017-03-30 05:30:09 -07:00
cbmem UPSTREAM: Turn CBMEM console into a ring buffer that can persist across reboots 2017-04-21 06:03:52 -07:00
checklist UPSTREAM: util/checklist: Place tables in proper boot order 2016-08-11 03:14:32 -07:00
chromeos UPSTREAM: util/chromeos: Make scripts executable 2016-08-04 23:36:47 -07:00
crossgcc UPSTREAM: crossgcc/Dockerfile: Add gnat to build the Ada toolchain 2017-03-25 10:22:55 -07:00
docker UPSTREAM: util/docker: Update makefile for servers and local use 2017-04-04 03:02:42 -07:00
dtd_parser util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
ectool UPSTREAM: ectool: Support OpenBSD 2017-02-03 09:08:55 -08:00
exynos util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
futility UPSTREAM: util/futility/Makefile: Update clean target 2017-03-30 05:30:07 -07:00
fuzz-tests tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
genbuild_h genbuild_h: Fix numeric comparison to remove error 2016-03-14 23:37:12 +01:00
genprof util/genprof: improve handling of command line arguments 2014-08-12 09:02:44 +02:00
gitconfig UPSTREAM: Rename and move util/gitconfig/rebase.sh 2016-10-25 14:46:55 -07:00
ifdfake UPSTREAM: util/ifdfake: Add number of regions 2016-12-16 07:51:49 -08:00
ifdtool UPSTREAM: ifdtool: Add SPI_FREQUENCY_50MHZ_30MHZ as a valid freq 2017-03-10 10:54:49 -08:00
intelmetool UPSTREAM: util/intelmetool: Check for NULL return from pci_lookup_name 2017-04-07 07:03:31 -07:00
inteltool UPSTREAM: util/inteltool: Add ICH10 (Consumer Base) support 2017-04-18 13:19:02 -07:00
intelvbttool UPSTREAM: intelvbttool: cope with errors in open() 2016-08-04 23:37:52 -07:00
ipqheader util: ipq40xx: Scripts to combine SBL and Coreboot ELFs 2016-05-09 09:36:27 +02:00
k8resdump tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
kconfig UPSTREAM: Kconfig: Change symbol override from warning to notice 2016-12-13 17:49:40 -08:00
lint UPSTREAM: util/lint: Show an error if a symbol is created in two choice blocks 2017-03-29 11:42:14 -07:00
marvell util/marvell: Add Marvell doimage utility and dependency in relevant Makefile 2016-02-11 14:16:08 +01:00
me_cleaner UPSTREAM: util/me_cleaner: Pull the latest changes from upstream 2017-03-06 07:04:35 -08:00
mma util/mma: changing BOOT_STUB to COREBOOT region and few more things 2016-05-10 22:59:36 +02:00
msrtool UPSTREAM: util/msrtool: Use tabs for indents 2016-10-19 14:06:44 -07:00
mtkheader util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
nvidia Make upstream tree CrOS SDK friendly 2016-05-12 15:42:17 -06:00
nvramtool UPSTREAM: nvramtool: Don't consider reserved regions to be "out of range" 2016-08-04 23:37:39 -07:00
optionlist optionslist: Don't add a timestamp 2016-02-21 01:46:15 +01:00
post util: Add a very simple utility to test POST cards. 2016-02-26 07:00:33 +01:00
release UPSTREAM: util/release/build-release: Update tar command 2016-10-11 14:31:59 -07:00
riscvtools UPSTREAM: RISCV: change make-spike-elf to use the coreboot toolchain. 2016-10-18 22:14:47 -07:00
rockchip rockchip: update make_idb.py 2016-03-16 15:24:10 +01:00
romcc UPSTREAM: util/romcc: Don't reference a variable after checking it for NULL 2017-02-13 10:01:10 -08:00
sconfig UPSTREAM: util/blobtool & sconfig: Update GENPARSER Kconfig question 2017-04-18 13:19:01 -07:00
scripts UPSTREAM: util/scripts/get_maintainer.pl: Remove linux tree check 2017-03-07 14:15:56 -08:00
showdevicetree tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
spkmodem_recv tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
superiotool UPSTREAM: util/superiotool: Add support for Fintek F71808A 2017-03-14 07:25:23 -07:00
uio_usbdebug tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
vgabios UPSTREAM: Remove extra newlines from the end of all coreboot files. 2016-08-04 23:36:56 -07:00
viatool UPSTREAM: viatool/quirks: Add newline to end of file 2016-08-02 14:29:22 -07:00
xcompile UPSTREAM: util/xcompile: parallelize compiler checks 2017-01-31 17:07:38 -08:00