summaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
Diffstat (limited to 'boot')
-rw-r--r--boot/Kconfig14
-rw-r--r--boot/bootmeth_efi.c15
-rw-r--r--boot/bootmeth_efi_mgr.c4
-rw-r--r--boot/image-fit.c6
4 files changed, 22 insertions, 17 deletions
diff --git a/boot/Kconfig b/boot/Kconfig
index f37e7a0c380..ae6f09a6ede 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -337,7 +337,7 @@ config TPL_LOAD_FIT
property will not be loaded. This limitation also applies to FPGA
images with the correct "compatible" string.
2. For FPGA images, the supported "compatible" list is in the
- doc/uImage.FIT/source_file_format.txt.
+ doc/usage/fit/source_file_format.rst.
3. FDTs are only loaded for images with an "os" property of "u-boot".
"linux" images are also supported with Falcon boot mode.
@@ -431,12 +431,12 @@ config BOOT_DEFAULTS_CMDS
select CMD_FAT
select CMD_FS_GENERIC
select CMD_PART if PARTITIONS
- select CMD_DHCP if CMD_NET && !NO_NET
- select CMD_PING if CMD_NET && !NO_NET
- select CMD_PXE if CMD_NET && !NO_NET
- select CMD_BOOTI if ARM64
- select CMD_BOOTZ if ARM && !ARM64
- imply CMD_MII if CMD_NET && !NO_NET
+ select CMD_DHCP if CMD_NET && NET
+ select CMD_PING if CMD_NET && NET
+ select CMD_PXE if CMD_NET && NET
+ select CMD_BOOTI if ARM64 && LMB
+ select CMD_BOOTZ if ARM && !ARM64 && LMB
+ imply CMD_MII if CMD_NET && NET
config BOOT_DEFAULTS
bool # Common defaults for standard boot and distroboot
diff --git a/boot/bootmeth_efi.c b/boot/bootmeth_efi.c
index f592fec07f6..e187dc39912 100644
--- a/boot/bootmeth_efi.c
+++ b/boot/bootmeth_efi.c
@@ -269,17 +269,22 @@ static int distro_efi_read_bootflow_net(struct bootflow *bflow)
return log_msg_ret("fi0", -ENOMEM);
/* read the DT file also */
+ ret = efi_get_distro_fdt_name(fname, sizeof(fname), 0);
+ if (ret == -EALREADY) {
+ /* Prior-stage FDT is used, no download needed */
+ bflow->flags |= BOOTFLOWF_USE_PRIOR_FDT;
+ bflow->state = BOOTFLOWST_READY;
+ return 0;
+ } else if (ret) {
+ return log_msg_ret("nam", ret);
+ }
+
fdt_addr_str = env_get("fdt_addr_r");
if (!fdt_addr_str)
return log_msg_ret("fdt", -EINVAL);
fdt_addr = hextoul(fdt_addr_str, NULL);
sprintf(file_addr, "%lx", fdt_addr);
- /* We only allow the first prefix with PXE */
- ret = efi_get_distro_fdt_name(fname, sizeof(fname), 0);
- if (ret)
- return log_msg_ret("nam", ret);
-
bflow->fdt_fname = strdup(fname);
if (!bflow->fdt_fname)
return log_msg_ret("fil", -ENOMEM);
diff --git a/boot/bootmeth_efi_mgr.c b/boot/bootmeth_efi_mgr.c
index 05fc35d01a9..6e70c36ad99 100644
--- a/boot/bootmeth_efi_mgr.c
+++ b/boot/bootmeth_efi_mgr.c
@@ -58,8 +58,8 @@ static int efi_mgr_read_bootflow(struct udevice *dev, struct bootflow *bflow)
}
ret = efi_init_obj_list();
- if (ret)
- return log_msg_ret("init", ret);
+ if (ret != EFI_SUCCESS)
+ return ret;
/* Enable this method if the "BootOrder" UEFI exists. */
bootorder = efi_get_var(u"BootOrder", &efi_global_variable_guid,
diff --git a/boot/image-fit.c b/boot/image-fit.c
index e7c7212195f..2d2709aa5b1 100644
--- a/boot/image-fit.c
+++ b/boot/image-fit.c
@@ -881,7 +881,7 @@ static int fit_image_get_address(const void *fit, int noffset, char *name,
* fit_image_get_load() - get load addr property for given component image node
* @fit: pointer to the FIT format image header
* @noffset: component image node offset
- * @load: pointer to the uint32_t, will hold load address
+ * @load: pointer to the ulong, will hold load address
*
* fit_image_get_load() finds load address property in a given component
* image node. If the property is found, its value is returned to the caller.
@@ -899,7 +899,7 @@ int fit_image_get_load(const void *fit, int noffset, ulong *load)
* fit_image_get_entry() - get entry point address property
* @fit: pointer to the FIT format image header
* @noffset: component image node offset
- * @entry: pointer to the uint32_t, will hold entry point address
+ * @entry: pointer to the ulong, will hold entry point address
*
* This gets the entry point address property for a given component image
* node.
@@ -2282,7 +2282,7 @@ int fit_image_load(struct bootm_headers *images, ulong addr,
printf(" Loading %s from 0x%08lx to 0x%08lx\n",
prop_name, data, load);
} else {
- load = data; /* No load address specified */
+ load = data; /* load address specified but set to 0 */
}
comp = IH_COMP_NONE;