Whitespace cleanup and marking broken code.

Changes requested by maintainer Stefan Roese after
posting patch to U-boot mailing list.

Signed-off-by: William Juul <william.juul@tandberg.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
This commit is contained in:
William Juul 2007-11-14 14:28:11 +01:00 committed by Scott Wood
parent 5e1dae5c3d
commit 3043c045d5
2 changed files with 57 additions and 44 deletions

View File

@ -14,6 +14,11 @@
#include <linux/mtd/nftl.h> #include <linux/mtd/nftl.h>
#include <linux/mtd/doc2000.h> #include <linux/mtd/doc2000.h>
/*
* ! BROKEN !
*
* TODO: must be implemented and tested by someone with HW
*/
#if 0 #if 0
#ifdef CFG_DOC_SUPPORT_2000 #ifdef CFG_DOC_SUPPORT_2000
#define DoC_is_2000(doc) (doc->ChipID == DOC_ChipID_Doc2k) #define DoC_is_2000(doc) (doc->ChipID == DOC_ChipID_Doc2k)

View File

@ -54,13 +54,9 @@ static int nand_dump(nand_info_t *nand, ulong off)
return 1; return 1;
} }
off &= ~(nand->writesize - 1); off &= ~(nand->writesize - 1);
#if 0
i = nand_read_raw(nand, buf, off, nand->writesize, nand->oobsize);
#else
size_t dummy; size_t dummy;
loff_t addr = (loff_t) off; loff_t addr = (loff_t) off;
i = nand->read(nand, addr, nand->writesize, &dummy, buf); i = nand->read(nand, addr, nand->writesize, &dummy, buf);
#endif
if (i < 0) { if (i < 0) {
printf("Error (%d) reading page %08lx\n", i, off); printf("Error (%d) reading page %08lx\n", i, off);
free(buf); free(buf);
@ -199,7 +195,7 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
if (argc < 3) { if (argc < 3) {
if ((nand_curr_device < 0) || if ((nand_curr_device < 0) ||
(nand_curr_device >= CFG_MAX_NAND_DEVICE)) (nand_curr_device >= CFG_MAX_NAND_DEVICE))
puts("\nno devices available\n"); puts("\nno devices available\n");
else else
printf("\nDevice %d: %s\n", nand_curr_device, printf("\nDevice %d: %s\n", nand_curr_device,
@ -226,11 +222,11 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
} }
if (strcmp(cmd, "bad") != 0 && strcmp(cmd, "erase") != 0 && if (strcmp(cmd, "bad") != 0 && strcmp(cmd, "erase") != 0 &&
strncmp(cmd, "dump", 4) != 0 && strncmp(cmd, "dump", 4) != 0 &&
strncmp(cmd, "read", 4) != 0 && strncmp(cmd, "write", 5) != 0 && strncmp(cmd, "read", 4) != 0 && strncmp(cmd, "write", 5) != 0 &&
strcmp(cmd, "scrub") != 0 && strcmp(cmd, "markbad") != 0 && strcmp(cmd, "scrub") != 0 && strcmp(cmd, "markbad") != 0 &&
strcmp(cmd, "biterr") != 0 && strcmp(cmd, "biterr") != 0 &&
strcmp(cmd, "lock") != 0 && strcmp(cmd, "unlock") != 0 ) strcmp(cmd, "lock") != 0 && strcmp(cmd, "unlock") != 0 )
goto usage; goto usage;
/* the following commands operate on the current device */ /* the following commands operate on the current device */
@ -257,7 +253,7 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
if (strcmp(cmd, "erase") == 0 || strcmp(cmd, "scrub") == 0) { if (strcmp(cmd, "erase") == 0 || strcmp(cmd, "scrub") == 0) {
nand_erase_options_t opts; nand_erase_options_t opts;
/* "clean" at index 2 means request to write cleanmarker */ /* "clean" at index 2 means request to write cleanmarker */
int clean = !strcmp("clean", argv[2]); int clean = argc > 2 && !strcmp("clean", argv[2]);
int o = clean ? 3 : 2; int o = clean ? 3 : 2;
int scrub = !strcmp(cmd, "scrub"); int scrub = !strcmp(cmd, "scrub");
@ -267,7 +263,6 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
return 1; return 1;
memset(&opts, 0, sizeof(opts)); memset(&opts, 0, sizeof(opts));
opts.offset = off; opts.offset = off;
opts.length = size; opts.length = size;
opts.jffs2 = clean; opts.jffs2 = clean;
@ -331,7 +326,7 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
s = strchr(cmd, '.'); s = strchr(cmd, '.');
if (s != NULL && if (s != NULL &&
(!strcmp(s, ".jffs2") || !strcmp(s, ".e") || !strcmp(s, ".i"))) { (!strcmp(s, ".jffs2") || !strcmp(s, ".e") || !strcmp(s, ".i"))) {
if (read) { if (read) {
/* read */ /* read */
nand_read_options_t opts; nand_read_options_t opts;
@ -340,7 +335,13 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
opts.length = size; opts.length = size;
opts.offset = off; opts.offset = off;
opts.quiet = quiet; opts.quiet = quiet;
/* ret = nand_read_opts(nand, &opts); */ /*
* ! BROKEN !
*
* TODO: Function must be implemented
*
* ret = nand_read_opts(nand, &opts);
*/
} else { } else {
/* write */ /* write */
mtd_oob_ops_t opts; mtd_oob_ops_t opts;
@ -404,12 +405,17 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
if (!strcmp("status", argv[2])) if (!strcmp("status", argv[2]))
status = 1; status = 1;
} }
/*
* ! BROKEN !
*
* TODO: must be implemented and tested by someone with HW
*/
#if 0
if (status) { if (status) {
ulong block_start = 0;
ulong off; ulong off;
/* ulong block_start = 0;
int last_status = -1; int last_status = -1;
*/
struct nand_chip *nand_chip = nand->priv; struct nand_chip *nand_chip = nand->priv;
/* check the WP bit */ /* check the WP bit */
nand_chip->cmdfunc (nand, NAND_CMD_STATUS, -1, -1); nand_chip->cmdfunc (nand, NAND_CMD_STATUS, -1, -1);
@ -418,37 +424,34 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
"NOT " : "")); "NOT " : ""));
for (off = 0; off < nand->size; off += nand->writesize) { for (off = 0; off < nand->size; off += nand->writesize) {
#if 0 /* must be fixed */
int s = nand_get_lock_status(nand, off); int s = nand_get_lock_status(nand, off);
/* print message only if status has changed /* print message only if status has changed
* or at end of chip * or at end of chip
*/ */
if (off == nand->size - nand->writesize if (off == nand->size - nand->writesize
|| (s != last_status && off != 0)) { || (s != last_status && off != 0)) {
printf("%08lx - %08lx: %8d pages %s%s%s\n", printf("%08lx - %08lx: %8d pages %s%s%s\n",
block_start, block_start,
off-1, off-1,
(off-block_start)/nand->writesize, (off-block_start)/nand->writesize,
((last_status & NAND_LOCK_STATUS_TIGHT) ? "TIGHT " : ""), ((last_status & NAND_LOCK_STATUS_TIGHT) ? "TIGHT " : ""),
((last_status & NAND_LOCK_STATUS_LOCK) ? "LOCK " : ""), ((last_status & NAND_LOCK_STATUS_LOCK) ? "LOCK " : ""),
((last_status & NAND_LOCK_STATUS_UNLOCK) ? "UNLOCK " : "")); ((last_status & NAND_LOCK_STATUS_UNLOCK) ? "UNLOCK " : ""));
} }
last_status = s; last_status = s;
#endif
} }
} else { } else {
#if 0 /* must be fixed */
if (!nand_lock(nand, tight)) { if (!nand_lock(nand, tight)) {
puts("NAND flash successfully locked\n"); puts("NAND flash successfully locked\n");
} else { } else {
puts("Error locking NAND flash\n"); puts("Error locking NAND flash\n");
return 1; return 1;
} }
#endif
} }
#endif
return 0; return 0;
} }
@ -456,12 +459,17 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
if (arg_off_size(argc - 2, argv + 2, nand, &off, &size) < 0) if (arg_off_size(argc - 2, argv + 2, nand, &off, &size) < 0)
return 1; return 1;
#if 0 /* must be fixed */ /*
* ! BROKEN !
*
* TODO: must be implemented and tested by someone with HW
*/
#if 0
if (!nand_unlock(nand, off, size)) { if (!nand_unlock(nand, off, size)) {
puts("NAND flash successfully unlocked\n"); puts("NAND flash successfully unlocked\n");
} else { } else {
puts("Error unlocking NAND flash, " puts("Error unlocking NAND flash, "
"write and erase will probably fail\n"); "write and erase will probably fail\n");
return 1; return 1;
} }
#endif #endif
@ -542,6 +550,7 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
puts ("** Unknown image type\n"); puts ("** Unknown image type\n");
return 1; return 1;
} }
show_boot_progress (57);
r = nand_read(nand, offset, &cnt, (u_char *) addr); r = nand_read(nand, offset, &cnt, (u_char *) addr);
if (r) { if (r) {
@ -697,10 +706,10 @@ U_BOOT_CMD(nboot, 4, 1, do_nandboot,
void archflashwp(void *archdata, int wp); void archflashwp(void *archdata, int wp);
#endif #endif
#define ROUND_DOWN(value,boundary) ((value) & (~((boundary)-1))) #define ROUND_DOWN(value,boundary) ((value) & (~((boundary)-1)))
#undef NAND_DEBUG #undef NAND_DEBUG
#undef PSYCHO_DEBUG #undef PSYCHO_DEBUG
/* ****************** WARNING ********************* /* ****************** WARNING *********************
* When ALLOW_ERASE_BAD_DEBUG is non-zero the erase command will * When ALLOW_ERASE_BAD_DEBUG is non-zero the erase command will
@ -715,7 +724,7 @@ void archflashwp(void *archdata, int wp);
* and attempting to program or erase bad blocks can affect * and attempting to program or erase bad blocks can affect
* the data in _other_ (good) blocks. * the data in _other_ (good) blocks.
*/ */
#define ALLOW_ERASE_BAD_DEBUG 0 #define ALLOW_ERASE_BAD_DEBUG 0
#define CONFIG_MTD_NAND_ECC /* enable ECC */ #define CONFIG_MTD_NAND_ECC /* enable ECC */
#define CONFIG_MTD_NAND_ECC_JFFS2 #define CONFIG_MTD_NAND_ECC_JFFS2
@ -732,13 +741,13 @@ void archflashwp(void *archdata, int wp);
extern struct nand_chip nand_dev_desc[CFG_MAX_NAND_DEVICE]; extern struct nand_chip nand_dev_desc[CFG_MAX_NAND_DEVICE];
extern int curr_device; extern int curr_device;
extern int nand_legacy_erase(struct nand_chip *nand, size_t ofs, extern int nand_legacy_erase(struct nand_chip *nand, size_t ofs,
size_t len, int clean); size_t len, int clean);
extern int nand_legacy_rw(struct nand_chip *nand, int cmd, size_t start, extern int nand_legacy_rw(struct nand_chip *nand, int cmd, size_t start,
size_t len, size_t *retlen, u_char *buf); size_t len, size_t *retlen, u_char *buf);
extern void nand_print(struct nand_chip *nand); extern void nand_print(struct nand_chip *nand);
extern void nand_print_bad(struct nand_chip *nand); extern void nand_print_bad(struct nand_chip *nand);
extern int nand_read_oob(struct nand_chip *nand, size_t ofs, extern int nand_read_oob(struct nand_chip *nand, size_t ofs,
size_t len, size_t *retlen, u_char *buf); size_t len, size_t *retlen, u_char *buf);
extern int nand_write_oob(struct nand_chip *nand, size_t ofs, extern int nand_write_oob(struct nand_chip *nand, size_t ofs,
size_t len, size_t *retlen, const u_char *buf); size_t len, size_t *retlen, const u_char *buf);
@ -873,7 +882,7 @@ int do_nand (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
else if (cmdtail && !strcmp (cmdtail, ".i")) { else if (cmdtail && !strcmp (cmdtail, ".i")) {
cmd |= NANDRW_JFFS2; /* skip bad blocks (on read too) */ cmd |= NANDRW_JFFS2; /* skip bad blocks (on read too) */
if (cmd & NANDRW_READ) if (cmd & NANDRW_READ)
cmd |= NANDRW_JFFS2_SKIP; /* skip bad blocks (on read too) */ cmd |= NANDRW_JFFS2_SKIP; /* skip bad blocks (on read too) */
} }
#endif /* CFG_NAND_SKIP_BAD_DOT_I */ #endif /* CFG_NAND_SKIP_BAD_DOT_I */
else if (cmdtail) { else if (cmdtail) {
@ -887,8 +896,7 @@ int do_nand (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
ret = nand_legacy_rw (nand_dev_desc + curr_device, ret = nand_legacy_rw (nand_dev_desc + curr_device,
cmd, off, size, cmd, off, size,
&total, &total, (u_char *) addr);
(u_char *) addr);
printf (" %d bytes %s: %s\n", total, printf (" %d bytes %s: %s\n", total,
(cmd & NANDRW_READ) ? "read" : "written", (cmd & NANDRW_READ) ? "read" : "written",
@ -923,15 +931,15 @@ int do_nand (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
} }
U_BOOT_CMD( U_BOOT_CMD(
nand, 5, 1, do_nand, nand, 5, 1, do_nand,
"nand - legacy NAND sub-system\n", "nand - legacy NAND sub-system\n",
"info - show available NAND devices\n" "info - show available NAND devices\n"
"nand device [dev] - show or set current device\n" "nand device [dev] - show or set current device\n"
"nand read[.jffs2[s]] addr off size\n" "nand read[.jffs2[s]] addr off size\n"
"nand write[.jffs2] addr off size - read/write `size' bytes starting\n" "nand write[.jffs2] addr off size - read/write `size' bytes starting\n"
" at offset `off' to/from memory address `addr'\n" " at offset `off' to/from memory address `addr'\n"
"nand erase [clean] [off size] - erase `size' bytes from\n" "nand erase [clean] [off size] - erase `size' bytes from\n"
" offset `off' (entire device if not specified)\n" " offset `off' (entire device if not specified)\n"
"nand bad - show bad blocks\n" "nand bad - show bad blocks\n"
"nand read.oob addr off size - read out-of-band data\n" "nand read.oob addr off size - read out-of-band data\n"
"nand write.oob addr off size - read out-of-band data\n" "nand write.oob addr off size - read out-of-band data\n"
@ -987,7 +995,7 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
dev = simple_strtoul(boot_device, &ep, 16); dev = simple_strtoul(boot_device, &ep, 16);
if ((dev >= CFG_MAX_NAND_DEVICE) || if ((dev >= CFG_MAX_NAND_DEVICE) ||
(nand_dev_desc[dev].ChipID == NAND_ChipID_UNKNOWN)) { (nand_dev_desc[dev].ChipID == NAND_ChipID_UNKNOWN)) {
printf ("\n** Device %d not available\n", dev); printf ("\n** Device %d not available\n", dev);
show_boot_progress (-55); show_boot_progress (-55);
return 1; return 1;
@ -1072,7 +1080,7 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
} }
U_BOOT_CMD( U_BOOT_CMD(
nboot, 4, 1, do_nandboot, nboot, 4, 1, do_nandboot,
"nboot - boot from NAND device\n", "nboot - boot from NAND device\n",
"loadAddr dev\n" "loadAddr dev\n"
); );