* [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
* Re: [PATCH] decompress: xz: enable armthumb BCJ filter for Thumb-2 barebox
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
0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2023-10-23 9:55 UTC (permalink / raw)
To: Ahmad Fatoum; +Cc: barebox
On Fri, Oct 20, 2023 at 08:09:12PM +0200, Ahmad Fatoum wrote:
> 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(+)
Applied, thanks
Sascha
>
> 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
>
>
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ 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