summaryrefslogtreecommitdiff
path: root/lib/efi_loader
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2023-01-04 08:50:24 -0500
committerTom Rini <[email protected]>2023-01-04 08:50:24 -0500
commit8d6cbf5e6bc4e10e38b954763fa025caed517cc2 (patch)
treeb4897b417188cf4df17a2ce7b39e71cedf18a54a /lib/efi_loader
parent582e3c9fb2337c2f49faa73ac86dde25f4d56901 (diff)
parent60bba6e2052c281afe401247e10aebcb4c17049b (diff)
Merge tag 'efi-2023-01-rc5-3' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request for efi-2023-01-rc5-3 Documentation: * Describe building documentation UEFI: * Add .data section to aarch64 EFI binaries and correct section flags * Correct sorting of capsules when updating * Populate console handles in system table Other: * Fix description of eth_env_[gs]et_enetaddr() return value * Avoid endless loop in sound play command
Diffstat (limited to 'lib/efi_loader')
-rw-r--r--lib/efi_loader/efi_boottime.c3
-rw-r--r--lib/efi_loader/efi_capsule.c9
2 files changed, 9 insertions, 3 deletions
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index 253f9f75ef6..e65ca6a4cbe 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -3956,8 +3956,11 @@ efi_status_t efi_initialize_system_table(void)
* These entries will be set to NULL in ExitBootServices(). To avoid
* relocation in SetVirtualAddressMap(), set them dynamically.
*/
+ systab.con_in_handle = efi_root;
systab.con_in = &efi_con_in;
+ systab.con_out_handle = efi_root;
systab.con_out = &efi_con_out;
+ systab.stderr_handle = efi_root;
systab.std_err = &efi_con_out;
systab.boottime = &efi_boot_services;
diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
index 1163a2ee301..0997cd248fe 100644
--- a/lib/efi_loader/efi_capsule.c
+++ b/lib/efi_loader/efi_capsule.c
@@ -1108,10 +1108,13 @@ static efi_status_t efi_capsule_scan_dir(u16 ***files, unsigned int *num)
/* ignore an error */
EFI_CALL((*dirh->close)(dirh));
- /* in ascii order */
- /* FIXME: u16 version of strcasecmp */
+ /*
+ * Capsule files are applied in case insensitive alphabetic order
+ *
+ * TODO: special handling of rightmost period
+ */
qsort(tmp_files, count, sizeof(*tmp_files),
- (int (*)(const void *, const void *))strcasecmp);
+ (int (*)(const void *, const void *))u16_strcasecmp);
*files = tmp_files;
*num = count;
ret = EFI_SUCCESS;