gnu: u-boot: Update to 2024.07.

* gnu/packages/bootloaders.scm (u-boot): Update to 2024.07.
[source]: Remove build-without-libcrypto patch.
(%u-boot-build-without-libcrypto-patch): Remove variable.
(u-boot-tools)[arguments]: Disable sandbox tests and kwbimage.
* gnu/packages/patches/u-boot-build-without-libcrypto.patch: Delete
file.
* gnu/local.mk (dist_patch_DATA): Remove patch.

Change-Id: I85863adb0324461fabf164d3e936d922ade3aa69
This commit is contained in:
Herman Rimm 2024-03-30 16:50:53 +01:00 committed by Ryan Schanzenbacher
parent c96437d3b6
commit adabfcfd37
Signed by: ryan77627
GPG key ID: 81B0E222A3E2308E
3 changed files with 13 additions and 137 deletions

View file

@ -2227,7 +2227,6 @@ dist_patch_DATA = \
%D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \
%D%/packages/patches/twinkle-bcg729.patch \ %D%/packages/patches/twinkle-bcg729.patch \
%D%/packages/patches/u-boot-allow-disabling-openssl.patch \ %D%/packages/patches/u-boot-allow-disabling-openssl.patch \
%D%/packages/patches/u-boot-build-without-libcrypto.patch \
%D%/packages/patches/u-boot-nintendo-nes-serial.patch \ %D%/packages/patches/u-boot-nintendo-nes-serial.patch \
%D%/packages/patches/u-boot-rockchip-inno-usb.patch \ %D%/packages/patches/u-boot-rockchip-inno-usb.patch \
%D%/packages/patches/u-boot-nanopi-r4s-ddr3.patch \ %D%/packages/patches/u-boot-nanopi-r4s-ddr3.patch \

View file

@ -746,10 +746,6 @@ (define %u-boot-allow-disabling-openssl-patch
;; https://lists.denx.de/pipermail/u-boot/2021-October/462728.html ;; https://lists.denx.de/pipermail/u-boot/2021-October/462728.html
(search-patch "u-boot-allow-disabling-openssl.patch")) (search-patch "u-boot-allow-disabling-openssl.patch"))
(define %u-boot-build-without-libcrypto-patch
;; Upstream commit to fix Amlogic builds in u-boot 2024.01.
(search-patch "u-boot-build-without-libcrypto.patch"))
(define %u-boot-nanopi-r4s-ddr3-patch (define %u-boot-nanopi-r4s-ddr3-patch
;; Use DDR3 instead of LPDDR4 for the Nano Pi R4S U-boot. ;; Use DDR3 instead of LPDDR4 for the Nano Pi R4S U-boot.
(search-patch "u-boot-nanopi-r4s-ddr3.patch")) (search-patch "u-boot-nanopi-r4s-ddr3.patch"))
@ -757,11 +753,10 @@ (define %u-boot-nanopi-r4s-ddr3-patch
(define u-boot (define u-boot
(package (package
(name "u-boot") (name "u-boot")
(version "2024.01") (version "2024.07")
(source (origin (source (origin
(patches (patches
(list %u-boot-rockchip-inno-usb-patch (list %u-boot-rockchip-inno-usb-patch
%u-boot-build-without-libcrypto-patch
%u-boot-allow-disabling-openssl-patch %u-boot-allow-disabling-openssl-patch
%u-boot-nanopi-r4s-ddr3-patch)) %u-boot-nanopi-r4s-ddr3-patch))
(method url-fetch) (method url-fetch)
@ -770,7 +765,7 @@ (define u-boot
"u-boot-" version ".tar.bz2")) "u-boot-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1czmpszalc6b8cj9j7q6cxcy19lnijv3916w3dag6yr3xpqi35mr")))) "13rwv28g6z8ihrs8k0066gblw37rvw6nsxkks6rxdwqfp6ddm4gm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list bison (list bison
@ -867,9 +862,11 @@ (define-public u-boot-tools
(("\\./tools/patman/patman") (which "true")) (("\\./tools/patman/patman") (which "true"))
;; FIXME: test fails, needs further investiation ;; FIXME: test fails, needs further investiation
(("run_test \"binman\"") "# run_test \"binman\"") (("run_test \"binman\"") "# run_test \"binman\"")
;; FIXME: test_spl fails, needs further investiation ;; FIXME: tests fail without kwbimage, i.e. openssl.
(("test_ofplatdata or test_handoff or test_spl") (("run_test \"sandbox_noinst\"")
"test_ofplatdata or test_handoff") "# run_test \"sandbox_noinst\"")
(("run_test \"sandbox_vpl\"")
"# run_test \"sandbox_vpl\"")
;; FIXME: code coverage not working ;; FIXME: code coverage not working
(("run_test \"binman code coverage\"") (("run_test \"binman code coverage\"")
"# run_test \"binman code coverage\"") "# run_test \"binman code coverage\"")
@ -892,14 +889,16 @@ (define-public u-boot-tools
(("CONFIG_FIT_SIGNATURE=y") (("CONFIG_FIT_SIGNATURE=y")
"CONFIG_FIT_SIGNATURE=n "CONFIG_FIT_SIGNATURE=n
CONFIG_UT_LIB_ASN1=n CONFIG_UT_LIB_ASN1=n
CONFIG_TOOLS_LIBCRYPTO=n") CONFIG_TOOLS_LIBCRYPTO=n
CONFIG_TOOLS_KWBIMAGE=n")
;; Catch instances of implied CONFIG_FIG_SIGNATURE ;; Catch instances of implied CONFIG_FIG_SIGNATURE
;; with VPL targets ;; with VPL targets
(("CONFIG_SANDBOX_VPL=y") (("CONFIG_SANDBOX_VPL=y")
"CONFIG_SANDBOX_VPL=y "CONFIG_SANDBOX_VPL=y
CONFIG_FIT_SIGNATURE=n CONFIG_FIT_SIGNATURE=n
CONFIG_VPL_FIT_SIGNATURE=n CONFIG_VPL_FIT_SIGNATURE=n
CONFIG_TOOLS_LIBCRYPTO=n") CONFIG_TOOLS_LIBCRYPTO=n
CONFIG_TOOLS_KWBIMAGE=n")
;; This test requires a sound system, which is un-used ;; This test requires a sound system, which is un-used
;; in u-boot-tools. ;; in u-boot-tools.
(("CONFIG_SOUND=y") "CONFIG_SOUND=n"))) (("CONFIG_SOUND=y") "CONFIG_SOUND=n")))
@ -1108,7 +1107,8 @@ (define*-public (make-u-boot-package board triplet
(lambda _ (lambda _
(substitute* ".config" (substitute* ".config"
(("CONFIG_TOOLS_LIBCRYPTO=.*$") (("CONFIG_TOOLS_LIBCRYPTO=.*$")
"CONFIG_TOOLS_LIBCRYPTO=n")))) "CONFIG_TOOLS_LIBCRYPTO=n
CONFIG_TOOLS_KWBIMAGE=n"))))
(replace 'install (replace 'install
(lambda _ (lambda _
(let ((libexec (string-append #$output "/libexec")) (let ((libexec (string-append #$output "/libexec"))

View file

@ -1,123 +0,0 @@
From 03e598263e3878b6f5d58f5525577903edadc644 Mon Sep 17 00:00:00 2001
From: Paul-Erwan Rio <paulerwan.rio@gmail.com>
Date: Thu, 21 Dec 2023 08:26:11 +0100
Subject: [PATCH] tools: fix build without LIBCRYPTO support
Commit cb9faa6f98ae ("tools: Use a single target-independent config to
enable OpenSSL") introduced a target-independent configuration to build
crypto features in host tools.
But since commit 2c21256b27d7 ("hash: Use Kconfig to enable hashing in
host tools and SPL") the build without OpenSSL is broken, due to FIT
signature/encryption features. Add missing conditional compilation
tokens to fix this.
Signed-off-by: Paul-Erwan Rio <paulerwan.rio@gmail.com>
Tested-by: Alexander Dahl <ada@thorsis.com>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
include/image.h | 2 +-
tools/Kconfig | 1 +
tools/fit_image.c | 2 +-
tools/image-host.c | 4 ++++
tools/mkimage.c | 5 +++--
5 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/include/image.h b/include/image.h
index 432ec927b1..21de70f0c9 100644
--- a/include/image.h
+++ b/include/image.h
@@ -1465,7 +1465,7 @@ int calculate_hash(const void *data, int data_len, const char *algo,
* device
*/
#if defined(USE_HOSTCC)
-# if defined(CONFIG_FIT_SIGNATURE)
+# if CONFIG_IS_ENABLED(FIT_SIGNATURE)
# define IMAGE_ENABLE_SIGN 1
# define FIT_IMAGE_ENABLE_VERIFY 1
# include <openssl/evp.h>
diff --git a/tools/Kconfig b/tools/Kconfig
index f8632cd59d..f01ed783e6 100644
--- a/tools/Kconfig
+++ b/tools/Kconfig
@@ -51,6 +51,7 @@ config TOOLS_FIT_RSASSA_PSS
Support the rsassa-pss signature scheme in the tools builds
config TOOLS_FIT_SIGNATURE
+ depends on TOOLS_LIBCRYPTO
def_bool y
help
Enable signature verification of FIT uImages in the tools builds
diff --git a/tools/fit_image.c b/tools/fit_image.c
index 71e031c855..beef1fa86e 100644
--- a/tools/fit_image.c
+++ b/tools/fit_image.c
@@ -61,7 +61,7 @@ static int fit_add_file_data(struct image_tool_params *params, size_t size_inc,
ret = fit_set_timestamp(ptr, 0, time);
}
- if (!ret)
+ if (CONFIG_IS_ENABLED(FIT_SIGNATURE) && !ret)
ret = fit_pre_load_data(params->keydir, dest_blob, ptr);
if (!ret) {
diff --git a/tools/image-host.c b/tools/image-host.c
index ca4950312f..90bc9f905f 100644
--- a/tools/image-host.c
+++ b/tools/image-host.c
@@ -14,8 +14,10 @@
#include <image.h>
#include <version.h>
+#if CONFIG_IS_ENABLED(FIT_SIGNATURE)
#include <openssl/pem.h>
#include <openssl/evp.h>
+#endif
/**
* fit_set_hash_value - set hash value in requested has node
@@ -1131,6 +1133,7 @@ static int fit_config_add_verification_data(const char *keydir,
return 0;
}
+#if CONFIG_IS_ENABLED(FIT_SIGNATURE)
/*
* 0) open file (open)
* 1) read certificate (PEM_read_X509)
@@ -1239,6 +1242,7 @@ int fit_pre_load_data(const char *keydir, void *keydest, void *fit)
out:
return ret;
}
+#endif
int fit_cipher_data(const char *keydir, void *keydest, void *fit,
const char *comment, int require_keys,
diff --git a/tools/mkimage.c b/tools/mkimage.c
index 6dfe3e1d42..ac62ebbde9 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -115,7 +115,7 @@ static void usage(const char *msg)
" -B => align size in hex for FIT structure and header\n"
" -b => append the device tree binary to the FIT\n"
" -t => update the timestamp in the FIT\n");
-#ifdef CONFIG_FIT_SIGNATURE
+#if CONFIG_IS_ENABLED(FIT_SIGNATURE)
fprintf(stderr,
"Signing / verified boot options: [-k keydir] [-K dtb] [ -c <comment>] [-p addr] [-r] [-N engine]\n"
" -k => set directory containing private keys\n"
@@ -130,8 +130,9 @@ static void usage(const char *msg)
" -o => algorithm to use for signing\n");
#else
fprintf(stderr,
- "Signing / verified boot not supported (CONFIG_FIT_SIGNATURE undefined)\n");
+ "Signing / verified boot not supported (CONFIG_TOOLS_FIT_SIGNATURE undefined)\n");
#endif
+
fprintf(stderr, " %s -V ==> print version information and exit\n",
params.cmdname);
fprintf(stderr, "Use '-T list' to see a list of available image types\n");
--
2.41.0