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