From a1d74f409fd56c0c8be091f764f317414df40aaf Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Tue, 16 Jun 2026 05:36:05 +0200 Subject: doc: board: renesas: Document Renesas RZ/N1D and RZ/N1S as arm The RZ/N1D and RZ/N1S contain Cortex-A7 core, which is 32bit ARM core. Document the SoC as 32bit ARM instead of aarch64. Fixes: a5b9f959439b ("doc: renesas: add Renesas board docs") Signed-off-by: Marek Vasut Reviewed-by: Heinrich Schuchardt --- doc/board/renesas/renesas.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/board/renesas/renesas.rst b/doc/board/renesas/renesas.rst index fedfeed42e3..1c94456eaed 100644 --- a/doc/board/renesas/renesas.rst +++ b/doc/board/renesas/renesas.rst @@ -231,13 +231,13 @@ Renesas is a SoC solutions provider for automotive and industrial applications. * - :doc:`RZ/N1 Family ` - Schneider RZ/N1D board - R9A06G032 (RZ/N1D) - - arm64 + - arm - rzn1_snarc_defconfig * - - Schneider RZ/N1S board - R9A06G033 (RZ/N1S) - - arm64 + - arm - rzn1_snarc_defconfig Build -- cgit v1.3.1 From 3b2190935b397360f3eea1902c796af3f935126a Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Mon, 15 Jun 2026 23:47:15 +0200 Subject: doc: board: renesas: Document Renesas Geist board support Document support for Renesas Geist development board based on Renesas R-Car M3Le (R8A779MD) SoC. Fixes: c8523795d796 ("arm64: dts: renesas: r8a779md: Add support for R-Car M3Le R8A779MD Geist") Signed-off-by: Marek Vasut --- doc/board/renesas/renesas.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/board/renesas/renesas.rst b/doc/board/renesas/renesas.rst index 1c94456eaed..b145c2c6cfd 100644 --- a/doc/board/renesas/renesas.rst +++ b/doc/board/renesas/renesas.rst @@ -120,6 +120,12 @@ Renesas is a SoC solutions provider for automotive and industrial applications. - arm64 - rcar3_ulcb_defconfig + * - + - Geist + - R8A779MD (M3Le) + - arm64 + - r8a779md_geist_defconfig + * - - Eagle - R8A77970 (V3M) -- cgit v1.3.1 From 89b45e46ca20704e3bd9f4bd26f29a21cf8e72ac Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Mon, 15 Jun 2026 23:47:16 +0200 Subject: doc: board: renesas: Document Renesas Gray Hawk board support Document support for Renesas Gray Hawk Single development board based on Renesas R-Car V4M (R8A779H0) SoC. Fixes: 53066deccbed ("ARM: renesas: Add Renesas R8A779H0 V4M Gray Hawk board code") Signed-off-by: Marek Vasut --- doc/board/renesas/renesas.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/board/renesas/renesas.rst b/doc/board/renesas/renesas.rst index b145c2c6cfd..7673a3e4224 100644 --- a/doc/board/renesas/renesas.rst +++ b/doc/board/renesas/renesas.rst @@ -192,6 +192,12 @@ Renesas is a SoC solutions provider for automotive and industrial applications. - arm64 - r8a779g3_sparrowhawk_defconfig + * - + - Gray Hawk + - R8A779H0 (V4M) + - arm64 + - r8a779h0_grayhawk_defconfig + * - RZ/G2 Family - Beacon EmbeddedWorks RZ/G2M SoM - R8A774A1 (RZ/G2M) -- cgit v1.3.1 From 861be585cc1f922da68d3836a42e23e5ff49c3b6 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Mon, 15 Jun 2026 23:47:17 +0200 Subject: doc: board: renesas: Document Renesas Ironhide board support Document support for Renesas Ironhide development board based on Renesas R-Car X5H (R8A78000) SoC. Fixes: cf71963778ee ("arm64: dts: renesas: Add Renesas R-Car X5H R8A78000 Ironhide board code") Fixes: 9d47a5a4d560 ("arm: renesas: Add Renesas R-Car R8A78000 X5H Cortex-M33 RSIP port") Signed-off-by: Marek Vasut --- doc/board/renesas/renesas.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/board/renesas/renesas.rst b/doc/board/renesas/renesas.rst index 7673a3e4224..fcfd51aa19c 100644 --- a/doc/board/renesas/renesas.rst +++ b/doc/board/renesas/renesas.rst @@ -198,6 +198,18 @@ Renesas is a SoC solutions provider for automotive and industrial applications. - arm64 - r8a779h0_grayhawk_defconfig + * - R-Car Gen5 + - Ironhide (Cortex-A720AE application core) + - R8A78000 (X5H) + - arm64 + - r8a78000_ironhide_defconfig + + * - + - Ironhide (Cortex-M33 RSIP boot core) + - R8A78000 (X5H) + - arm64 + - r8a78000_ironhide_cm33_defconfig + * - RZ/G2 Family - Beacon EmbeddedWorks RZ/G2M SoM - R8A774A1 (RZ/G2M) -- cgit v1.3.1 From 5150a86187657807a3de38c138ca281e6c1a6259 Mon Sep 17 00:00:00 2001 From: Vincent Stehlé Date: Mon, 15 Jun 2026 12:56:15 +0200 Subject: efi_selftest: fix guid comparison MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `loaded image' efi selftest is comparing protocol GUIDs with the wrong polarity. This can be verified on the sandbox, where two protocols GUIDs are retrieved by the test from the image handle in the following order: 1. Loaded Image Device Path Protocol GUID 2. Loaded Image Protocol GUID The test matches on the first GUID, while it is in fact looking for the second one; fix the comparison polarity. Fixes: efe79a7c0de0 ("efi_selftest: test for loaded image protocol") Signed-off-by: Vincent Stehlé Cc: Heinrich Schuchardt Cc: Ilias Apalodimas Cc: Tom Rini Cc: Alexander Graf Reviewed-by: Heinrich Schuchardt --- lib/efi_selftest/efi_selftest_loaded_image.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/efi_selftest/efi_selftest_loaded_image.c b/lib/efi_selftest/efi_selftest_loaded_image.c index 5889ab12617..e0668f60ebd 100644 --- a/lib/efi_selftest/efi_selftest_loaded_image.c +++ b/lib/efi_selftest/efi_selftest_loaded_image.c @@ -60,8 +60,8 @@ static int execute(void) efi_st_printf("%u protocols installed on image handle\n", (unsigned int)protocol_buffer_count); for (i = 0; i < protocol_buffer_count; ++i) { - if (memcmp(protocol_buffer[i], &loaded_image_protocol_guid, - sizeof(efi_guid_t))) + if (!memcmp(protocol_buffer[i], &loaded_image_protocol_guid, + sizeof(efi_guid_t))) found = true; } if (!found) { -- cgit v1.3.1 From eb6f420836bb30e8c54c140f1bea3e2c88f5b201 Mon Sep 17 00:00:00 2001 From: Denis Mukhin Date: Sat, 20 Jun 2026 22:14:43 -0700 Subject: bootdev: fix typos Signed-off-by: Denis Mukhin Reviewed-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- include/bootdev.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/bootdev.h b/include/bootdev.h index 12c90c4ec1b..14f8a98633b 100644 --- a/include/bootdev.h +++ b/include/bootdev.h @@ -30,10 +30,10 @@ struct udevice; * generally very quick to access, e.g. less than 100ms * @BOOTDEVP_3_INTERNAL_SLOW: Internal devices which don't need scanning but * take a significant fraction of a second to access - * @BOOTDEVP_4_SCAN_FAST: Extenal devices which need scanning or bus + * @BOOTDEVP_4_SCAN_FAST: External devices which need scanning or bus * enumeration to find, but this enumeration happens quickly, typically under * 100ms - * @BOOTDEVP_5_SCAN_SLOW: Extenal devices which need scanning or bus + * @BOOTDEVP_5_SCAN_SLOW: External devices which need scanning or bus * enumeration to find. The enumeration takes significant fraction of a second * to complete * @BOOTDEVP_6_NET_BASE: Basic network devices which are quickly and easily @@ -327,7 +327,7 @@ int bootdev_hunt_and_find_by_label(const char *label, struct udevice **devp, * Bootdev scanners are used as needed. For example a label "mmc1" results in * running the "mmc" bootdrv. * - * @iter: Interation info, containing iter->cur_label + * @iter: Iteration info, containing iter->cur_label * @devp: New bootdev found, if any was found * @method_flagsp: If non-NULL, returns any flags implied by the label * (enum bootflow_meth_flags_t), 0 if none @@ -342,7 +342,7 @@ int bootdev_next_label(struct bootflow_iter *iter, struct udevice **devp, * This moves @devp to the next bootdev with the current priority. If there is * none, then it moves to the next priority and scans for new bootdevs there. * - * @iter: Interation info, containing iter->cur_prio + * @iter: Iteration info, containing iter->cur_prio * @devp: On entry this is the previous bootdev that was considered. On exit * this is the new bootdev, if any was found * Returns 0 on success (*devp is updated), -ENODEV if there are no more -- cgit v1.3.1 From 1f5c8eac2f299bd3a2fc748b068acbb4b90d592d Mon Sep 17 00:00:00 2001 From: Ilias Apalodimas Date: Fri, 19 Jun 2026 11:38:29 +0300 Subject: efi_loader: fix memory leak in efi_var_collect Barebox has now ported some of the UEFI code. In the process they found some bugs. In this case when the variable buffer is too small, efi_var_collect() returns EFI_BUFFER_TOO_SMALL but doesn't free the allocated 'buf'. Fixes: 5f7dcf079de8c ("efi_loader: UEFI variable persistence") Signed-off-by: Ilias Apalodimas Reviewed-by: Heinrich Schuchardt --- lib/efi_loader/efi_var_common.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/efi_loader/efi_var_common.c b/lib/efi_loader/efi_var_common.c index d63c2d1b1cd..e51b21fe0b0 100644 --- a/lib/efi_loader/efi_var_common.c +++ b/lib/efi_loader/efi_var_common.c @@ -446,8 +446,10 @@ efi_status_t __maybe_unused efi_var_collect(struct efi_var_file **bufp, loff_t * efi_status_t ret; if ((uintptr_t)buf + len <= - (uintptr_t)var->name + old_var_name_length) + (uintptr_t)var->name + old_var_name_length) { + free(buf); return EFI_BUFFER_TOO_SMALL; + } var_name_length = (uintptr_t)buf + len - (uintptr_t)var->name; memcpy(var->name, old_var->name, old_var_name_length); -- cgit v1.3.1 From 41c6b83c777788692640fa0f85a2381d8959f301 Mon Sep 17 00:00:00 2001 From: Vincent Stehlé Date: Tue, 9 Jun 2026 10:07:04 +0200 Subject: lib/efi_loader: fix block io revision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Revision field of the EFI_BLOCK_IO_PROTOCOL structure must be set to one of the two valid values [1], but this is not initialized in the efi_loader; fix it. Link: https://uefi.org/specs/UEFI/2.11/13_Protocols_Media_Access.html#efi-block-io-protocol [1] Signed-off-by: Vincent Stehlé Cc: Heinrich Schuchardt Cc: Ilias Apalodimas Cc: Tom Rini Reviewed-by: Heinrich Schuchardt --- lib/efi_loader/efi_disk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c index f8a57539ec6..4a3ace3a304 100644 --- a/lib/efi_loader/efi_disk.c +++ b/lib/efi_loader/efi_disk.c @@ -305,6 +305,7 @@ static efi_status_t EFIAPI efi_disk_flush_blocks(struct efi_block_io *this) } static const struct efi_block_io block_io_disk_template = { + .revision = EFI_BLOCK_IO_PROTOCOL_REVISION3, .reset = &efi_disk_reset, .read_blocks = &efi_disk_read_blocks, .write_blocks = &efi_disk_write_blocks, -- cgit v1.3.1 From 60ff3d950996c2ea0bb744fd9c922a96abc65774 Mon Sep 17 00:00:00 2001 From: Vincent Stehlé Date: Thu, 11 Jun 2026 08:59:50 +0200 Subject: efi_selftest: fix use-after-free MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the `memory' efi selftest verifies the Devicetree memory reservation, it accesses the memory_map buffer after it has been freed with free_pool(). Move the verification earlier to fix this. Fixes: 34c96659ed57 ("efi_selftest: check fdt is marked as runtime data") Signed-off-by: Vincent Stehlé Cc: Heinrich Schuchardt Cc: Ilias Apalodimas Cc: Tom Rini Reviewed-by: Ilias Apalodimas Reviewed-by: Heinrich Schuchardt --- lib/efi_selftest/efi_selftest_memory.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/efi_selftest/efi_selftest_memory.c b/lib/efi_selftest/efi_selftest_memory.c index 7320964c129..450470ceedd 100644 --- a/lib/efi_selftest/efi_selftest_memory.c +++ b/lib/efi_selftest/efi_selftest_memory.c @@ -155,6 +155,15 @@ static int execute(void) EFI_RUNTIME_SERVICES_DATA) != EFI_ST_SUCCESS) return EFI_ST_FAILURE; + /* Check memory reservation for the device tree */ + if (fdt_addr && + find_in_memory_map(map_size, memory_map, desc_size, fdt_addr, + EFI_ACPI_RECLAIM_MEMORY) != EFI_ST_SUCCESS) { + efi_st_error + ("Device tree not marked as ACPI reclaim memory\n"); + return EFI_ST_FAILURE; + } + /* Free memory */ ret = boottime->free_pages(p1, EFI_ST_NUM_PAGES); if (ret != EFI_SUCCESS) { @@ -172,14 +181,6 @@ static int execute(void) return EFI_ST_FAILURE; } - /* Check memory reservation for the device tree */ - if (fdt_addr && - find_in_memory_map(map_size, memory_map, desc_size, fdt_addr, - EFI_ACPI_RECLAIM_MEMORY) != EFI_ST_SUCCESS) { - efi_st_error - ("Device tree not marked as ACPI reclaim memory\n"); - return EFI_ST_FAILURE; - } return EFI_ST_SUCCESS; } -- cgit v1.3.1 From ad90d1ec8b43aa3d7ec5790db5c5740472e47c96 Mon Sep 17 00:00:00 2001 From: Mattijs Korpershoek Date: Mon, 15 Jun 2026 14:29:28 +0200 Subject: doc: android: fastboot: Document halt behaviour It's possible to interrupt the fastboot command from the U-Boot shell using the Ctrl-c keybinding. Document this. Signed-off-by: Mattijs Korpershoek Reviewed-by: Sam Day --- doc/android/fastboot.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/android/fastboot.rst b/doc/android/fastboot.rst index 19e2ee9d407..818b8815ebd 100644 --- a/doc/android/fastboot.rst +++ b/doc/android/fastboot.rst @@ -212,6 +212,11 @@ or initiate a reboot:: and once the client comes back, the board should reset. +It's possible to interrupt the fastboot command using Ctrl-c:: + + => fastboot usb 0 + Operation aborted. + You can also specify a kernel image to boot. You have to either specify the an image in Android format *or* pass a binary kernel and let the fastboot client wrap the Android suite around it. On OMAP for instance you -- cgit v1.3.1