[PATCH] decompress: xz: enable armthumb BCJ filter for Thumb-2 barebox

Sascha Hauer sha at pengutronix.de
Mon Oct 23 02:55:28 PDT 2023


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 at 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 |



More information about the barebox mailing list