Arthur Heymans has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/69753 )
Change subject: [WIP]zstd support ......................................................................
[WIP]zstd support
This works and is able to load files in ramstage and in the payload.
However it is much slower than LZMA. 500+ms vs ~30ms to load a payload. It also consume a big stack. Using a predefined context did not work for now...
TODO: move zstd to commonlib and use from both cbfstool and coreboot.
Change-Id: I34508268f8767008ef25cb9e466d201345881232 Signed-off-by: Arthur Heymans arthur@aheymans.xyz --- M Makefile.inc M src/Kconfig M src/commonlib/Makefile.inc M src/commonlib/bsd/include/commonlib/bsd/cbfs_serialized.h A src/commonlib/zstd-1.5.2/lib/.gitignore A src/commonlib/zstd-1.5.2/lib/BUCK A src/commonlib/zstd-1.5.2/lib/Makefile A src/commonlib/zstd-1.5.2/lib/README.md A src/commonlib/zstd-1.5.2/lib/common/bitstream.h A src/commonlib/zstd-1.5.2/lib/common/compiler.h A src/commonlib/zstd-1.5.2/lib/common/cpu.h A src/commonlib/zstd-1.5.2/lib/common/debug.c A src/commonlib/zstd-1.5.2/lib/common/debug.h A src/commonlib/zstd-1.5.2/lib/common/entropy_common.c A src/commonlib/zstd-1.5.2/lib/common/error_private.c A src/commonlib/zstd-1.5.2/lib/common/error_private.h A src/commonlib/zstd-1.5.2/lib/common/fse.h A src/commonlib/zstd-1.5.2/lib/common/fse_decompress.c A src/commonlib/zstd-1.5.2/lib/common/huf.h A src/commonlib/zstd-1.5.2/lib/common/mem.h A src/commonlib/zstd-1.5.2/lib/common/pool.c A src/commonlib/zstd-1.5.2/lib/common/pool.h A src/commonlib/zstd-1.5.2/lib/common/portability_macros.h A src/commonlib/zstd-1.5.2/lib/common/threading.c A src/commonlib/zstd-1.5.2/lib/common/threading.h A src/commonlib/zstd-1.5.2/lib/common/xxhash.c A src/commonlib/zstd-1.5.2/lib/common/xxhash.h A src/commonlib/zstd-1.5.2/lib/common/xxhash_zstd.c A src/commonlib/zstd-1.5.2/lib/common/zstd_common.c A src/commonlib/zstd-1.5.2/lib/common/zstd_deps.h A src/commonlib/zstd-1.5.2/lib/common/zstd_internal.h A src/commonlib/zstd-1.5.2/lib/common/zstd_trace.h A src/commonlib/zstd-1.5.2/lib/compress/clevels.h A src/commonlib/zstd-1.5.2/lib/compress/fse_compress.c A src/commonlib/zstd-1.5.2/lib/compress/hist.c A src/commonlib/zstd-1.5.2/lib/compress/hist.h A src/commonlib/zstd-1.5.2/lib/compress/huf_compress.c A src/commonlib/zstd-1.5.2/lib/compress/zstd_compress.c A src/commonlib/zstd-1.5.2/lib/compress/zstd_compress_internal.h A src/commonlib/zstd-1.5.2/lib/compress/zstd_compress_literals.c A src/commonlib/zstd-1.5.2/lib/compress/zstd_compress_literals.h A src/commonlib/zstd-1.5.2/lib/compress/zstd_compress_sequences.c A src/commonlib/zstd-1.5.2/lib/compress/zstd_compress_sequences.h A src/commonlib/zstd-1.5.2/lib/compress/zstd_compress_superblock.c A src/commonlib/zstd-1.5.2/lib/compress/zstd_compress_superblock.h A src/commonlib/zstd-1.5.2/lib/compress/zstd_cwksp.h A src/commonlib/zstd-1.5.2/lib/compress/zstd_double_fast.c A src/commonlib/zstd-1.5.2/lib/compress/zstd_double_fast.h A src/commonlib/zstd-1.5.2/lib/compress/zstd_fast.c A src/commonlib/zstd-1.5.2/lib/compress/zstd_fast.h A src/commonlib/zstd-1.5.2/lib/compress/zstd_lazy.c A src/commonlib/zstd-1.5.2/lib/compress/zstd_lazy.h A src/commonlib/zstd-1.5.2/lib/compress/zstd_ldm.c A src/commonlib/zstd-1.5.2/lib/compress/zstd_ldm.h A src/commonlib/zstd-1.5.2/lib/compress/zstd_ldm_geartab.h A src/commonlib/zstd-1.5.2/lib/compress/zstd_opt.c A src/commonlib/zstd-1.5.2/lib/compress/zstd_opt.h A src/commonlib/zstd-1.5.2/lib/compress/zstdmt_compress.c A src/commonlib/zstd-1.5.2/lib/compress/zstdmt_compress.h A src/commonlib/zstd-1.5.2/lib/decompress/huf_decompress.c A src/commonlib/zstd-1.5.2/lib/decompress/huf_decompress_amd64.S A src/commonlib/zstd-1.5.2/lib/decompress/zstd_ddict.c A src/commonlib/zstd-1.5.2/lib/decompress/zstd_ddict.h A src/commonlib/zstd-1.5.2/lib/decompress/zstd_decompress.c A src/commonlib/zstd-1.5.2/lib/decompress/zstd_decompress_block.c A src/commonlib/zstd-1.5.2/lib/decompress/zstd_decompress_block.h A src/commonlib/zstd-1.5.2/lib/decompress/zstd_decompress_internal.h A src/commonlib/zstd-1.5.2/lib/deprecated/zbuff.h A src/commonlib/zstd-1.5.2/lib/deprecated/zbuff_common.c A src/commonlib/zstd-1.5.2/lib/deprecated/zbuff_compress.c A src/commonlib/zstd-1.5.2/lib/deprecated/zbuff_decompress.c A src/commonlib/zstd-1.5.2/lib/dictBuilder/cover.c A src/commonlib/zstd-1.5.2/lib/dictBuilder/cover.h A src/commonlib/zstd-1.5.2/lib/dictBuilder/divsufsort.c A src/commonlib/zstd-1.5.2/lib/dictBuilder/divsufsort.h A src/commonlib/zstd-1.5.2/lib/dictBuilder/fastcover.c A src/commonlib/zstd-1.5.2/lib/dictBuilder/zdict.c A src/commonlib/zstd-1.5.2/lib/dll/example/Makefile A src/commonlib/zstd-1.5.2/lib/dll/example/README.md A src/commonlib/zstd-1.5.2/lib/dll/example/build_package.bat A src/commonlib/zstd-1.5.2/lib/dll/example/fullbench-dll.sln A src/commonlib/zstd-1.5.2/lib/dll/example/fullbench-dll.vcxproj A src/commonlib/zstd-1.5.2/lib/legacy/zstd_legacy.h A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v01.c A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v01.h A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v02.c A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v02.h A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v03.c A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v03.h A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v04.c A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v04.h A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v05.c A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v05.h A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v06.c A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v06.h A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v07.c A src/commonlib/zstd-1.5.2/lib/legacy/zstd_v07.h A src/commonlib/zstd-1.5.2/lib/libzstd.mk A src/commonlib/zstd-1.5.2/lib/libzstd.pc.in A src/commonlib/zstd-1.5.2/lib/module.modulemap A src/commonlib/zstd-1.5.2/lib/zdict.h A src/commonlib/zstd-1.5.2/lib/zstd.h A src/commonlib/zstd-1.5.2/lib/zstd_errors.h M src/lib/cbfs.c M src/lib/selfboot.c M util/cbfstool/Makefile.inc M util/cbfstool/cbfs.h M util/cbfstool/compress.c A util/cbfstool/zstd-1.5.2/lib/.gitignore A util/cbfstool/zstd-1.5.2/lib/BUCK A util/cbfstool/zstd-1.5.2/lib/Makefile A util/cbfstool/zstd-1.5.2/lib/README.md A util/cbfstool/zstd-1.5.2/lib/common/bitstream.h A util/cbfstool/zstd-1.5.2/lib/common/compiler.h A util/cbfstool/zstd-1.5.2/lib/common/cpu.h A util/cbfstool/zstd-1.5.2/lib/common/debug.c A util/cbfstool/zstd-1.5.2/lib/common/debug.h A util/cbfstool/zstd-1.5.2/lib/common/entropy_common.c A util/cbfstool/zstd-1.5.2/lib/common/error_private.c A util/cbfstool/zstd-1.5.2/lib/common/error_private.h A util/cbfstool/zstd-1.5.2/lib/common/fse.h A util/cbfstool/zstd-1.5.2/lib/common/fse_decompress.c A util/cbfstool/zstd-1.5.2/lib/common/huf.h A util/cbfstool/zstd-1.5.2/lib/common/mem.h A util/cbfstool/zstd-1.5.2/lib/common/pool.c A util/cbfstool/zstd-1.5.2/lib/common/pool.h A util/cbfstool/zstd-1.5.2/lib/common/portability_macros.h A util/cbfstool/zstd-1.5.2/lib/common/threading.c A util/cbfstool/zstd-1.5.2/lib/common/threading.h A util/cbfstool/zstd-1.5.2/lib/common/xxhash.h A util/cbfstool/zstd-1.5.2/lib/common/xxhash_zstd.c A util/cbfstool/zstd-1.5.2/lib/common/zstd_common.c A util/cbfstool/zstd-1.5.2/lib/common/zstd_deps.h A util/cbfstool/zstd-1.5.2/lib/common/zstd_internal.h A util/cbfstool/zstd-1.5.2/lib/common/zstd_trace.h A util/cbfstool/zstd-1.5.2/lib/compress/clevels.h A util/cbfstool/zstd-1.5.2/lib/compress/fse_compress.c A util/cbfstool/zstd-1.5.2/lib/compress/hist.c A util/cbfstool/zstd-1.5.2/lib/compress/hist.h A util/cbfstool/zstd-1.5.2/lib/compress/huf_compress.c A util/cbfstool/zstd-1.5.2/lib/compress/zstd_compress.c A util/cbfstool/zstd-1.5.2/lib/compress/zstd_compress_internal.h A util/cbfstool/zstd-1.5.2/lib/compress/zstd_compress_literals.c A util/cbfstool/zstd-1.5.2/lib/compress/zstd_compress_literals.h A util/cbfstool/zstd-1.5.2/lib/compress/zstd_compress_sequences.c A util/cbfstool/zstd-1.5.2/lib/compress/zstd_compress_sequences.h A util/cbfstool/zstd-1.5.2/lib/compress/zstd_compress_superblock.c A util/cbfstool/zstd-1.5.2/lib/compress/zstd_compress_superblock.h A util/cbfstool/zstd-1.5.2/lib/compress/zstd_cwksp.h A util/cbfstool/zstd-1.5.2/lib/compress/zstd_double_fast.c A util/cbfstool/zstd-1.5.2/lib/compress/zstd_double_fast.h A util/cbfstool/zstd-1.5.2/lib/compress/zstd_fast.c A util/cbfstool/zstd-1.5.2/lib/compress/zstd_fast.h A util/cbfstool/zstd-1.5.2/lib/compress/zstd_lazy.c A util/cbfstool/zstd-1.5.2/lib/compress/zstd_lazy.h A util/cbfstool/zstd-1.5.2/lib/compress/zstd_ldm.c A util/cbfstool/zstd-1.5.2/lib/compress/zstd_ldm.h A util/cbfstool/zstd-1.5.2/lib/compress/zstd_ldm_geartab.h A util/cbfstool/zstd-1.5.2/lib/compress/zstd_opt.c A util/cbfstool/zstd-1.5.2/lib/compress/zstd_opt.h A util/cbfstool/zstd-1.5.2/lib/compress/zstdmt_compress.c A util/cbfstool/zstd-1.5.2/lib/compress/zstdmt_compress.h A util/cbfstool/zstd-1.5.2/lib/decompress/huf_decompress.c A util/cbfstool/zstd-1.5.2/lib/decompress/huf_decompress_amd64.S A util/cbfstool/zstd-1.5.2/lib/decompress/zstd_ddict.c A util/cbfstool/zstd-1.5.2/lib/decompress/zstd_ddict.h A util/cbfstool/zstd-1.5.2/lib/decompress/zstd_decompress.c A util/cbfstool/zstd-1.5.2/lib/decompress/zstd_decompress_block.c A util/cbfstool/zstd-1.5.2/lib/decompress/zstd_decompress_block.h A util/cbfstool/zstd-1.5.2/lib/decompress/zstd_decompress_internal.h A util/cbfstool/zstd-1.5.2/lib/deprecated/zbuff.h A util/cbfstool/zstd-1.5.2/lib/deprecated/zbuff_common.c A util/cbfstool/zstd-1.5.2/lib/deprecated/zbuff_compress.c A util/cbfstool/zstd-1.5.2/lib/deprecated/zbuff_decompress.c A util/cbfstool/zstd-1.5.2/lib/dictBuilder/cover.c A util/cbfstool/zstd-1.5.2/lib/dictBuilder/cover.h A util/cbfstool/zstd-1.5.2/lib/dictBuilder/divsufsort.c A util/cbfstool/zstd-1.5.2/lib/dictBuilder/divsufsort.h A util/cbfstool/zstd-1.5.2/lib/dictBuilder/fastcover.c A util/cbfstool/zstd-1.5.2/lib/dictBuilder/zdict.c A util/cbfstool/zstd-1.5.2/lib/dll/example/Makefile A util/cbfstool/zstd-1.5.2/lib/dll/example/README.md A util/cbfstool/zstd-1.5.2/lib/dll/example/build_package.bat A util/cbfstool/zstd-1.5.2/lib/dll/example/fullbench-dll.sln A util/cbfstool/zstd-1.5.2/lib/dll/example/fullbench-dll.vcxproj A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_legacy.h A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v01.c A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v01.h A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v02.c A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v02.h A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v03.c A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v03.h A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v04.c A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v04.h A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v05.c A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v05.h A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v06.c A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v06.h A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v07.c A util/cbfstool/zstd-1.5.2/lib/legacy/zstd_v07.h A util/cbfstool/zstd-1.5.2/lib/libzstd.mk A util/cbfstool/zstd-1.5.2/lib/libzstd.pc.in A util/cbfstool/zstd-1.5.2/lib/module.modulemap A util/cbfstool/zstd-1.5.2/lib/zdict.h A util/cbfstool/zstd-1.5.2/lib/zstd.h A util/cbfstool/zstd-1.5.2/lib/zstd_errors.h 206 files changed, 151,650 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/53/69753/1