mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 21:21:37 +00:00
spl: fit: Make room in the FDT before applying overlays
Make room in the FDT before applying the overlay, otherwise it may fail if the overlay is big. As the exact added size is not known in advance, just add the size of the overlay. Move after the end of the application of the overlays, the resize of the FDT for the injection of the details on the loadables. Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
9d13b87254
commit
99329be2c5
1 changed files with 12 additions and 5 deletions
|
@ -313,11 +313,6 @@ static int spl_fit_append_fdt(struct spl_image_info *spl_image,
|
|||
/* Make the load-address of the FDT available for the SPL framework */
|
||||
spl_image->fdt_addr = (void *)image_info.load_addr;
|
||||
#if !CONFIG_IS_ENABLED(FIT_IMAGE_TINY)
|
||||
/* Try to make space, so we can inject details on the loadables */
|
||||
ret = fdt_shrink_to_minimum(spl_image->fdt_addr, 8192);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
#endif
|
||||
if (CONFIG_IS_ENABLED(LOAD_FIT_APPLY_OVERLAY)) {
|
||||
for (; ; index++) {
|
||||
node = spl_fit_get_image_node(fit, images, FIT_FDT_PROP,
|
||||
|
@ -332,6 +327,12 @@ static int spl_fit_append_fdt(struct spl_image_info *spl_image,
|
|||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Make room in FDT for changes from the overlay */
|
||||
ret = fdt_increase_size(spl_image->fdt_addr,
|
||||
image_info.size);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = fdt_overlay_apply_verbose(spl_image->fdt_addr,
|
||||
(void *)image_info.load_addr);
|
||||
if (ret)
|
||||
|
@ -341,6 +342,12 @@ static int spl_fit_append_fdt(struct spl_image_info *spl_image,
|
|||
fit_get_name(fit, node, NULL));
|
||||
}
|
||||
}
|
||||
/* Try to make space, so we can inject details on the loadables */
|
||||
ret = fdt_shrink_to_minimum(spl_image->fdt_addr, 8192);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue