From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8E115C433F5 for ; Fri, 15 Oct 2021 11:47:51 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C45ED60FF2 for ; Fri, 15 Oct 2021 11:47:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org C45ED60FF2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C13AC8380F; Fri, 15 Oct 2021 13:47:48 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="nLDgO2/0"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 53EDF8380F; Fri, 15 Oct 2021 13:47:46 +0200 (CEST) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id AD5F6815A8 for ; Fri, 15 Oct 2021 13:47:41 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=pali@kernel.org Received: by mail.kernel.org (Postfix) with ESMTPSA id 5A02960F9F; Fri, 15 Oct 2021 11:47:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1634298458; bh=ZE3aV5pSv2PMiEGAXz8+pxdDLzLGO+x+Dfpp29XFLig=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=nLDgO2/0aZb6TTa8uCTt5FKrNfPiGccsYvMNb1+2xKmDr+vhUDY1m0SaL/NULQQc1 AYce9Wk5H6bVLGwlchmmSNyMVrAyLSWtOzjK3uZj21m58AS8JZPrP0cOML3utz9NM7 7VqVgt+QHUnrMMQ/WQXFEeYs1eeO+t3++HWy8or9kgPaxJtB7XrF8DR5bNeJztbtpe NeQA1f3YQCtLRtpRBgO3gBSYYbDWU5iLFZR4Cs23nTLICtfU6wSDFUq5DLC7dOONHI 83PfynsNlAtrQAp/V89qT7ddaflCFv+6ZRhdfw9XAyii12oZjzkL1pFTyUASLNUghy jPw0kh2ypruEA== Received: by pali.im (Postfix) id B5EB180A; Fri, 15 Oct 2021 13:47:35 +0200 (CEST) Date: Fri, 15 Oct 2021 13:47:35 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Samuel Holland Cc: u-boot@lists.denx.de, Jagan Teki , Andre Przywara , Alexandru Gagniuc , Chris Packham , "NXP i.MX U-Boot Team" , Naoki Hayama , Joel Stanley Subject: Re: [PATCH v3 1/4] tools: Separate image types which depend on OpenSSL Message-ID: <20211015114735.rig3e4cuc7mn6a7e@pali> References: <20211015031916.44461-1-samuel@sholland.org> <20211015031916.44461-2-samuel@sholland.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20211015031916.44461-2-samuel@sholland.org> User-Agent: NeoMutt/20180716 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean Hello! I did more investigation for this topic during working on kwboot improvements, which resulted in this patch series: https://lore.kernel.org/u-boot/20210924210716.29752-1-kabel@kernel.org/ The result is that kwbimage is used only for: Kirkwood, Dove, A370, AXP, A375, A38x, A39x and MSYS. This information is now also in manpage: https://lore.kernel.org/u-boot/20210924210716.29752-39-kabel@kernel.org/ So, Orion, Discovery, A3700, A7k, A8k and CN913x does *not* use kwbimage and so they do do not need to select libcrypto. Therefore you can drop selection of libcrypto from ARCH_ORION5X. ARCH_KIRKWOOD includes only Kirkwood (which required kwbimage), but does not use any crypto. So selecting unused crypto seems suspicious for anybody who look at it... And it is there only for transitional kwbimage dependency, which is very unintuitive. With ARCH_MVEBU it is quite complicated as it is used for both 32-bit SoCs (XP, 375, 38x) and also 64-bit SoCs (3700, 7k, 8k). kwbimage is used only for 32-bit mvebu SoCs. I do not know how to express this correctly. But I would rather suggest to introduce a new option which specify that tools/kwbimage.o is required and this dependency would selects its direct (crypto) dependency. Otherwise nobody would remember in future why non-crypto platforms are selecting crypto functionality, or why 64-bit platforms are enabling crypto functionality which is not used at all. On Thursday 14 October 2021 22:19:13 Samuel Holland wrote: > Some image types (kwbimage and mxsimage) always depend on OpenSSL, so > they can only be included in mkimage when TOOLS_LIBCRYPTO is selected. > Use Makefile logic to conditionally link the files. > > When building for platforms which use those image types, automatically > select TOOLS_LIBCRYPTO, since it is required for the build to complete. > > Signed-off-by: Samuel Holland > --- > > Changes in v3: > - Selected TOOLS_LIBCRYPTO on all platforms that use kwbimage (as best > as I can tell, using the suggestions from Pali Rohár) > > Changes in v2: > - Refactored the first patch on top of TOOLS_LIBCRYPTO > > arch/arm/Kconfig | 3 +++ > arch/arm/mach-imx/mxs/Kconfig | 2 ++ > scripts/config_whitelist.txt | 1 - > tools/Makefile | 19 +++++-------------- > tools/mxsimage.c | 3 --- > 5 files changed, 10 insertions(+), 18 deletions(-) > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index d8c041a877..380ad4f670 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -566,6 +566,7 @@ config ARCH_KIRKWOOD > select BOARD_EARLY_INIT_F > select CPU_ARM926EJS > select GPIO_EXTRA_HEADER > + select TOOLS_LIBCRYPTO > > config ARCH_MVEBU > bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)" > @@ -580,12 +581,14 @@ config ARCH_MVEBU > select OF_CONTROL > select OF_SEPARATE > select SPI > + select TOOLS_LIBCRYPTO > imply CMD_DM > > config ARCH_ORION5X > bool "Marvell Orion" > select CPU_ARM926EJS > select GPIO_EXTRA_HEADER > + select TOOLS_LIBCRYPTO > > config TARGET_STV0991 > bool "Support stv0991" > diff --git a/arch/arm/mach-imx/mxs/Kconfig b/arch/arm/mach-imx/mxs/Kconfig > index b2026a3758..6f138d25e9 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/scripts/config_whitelist.txt b/scripts/config_whitelist.txt > index 3a6865dc70..bea6b6f83b 100644 > --- a/scripts/config_whitelist.txt > +++ b/scripts/config_whitelist.txt > @@ -838,7 +838,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 999fd46531..a9b3d982d8 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 > > @@ -118,10 +120,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 \ > @@ -156,22 +156,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 002f4b525a..2bfbb421eb 100644 > --- a/tools/mxsimage.c > +++ b/tools/mxsimage.c > @@ -5,8 +5,6 @@ > * Copyright (C) 2012-2013 Marek Vasut > */ > > -#ifdef CONFIG_MXS > - > #include > #include > #include > @@ -2363,4 +2361,3 @@ U_BOOT_IMAGE_TYPE( > NULL, > mxsimage_generate > ); > -#endif > -- > 2.32.0 >