aboutsummaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-04-24 13:49:44 +1200
committerTom Rini <trini@konsulko.com>2023-04-26 08:43:04 -0400
commit9f8351659add391f656a890ca4cd1164baba10c8 (patch)
tree65ffd6cb2f21b30aa2fcbd617bc834dde97cb14c /boot
parent2356053a945899687e894a3e3b3de09dd9814bb8 (diff)
downloadu-boot-9f8351659add391f656a890ca4cd1164baba10c8.zip
u-boot-9f8351659add391f656a890ca4cd1164baba10c8.tar.gz
u-boot-9f8351659add391f656a890ca4cd1164baba10c8.tar.bz2
bootstd: Tweak bootflow logic for device tree
We should only store the FDT filename if we were able to determine one. Adjust the logic for this. This corrects the case where no FDT is needed to boot, such as with EFI using ACPI. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'boot')
-rw-r--r--boot/bootmeth_efi.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/boot/bootmeth_efi.c b/boot/bootmeth_efi.c
index 6a97ac0..d7e042c 100644
--- a/boot/bootmeth_efi.c
+++ b/boot/bootmeth_efi.c
@@ -235,21 +235,21 @@ static int distro_efi_read_bootflow_file(struct udevice *dev,
/* try the various available names */
ret = -ENOENT;
- for (seq = 0; ret; seq++) {
+ *fname = '\0';
+ for (seq = 0; ret == -ENOENT; seq++) {
ret = distro_efi_get_fdt_name(fname, sizeof(fname), seq);
- if (ret == -EALREADY) {
+ if (ret == -EALREADY)
bflow->flags = BOOTFLOWF_USE_PRIOR_FDT;
- break;
- }
- if (ret)
- return log_msg_ret("nam", ret);
- ret = bootmeth_common_read_file(dev, bflow, fname, fdt_addr,
- &size);
+ if (!ret)
+ ret = bootmeth_common_read_file(dev, bflow, fname,
+ fdt_addr, &size);
}
- bflow->fdt_fname = strdup(fname);
- if (!bflow->fdt_fname)
- return log_msg_ret("fil", -ENOMEM);
+ if (*fname) {
+ bflow->fdt_fname = strdup(fname);
+ if (!bflow->fdt_fname)
+ return log_msg_ret("fil", -ENOMEM);
+ }
if (!ret) {
bflow->fdt_size = size;