image: bootm: Add OpenRTOS image type
PATCH 1/2 image: bootm: Add OpenRTOS image type
Add separate image type for the Wittenstein OpenRTOS .
--- common/bootm_os.c | 29 +++++++++++++++++++++++++++++ common/image.c | 4 ++++ include/image.h | 1 + 3 files changed, 34 insertions(+)
common/bootm_os.c +29 -0
@@ -404,6 +404,32 @@ static int do_bootm_integrity(int flag, int argc, char * const argv[], }#endif +#ifdef CONFIG_BOOTM_OPENRTOS +static int do_bootm_openrtos (int flag,int argc,char *const argv[], +bootm_headers_t *images) +{ +void (*entry_point)(void ); + +if (flag !=BOOTM_STATE_OS_GO ) +return 0 ; + + entry_point = (void (*)(void ))images->ep; + +printf ("## Transferring control to OpenRTOS (at address %08lx) ...\n" , + (ulong )entry_point); + +bootstage_mark (BOOTSTAGE_ID_RUN_OS ); + +/* +* OpenRTOS Parameters: +* None +*/ + (*entry_point)(); + +return 1 ; +} +#endif +static boot_os_fn *boot_os[] = { [IH_OS_U_BOOT ] = do_bootm_standalone, #ifdef CONFIG_BOOTM_LINUX
@@ -434,6 +460,9 @@ static boot_os_fn *boot_os[] = { #ifdef CONFIG_INTEGRITY [IH_OS_INTEGRITY ] = do_bootm_integrity, #endif +#ifdef CONFIG_BOOTM_OPENRTOS + [IH_OS_OPENRTOS] = do_bootm_openrtos, +#endif };/* Allow for arch specific config before we boot */
common/image.c +4 -0
@@ -120,6 +120,10 @@ static const table_entry_t uimage_os[] = { { IH_OS_SOLARIS, "solaris", "Solaris", }, { IH_OS_SVR4, "svr4", "SVR4", }, #endif +#if defined(CONFIG_BOOTM_OPENRTOS) || defined(USE_HOSTCC) + { IH_OS_OPENRTOS, "openrtos", "OpenRTOS", }, +#endif + { -1, "", "", }, };
include/image.h +1 -0
@@ -152,6 +152,7 @@ struct lmb;#define IH_OS_INTEGRITY 21/* INTEGRITY */ #define IH_OS_OSE 22/* OSE */ #define IH_OS_PLAN9 23/* Plan 9 */ +#define IH_OS_OPENRTOS 24/* OpenRTOS */ /* * CPU Architecture Codes (supported by Linux)
Signature · 1 line
2.1.3
PATCH 2/2 image: Enable OpenRTOS booting via fitImage
Allow booting the OpenRTOS payloads via fitImage image type.
--- common/image-fit.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
common/image-fit.c +8 -2
@@ -1518,6 +1518,7 @@ int fit_image_load(bootm_headers_t *images, ulong addr,size_t size;int type_ok, os_ok;ulong load, data, len; +uint8_t os;const char *prop_name;int ret;
@@ -1612,10 +1613,15 @@ int fit_image_load(bootm_headers_t *images, ulong addr, (image_type ==IH_TYPE_KERNEL &&fit_image_check_type (fit, noffset,IH_TYPE_KERNEL_NOLOAD )); + os_ok = image_type ==IH_TYPE_FLATDT || -fit_image_check_os (fit, noffset,IH_OS_LINUX ); +fit_image_check_os (fit, noffset,IH_OS_LINUX ) || +fit_image_check_os (fit, noffset,IH_OS_OPENRTOS );if (!type_ok || !os_ok) { -printf ("No Linux %s %s Image\n" ,genimg_get_arch_name (arch), +fit_image_get_os (fit, noffset, &os); +printf ("No %s %s %s Image\n" , +genimg_get_os_name (os), +genimg_get_arch_name (arch),genimg_get_type_name (image_type));bootstage_error (bootstage_id +BOOTSTAGE_SUB_CHECK_ALL );return -EIO ;
Signature · 1 line
2.1.3
PATCH 2/2 image: Enable OpenRTOS booting via fitImage
Quoted 8 lines · Marek Vasut
Allow booting the OpenRTOS payloads via fitImage image type.
Signed-off-by Marek Vasut <[email protected]>Cc Simon Glass <[email protected]>Cc Tom Rini <[email protected]>--- common/image-fit.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
PATCH 2/2 image: Enable OpenRTOS booting via fitImage
In reply to Marek VasutQuoted 6 lines · Marek Vasut
Allow booting the OpenRTOS payloads via fitImage image type.
Signed-off-by Marek Vasut <[email protected]>Cc Simon Glass <[email protected]>Cc Tom Rini <[email protected]>Reviewed-by Simon Glass <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150115/80f89b6b/attachment.pgp>
PATCH 1/2 image: bootm: Add OpenRTOS image type
In reply to Marek VasutQuoted 10 lines · Marek Vasut
Add separate image type for the Wittenstein OpenRTOS .
Signed-off-by Marek Vasut <[email protected]>Cc Simon Glass <[email protected]>Cc Tom Rini <[email protected]>--- common/bootm_os.c | 29 +++++++++++++++++++++++++++++ common/image.c | 4 ++++ include/image.h | 1 + 3 files changed, 34 insertions(+)
PATCH 1/2 image: bootm: Add OpenRTOS image type
Quoted 8 lines · Simon Glass
Quoted 7 lines · Marek Vasut
Add separate image type for the Wittenstein OpenRTOS .
Signed-off-by Marek Vasut <[email protected]>Cc Simon Glass <[email protected]>Cc Tom Rini <[email protected]>---
Quoted 6 lines
Quoted 4 lines
common/bootm_os.c | 29 +++++++++++++++++++++++++++++ common/image.c | 4 ++++ include/image.h | 1 + 3 files changed, 34 insertions(+)Reviewed-by Simon Glass <[email protected]>
Thank you! I was a bit worried if these patches are really done right and if this is the correct way to integrate the OpenRTOS support.
Best regards,
Marek Vasut
PATCH 1/2 image: bootm: Add OpenRTOS image type
In reply to Marek VasutHello Marek,
Quoted 24 lines · Marek Vasut
Add separate image type for the Wittenstein OpenRTOS .
Signed-off-by Marek Vasut <[email protected]>Cc Simon Glass <[email protected]>Cc Tom Rini <[email protected]>--- common/bootm_os.c | 29 +++++++++++++++++++++++++++++ common/image.c | 4 ++++ include/image.h | 1 + 3 files changed, 34 insertions(+)common/bootm_os.c +5
-0@@ -404,6 +404,32 @@ static int do_bootm_integrity(int flag, int argc, char * const argv[], }#endif +#ifdef CONFIG_BOOTM_OPENRTOS +static int do_bootm_openrtos (int flag,int argc,char *const argv[], +bootm_headers_t *images) +{ +void (*entry_point)(void );
common/bootm_os.c static int do_bootm_integrity(int flag, int argc, char * const argv[], · line 421
Quoted 10 lines
common/bootm_os.c +10
-0+ +if (flag !=BOOTM_STATE_OS_GO ) +return 0 ; + + entry_point = (void (*)(void ))images->ep; + +printf ("## Transferring control to OpenRTOS (at address %08lx) ...\n" , + (ulong )entry_point); + +bootstage_mark (BOOTSTAGE_ID_RUN_OS );
You might consider adding a prepare function here, similar to e.g. boot_prep_vxworks(images) which eventually calls cleanup_before_linux(), so you end up jumping into the image with caches flushed and disabled (at least on ARM). I don't know if this is needed in your case though...
common/bootm_os.c static int do_bootm_integrity(int flag, int argc, char * const argv[], · line 431
Quoted 10 lines
common/bootm_os.c +10
-0+ +/* +* OpenRTOS Parameters: +* None +*/ + (*entry_point)(); + + return 1; +} +#endif
Regards,
Jeroen
PATCH 1/2 image: bootm: Add OpenRTOS image type
In reply to Marek VasutQuoted 6 lines · Marek Vasut
Add separate image type for the Wittenstein OpenRTOS .
Signed-off-by Marek Vasut <[email protected]>Cc Simon Glass <[email protected]>Cc Tom Rini <[email protected]>Reviewed-by Simon Glass <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150115/db6a790a/attachment.pgp>