diff mbox series

[v2,1/4] tools: Separate image types which depend on OpenSSL

Message ID 20210822044649.13585-2-samuel@sholland.org
State Superseded
Delegated to: Andre Przywara
Headers show
Series sunxi: TOC0 image type support | expand

Commit Message

Samuel Holland Aug. 22, 2021, 4:46 a.m. UTC
Some image types always depend on OpenSSL, so they can only be included
in mkimage when TOOLS_LIBCRYPTO is selected. Instead of using arbitrary
preprocessor definitions, conditionally link the files.

When building for platforms which use those image types, automatically
select TOOLS_LIBCRYPTO, it is required for the build to complete.

Signed-off-by: Samuel Holland <samuel@sholland.org>
---

Changes in v2:
 - Refactored the first patch on top of TOOLS_LIBCRYPTO

 arch/arm/mach-imx/mxs/Kconfig |  2 ++
 arch/arm/mach-mvebu/Kconfig   |  1 +
 scripts/config_whitelist.txt  |  1 -
 tools/Makefile                | 19 +++++--------------
 tools/mxsimage.c              |  3 ---
 5 files changed, 8 insertions(+), 18 deletions(-)

Comments

Pali Rohár Aug. 22, 2021, 9:58 a.m. UTC | #1
Hello!

On Saturday 21 August 2021 23:46:45 Samuel Holland wrote:
> Some image types always depend on OpenSSL, so they can only be included
> in mkimage when TOOLS_LIBCRYPTO is selected. Instead of using arbitrary
> preprocessor definitions, conditionally link the files.
> 
> When building for platforms which use those image types, automatically
> select TOOLS_LIBCRYPTO, it is required for the build to complete.
> 
> Signed-off-by: Samuel Holland <samuel@sholland.org>
> ---
> 
> Changes in v2:
>  - Refactored the first patch on top of TOOLS_LIBCRYPTO
> 
>  arch/arm/mach-imx/mxs/Kconfig |  2 ++
>  arch/arm/mach-mvebu/Kconfig   |  1 +
>  scripts/config_whitelist.txt  |  1 -
>  tools/Makefile                | 19 +++++--------------
>  tools/mxsimage.c              |  3 ---
>  5 files changed, 8 insertions(+), 18 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/mxs/Kconfig b/arch/arm/mach-imx/mxs/Kconfig
> index 9f48ffda414..24d452942a5 100644
> --- a/arch/arm/mach-imx/mxs/Kconfig
> +++ b/arch/arm/mach-imx/mxs/Kconfig
> @@ -3,6 +3,7 @@ if ARCH_MX23
>  config MX23
>  	bool
>  	default y
> +	select TOOLS_LIBCRYPTO
>  
>  choice
>  	prompt "MX23 board select"
> @@ -34,6 +35,7 @@ if ARCH_MX28
>  config MX28
>  	bool
>  	default y
> +	select TOOLS_LIBCRYPTO
>  
>  choice
>  	prompt "MX28 board select"
> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> index 89737a37ad9..c02521c71bc 100644
> --- a/arch/arm/mach-mvebu/Kconfig
> +++ b/arch/arm/mach-mvebu/Kconfig
> @@ -29,6 +29,7 @@ config ARMADA_38X
>  	bool
>  	select ARMADA_32BIT
>  	select HAVE_MVEBU_EFUSE
> +	select TOOLS_LIBCRYPTO

kwbimage format is used also by A375 and AXP platform. So rather put
this select into ARMADA_32BIT section.

Moreover kwbimage format is used also by orion and kirkwood platforms.
So this dependency needs to be enabled on more places.

>  config ARMADA_38X_HS_IMPEDANCE_THRESH
>  	hex  "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> index 2d70bf5da7c..5caaad0c3dc 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -1000,7 +1000,6 @@ CONFIG_MXC_UART_BASE
>  CONFIG_MXC_USB_FLAGS
>  CONFIG_MXC_USB_PORT
>  CONFIG_MXC_USB_PORTSC
> -CONFIG_MXS
>  CONFIG_MXS_AUART
>  CONFIG_MXS_AUART_BASE
>  CONFIG_MXS_OCOTP
> diff --git a/tools/Makefile b/tools/Makefile
> index 4a86321f646..ad0e9cf9490 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -94,9 +94,11 @@ ECDSA_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/ecdsa/, ecdsa-libcrypto.
>  AES_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/aes/, \
>  					aes-encrypt.o aes-decrypt.o)
>  
> -# Cryptographic helpers that depend on openssl/libcrypto
> -LIBCRYPTO_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/, \
> -					fdt-libcrypto.o)
> +# Cryptographic helpers and image types that depend on openssl/libcrypto
> +LIBCRYPTO_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := \
> +			lib/fdt-libcrypto.o \
> +			kwbimage.o \
> +			mxsimage.o
>  
>  ROCKCHIP_OBS = lib/rc4.o rkcommon.o rkimage.o rksd.o rkspi.o
>  
> @@ -117,10 +119,8 @@ dumpimage-mkimage-objs := aisimage.o \
>  			imximage.o \
>  			imx8image.o \
>  			imx8mimage.o \
> -			kwbimage.o \
>  			lib/md5.o \
>  			lpc32xximage.o \
> -			mxsimage.o \
>  			omapimage.o \
>  			os_support.o \
>  			pblimage.o \
> @@ -155,22 +155,13 @@ fit_info-objs   := $(dumpimage-mkimage-objs) fit_info.o
>  fit_check_sign-objs   := $(dumpimage-mkimage-objs) fit_check_sign.o
>  file2include-objs := file2include.o
>  
> -ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_TOOLS_LIBCRYPTO),)
> -# Add CONFIG_MXS into host CFLAGS, so we can check whether or not register
> -# the mxsimage support within tools/mxsimage.c .
> -HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
> -endif
> -
>  ifdef CONFIG_TOOLS_LIBCRYPTO
>  # This affects include/image.h, but including the board config file
>  # is tricky, so manually define this options here.
>  HOST_EXTRACFLAGS	+= -DCONFIG_FIT_SIGNATURE
>  HOST_EXTRACFLAGS	+= -DCONFIG_FIT_SIGNATURE_MAX_SIZE=0xffffffff
>  HOST_EXTRACFLAGS	+= -DCONFIG_FIT_CIPHER
> -endif
>  
> -# MXSImage needs LibSSL
> -ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_ARMADA_38X)$(CONFIG_TOOLS_LIBCRYPTO),)
>  HOSTCFLAGS_kwbimage.o += \
>  	$(shell pkg-config --cflags libssl libcrypto 2> /dev/null || echo "")
>  HOSTLDLIBS_mkimage += \
> diff --git a/tools/mxsimage.c b/tools/mxsimage.c
> index 002f4b525aa..2bfbb421eb6 100644
> --- a/tools/mxsimage.c
> +++ b/tools/mxsimage.c
> @@ -5,8 +5,6 @@
>   * Copyright (C) 2012-2013 Marek Vasut <marex@denx.de>
>   */
>  
> -#ifdef CONFIG_MXS
> -
>  #include <errno.h>
>  #include <fcntl.h>
>  #include <stdio.h>
> @@ -2363,4 +2361,3 @@ U_BOOT_IMAGE_TYPE(
>  	NULL,
>  	mxsimage_generate
>  );
> -#endif
> -- 
> 2.31.1
>
Samuel Holland Aug. 22, 2021, 5:32 p.m. UTC | #2
On 8/22/21 4:58 AM, Pali Rohár wrote:
> Hello!
> 
> On Saturday 21 August 2021 23:46:45 Samuel Holland wrote:
>> Some image types always depend on OpenSSL, so they can only be included
>> in mkimage when TOOLS_LIBCRYPTO is selected. Instead of using arbitrary
>> preprocessor definitions, conditionally link the files.
>>
>> When building for platforms which use those image types, automatically
>> select TOOLS_LIBCRYPTO, it is required for the build to complete.
>>
>> Signed-off-by: Samuel Holland <samuel@sholland.org>
>> ---
>>
>> Changes in v2:
>>  - Refactored the first patch on top of TOOLS_LIBCRYPTO
>>
>>  arch/arm/mach-imx/mxs/Kconfig |  2 ++
>>  arch/arm/mach-mvebu/Kconfig   |  1 +
>>  scripts/config_whitelist.txt  |  1 -
>>  tools/Makefile                | 19 +++++--------------
>>  tools/mxsimage.c              |  3 ---
>>  5 files changed, 8 insertions(+), 18 deletions(-)
>>
>> diff --git a/arch/arm/mach-imx/mxs/Kconfig b/arch/arm/mach-imx/mxs/Kconfig
>> index 9f48ffda414..24d452942a5 100644
>> --- a/arch/arm/mach-imx/mxs/Kconfig
>> +++ b/arch/arm/mach-imx/mxs/Kconfig
>> @@ -3,6 +3,7 @@ if ARCH_MX23
>>  config MX23
>>  	bool
>>  	default y
>> +	select TOOLS_LIBCRYPTO
>>  
>>  choice
>>  	prompt "MX23 board select"
>> @@ -34,6 +35,7 @@ if ARCH_MX28
>>  config MX28
>>  	bool
>>  	default y
>> +	select TOOLS_LIBCRYPTO
>>  
>>  choice
>>  	prompt "MX28 board select"
>> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
>> index 89737a37ad9..c02521c71bc 100644
>> --- a/arch/arm/mach-mvebu/Kconfig
>> +++ b/arch/arm/mach-mvebu/Kconfig
>> @@ -29,6 +29,7 @@ config ARMADA_38X
>>  	bool
>>  	select ARMADA_32BIT
>>  	select HAVE_MVEBU_EFUSE
>> +	select TOOLS_LIBCRYPTO
> 
> kwbimage format is used also by A375 and AXP platform. So rather put
> this select into ARMADA_32BIT section.

I can do this.

> Moreover kwbimage format is used also by orion and kirkwood platforms.
> So this dependency needs to be enabled on more places.

Since you know where they should go, would you be willing to send a
patch adding the additional "select"s?

Side note: TOOLS_LIBCRYPTO=y is the default, so nobody seems to have
noticed, but actually the build with TOOLS_LIBCRYPTO=n is broken since
commit b4f3cc2c42d9 ("tools: kwbimage: Do not hide usage of secure
header under CONFIG_ARMADA_38X"). So I will add a Fixes: tag in v3.

Regards,
Samuel

>>  config ARMADA_38X_HS_IMPEDANCE_THRESH
>>  	hex  "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
>> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
>> index 2d70bf5da7c..5caaad0c3dc 100644
>> --- a/scripts/config_whitelist.txt
>> +++ b/scripts/config_whitelist.txt
>> @@ -1000,7 +1000,6 @@ CONFIG_MXC_UART_BASE
>>  CONFIG_MXC_USB_FLAGS
>>  CONFIG_MXC_USB_PORT
>>  CONFIG_MXC_USB_PORTSC
>> -CONFIG_MXS
>>  CONFIG_MXS_AUART
>>  CONFIG_MXS_AUART_BASE
>>  CONFIG_MXS_OCOTP
>> diff --git a/tools/Makefile b/tools/Makefile
>> index 4a86321f646..ad0e9cf9490 100644
>> --- a/tools/Makefile
>> +++ b/tools/Makefile
>> @@ -94,9 +94,11 @@ ECDSA_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/ecdsa/, ecdsa-libcrypto.
>>  AES_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/aes/, \
>>  					aes-encrypt.o aes-decrypt.o)
>>  
>> -# Cryptographic helpers that depend on openssl/libcrypto
>> -LIBCRYPTO_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/, \
>> -					fdt-libcrypto.o)
>> +# Cryptographic helpers and image types that depend on openssl/libcrypto
>> +LIBCRYPTO_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := \
>> +			lib/fdt-libcrypto.o \
>> +			kwbimage.o \
>> +			mxsimage.o
>>  
>>  ROCKCHIP_OBS = lib/rc4.o rkcommon.o rkimage.o rksd.o rkspi.o
>>  
>> @@ -117,10 +119,8 @@ dumpimage-mkimage-objs := aisimage.o \
>>  			imximage.o \
>>  			imx8image.o \
>>  			imx8mimage.o \
>> -			kwbimage.o \
>>  			lib/md5.o \
>>  			lpc32xximage.o \
>> -			mxsimage.o \
>>  			omapimage.o \
>>  			os_support.o \
>>  			pblimage.o \
>> @@ -155,22 +155,13 @@ fit_info-objs   := $(dumpimage-mkimage-objs) fit_info.o
>>  fit_check_sign-objs   := $(dumpimage-mkimage-objs) fit_check_sign.o
>>  file2include-objs := file2include.o
>>  
>> -ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_TOOLS_LIBCRYPTO),)
>> -# Add CONFIG_MXS into host CFLAGS, so we can check whether or not register
>> -# the mxsimage support within tools/mxsimage.c .
>> -HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
>> -endif
>> -
>>  ifdef CONFIG_TOOLS_LIBCRYPTO
>>  # This affects include/image.h, but including the board config file
>>  # is tricky, so manually define this options here.
>>  HOST_EXTRACFLAGS	+= -DCONFIG_FIT_SIGNATURE
>>  HOST_EXTRACFLAGS	+= -DCONFIG_FIT_SIGNATURE_MAX_SIZE=0xffffffff
>>  HOST_EXTRACFLAGS	+= -DCONFIG_FIT_CIPHER
>> -endif
>>  
>> -# MXSImage needs LibSSL
>> -ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_ARMADA_38X)$(CONFIG_TOOLS_LIBCRYPTO),)
>>  HOSTCFLAGS_kwbimage.o += \
>>  	$(shell pkg-config --cflags libssl libcrypto 2> /dev/null || echo "")
>>  HOSTLDLIBS_mkimage += \
>> diff --git a/tools/mxsimage.c b/tools/mxsimage.c
>> index 002f4b525aa..2bfbb421eb6 100644
>> --- a/tools/mxsimage.c
>> +++ b/tools/mxsimage.c
>> @@ -5,8 +5,6 @@
>>   * Copyright (C) 2012-2013 Marek Vasut <marex@denx.de>
>>   */
>>  
>> -#ifdef CONFIG_MXS
>> -
>>  #include <errno.h>
>>  #include <fcntl.h>
>>  #include <stdio.h>
>> @@ -2363,4 +2361,3 @@ U_BOOT_IMAGE_TYPE(
>>  	NULL,
>>  	mxsimage_generate
>>  );
>> -#endif
>> -- 
>> 2.31.1
>>
Andre Przywara Aug. 24, 2021, 12:51 a.m. UTC | #3
On Sun, 22 Aug 2021 12:32:40 -0500
Samuel Holland <samuel@sholland.org> wrote:

Hi Samuel,

> On 8/22/21 4:58 AM, Pali Rohár wrote:
> > Hello!
> > 
> > On Saturday 21 August 2021 23:46:45 Samuel Holland wrote:  
> >> Some image types always depend on OpenSSL, so they can only be included
> >> in mkimage when TOOLS_LIBCRYPTO is selected. Instead of using arbitrary
> >> preprocessor definitions, conditionally link the files.
> >>
> >> When building for platforms which use those image types, automatically
> >> select TOOLS_LIBCRYPTO, it is required for the build to complete.
> >>
> >> Signed-off-by: Samuel Holland <samuel@sholland.org>
> >> ---
> >>
> >> Changes in v2:
> >>  - Refactored the first patch on top of TOOLS_LIBCRYPTO
> >>
> >>  arch/arm/mach-imx/mxs/Kconfig |  2 ++
> >>  arch/arm/mach-mvebu/Kconfig   |  1 +
> >>  scripts/config_whitelist.txt  |  1 -
> >>  tools/Makefile                | 19 +++++--------------
> >>  tools/mxsimage.c              |  3 ---
> >>  5 files changed, 8 insertions(+), 18 deletions(-)
> >>
> >> diff --git a/arch/arm/mach-imx/mxs/Kconfig b/arch/arm/mach-imx/mxs/Kconfig
> >> index 9f48ffda414..24d452942a5 100644
> >> --- a/arch/arm/mach-imx/mxs/Kconfig
> >> +++ b/arch/arm/mach-imx/mxs/Kconfig
> >> @@ -3,6 +3,7 @@ if ARCH_MX23
> >>  config MX23
> >>  	bool
> >>  	default y
> >> +	select TOOLS_LIBCRYPTO
> >>  
> >>  choice
> >>  	prompt "MX23 board select"
> >> @@ -34,6 +35,7 @@ if ARCH_MX28
> >>  config MX28
> >>  	bool
> >>  	default y
> >> +	select TOOLS_LIBCRYPTO
> >>  
> >>  choice
> >>  	prompt "MX28 board select"
> >> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> >> index 89737a37ad9..c02521c71bc 100644
> >> --- a/arch/arm/mach-mvebu/Kconfig
> >> +++ b/arch/arm/mach-mvebu/Kconfig
> >> @@ -29,6 +29,7 @@ config ARMADA_38X
> >>  	bool
> >>  	select ARMADA_32BIT
> >>  	select HAVE_MVEBU_EFUSE
> >> +	select TOOLS_LIBCRYPTO  
> > 
> > kwbimage format is used also by A375 and AXP platform. So rather put
> > this select into ARMADA_32BIT section.  
> 
> I can do this.
> 
> > Moreover kwbimage format is used also by orion and kirkwood platforms.
> > So this dependency needs to be enabled on more places.  
> 
> Since you know where they should go, would you be willing to send a
> patch adding the additional "select"s?
> 
> Side note: TOOLS_LIBCRYPTO=y is the default, so nobody seems to have
> noticed, but actually the build with TOOLS_LIBCRYPTO=n is broken since
> commit b4f3cc2c42d9 ("tools: kwbimage: Do not hide usage of secure
> header under CONFIG_ARMADA_38X"). So I will add a Fixes: tag in v3.

I did notice, because my host doesn't have a compatible libopenssl.
Every build fails, because kwbimage.o was unconditionally included.
My previous workaround was to disable TOOLS_LIBCRYPTO, but this didn't
help after the patch you mentioned. So your solution is a quite nice
fix, and I can stop looking for a workaround.

However this somewhat breaks again somewhat needlessly with 4/4 (when
compiling for any SUNXI board, which don't really need TOC0), but this
can be easily avoided.

Cheers,
Andre

> 
> Regards,
> Samuel
> 
> >>  config ARMADA_38X_HS_IMPEDANCE_THRESH
> >>  	hex  "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
> >> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> >> index 2d70bf5da7c..5caaad0c3dc 100644
> >> --- a/scripts/config_whitelist.txt
> >> +++ b/scripts/config_whitelist.txt
> >> @@ -1000,7 +1000,6 @@ CONFIG_MXC_UART_BASE
> >>  CONFIG_MXC_USB_FLAGS
> >>  CONFIG_MXC_USB_PORT
> >>  CONFIG_MXC_USB_PORTSC
> >> -CONFIG_MXS
> >>  CONFIG_MXS_AUART
> >>  CONFIG_MXS_AUART_BASE
> >>  CONFIG_MXS_OCOTP
> >> diff --git a/tools/Makefile b/tools/Makefile
> >> index 4a86321f646..ad0e9cf9490 100644
> >> --- a/tools/Makefile
> >> +++ b/tools/Makefile
> >> @@ -94,9 +94,11 @@ ECDSA_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/ecdsa/, ecdsa-libcrypto.
> >>  AES_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/aes/, \
> >>  					aes-encrypt.o aes-decrypt.o)
> >>  
> >> -# Cryptographic helpers that depend on openssl/libcrypto
> >> -LIBCRYPTO_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/, \
> >> -					fdt-libcrypto.o)
> >> +# Cryptographic helpers and image types that depend on openssl/libcrypto
> >> +LIBCRYPTO_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := \
> >> +			lib/fdt-libcrypto.o \
> >> +			kwbimage.o \
> >> +			mxsimage.o
> >>  
> >>  ROCKCHIP_OBS = lib/rc4.o rkcommon.o rkimage.o rksd.o rkspi.o
> >>  
> >> @@ -117,10 +119,8 @@ dumpimage-mkimage-objs := aisimage.o \
> >>  			imximage.o \
> >>  			imx8image.o \
> >>  			imx8mimage.o \
> >> -			kwbimage.o \
> >>  			lib/md5.o \
> >>  			lpc32xximage.o \
> >> -			mxsimage.o \
> >>  			omapimage.o \
> >>  			os_support.o \
> >>  			pblimage.o \
> >> @@ -155,22 +155,13 @@ fit_info-objs   := $(dumpimage-mkimage-objs) fit_info.o
> >>  fit_check_sign-objs   := $(dumpimage-mkimage-objs) fit_check_sign.o
> >>  file2include-objs := file2include.o
> >>  
> >> -ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_TOOLS_LIBCRYPTO),)
> >> -# Add CONFIG_MXS into host CFLAGS, so we can check whether or not register
> >> -# the mxsimage support within tools/mxsimage.c .
> >> -HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
> >> -endif
> >> -
> >>  ifdef CONFIG_TOOLS_LIBCRYPTO
> >>  # This affects include/image.h, but including the board config file
> >>  # is tricky, so manually define this options here.
> >>  HOST_EXTRACFLAGS	+= -DCONFIG_FIT_SIGNATURE
> >>  HOST_EXTRACFLAGS	+= -DCONFIG_FIT_SIGNATURE_MAX_SIZE=0xffffffff
> >>  HOST_EXTRACFLAGS	+= -DCONFIG_FIT_CIPHER
> >> -endif
> >>  
> >> -# MXSImage needs LibSSL
> >> -ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_ARMADA_38X)$(CONFIG_TOOLS_LIBCRYPTO),)
> >>  HOSTCFLAGS_kwbimage.o += \
> >>  	$(shell pkg-config --cflags libssl libcrypto 2> /dev/null || echo "")
> >>  HOSTLDLIBS_mkimage += \
> >> diff --git a/tools/mxsimage.c b/tools/mxsimage.c
> >> index 002f4b525aa..2bfbb421eb6 100644
> >> --- a/tools/mxsimage.c
> >> +++ b/tools/mxsimage.c
> >> @@ -5,8 +5,6 @@
> >>   * Copyright (C) 2012-2013 Marek Vasut <marex@denx.de>
> >>   */
> >>  
> >> -#ifdef CONFIG_MXS
> >> -
> >>  #include <errno.h>
> >>  #include <fcntl.h>
> >>  #include <stdio.h>
> >> @@ -2363,4 +2361,3 @@ U_BOOT_IMAGE_TYPE(
> >>  	NULL,
> >>  	mxsimage_generate
> >>  );
> >> -#endif
> >> -- 
> >> 2.31.1
> >>  
>
diff mbox series

Patch

diff --git a/arch/arm/mach-imx/mxs/Kconfig b/arch/arm/mach-imx/mxs/Kconfig
index 9f48ffda414..24d452942a5 100644
--- a/arch/arm/mach-imx/mxs/Kconfig
+++ b/arch/arm/mach-imx/mxs/Kconfig
@@ -3,6 +3,7 @@  if ARCH_MX23
 config MX23
 	bool
 	default y
+	select TOOLS_LIBCRYPTO
 
 choice
 	prompt "MX23 board select"
@@ -34,6 +35,7 @@  if ARCH_MX28
 config MX28
 	bool
 	default y
+	select TOOLS_LIBCRYPTO
 
 choice
 	prompt "MX28 board select"
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 89737a37ad9..c02521c71bc 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -29,6 +29,7 @@  config ARMADA_38X
 	bool
 	select ARMADA_32BIT
 	select HAVE_MVEBU_EFUSE
+	select TOOLS_LIBCRYPTO
 
 config ARMADA_38X_HS_IMPEDANCE_THRESH
 	hex  "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 2d70bf5da7c..5caaad0c3dc 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1000,7 +1000,6 @@  CONFIG_MXC_UART_BASE
 CONFIG_MXC_USB_FLAGS
 CONFIG_MXC_USB_PORT
 CONFIG_MXC_USB_PORTSC
-CONFIG_MXS
 CONFIG_MXS_AUART
 CONFIG_MXS_AUART_BASE
 CONFIG_MXS_OCOTP
diff --git a/tools/Makefile b/tools/Makefile
index 4a86321f646..ad0e9cf9490 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -94,9 +94,11 @@  ECDSA_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/ecdsa/, ecdsa-libcrypto.
 AES_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/aes/, \
 					aes-encrypt.o aes-decrypt.o)
 
-# Cryptographic helpers that depend on openssl/libcrypto
-LIBCRYPTO_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/, \
-					fdt-libcrypto.o)
+# Cryptographic helpers and image types that depend on openssl/libcrypto
+LIBCRYPTO_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := \
+			lib/fdt-libcrypto.o \
+			kwbimage.o \
+			mxsimage.o
 
 ROCKCHIP_OBS = lib/rc4.o rkcommon.o rkimage.o rksd.o rkspi.o
 
@@ -117,10 +119,8 @@  dumpimage-mkimage-objs := aisimage.o \
 			imximage.o \
 			imx8image.o \
 			imx8mimage.o \
-			kwbimage.o \
 			lib/md5.o \
 			lpc32xximage.o \
-			mxsimage.o \
 			omapimage.o \
 			os_support.o \
 			pblimage.o \
@@ -155,22 +155,13 @@  fit_info-objs   := $(dumpimage-mkimage-objs) fit_info.o
 fit_check_sign-objs   := $(dumpimage-mkimage-objs) fit_check_sign.o
 file2include-objs := file2include.o
 
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_TOOLS_LIBCRYPTO),)
-# Add CONFIG_MXS into host CFLAGS, so we can check whether or not register
-# the mxsimage support within tools/mxsimage.c .
-HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
-endif
-
 ifdef CONFIG_TOOLS_LIBCRYPTO
 # This affects include/image.h, but including the board config file
 # is tricky, so manually define this options here.
 HOST_EXTRACFLAGS	+= -DCONFIG_FIT_SIGNATURE
 HOST_EXTRACFLAGS	+= -DCONFIG_FIT_SIGNATURE_MAX_SIZE=0xffffffff
 HOST_EXTRACFLAGS	+= -DCONFIG_FIT_CIPHER
-endif
 
-# MXSImage needs LibSSL
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_ARMADA_38X)$(CONFIG_TOOLS_LIBCRYPTO),)
 HOSTCFLAGS_kwbimage.o += \
 	$(shell pkg-config --cflags libssl libcrypto 2> /dev/null || echo "")
 HOSTLDLIBS_mkimage += \
diff --git a/tools/mxsimage.c b/tools/mxsimage.c
index 002f4b525aa..2bfbb421eb6 100644
--- a/tools/mxsimage.c
+++ b/tools/mxsimage.c
@@ -5,8 +5,6 @@ 
  * Copyright (C) 2012-2013 Marek Vasut <marex@denx.de>
  */
 
-#ifdef CONFIG_MXS
-
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
@@ -2363,4 +2361,3 @@  U_BOOT_IMAGE_TYPE(
 	NULL,
 	mxsimage_generate
 );
-#endif