diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2008-02-21 13:18:53 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2008-02-21 13:18:53 +0100 |
commit | a28726cf516e331a96c0976fb2afb5ff6fb1625a (patch) | |
tree | daa053a3d6b9ada25c7e62170d10dd4d2fea90f9 /arch/blackfin/lib | |
parent | 28ab141867944cc7181e2ca786cf401d1a296041 (diff) | |
download | barebox-a28726cf516e331a96c0976fb2afb5ff6fb1625a.tar.gz barebox-a28726cf516e331a96c0976fb2afb5ff6fb1625a.tar.xz |
[blackfin]: register handler for booting linux images
Diffstat (limited to 'arch/blackfin/lib')
-rw-r--r-- | arch/blackfin/lib/blackfin_linux.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/blackfin/lib/blackfin_linux.c b/arch/blackfin/lib/blackfin_linux.c index 67963ad385..fdd0091e95 100644 --- a/arch/blackfin/lib/blackfin_linux.c +++ b/arch/blackfin/lib/blackfin_linux.c @@ -34,14 +34,17 @@ #include <asm/byteorder.h> #include <asm/cpu.h> #include <asm/blackfin.h> +#include <init.h> +#include <boot.h> #define CMD_LINE_ADDR 0xFF900000 /* L1 scratchpad */ -int do_bootm_linux(struct image_handle *os_handle, struct image_handle *initrd) +static int do_bootm_linux(struct image_data *idata) { int (*appl)(char *cmdline); const char *cmdline = getenv("bootargs"); char *cmdlinedest = (char *) CMD_LINE_ADDR; + struct image_handle *os_handle = idata->os; image_header_t *os_header = &os_handle->header; appl = (int (*)(char *))ntohl(os_header->ih_ep); @@ -62,3 +65,15 @@ int do_bootm_linux(struct image_handle *os_handle, struct image_handle *initrd) return -1; } +static struct image_handler handler = { + .bootm = do_bootm_linux, + .image_type = IH_OS_LINUX, +}; + +static int bfinlinux_register_image_handler(void) +{ + return register_image_handler(&handler); +} + +late_initcall(bfinlinux_register_image_handler); + |