|
|
|
@ -119,6 +119,9 @@ extern void lynxkdi_boot (image_header_t *); |
|
|
|
|
#ifdef CONFIG_BOOTM_RTEMS |
|
|
|
|
static boot_os_fn do_bootm_rtems; |
|
|
|
|
#endif |
|
|
|
|
#if defined(CONFIG_BOOTM_OSE) |
|
|
|
|
static boot_os_fn do_bootm_ose; |
|
|
|
|
#endif |
|
|
|
|
#if defined(CONFIG_CMD_ELF) |
|
|
|
|
static boot_os_fn do_bootm_vxworks; |
|
|
|
|
static boot_os_fn do_bootm_qnxelf; |
|
|
|
@ -142,6 +145,9 @@ static boot_os_fn *boot_os[] = { |
|
|
|
|
#ifdef CONFIG_BOOTM_RTEMS |
|
|
|
|
[IH_OS_RTEMS] = do_bootm_rtems, |
|
|
|
|
#endif |
|
|
|
|
#if defined(CONFIG_BOOTM_OSE) |
|
|
|
|
[IH_OS_OSE] = do_bootm_ose, |
|
|
|
|
#endif |
|
|
|
|
#if defined(CONFIG_CMD_ELF) |
|
|
|
|
[IH_OS_VXWORKS] = do_bootm_vxworks, |
|
|
|
|
[IH_OS_QNX] = do_bootm_qnxelf, |
|
|
|
@ -1383,6 +1389,39 @@ static int do_bootm_rtems (int flag, int argc, char * const argv[], |
|
|
|
|
} |
|
|
|
|
#endif /* CONFIG_BOOTM_RTEMS */ |
|
|
|
|
|
|
|
|
|
#if defined(CONFIG_BOOTM_OSE) |
|
|
|
|
static int do_bootm_ose (int flag, int argc, char * const argv[], |
|
|
|
|
bootm_headers_t *images) |
|
|
|
|
{ |
|
|
|
|
void (*entry_point)(void); |
|
|
|
|
|
|
|
|
|
if ((flag != 0) && (flag != BOOTM_STATE_OS_GO)) |
|
|
|
|
return 1; |
|
|
|
|
|
|
|
|
|
#if defined(CONFIG_FIT) |
|
|
|
|
if (!images->legacy_hdr_valid) { |
|
|
|
|
fit_unsupported_reset ("OSE"); |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
entry_point = (void (*)(void))images->ep; |
|
|
|
|
|
|
|
|
|
printf ("## Transferring control to OSE (at address %08lx) ...\n", |
|
|
|
|
(ulong)entry_point); |
|
|
|
|
|
|
|
|
|
show_boot_progress (15); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* OSE Parameters: |
|
|
|
|
* None |
|
|
|
|
*/ |
|
|
|
|
(*entry_point)(); |
|
|
|
|
|
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
#endif /* CONFIG_BOOTM_OSE */ |
|
|
|
|
|
|
|
|
|
#if defined(CONFIG_CMD_ELF) |
|
|
|
|
static int do_bootm_vxworks (int flag, int argc, char * const argv[], |
|
|
|
|
bootm_headers_t *images) |
|
|
|
|