1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-10-22 10:31:56 +02:00

Add support for booting of INTEGRITY operating system uImages

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
This commit is contained in:
Peter Tyser
2008-09-08 14:56:49 -05:00
committed by Wolfgang Denk
parent 72f1b65f1b
commit f5ed9e3908
5 changed files with 46 additions and 3 deletions

View File

@@ -108,6 +108,9 @@ static boot_os_fn do_bootm_qnxelf;
int do_bootvx (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
int do_bootelf (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
#endif
#if defined(CONFIG_INTEGRITY)
static boot_os_fn do_bootm_integrity;
#endif
ulong load_addr = CFG_LOAD_ADDR; /* Default Load Address */
static bootm_headers_t images; /* pointers to os/initrd/fdt images */
@@ -452,6 +455,11 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
break;
#endif
#ifdef CONFIG_INTEGRITY
case IH_OS_INTEGRITY:
do_bootm_integrity (0, argc, argv, &images);
break;
#endif
}
show_boot_progress (-9);
@@ -1144,3 +1152,33 @@ static int do_bootm_qnxelf(int flag, int argc, char *argv[],
return 1;
}
#endif
#ifdef CONFIG_INTEGRITY
static int do_bootm_integrity (int flag, int argc, char *argv[],
bootm_headers_t *images)
{
void (*entry_point)(void);
#if defined(CONFIG_FIT)
if (!images->legacy_hdr_valid) {
fit_unsupported_reset ("INTEGRITY");
return 1;
}
#endif
entry_point = (void (*)(void))images->ep;
printf ("## Transferring control to INTEGRITY (at address %08lx) ...\n",
(ulong)entry_point);
show_boot_progress (15);
/*
* INTEGRITY Parameters:
* None
*/
(*entry_point)();
return 1;
}
#endif