summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2024-12-12 16:35:47 -0600
committerTom Rini <[email protected]>2024-12-12 16:35:47 -0600
commit1fdf53ace13f745fe8ad4d2d4e79eed98088d555 (patch)
tree94f48a0eb15db6ce3da3953ae4e6d98623d6edae /lib
parente5aef1bbf11412eebd4c242b46adff5301353c30 (diff)
parentf0315babfb43c6d1f5d4ff0ea7554ec2c27bf7b1 (diff)
Merge patch series "vbe: Series part E"
Simon Glass <[email protected]> says: This includes various patches towards implementing the VBE abrec bootmeth in U-Boot. It mostly focuses on SPL tweaks and adjusting what fatures are available in VPL. Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'lib')
-rw-r--r--lib/Kconfig53
-rw-r--r--lib/Makefile12
-rw-r--r--lib/crc8.c6
3 files changed, 65 insertions, 6 deletions
diff --git a/lib/Kconfig b/lib/Kconfig
index 0b089814d14..8f1a96d98c4 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -728,6 +728,24 @@ config SPL_CRC8
checksum with feedback to produce an 8-bit result. The code is small
and it does not require a lookup table (unlike CRC32).
+config TPL_CRC8
+ bool "Support CRC8 in TPL"
+ depends on TPL
+ help
+ Enables CRC8 support in TPL. This is not normally required. CRC8 is
+ a simple and fast checksumming algorithm which does a bytewise
+ checksum with feedback to produce an 8-bit result. The code is small
+ and it does not require a lookup table (unlike CRC32).
+
+config VPL_CRC8
+ bool "Support CRC8 in VPL"
+ depends on VPL
+ help
+ Enables CRC8 support in VPL. This is not normally required. CRC8 is
+ a simple and fast checksumming algorithm which does a bytewise
+ checksum with feedback to produce an 8-bit result. The code is small
+ and it does not require a lookup table (unlike CRC32).
+
config SPL_CRC16
bool "Support CRC16 in SPL"
depends on SPL
@@ -841,12 +859,36 @@ config SPL_LZ4
fast compression and decompression speed. It belongs to the LZ77
family of byte-oriented compression schemes.
+config TPL_LZ4
+ bool "Enable LZ4 decompression support in TPL"
+ depends on TPL
+ help
+ This enables support for the LZ4 decompression algorithm in TPL. LZ4
+ is a lossless data compression algorithm that is focused on
+ fast compression and decompression speed. It belongs to the LZ77
+ family of byte-oriented compression schemes.
+
+config VPL_LZ4
+ bool "Enable LZ4 decompression support in VPL"
+ depends on VPL
+ help
+ This enables support for the LZ4 decompression algorithm in VPL. LZ4
+ is a lossless data compression algorithm that is focused on
+ fast compression and decompression speed. It belongs to the LZ77
+ family of byte-oriented compression schemes.
+
config SPL_LZMA
bool "Enable LZMA decompression support for SPL build"
depends on SPL
help
This enables support for LZMA compression algorithm for SPL boot.
+config TPL_LZMA
+ bool "Enable LZMA decompression support for TPL build"
+ depends on TPL
+ help
+ This enables support for LZMA compression algorithm for TPL boot.
+
config VPL_LZMA
bool "Enable LZMA decompression support for VPL build"
default y if LZMA
@@ -865,11 +907,22 @@ config SPL_GZIP
help
This enables support for the GZIP compression algorithm for SPL boot.
+config TPL_GZIP
+ bool "Enable gzip decompression support for SPL build"
+ select TPL_ZLIB
+ help
+ This enables support for the GZIP compression algorithm for TPL
+
config SPL_ZLIB
bool
help
This enables compression lib for SPL boot.
+config TPL_ZLIB
+ bool
+ help
+ This enables compression lib for TPL
+
config SPL_ZSTD
bool "Enable Zstandard decompression support in SPL"
depends on SPL
diff --git a/lib/Makefile b/lib/Makefile
index d24ed629732..5cb3278d2ef 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -83,12 +83,12 @@ obj-$(CONFIG_$(XPL_)SHA512_LEGACY) += sha512.o
obj-$(CONFIG_CRYPT_PW) += crypt/
obj-$(CONFIG_$(XPL_)ASN1_DECODER_LEGACY) += asn1_decoder.o
-obj-$(CONFIG_$(XPL_)ZLIB) += zlib/
-obj-$(CONFIG_$(XPL_)ZSTD) += zstd/
-obj-$(CONFIG_$(XPL_)GZIP) += gunzip.o
-obj-$(CONFIG_$(XPL_)LZO) += lzo/
-obj-$(CONFIG_$(XPL_)LZMA) += lzma/
-obj-$(CONFIG_$(XPL_)LZ4) += lz4_wrapper.o
+obj-$(CONFIG_$(PHASE_)ZLIB) += zlib/
+obj-$(CONFIG_$(PHASE_)ZSTD) += zstd/
+obj-$(CONFIG_$(PHASE_)GZIP) += gunzip.o
+obj-$(CONFIG_$(PHASE_)LZO) += lzo/
+obj-$(CONFIG_$(PHASE_)LZMA) += lzma/
+obj-$(CONFIG_$(PHASE_)LZ4) += lz4_wrapper.o
obj-$(CONFIG_$(XPL_)LIB_RATIONAL) += rational.o
diff --git a/lib/crc8.c b/lib/crc8.c
index 20d46d16147..811e19917b4 100644
--- a/lib/crc8.c
+++ b/lib/crc8.c
@@ -32,3 +32,9 @@ unsigned int crc8(unsigned int crc, const unsigned char *vptr, int len)
return crc;
}
+
+void crc8_wd_buf(const unsigned char *input, unsigned int len,
+ unsigned char output[1], unsigned int chunk_sz)
+{
+ *output = crc8(0, input, len);
+}