mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
Fix test failure caused by bad handling of ramdisk
Commit e3a5bbce
broke the FIT image tests by not loading a ramdisk even if
a load address is provided in the FIT. The rationale was that a load address
of 0 should be considered to mean 'do not load'.
Add a new load operation which supports this feature, so that the ramdisk
will be loaded if a non-zero load address is provided.
Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
4a8ed8e248
commit
fe20a81a68
3 changed files with 4 additions and 2 deletions
|
@ -1656,7 +1656,7 @@ int fit_image_load(bootm_headers_t *images, ulong addr,
|
||||||
bootstage_error(bootstage_id + BOOTSTAGE_SUB_LOAD);
|
bootstage_error(bootstage_id + BOOTSTAGE_SUB_LOAD);
|
||||||
return -EBADF;
|
return -EBADF;
|
||||||
}
|
}
|
||||||
} else {
|
} else if (load_op != FIT_LOAD_OPTIONAL_NON_ZERO || load) {
|
||||||
ulong image_start, image_end;
|
ulong image_start, image_end;
|
||||||
ulong load_end;
|
ulong load_end;
|
||||||
void *dst;
|
void *dst;
|
||||||
|
|
|
@ -966,7 +966,8 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
|
||||||
&fit_uname_config, arch,
|
&fit_uname_config, arch,
|
||||||
IH_TYPE_RAMDISK,
|
IH_TYPE_RAMDISK,
|
||||||
BOOTSTAGE_ID_FIT_RD_START,
|
BOOTSTAGE_ID_FIT_RD_START,
|
||||||
FIT_LOAD_IGNORED, &rd_data, &rd_len);
|
FIT_LOAD_OPTIONAL_NON_ZERO,
|
||||||
|
&rd_data, &rd_len);
|
||||||
if (rd_noffset < 0)
|
if (rd_noffset < 0)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|
|
@ -412,6 +412,7 @@ void genimg_print_time(time_t timestamp);
|
||||||
enum fit_load_op {
|
enum fit_load_op {
|
||||||
FIT_LOAD_IGNORED, /* Ignore load address */
|
FIT_LOAD_IGNORED, /* Ignore load address */
|
||||||
FIT_LOAD_OPTIONAL, /* Can be provided, but optional */
|
FIT_LOAD_OPTIONAL, /* Can be provided, but optional */
|
||||||
|
FIT_LOAD_OPTIONAL_NON_ZERO, /* Optional, a value of 0 is ignored */
|
||||||
FIT_LOAD_REQUIRED, /* Must be provided */
|
FIT_LOAD_REQUIRED, /* Must be provided */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue