diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2012-04-13 15:08:04 +0800 |
---|---|---|
committer | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2012-04-18 20:19:12 +0800 |
commit | bb618e309df8a1161441670005decc1f8b8f76f6 (patch) | |
tree | 1fefecf583371d959449bcedd2898fe618b44fa0 /arch | |
parent | 7ae2c6261b7d095b852cc10ee5aac052c8bd38fd (diff) | |
download | barebox-bb618e309df8a1161441670005decc1f8b8f76f6.tar.gz barebox-bb618e309df8a1161441670005decc1f8b8f76f6.tar.xz |
arm: bootm: add barebox, zImage and aImage binfmt support
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/lib/bootm.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c index 26053dcdde..c4bd1563e2 100644 --- a/arch/arm/lib/bootm.c +++ b/arch/arm/lib/bootm.c @@ -15,6 +15,7 @@ #include <libbb.h> #include <magicvar.h> #include <libfdt.h> +#include <binfmt.h> #include <asm/byteorder.h> #include <asm/setup.h> @@ -445,14 +446,33 @@ BAREBOX_MAGICVAR(aimage_noverwrite_bootargs, "Disable overwrite of the bootargs BAREBOX_MAGICVAR(aimage_noverwrite_tags, "Disable overwrite of the tags addr with the one present in aimage"); #endif +static struct binfmt_hook binfmt_aimage_hook = { + .type = filetype_aimage, + .exec = "bootm", +}; + +static struct binfmt_hook binfmt_arm_zimage_hook = { + .type = filetype_arm_zimage, + .exec = "bootm", +}; + +static struct binfmt_hook binfmt_barebox_hook = { + .type = filetype_arm_barebox, + .exec = "bootm", +}; + static int armlinux_register_image_handler(void) { register_image_handler(&barebox_handler); register_image_handler(&uimage_handler); register_image_handler(&rawimage_handler); register_image_handler(&zimage_handler); - if (IS_BUILTIN(CONFIG_CMD_BOOTM_AIMAGE)) + if (IS_BUILTIN(CONFIG_CMD_BOOTM_AIMAGE)) { register_image_handler(&aimage_handler); + binfmt_register(&binfmt_aimage_hook); + } + binfmt_register(&binfmt_arm_zimage_hook); + binfmt_register(&binfmt_barebox_hook); return 0; } |