diff options
Diffstat (limited to 'boot')
| -rw-r--r-- | boot/Kconfig | 14 | ||||
| -rw-r--r-- | boot/bootmeth_efi.c | 15 | ||||
| -rw-r--r-- | boot/bootmeth_efi_mgr.c | 4 | ||||
| -rw-r--r-- | boot/image-fit.c | 6 |
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; |
