summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2025-11-15 08:05:45 -0600
committerTom Rini <[email protected]>2025-11-15 08:05:45 -0600
commit69cc92d6869b8ff4591e5b8850872da34934bab9 (patch)
treeabf7002e0dc3cb7bc9721d5dded3af86b18b0f72
parent55d60ef1c91b309ba8b1c360031b13e5b3d4b31a (diff)
parent8cc144227e13b50cd6d97c36ebb45f31f4d8c9cd (diff)
Merge tag 'efi-2026-01-rc3' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2026-01-rc3 CI: * https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/28355 Documentation: * Correct the linux/arm64 platform string for Docker builds * Complete pytest dependencies list with missing packages UEFI: * Use Sphinx style comments in efi_selftest_console.c * Don't include asm/global_data.h in lib/efi_client/efi_app.c twice * efi_client: correct memset() return value * Assure fitImage from capsule is used from 8-byte aligned address * Fix warning when building efi_selftest_snp with clang
-rw-r--r--doc/build/docker.rst2
-rw-r--r--doc/develop/pytest/usage.rst21
-rw-r--r--lib/efi_client/efi_app.c1
-rw-r--r--lib/efi_client/efi_stub.c2
-rw-r--r--lib/efi_loader/efi_firmware.c16
-rw-r--r--lib/efi_loader/efi_ipconfig.c4
-rw-r--r--lib/efi_selftest/efi_selftest_console.c44
-rw-r--r--lib/efi_selftest/efi_selftest_snp.c2
-rw-r--r--tools/docker/Dockerfile2
9 files changed, 56 insertions, 38 deletions
diff --git a/doc/build/docker.rst b/doc/build/docker.rst
index 4974a98d4af..791eb215617 100644
--- a/doc/build/docker.rst
+++ b/doc/build/docker.rst
@@ -36,7 +36,7 @@ To build the image yourself:
.. code-block:: bash
- sudo docker buildx build --platform linux/arm64/v8,linux/amd64 -t your-namespace:your-tag .
+ sudo docker buildx build --platform linux/arm64,linux/amd64 -t your-namespace:your-tag .
Or to use an existing container
diff --git a/doc/develop/pytest/usage.rst b/doc/develop/pytest/usage.rst
index 596b0397379..800a0323d0a 100644
--- a/doc/develop/pytest/usage.rst
+++ b/doc/develop/pytest/usage.rst
@@ -35,21 +35,26 @@ can be installed via the command
pip install -r requirements.txt
In order to execute certain tests on their supported platforms other tools
-will be required. The following is an incomplete list:
+will be required. The following packages may be needed:
-* gdisk
-* dfu-util
-* dtc
-* openssl
-* e2fsprogs
-* util-linux
+* cgpt
* coreutils
+* device-tree-compiler
+* dfu-util
* dosfstools
+* e2fsprogs
* efitools
+* fdisk
+* gdisk
+* libgnutls28-dev / gnutls-devel
* mount
* mtools
+* openssl
* sbsigntool
+* swig
* udisks2
+* util-linux
+* vboot-kernel-utils / vboot-utils
Please use the appropriate commands for your distribution to match these tools
up with the package that provides them.
@@ -63,7 +68,7 @@ The test script supports either:
Further details are described later.
The usage of the command ``sudo`` is not allowed in tests. Using elevated
-priviledges can lead to security concerns. Furthermore not all users may have
+privileges can lead to security concerns. Furthermore not all users may have
administrator rights. Therefore the command ``sudo`` must not be used in tests.
To create disk images we have helper functions located in
``test/py/tests/fs_helper.py`` which shall be used in any tests that require
diff --git a/lib/efi_client/efi_app.c b/lib/efi_client/efi_app.c
index 9b94a93ee4f..da8e3432859 100644
--- a/lib/efi_client/efi_app.c
+++ b/lib/efi_client/efi_app.c
@@ -21,7 +21,6 @@
#include <asm/global_data.h>
#include <linux/err.h>
#include <linux/types.h>
-#include <asm/global_data.h>
#include <dm/device-internal.h>
#include <dm/lists.h>
#include <dm/root.h>
diff --git a/lib/efi_client/efi_stub.c b/lib/efi_client/efi_stub.c
index a083c7f1e9b..da7972444df 100644
--- a/lib/efi_client/efi_stub.c
+++ b/lib/efi_client/efi_stub.c
@@ -110,7 +110,7 @@ void *memset(void *inptr, int ch, size_t size)
while (ptr < end)
*ptr++ = ch;
- return ptr;
+ return inptr;
}
static void jump_to_uboot(ulong cs32, ulong addr, ulong info)
diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
index 216df83de67..b41969c70fd 100644
--- a/lib/efi_loader/efi_firmware.c
+++ b/lib/efi_loader/efi_firmware.c
@@ -651,6 +651,7 @@ efi_status_t EFIAPI efi_firmware_fit_set_image(
efi_status_t status;
struct fmp_state state = { 0 };
char *orig_dfu_env;
+ void *img;
EFI_ENTRY("%p %d %p %zu %p %p %p\n", this, image_index, image,
image_size, vendor_code, progress, abort_reason);
@@ -677,7 +678,20 @@ efi_status_t EFIAPI efi_firmware_fit_set_image(
return EFI_EXIT(EFI_DEVICE_ERROR);
}
- ret = fit_update(image);
+ /* Make sure the update fitImage is properly aligned to 8-bytes */
+ if (!IS_ALIGNED((uintptr_t)image, 8)) {
+ img = memalign(8, image_size);
+ if (!img)
+ return EFI_EXIT(EFI_BAD_BUFFER_SIZE);
+ memcpy(img, image, image_size);
+ } else {
+ img = (void *)image;
+ }
+
+ ret = fit_update(img);
+
+ if (!IS_ALIGNED((uintptr_t)image, 8))
+ free(img);
if (env_set("dfu_alt_info", orig_dfu_env))
log_warning("Unable to restore env variable \"dfu_alt_info\". Further DFU operations may fail!\n");
diff --git a/lib/efi_loader/efi_ipconfig.c b/lib/efi_loader/efi_ipconfig.c
index 9f51f77fa9a..b20de8c3e4b 100644
--- a/lib/efi_loader/efi_ipconfig.c
+++ b/lib/efi_loader/efi_ipconfig.c
@@ -168,8 +168,8 @@ static efi_status_t EFIAPI efi_ip4_config2_register_notify(struct efi_ip4_config
}
/*
- * efi_ip4_config2_unregister_notify() - Remove a previously registered eventfor
- * the specified configuration data
+ * efi_ip4_config2_unregister_notify() - Remove a previously registered event
+ * for the specified configuration data
*
* This function implements EFI_IP4_CONFIG2_PROTOCOL.UnregisterDataNotify()
* See the Unified Extensible Firmware Interface
diff --git a/lib/efi_selftest/efi_selftest_console.c b/lib/efi_selftest/efi_selftest_console.c
index fd2b3d09abc..0f8e9d28ef4 100644
--- a/lib/efi_selftest/efi_selftest_console.c
+++ b/lib/efi_selftest/efi_selftest_console.c
@@ -12,12 +12,12 @@
struct efi_simple_text_output_protocol *con_out;
struct efi_simple_text_input_protocol *con_in;
-/*
- * Print a MAC address to an u16 string
+/**
+ * mac() - print a MAC address to an u16 string
*
- * @pointer: mac address
- * @buf: pointer to buffer address
- * on return position of terminating zero word
+ * @pointer: mac address
+ * @buf: pointer to buffer address,
+ * on return position of terminating zero word
*/
static void mac(void *pointer, u16 **buf)
{
@@ -43,7 +43,7 @@ static void mac(void *pointer, u16 **buf)
*buf = pos;
}
-/*
+/**
* printx() - print hexadecimal number to an u16 string
*
* @p: value to print
@@ -71,7 +71,7 @@ static void printx(u64 p, int prec, u16 **buf)
}
/**
- * print_guid() - print GUID to an u16 string
+ * print_uuid() - print GUID to an u16 string
*
* @p: GUID to print
* @buf: pointer to buffer address,
@@ -92,12 +92,12 @@ static void print_uuid(u8 *p, u16 **buf)
}
}
-/*
- * Print an unsigned 32bit value as decimal number to an u16 string
+/**
+ * uint2dec() - print an unsigned 32bit value as decimal number to an u16 string
*
* @value: value to be printed
* @prec: minimum number of digits to display
- * @buf: pointer to buffer address
+ * @buf: pointer to buffer address,
* on return position of terminating zero word
*/
static void uint2dec(u32 value, int prec, u16 **buf)
@@ -132,13 +132,13 @@ static void uint2dec(u32 value, int prec, u16 **buf)
*buf = pos;
}
-/*
- * Print a signed 32bit value as decimal number to an u16 string
+/**
+ * int2dec() - print a signed 32bit value as decimal number to an u16 string
*
* @value: value to be printed
* @prec: minimum number of digits to display
- * @buf: pointer to buffer address
- * on return position of terminating zero word
+ * @buf: pointer to buffer address,
+ * on return position of terminating zero word
*/
static void int2dec(s32 value, int prec, u16 **buf)
{
@@ -155,12 +155,12 @@ static void int2dec(s32 value, int prec, u16 **buf)
*buf = pos;
}
-/*
- * Print a colored formatted string to the EFI console
+/**
+ * efi_st_printc() - print a colored message
*
- * @color color, see constants in efi_api.h, use -1 for no color
- * @fmt format string
- * @... optional arguments
+ * @color: color, see constants in efi_api.h, use -1 for no color
+ * @fmt: printf style format string
+ * @...: arguments to be printed
*/
void efi_st_printc(int color, const char *fmt, ...)
{
@@ -271,10 +271,10 @@ void efi_st_printc(int color, const char *fmt, ...)
con_out->set_attribute(con_out, EFI_LIGHTGRAY);
}
-/*
- * Reads an Unicode character from the input device.
+/**
+ * efi_st_get_key() - read an Unicode character from the input device
*
- * Return: Unicode character
+ * Return: Unicode character
*/
u16 efi_st_get_key(void)
{
diff --git a/lib/efi_selftest/efi_selftest_snp.c b/lib/efi_selftest/efi_selftest_snp.c
index b00c76c2f17..290ed3a28f2 100644
--- a/lib/efi_selftest/efi_selftest_snp.c
+++ b/lib/efi_selftest/efi_selftest_snp.c
@@ -43,7 +43,7 @@ struct dhcp_hdr {
u8 chaddr[16];
u8 sname[64];
u8 file[128];
-};
+} __packed;
/*
* Message type option.
diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile
index d2384219c06..58f2a28daa0 100644
--- a/tools/docker/Dockerfile
+++ b/tools/docker/Dockerfile
@@ -6,7 +6,7 @@ FROM ubuntu:jammy-20251001
LABEL org.opencontainers.image.authors="Tom Rini <[email protected]>"
LABEL org.opencontainers.image.description=" This image is for building U-Boot inside a container"
-# Used by docker to set the target platform: valid values are linux/arm64/v8
+# Used by Docker to set the target platform: valid values are linux/arm64
# and linux/amd64
ARG TARGETPLATFORM