coreboot-kgpe-d16/util
Julius Werner 09f2921b5d cbfs: Add LZ4 in-place decompression support for pre-RAM stages
This patch ports the LZ4 decompression code that debuted in libpayload
last year to coreboot for use in CBFS stages (upgrading the base
algorithm to LZ4's dev branch to access the new in-place decompression
checks). This is especially useful for pre-RAM stages in constrained
SRAM-based systems, which previously could not be compressed due to
the size requirements of the LZMA scratchpad and bounce buffer. The
LZ4 algorithm offers a very lean decompressor function and in-place
decompression support to achieve roughly the same boot speed gains
(trading compression ratio for decompression time) with nearly no
memory overhead.

For now we only activate it for the stages that had previously not been
compressed at all on non-XIP (read: non-x86) boards. In the future we
may also consider replacing LZMA completely for certain boards, since
which algorithm wins out on boot speed depends on board-specific
parameters (architecture, processor speed, SPI transfer rate, etc.).

BRANCH=None
BUG=None
TEST=Built and booted Oak, Jerry, Nyan and Falco. Measured boot time on
Oak to be about ~20ms faster (cutting load times for affected stages
almost in half).

Change-Id: Iec256c0e6d585d1b69985461939884a54e3ab900
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/13638
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2016-02-22 21:38:37 +01:00
..
abuild
acpi
amdfwtool amdfwtool: Postpone the usage of PSP combo directory 2016-02-20 04:57:42 +01:00
amdtools
arm_boot_tools/mksunxiboot
autoport util/autoport: Use common gpio.c for bd82x6x 2016-02-18 01:45:56 +01:00
bimgtool bimgtool: Fix printf warning for off_t 2016-02-12 04:47:37 +01:00
board_status board-status: deal with sanitized paths 2016-02-22 19:14:37 +01:00
broadcom
cbfstool cbfs: Add LZ4 in-place decompression support for pre-RAM stages 2016-02-22 21:38:37 +01:00
cbmem cbfs: Add LZ4 in-place decompression support for pre-RAM stages 2016-02-22 21:38:37 +01:00
crossgcc crossgcc: Change 'tar balls' to 'tarballs' 2016-02-18 01:21:21 +01:00
dtd_parser util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
ectool ectool: fix NetBSD compilation 2016-01-27 17:15:56 +01:00
exynos util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
futility build system: add Chrome OS futility to tools 2016-02-02 14:35:38 +01:00
fuzz-tests
genbuild_h genbuild_h.sh: allow coreboot to be a git submodule 2016-01-04 16:41:40 +01:00
genprof
gitconfig
ifdfake
ifdtool utils: Remove old license text from help & disclaimer file 2016-01-13 22:53:29 +01:00
inteltool utils: Remove old license text from help & disclaimer file 2016-01-13 22:53:29 +01:00
intelvbttool
ipqheader util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
k8resdump
kconfig kconfig: make oldconfig work "non-strict" 2016-02-15 08:03:56 +01:00
lint lint: Make sure site-local isn't committed to coreboot repo 2016-02-16 22:47:39 +01:00
marvell util/marvell: Add Marvell doimage utility and dependency in relevant Makefile 2016-02-11 14:16:08 +01:00
mma tree: drop last paragraph of GPL copyright header from new files 2016-01-13 20:35:40 +01:00
msrtool msrtool/configure: change svn to git 2015-12-14 22:52:49 +01:00
mtkheader util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
nvidia
nvramtool cbfs: Add LZ4 in-place decompression support for pre-RAM stages 2016-02-22 21:38:37 +01:00
optionlist optionslist: Don't add a timestamp 2016-02-21 01:46:15 +01:00
release util/release: extend release script 2016-02-01 08:58:37 +01:00
rockchip util: Look for python2 binary instead of python 2016-01-26 00:25:19 +01:00
romcc romcc: Allow adding non-existent paths to include path 2015-11-19 21:20:29 +01:00
sconfig
scripts util/get_maintainer.pl: Fix top_of_kernel_tree check 2016-01-22 19:25:07 +01:00
showdevicetree
spkmodem_recv
superiotool superiotool: fix out-of-box NetBSD Makefile support 2016-01-26 04:47:25 +01:00
uio_usbdebug
vgabios Redo testbios utility to use all of YABEL 2016-02-18 01:47:04 +01:00
viatool utils: Remove old license text from help & disclaimer file 2016-01-13 22:53:29 +01:00
xcompile Support arm-linux-gnueabi compilers. 2016-02-21 13:04:58 +01:00