diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2011-04-01 14:20:15 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-04-04 16:27:58 +0200 |
commit | f103a9843e480debba080cf4fab602bc751fbad8 (patch) | |
tree | 0b1fe84c2cf935083ea9c19f51d9505c5a9180f2 /arch/arm/lib/armlinux.c | |
parent | bb7fff04afdddaa63c2f519221df07abf8a8467d (diff) | |
download | barebox-f103a9843e480debba080cf4fab602bc751fbad8.tar.gz barebox-f103a9843e480debba080cf4fab602bc751fbad8.tar.xz |
ARM: move bootz code to its own file
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/lib/armlinux.c')
-rw-r--r-- | arch/arm/lib/armlinux.c | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/arch/arm/lib/armlinux.c b/arch/arm/lib/armlinux.c index a37f7108a8..bb4bcd3c4f 100644 --- a/arch/arm/lib/armlinux.c +++ b/arch/arm/lib/armlinux.c @@ -232,101 +232,6 @@ void start_linux(void *adr, int swap, struct image_data *data) kernel(0, armlinux_architecture, armlinux_bootparams); } -#ifdef CONFIG_CMD_BOOTZ -struct zimage_header { - u32 unused[9]; - u32 magic; - u32 start; - u32 end; -}; - -#define ZIMAGE_MAGIC 0x016F2818 - -static int do_bootz(struct command *cmdtp, int argc, char *argv[]) -{ - void (*theKernel)(int zero, int arch, void *params); - int fd, ret, swap = 0; - struct zimage_header header; - void *zimage; - u32 end; - - if (argc != 2) { - barebox_cmd_usage(cmdtp); - return 1; - } - - fd = open(argv[1], O_RDONLY); - if (fd < 0) { - perror("open"); - return 1; - } - - ret = read(fd, &header, sizeof(header)); - if (ret < sizeof(header)) { - printf("could not read %s\n", argv[1]); - goto err_out; - } - - switch (header.magic) { -#ifdef CONFIG_BOOT_ENDIANNESS_SWITCH - case swab32(ZIMAGE_MAGIC): - swap = 1; - /* fall through */ -#endif - case ZIMAGE_MAGIC: - break; - default: - printf("invalid magic 0x%08x\n", header.magic); - goto err_out; - } - - end = header.end; - - if (swap) - end = swab32(end); - - zimage = xmalloc(end); - memcpy(zimage, &header, sizeof(header)); - - ret = read(fd, zimage + sizeof(header), end - sizeof(header)); - if (ret < end - sizeof(header)) { - printf("could not read %s\n", argv[1]); - goto err_out1; - } - - if (swap) { - void *ptr; - for (ptr = zimage; ptr < zimage + end; ptr += 4) - *(u32 *)ptr = swab32(*(u32 *)ptr); - } - - theKernel = zimage; - - printf("loaded zImage from %s with size %d\n", argv[1], end); - - start_linux(theKernel, swap, NULL); - - return 0; - -err_out1: - free(zimage); -err_out: - close(fd); - - return 1; -} - -static const __maybe_unused char cmd_bootz_help[] = -"Usage: bootz [FILE]\n" -"Boot a Linux zImage\n"; - -BAREBOX_CMD_START(bootz) - .cmd = do_bootz, - .usage = "bootz - start a zImage", - BAREBOX_CMD_HELP(cmd_bootz_help) -BAREBOX_CMD_END -#endif /* CONFIG_CMD_BOOTZ */ - #ifdef CONFIG_CMD_BOOTU static int do_bootu(struct command *cmdtp, int argc, char *argv[]) { |