summaryrefslogtreecommitdiffstats
path: root/board/ipe337/cmd_alternate.c
diff options
context:
space:
mode:
authorWolfram Sang <w.sang@pengutronix.de>2008-02-15 11:47:18 +0100
committerWolfram Sang <w.sang@pengutronix.de>2008-02-15 11:47:18 +0100
commit11d26a7de4eae04b78fd63d4bb16c1410cbfaafc (patch)
treeae62bc83c4776c39ab988d316e0f740c0dea7379 /board/ipe337/cmd_alternate.c
parent788312ae298c61a530a828a33cb0e77e92d40c1e (diff)
downloadbarebox-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.c16
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)