mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-20 11:55:03 +00:00
Add in the ability to load and boot an uncompressed kernel image during the Falcon Mode boot sequence.
This is required for architectures which do not support compressed kernel images (i.e. ARM64). This is only used while not booting via FIT image. Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com> Cc: Tom Rini <trini@konsulko.com> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
1520af3f84
commit
7a0d88076b
2 changed files with 25 additions and 1 deletions
|
@ -35,7 +35,10 @@ obj-$(CONFIG_CMD_BOOTM) += bootm.o
|
||||||
obj-$(CONFIG_CMD_BOOTZ) += bootm.o zimage.o
|
obj-$(CONFIG_CMD_BOOTZ) += bootm.o zimage.o
|
||||||
else
|
else
|
||||||
obj-$(CONFIG_$(SPL_TPL_)FRAMEWORK) += spl.o
|
obj-$(CONFIG_$(SPL_TPL_)FRAMEWORK) += spl.o
|
||||||
obj-$(CONFIG_SPL_FRAMEWORK) += zimage.o
|
ifdef CONFIG_SPL_FRAMEWORK
|
||||||
|
obj-$(CONFIG_CMD_BOOTI) += image.o
|
||||||
|
obj-$(CONFIG_CMD_BOOTZ) += zimage.o
|
||||||
|
endif
|
||||||
obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
|
obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
|
||||||
endif
|
endif
|
||||||
ifdef CONFIG_ARM64
|
ifdef CONFIG_ARM64
|
||||||
|
|
|
@ -116,6 +116,11 @@ int __weak bootz_setup(ulong image, ulong *start, ulong *end)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int __weak booti_setup(ulong image, ulong *relocated_addr, ulong *size, bool force_reloc)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Weak default function for arch/board-specific fixups to the spl_image_info */
|
/* Weak default function for arch/board-specific fixups to the spl_image_info */
|
||||||
|
@ -391,6 +396,21 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(OS_BOOT)
|
#if CONFIG_IS_ENABLED(OS_BOOT)
|
||||||
|
#if defined(CMD_BOOTI)
|
||||||
|
ulong start, size;
|
||||||
|
|
||||||
|
if (!booti_setup((ulong)header, &start, &size, 0)) {
|
||||||
|
spl_image->name = "Linux";
|
||||||
|
spl_image->os = IH_OS_LINUX;
|
||||||
|
spl_image->load_addr = start;
|
||||||
|
spl_image->entry_point = start;
|
||||||
|
spl_image->size = size;
|
||||||
|
debug(SPL_TPL_PROMPT
|
||||||
|
"payload Image, load addr: 0x%lx size: %d\n",
|
||||||
|
spl_image->load_addr, spl_image->size);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#elif defined(CMD_BOOTZ)
|
||||||
ulong start, end;
|
ulong start, end;
|
||||||
|
|
||||||
if (!bootz_setup((ulong)header, &start, &end)) {
|
if (!bootz_setup((ulong)header, &start, &end)) {
|
||||||
|
@ -404,6 +424,7 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
|
||||||
spl_image->load_addr, spl_image->size);
|
spl_image->load_addr, spl_image->size);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!spl_parse_board_header(spl_image, bootdev, (const void *)header, sizeof(*header)))
|
if (!spl_parse_board_header(spl_image, bootdev, (const void *)header, sizeof(*header)))
|
||||||
|
|
Loading…
Add table
Reference in a new issue