Pull request efi-2026-07-rc6

CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/30505

Documentation:

* bootdev: fix typos
* board: renesas: Document Renesas RZ/N1D and RZ/N1S as arm
* board: renesas: Document Renesas Geist board support
* board: renesas: Document Renesas Gray Hawk board support
* board: renesas: Document Renesas Ironhide board support
* android: fastboot: Document halt behaviour

UEFI:

* fix memory leak in efi_var_collect()
* set revision field in block IO protocol
* fix guid comparison in efi_selftest_loaded_image.c
* fix use-after-free in efi_selftest_memory.c
This commit is contained in:
Tom Rini
2026-06-21 09:27:12 -06:00
7 changed files with 50 additions and 17 deletions
+5
View File
@@ -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
+26 -2
View File
@@ -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)
@@ -186,6 +192,24 @@ Renesas is a SoC solutions provider for automotive and industrial applications.
- arm64
- r8a779g3_sparrowhawk_defconfig
* -
- Gray Hawk
- R8A779H0 (V4M)
- 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)
@@ -231,13 +255,13 @@ Renesas is a SoC solutions provider for automotive and industrial applications.
* - :doc:`RZ/N1 Family <rzn1>`
- 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
+4 -4
View File
@@ -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
+1
View File
@@ -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,
+3 -1
View File
@@ -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);
+2 -2
View File
@@ -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) {
+9 -8
View File
@@ -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;
}