[PATCH 2/3] scripts: gen-dtb-s: fallback to LZ4 if lzop is unavailable
Ahmad Fatoum
a.fatoum at pengutronix.de
Mon Jul 11 06:15:55 PDT 2022
lzop hasn't seen any activity since 2017 and has been recently removed
from OpenEmbedded, which is unfortunate as we unconditonally use LZO for
compressing device trees that are referenced via __dtb_z_.
As a fallback, use LZ4 as compression if lzop is not available.
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
common/Kconfig | 7 ++++++-
scripts/gen-dtb-s | 6 ++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/common/Kconfig b/common/Kconfig
index 076fe455f8ac..f1f0b4fab91c 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-only
+source "scripts/Kconfig.include"
source "common/boards/Kconfig"
config GREGORIAN_CALENDER
@@ -46,10 +47,14 @@ config USE_COMPRESSED_DTB
depends on ARM || RISCV
select UNCOMPRESS
select LZO_DECOMPRESS if DTB_COMPRESSION = "lzo"
+ select LZ4_DECOMPRESS if DTB_COMPRESSION = "lz4"
config DTB_COMPRESSION
string
- default "lzo"
+ default "none" if !USE_COMPRESSED_DTB
+ default "lzo" if $(success,lzop -V)
+ default "lz4" if $(success,lz4c -V)
+ default "none"
config FILETYPE
bool
diff --git a/scripts/gen-dtb-s b/scripts/gen-dtb-s
index da0b593da4eb..1d70f260f677 100755
--- a/scripts/gen-dtb-s
+++ b/scripts/gen-dtb-s
@@ -59,6 +59,12 @@ case $compression in
lzo)
lzop -f -9 $dtb -o $dtb.$compression
;;
+ lz4)
+ lz4c -fql $dtb $dtb.$compression
+ # LZ4 decompressor strips away last 4 bytes, but doesn't
+ # consume them, so increase size accordingly
+ printf '\0\0\0\0' >>$dtb.$compression
+ ;;
*)
echo Unsupported compression algorithm: $compression >&2
exit 1
--
2.30.2
More information about the barebox
mailing list