Add support for booting of INTEGRITY operating system uImages
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
This commit is contained in:
parent
72f1b65f1b
commit
f5ed9e3908
5
README
5
README
|
@ -3030,8 +3030,9 @@ details; basically, the header defines the following image properties:
|
||||||
|
|
||||||
* Target Operating System (Provisions for OpenBSD, NetBSD, FreeBSD,
|
* Target Operating System (Provisions for OpenBSD, NetBSD, FreeBSD,
|
||||||
4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks,
|
4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks,
|
||||||
LynxOS, pSOS, QNX, RTEMS;
|
LynxOS, pSOS, QNX, RTEMS, INTEGRITY;
|
||||||
Currently supported: Linux, NetBSD, VxWorks, QNX, RTEMS, LynxOS).
|
Currently supported: Linux, NetBSD, VxWorks, QNX, RTEMS, LynxOS,
|
||||||
|
INTEGRITY).
|
||||||
* Target CPU Architecture (Provisions for Alpha, ARM, AVR32, Intel x86,
|
* Target CPU Architecture (Provisions for Alpha, ARM, AVR32, Intel x86,
|
||||||
IA64, MIPS, NIOS, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit;
|
IA64, MIPS, NIOS, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit;
|
||||||
Currently supported: ARM, AVR32, Intel x86, MIPS, NIOS, PowerPC).
|
Currently supported: ARM, AVR32, Intel x86, MIPS, NIOS, PowerPC).
|
||||||
|
|
|
@ -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_bootvx (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
||||||
int do_bootelf (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
int do_bootelf (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(CONFIG_INTEGRITY)
|
||||||
|
static boot_os_fn do_bootm_integrity;
|
||||||
|
#endif
|
||||||
|
|
||||||
ulong load_addr = CFG_LOAD_ADDR; /* Default Load Address */
|
ulong load_addr = CFG_LOAD_ADDR; /* Default Load Address */
|
||||||
static bootm_headers_t images; /* pointers to os/initrd/fdt images */
|
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;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_INTEGRITY
|
||||||
|
case IH_OS_INTEGRITY:
|
||||||
|
do_bootm_integrity (0, argc, argv, &images);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
show_boot_progress (-9);
|
show_boot_progress (-9);
|
||||||
|
@ -1144,3 +1152,33 @@ static int do_bootm_qnxelf(int flag, int argc, char *argv[],
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#endif
|
#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
|
||||||
|
|
|
@ -116,6 +116,9 @@ static table_entry_t uimage_os[] = {
|
||||||
{ IH_OS_QNX, "qnx", "QNX", },
|
{ IH_OS_QNX, "qnx", "QNX", },
|
||||||
{ IH_OS_VXWORKS, "vxworks", "VxWorks", },
|
{ IH_OS_VXWORKS, "vxworks", "VxWorks", },
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(CONFIG_INTEGRITY) || defined(USE_HOSTCC)
|
||||||
|
{ IH_OS_INTEGRITY,"integrity", "INTEGRITY", },
|
||||||
|
#endif
|
||||||
#ifdef USE_HOSTCC
|
#ifdef USE_HOSTCC
|
||||||
{ IH_OS_4_4BSD, "4_4bsd", "4_4BSD", },
|
{ IH_OS_4_4BSD, "4_4bsd", "4_4BSD", },
|
||||||
{ IH_OS_DELL, "dell", "Dell", },
|
{ IH_OS_DELL, "dell", "Dell", },
|
||||||
|
|
|
@ -169,7 +169,7 @@ the '/images' node should have the following layout:
|
||||||
- os : OS name, mandatory for type="kernel", valid OS names are: "openbsd",
|
- os : OS name, mandatory for type="kernel", valid OS names are: "openbsd",
|
||||||
"netbsd", "freebsd", "4_4bsd", "linux", "svr4", "esix", "solaris", "irix",
|
"netbsd", "freebsd", "4_4bsd", "linux", "svr4", "esix", "solaris", "irix",
|
||||||
"sco", "dell", "ncr", "lynxos", "vxworks", "psos", "qnx", "u_boot",
|
"sco", "dell", "ncr", "lynxos", "vxworks", "psos", "qnx", "u_boot",
|
||||||
"rtems", "unity".
|
"rtems", "unity", "integrity".
|
||||||
- arch : Architecture name, mandatory for types: "standalone", "kernel",
|
- arch : Architecture name, mandatory for types: "standalone", "kernel",
|
||||||
"firmware", "ramdisk" and "fdt". Valid architecture names are: "alpha",
|
"firmware", "ramdisk" and "fdt". Valid architecture names are: "alpha",
|
||||||
"arm", "i386", "ia64", "mips", "mips64", "ppc", "s390", "sh", "sparc",
|
"arm", "i386", "ia64", "mips", "mips64", "ppc", "s390", "sh", "sparc",
|
||||||
|
|
|
@ -85,6 +85,7 @@
|
||||||
#define IH_OS_RTEMS 18 /* RTEMS */
|
#define IH_OS_RTEMS 18 /* RTEMS */
|
||||||
#define IH_OS_ARTOS 19 /* ARTOS */
|
#define IH_OS_ARTOS 19 /* ARTOS */
|
||||||
#define IH_OS_UNITY 20 /* Unity OS */
|
#define IH_OS_UNITY 20 /* Unity OS */
|
||||||
|
#define IH_OS_INTEGRITY 21 /* INTEGRITY */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CPU Architecture Codes (supported by Linux)
|
* CPU Architecture Codes (supported by Linux)
|
||||||
|
|
Loading…
Reference in New Issue