[PATCH v2 1/4] tools: Separate image types which depend on OpenSSL
Samuel Holland
samuel at sholland.org
Sun Aug 22 19:32:40 CEST 2021
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 at 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 at 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
>>
More information about the U-Boot
mailing list