diff options
author | Wolfgang Denk <wd@pollux.denx.de> | 2005-08-12 23:55:10 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@pollux.denx.de> | 2005-08-12 23:55:10 +0200 |
commit | 55d150d95dbd4612f229e1f503c3a6aa8ed08a96 (patch) | |
tree | e8b755c6b0c5d56c8d8777236baab8b1deb67451 /common | |
parent | 2191923072413972d8dbf3e1b2f8ce6762a85800 (diff) | |
parent | 90e4e7836596d8ae5cead41a776b2b95c84182c6 (diff) | |
download | u-boot-imx-55d150d95dbd4612f229e1f503c3a6aa8ed08a96.zip u-boot-imx-55d150d95dbd4612f229e1f503c3a6aa8ed08a96.tar.gz u-boot-imx-55d150d95dbd4612f229e1f503c3a6aa8ed08a96.tar.bz2 |
Merge with /home/wd/git/u-boot/master
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_ace.c | 2 | ||||
-rw-r--r-- | common/cmd_bdinfo.c | 8 | ||||
-rw-r--r-- | common/cmd_flash.c | 27 | ||||
-rw-r--r-- | common/cmd_fpga.c | 8 | ||||
-rw-r--r-- | common/cmd_jffs2.c | 65 | ||||
-rw-r--r-- | common/cmd_nand.c | 3 | ||||
-rw-r--r-- | common/hush.c | 18 | ||||
-rw-r--r-- | common/lynxkdi.c | 2 | ||||
-rw-r--r-- | common/miiphyutil.c | 8 |
9 files changed, 88 insertions, 53 deletions
diff --git a/common/cmd_ace.c b/common/cmd_ace.c index 54fb918..fb4d358 100644 --- a/common/cmd_ace.c +++ b/common/cmd_ace.c @@ -31,7 +31,7 @@ * available to cmd_fat.c:get_dev and filling in a block device * description that has all the bits needed for FAT support to * read sectors. - * + * * According to Xilinx technical support, before accessing the * SystemACE CF you need to set the following control bits: * FORCECFGMODE : 1 diff --git a/common/cmd_bdinfo.c b/common/cmd_bdinfo.c index 4914ac5..40e28dd 100644 --- a/common/cmd_bdinfo.c +++ b/common/cmd_bdinfo.c @@ -62,14 +62,14 @@ int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) print_num ("bootflags", bd->bi_bootflags ); #if defined(CONFIG_405GP) || defined(CONFIG_405CR) || \ defined(CONFIG_405EP) || defined(CONFIG_XILINX_ML300) || \ - defined(CONFIG_440_EP) || defined(CONFIG_440_GR) + defined(CONFIG_440EP) || defined(CONFIG_440GR) print_str ("procfreq", strmhz(buf, bd->bi_procfreq)); print_str ("plb_busfreq", strmhz(buf, bd->bi_plb_busfreq)); #if defined(CONFIG_405GP) || defined(CONFIG_405EP) || defined(CONFIG_XILINX_ML300) || \ - defined(CONFIG_440_EP) || defined(CONFIG_440_GR) + defined(CONFIG_440EP) || defined(CONFIG_440GR) print_str ("pci_busfreq", strmhz(buf, bd->bi_pci_busfreq)); #endif -#else /* ! CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_ML300, CONFIG_440_EP CONFIG_440_GR */ +#else /* ! CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_ML300, CONFIG_440EP CONFIG_440GR */ #if defined(CONFIG_CPM2) print_str ("vco", strmhz(buf, bd->bi_vco)); print_str ("sccfreq", strmhz(buf, bd->bi_sccfreq)); @@ -80,7 +80,7 @@ int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) print_str ("cpmfreq", strmhz(buf, bd->bi_cpmfreq)); #endif print_str ("busfreq", strmhz(buf, bd->bi_busfreq)); -#endif /* CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_ML300, CONFIG_440_EP CONFIG_440_GR */ +#endif /* CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_ML300, CONFIG_440EP CONFIG_440GR */ #if defined(CONFIG_MPC8220) print_str ("inpfreq", strmhz(buf, bd->bi_inpfreq)); print_str ("flbfreq", strmhz(buf, bd->bi_flbfreq)); diff --git a/common/cmd_flash.c b/common/cmd_flash.c index 0fb4dbb..d5be30c 100644 --- a/common/cmd_flash.c +++ b/common/cmd_flash.c @@ -534,7 +534,7 @@ int do_protect (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) return rcode; } - + #if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) /* protect on/off <part-id> */ if ((argc == 3) && (id_parse(argv[2], NULL, &dev_type, &dev_num) == 0)) { @@ -664,6 +664,15 @@ int flash_sect_protect (int p, ulong addr_first, ulong addr_last) /**************************************************/ +#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +# define TMP_ERASE "erase <part-id>\n - erase partition\n" +# define TMP_PROT_ON "protect on <part-id>\n - protect partition\n" +# define TMP_PROT_OFF "protect off <part-id>\n - make partition writable\n" +#else +# define TMP_ERASE /* empty */ +# define TMP_PROT_ON /* empty */ +# define TMP_PROT_OFF /* empty */ +#endif U_BOOT_CMD( flinfo, 2, 1, do_flinfo, @@ -682,9 +691,7 @@ U_BOOT_CMD( "w/addr 'start'+'len'-1\n" "erase N:SF[-SL]\n - erase sectors SF-SL in FLASH bank # N\n" "erase bank N\n - erase FLASH bank # N\n" -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) - "erase <part-id>\n - erase partition\n" -#endif + TMP_ERASE "erase all\n - erase all FLASH banks\n" ); @@ -699,9 +706,7 @@ U_BOOT_CMD( "protect on N:SF[-SL]\n" " - protect sectors SF-SL in FLASH bank # N\n" "protect on bank N\n - protect FLASH bank # N\n" -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) - "protect on <part-id>\n - protect partition\n" -#endif + TMP_PROT_ON "protect on all\n - protect all FLASH banks\n" "protect off start end\n" " - make FLASH from addr 'start' to addr 'end' writable\n" @@ -711,10 +716,12 @@ U_BOOT_CMD( "protect off N:SF[-SL]\n" " - make sectors SF-SL writable in FLASH bank # N\n" "protect off bank N\n - make FLASH bank # N writable\n" -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) - "protect off <part-id>\n - make partition writable\n" -#endif + TMP_PROT_OFF "protect off all\n - make all FLASH banks writable\n" ); +#undef TMP_ERASE +#undef TMP_PROT_ON +#undef TMP_PROT_OFF + #endif /* CFG_CMD_FLASH */ diff --git a/common/cmd_fpga.c b/common/cmd_fpga.c index 0c0643c..c4b7392 100644 --- a/common/cmd_fpga.c +++ b/common/cmd_fpga.c @@ -137,9 +137,9 @@ int fpga_loadbitstream(unsigned long dev, char* fpgadata, size_t size) __FUNCTION__); return FPGA_FAIL; } - swapsize = ((unsigned int) *dataptr <<24) + - ((unsigned int) *(dataptr+1) <<16) + - ((unsigned int) *(dataptr+2) <<8 ) + + swapsize = ((unsigned int) *dataptr <<24) + + ((unsigned int) *(dataptr+1) <<16) + + ((unsigned int) *(dataptr+2) <<8 ) + ((unsigned int) *(dataptr+3) ) ; dataptr+=4; printf(" bytes in bitstream = %d\n", swapsize); @@ -217,7 +217,7 @@ int do_fpga (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) PRINTF ("%s: device = %d\n", __FUNCTION__, dev); /* FIXME - this is a really weak test */ if ((argc == 3) && (dev > fpga_count ())) { /* must be buffer ptr */ - PRINTF ("%s: Assuming buffer pointer in arg 3\n", + PRINTF ("%s: Assuming buffer pointer in arg 3\n", __FUNCTION__); fpga_data = (void *) dev; PRINTF ("%s: fpga_data = 0x%x\n", diff --git a/common/cmd_jffs2.c b/common/cmd_jffs2.c index 21eacc2..16f5b7a 100644 --- a/common/cmd_jffs2.c +++ b/common/cmd_jffs2.c @@ -45,7 +45,7 @@ * partition := <part-id> * <part-id> := <dev-id>,part_num * - * + * * 'mtdids' - linux kernel mtd device id <-> u-boot device id mapping * * mtdids=<idmap>[,<idmap>,...] @@ -403,7 +403,7 @@ static int part_del(struct mtd_device *dev, struct part_info *part) return device_del(dev); /* otherwise just delete this partition */ - + if (dev == current_dev) { /* we are modyfing partitions for the current device, * update current */ @@ -416,7 +416,7 @@ static int part_del(struct mtd_device *dev, struct part_info *part) current_partnum = 0; current_save(); } else if (part->offset <= curr_pi->offset) { - current_partnum--; + current_partnum--; current_save(); } } @@ -471,7 +471,7 @@ static int part_sort_add(struct mtd_device *dev, struct part_info *part) list_add(&part->link, &dev->parts); return 0; } - + new_pi = list_entry(&part->link, struct part_info, link); /* get current partition info if we are updating current device */ @@ -492,7 +492,7 @@ static int part_sort_add(struct mtd_device *dev, struct part_info *part) if (new_pi->offset <= pi->offset) { list_add_tail(&part->link, entry); - + if (curr_pi && (pi->offset <= curr_pi->offset)) { /* we are modyfing partitions for the current * device, update current */ @@ -516,7 +516,7 @@ static int part_sort_add(struct mtd_device *dev, struct part_info *part) */ static int part_add(struct mtd_device *dev, struct part_info *part) { - /* verify alignment and size */ + /* verify alignment and size */ if (part_validate(dev->id, part) != 0) return 1; @@ -565,14 +565,14 @@ static int part_parse(const char *const partdef, const char **ret, struct part_i } } - /* check for offset */ + /* check for offset */ offset = OFFSET_NOT_SPECIFIED; if (*p == '@') { p++; offset = memsize_parse(p, &p); } - /* now look for the name */ + /* now look for the name */ if (*p == '(') { name = ++p; if ((p = strchr(name, ')')) == NULL) { @@ -591,7 +591,7 @@ static int part_parse(const char *const partdef, const char **ret, struct part_i name = NULL; } - /* test for options */ + /* test for options */ mask_flags = 0; if (strncmp(p, "ro", 2) == 0) { mask_flags |= MTD_WRITEABLE; @@ -823,8 +823,8 @@ static int device_parse(const char *const mtd_dev, const char **ret, struct mtd_ printf("invalid mtd device '%.*s'\n", mtd_id_len - 1, mtd_id); return 1; } - - DEBUGF("dev type = %d (%s), dev num = %d, mtd-id = %s\n", + + DEBUGF("dev type = %d (%s), dev num = %d, mtd-id = %s\n", id->type, MTD_DEV_TYPE(id->type), id->num, id->mtd_id); pend = strchr(p, ';'); @@ -836,7 +836,7 @@ static int device_parse(const char *const mtd_dev, const char **ret, struct mtd_ offset = 0; if ((dev = device_find(id->type, id->num)) != NULL) { - /* if device already exists start at the end of the last partition */ + /* if device already exists start at the end of the last partition */ part = list_entry(dev->parts.prev, struct part_info, link); offset = part->offset + part->size; } @@ -852,7 +852,7 @@ static int device_parse(const char *const mtd_dev, const char **ret, struct mtd_ else offset = part->offset; - /* verify alignment and size */ + /* verify alignment and size */ if (part_validate(id, part) != 0) break; @@ -885,7 +885,7 @@ static int device_parse(const char *const mtd_dev, const char **ret, struct mtd_ } else { printf("unexpected character '%c' at the end of device\n", *p); *ret = NULL; - return 1; + return 1; } } @@ -939,7 +939,7 @@ static struct mtdids* id_find(u8 type, u8 num) { struct list_head *entry; struct mtdids *id; - + list_for_each(entry, &mtdids) { id = list_entry(entry, struct mtdids, link); @@ -951,7 +951,7 @@ static struct mtdids* id_find(u8 type, u8 num) } /** - * Search global mtdids list and find id of a requested mtd_id. + * Search global mtdids list and find id of a requested mtd_id. * * Note: first argument is not null terminated. * @@ -963,7 +963,7 @@ static struct mtdids* id_find_by_mtd_id(const char *mtd_id, unsigned int mtd_id_ { struct list_head *entry; struct mtdids *id; - + DEBUGF("--- id_find_by_mtd_id: '%.*s' (len = %d)\n", mtd_id_len, mtd_id, mtd_id_len); @@ -1045,13 +1045,13 @@ static int generate_mtdparts(char *buf, u32 buflen) buf[0] = '\0'; return 0; } - + sprintf(p, "mtdparts="); p += 9; list_for_each(dentry, &devices) { dev = list_entry(dentry, struct mtd_device, link); - + /* copy mtd_id */ len = strlen(dev->id->mtd_id) + 1; if (len > maxlen) @@ -1078,8 +1078,8 @@ static int generate_mtdparts(char *buf, u32 buflen) memcpy(p, tmpbuf, len); p += len; maxlen -= len; - - + + /* add offset only when there is a gap between * partitions */ if ((!prev_part && (offset != 0)) || @@ -1107,7 +1107,7 @@ static int generate_mtdparts(char *buf, u32 buflen) *(p++) = ')'; maxlen -= len; } - + /* ro mask flag */ if (part->mask_flags && MTD_WRITEABLE) { len = 2; @@ -1188,7 +1188,7 @@ static void list_partitions(void) MTD_DEV_TYPE(dev->id->type), dev->id->num, dev->id->mtd_id, dev->num_parts); printf(" #: name\t\t\tsize\t\toffset\t\tmask_flags\n"); - + /* list partitions for given device */ part_num = 0; list_for_each(pentry, &dev->parts) { @@ -1256,7 +1256,7 @@ int find_dev_and_part(const char *id, struct mtd_device **dev, printf("unexpected trailing character '%c'\n", *p); return 1; } - + if ((*dev = device_find(type, dnum)) == NULL) { printf("no such device %s%d\n", MTD_DEV_TYPE(type), dnum); return 1; @@ -1328,7 +1328,7 @@ static int parse_mtdparts(const char *const mtdparts) /* re-read 'mtdparts' variable, devices_init may be updating env */ p = getenv("mtdparts"); - + if (strncmp(p, "mtdparts=", 9) != 0) { printf("mtdparts variable doesn't start with 'mtdparts='\n"); return err; @@ -1615,7 +1615,7 @@ int mtdparts_init(void) /** * Parse and initialize global mtdids mapping and create global - * device/partition list. + * device/partition list. * * @return 0 on success, 1 otherwise */ @@ -1627,6 +1627,9 @@ int mtdparts_init(void) DEBUGF("\n---mtdparts_init---\n"); if (!initialized) { + struct mtdids *id; + struct part_info *part; + initialized = 1; current_dev = (struct mtd_device *) malloc(sizeof(struct mtd_device) + @@ -1639,8 +1642,8 @@ int mtdparts_init(void) memset(current_dev, 0, sizeof(struct mtd_device) + sizeof(struct part_info) + sizeof(struct mtdids)); - struct mtdids *id = (struct mtdids *)(current_dev + 1); - struct part_info *part = (struct part_info *)(id + 1); + id = (struct mtdids *)(current_dev + 1); + part = (struct part_info *)(id + 1); /* id */ id->mtd_id = "single part"; @@ -1867,7 +1870,7 @@ int do_jffs2_fsinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) /* make sure we are in sync with env variables */ if (mtdparts_init() !=0) return 1; - + if ((part = jffs2_part_info(current_dev, current_partnum))){ /* check partition type for cramfs */ @@ -1965,7 +1968,7 @@ int do_jffs2_mtdparts(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) list_partitions(); return 0; } - + /* mtdparts add <mtd-dev> <size>[@<offset>] <name> [ro] */ if (((argc == 5) || (argc == 6)) && (strcmp(argv[1], "add") == 0)) { #define PART_ADD_DESC_MAXLEN 64 @@ -1995,7 +1998,7 @@ int do_jffs2_mtdparts(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) return 1; } sprintf(tmpbuf, "%s:%s(%s)%s", - id->mtd_id, argv[3], argv[4], argv[5] ? argv[5] : ""); + id->mtd_id, argv[3], argv[4], argv[5] ? argv[5] : ""); DEBUGF("add tmpbuf: %s\n", tmpbuf); if ((device_parse(tmpbuf, NULL, &dev) != 0) || (!dev)) diff --git a/common/cmd_nand.c b/common/cmd_nand.c index 4499917..5648ab2 100644 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -225,10 +225,11 @@ int do_nand (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) #ifdef CFG_NAND_SKIP_BAD_DOT_I /* need ".i" same as ".jffs2s" for compatibility with older units (esd) */ /* ".i" for image -> read skips bad block (no 0xff) */ - else if (cmdtail && !strcmp(cmdtail, ".i")) + else if (cmdtail && !strcmp(cmdtail, ".i")) { cmd |= NANDRW_JFFS2; /* skip bad blocks (on read too) */ if (cmd & NANDRW_READ) cmd |= NANDRW_JFFS2_SKIP; /* skip bad blocks (on read too) */ + } #endif /* CFG_NAND_SKIP_BAD_DOT_I */ else if (cmdtail) { printf ("Usage:\n%s\n", cmdtp->usage); diff --git a/common/hush.c b/common/hush.c index 47680ed..eb7f7f1 100644 --- a/common/hush.c +++ b/common/hush.c @@ -1022,12 +1022,30 @@ static void get_user_input(struct in_str *i) int n; static char the_command[CFG_CBSIZE]; +#ifdef CONFIG_BOOT_RETRY_TIME +# ifdef CONFIG_RESET_TO_RETRY + extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); +# else +# error "This currently only works with CONFIG_RESET_TO_RETRY enabled" +# endif + reset_cmd_timeout(); +#endif i->__promptme = 1; if (i->promptmode == 1) { n = readline(CFG_PROMPT); } else { n = readline(CFG_PROMPT_HUSH_PS2); } +#ifdef CONFIG_BOOT_RETRY_TIME + if (n == -2) { + puts("\nTimeout waiting for command\n"); +# ifdef CONFIG_RESET_TO_RETRY + do_reset(NULL, 0, 0, NULL); +# else +# error "This currently only works with CONFIG_RESET_TO_RETRY enabled" +# endif + } +#endif if (n == -1 ) { flag_repeat = 0; i->__promptme = 0; diff --git a/common/lynxkdi.c b/common/lynxkdi.c index 19f0620..797d8cc 100644 --- a/common/lynxkdi.c +++ b/common/lynxkdi.c @@ -20,7 +20,7 @@ #if defined(CONFIG_LYNXKDI) #include <lynxkdi.h> -#if defined(CONFIG_MPC8260) || defined(CONFIG_440_EP) || defined(CONFIG_440_GR) +#if defined(CONFIG_MPC8260) || defined(CONFIG_440EP) || defined(CONFIG_440GR) void lynxkdi_boot ( image_header_t *hdr ) { void (*lynxkdi)(void) = (void(*)(void))hdr->ih_ep; diff --git a/common/miiphyutil.c b/common/miiphyutil.c index 2b0dcf4..13b9c65 100644 --- a/common/miiphyutil.c +++ b/common/miiphyutil.c @@ -93,7 +93,13 @@ int miiphy_reset (unsigned char addr) unsigned short reg; int loop_cnt; - if (miiphy_write (addr, PHY_BMCR, 0x8000) != 0) { + if (miiphy_read (addr, PHY_BMCR, ®) != 0) { +#ifdef DEBUG + printf ("PHY status read failed\n"); +#endif + return (-1); + } + if (miiphy_write (addr, PHY_BMCR, reg | 0x8000) != 0) { #ifdef DEBUG puts ("PHY reset failed\n"); #endif |