mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH] decompress: xz: enable armthumb BCJ filter for Thumb-2 barebox
@ 2023-10-20 18:09 Ahmad Fatoum
  2023-10-23  9:55 ` Sascha Hauer
  0 siblings, 1 reply; 2+ messages in thread
From: Ahmad Fatoum @ 2023-10-20 18:09 UTC (permalink / raw)
  To: barebox; +Cc: Ahmad Fatoum

The XZ decompressor in barebox has BCJ filter support for THUMB, but
like Linux, it's unused and instead the ARM BCJ filter is used.

Fixing that lets us save a few kilobytes, which is especially useful for
legacy configuration that fit a whole barebox into limited on-chip SRAM
(and not only the prebootloader). For example, with this patch applied
barebox-am33xx-beaglebone-mlo.img is shrinked 3K from 109236 to 106028 bytes.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 lib/decompress_unxz.c | 2 ++
 scripts/xz_wrap.sh    | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/lib/decompress_unxz.c b/lib/decompress_unxz.c
index 132ab4a239b3..ad6a5f20ba28 100644
--- a/lib/decompress_unxz.c
+++ b/lib/decompress_unxz.c
@@ -133,6 +133,8 @@
 #ifdef CONFIG_ARM
 #	ifdef CONFIG_CPU_64
 #		define XZ_DEC_ARM64
+#	elif defined CONFIG_THUMB2_BAREBOX
+#		define XZ_DEC_ARMTHUMB
 #	else
 #		define XZ_DEC_ARM
 #	endif
diff --git a/scripts/xz_wrap.sh b/scripts/xz_wrap.sh
index 5b5f3adcff6d..a6373a748168 100755
--- a/scripts/xz_wrap.sh
+++ b/scripts/xz_wrap.sh
@@ -20,6 +20,10 @@ case $SRCARCH in
 	sparc)          BCJ=--sparc ;;
 esac
 
+if grep -q '^CONFIG_THUMB2_BAREBOX=y$' include/config/auto.conf; then
+	BCJ=--armthumb
+fi
+
 # clear BCJ filter if unsupported
 xz -H | grep -q -- $BCJ || BCJ=
 
-- 
2.39.2




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-10-23  9:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-20 18:09 [PATCH] decompress: xz: enable armthumb BCJ filter for Thumb-2 barebox Ahmad Fatoum
2023-10-23  9:55 ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox