diff options
author | Wolfram Sang <w.sang@pengutronix.de> | 2008-02-15 11:47:18 +0100 |
---|---|---|
committer | Wolfram Sang <w.sang@pengutronix.de> | 2008-02-15 11:47:18 +0100 |
commit | 11d26a7de4eae04b78fd63d4bb16c1410cbfaafc (patch) | |
tree | ae62bc83c4776c39ab988d316e0f740c0dea7379 /board/ipe337/cmd_alternate.c | |
parent | 788312ae298c61a530a828a33cb0e77e92d40c1e (diff) | |
download | barebox-11d26a7de4eae04b78fd63d4bb16c1410cbfaafc.tar.gz barebox-11d26a7de4eae04b78fd63d4bb16c1410cbfaafc.tar.xz |
add alternate mechanism & flash scripts - part2
sorry, forgot to add these files :(
Diffstat (limited to 'board/ipe337/cmd_alternate.c')
-rw-r--r-- | board/ipe337/cmd_alternate.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/board/ipe337/cmd_alternate.c b/board/ipe337/cmd_alternate.c index afe75d4bfb..ce2e3e0e7a 100644 --- a/board/ipe337/cmd_alternate.c +++ b/board/ipe337/cmd_alternate.c @@ -4,6 +4,8 @@ #include <malloc.h> #include <fs.h> +#define MAGIC 0x19691228 + static int do_alternate (cmd_tbl_t *cmdtp, int argc, char *argv[]) { void *buf; @@ -12,7 +14,7 @@ static int do_alternate (cmd_tbl_t *cmdtp, int argc, char *argv[]) if (argc != 2) { u_boot_cmd_usage(cmdtp); - return 1; + return 0; } buf = read_file(argv[1], &size); @@ -20,6 +22,12 @@ static int do_alternate (cmd_tbl_t *cmdtp, int argc, char *argv[]) return 1; ptr = buf; + if ((*ptr) != MAGIC) { + printf("Wrong magic! Expected 0x%08x, got 0x%08x.\n", MAGIC, *ptr); + return 1; + } + + ptr++; while ((ulong)ptr <= (ulong)buf + size && !(val = *ptr++)) bitcount += 32; @@ -32,14 +40,14 @@ static int do_alternate (cmd_tbl_t *cmdtp, int argc, char *argv[]) } while (val >>= 1); } - printf("bitcount : %d\n", bitcount); + printf("Bitcount : %d\n", bitcount); free(buf); - return (bitcount & 1) ? 2 : 3; + return (bitcount & 1) ? 3 : 2; } static __maybe_unused char cmd_alternate_help[] = -"Usage: alternate <file>\n" +"Usage: alternate <file>" "\n"; U_BOOT_CMD_START(alternate) |