Modifications for 1.1.5:
======================================================================
+* Fix names for 3 Volt Intel StrataFlash (it's ...J3A)
+
+* Make "md" command interruptable by ^C
+
* Add configuration for 9-column SDRAM on PM826 board
* Fix "reset" command on Sandpoint8240 board
int i;
/* set up sector start adress table */
- if ((info->flash_id & FLASH_TYPEMASK) == FLASH_28F320JA3 ||
- (info->flash_id & FLASH_TYPEMASK) == FLASH_28F640JA3 ||
- (info->flash_id & FLASH_TYPEMASK) == FLASH_28F128JA3) {
+ if ((info->flash_id & FLASH_TYPEMASK) == FLASH_28F320J3A ||
+ (info->flash_id & FLASH_TYPEMASK) == FLASH_28F640J3A ||
+ (info->flash_id & FLASH_TYPEMASK) == FLASH_28F128J3A) {
for (i = 0; i < info->sector_count; i++) {
info->start[i] = base + (i * info->size/info->sector_count);
}
case FLASH_INTEL640T: printf ("INTEL28F640T (64 Mbit%s",boottype);
break;
#endif
- case FLASH_28F320JA3: printf ("INTEL28F320JA3 (32 Mbit%s",boottype);
+ case FLASH_28F320J3A: printf ("INTEL28F320J3A (32 Mbit%s",boottype);
break;
- case FLASH_28F640JA3: printf ("INTEL28F640JA3 (64 Mbit%s",boottype);
+ case FLASH_28F640J3A: printf ("INTEL28F640J3A (64 Mbit%s",boottype);
break;
- case FLASH_28F128JA3: printf ("INTEL28F128JA3 (128 Mbit%s",boottype);
+ case FLASH_28F128J3A: printf ("INTEL28F128J3A (128 Mbit%s",boottype);
break;
default: printf ("Unknown Chip Type\n");
info->size = 0x01000000;
break; /* => 16 MB */
#endif
- case (INTEL_ID_28F320JA3 & FLASH_ID_MASK):
- info->flash_id += FLASH_28F320JA3;
+ case (INTEL_ID_28F320J3A & FLASH_ID_MASK):
+ info->flash_id += FLASH_28F320J3A;
info->sector_count = 32;
info->size = 0x00400000;
break; /* => 32 MBit */
- case (INTEL_ID_28F640JA3 & FLASH_ID_MASK):
- info->flash_id += FLASH_28F640JA3;
+ case (INTEL_ID_28F640J3A & FLASH_ID_MASK):
+ info->flash_id += FLASH_28F640J3A;
info->sector_count = 64;
info->size = 0x00800000;
break; /* => 64 MBit */
- case (INTEL_ID_28F128JA3 & FLASH_ID_MASK):
- info->flash_id += FLASH_28F128JA3;
+ case (INTEL_ID_28F128J3A & FLASH_ID_MASK):
+ info->flash_id += FLASH_28F128J3A;
info->sector_count = 128;
info->size = 0x01000000;
break; /* => 128 MBit */
/* set up sector start address table */
switch(info->flash_id & FLASH_TYPEMASK) {
case FLASH_AM040:
- case FLASH_28F128JA3:
+ case FLASH_28F128J3A:
case FLASH_28F640J3A:
case FLASH_RAM:
/* this chip has uniformly spaced sectors */
case FLASH_28F640J3A:
printf ("28F640J3A (64 Mbit)\n");
break;
- case FLASH_28F128JA3:
- printf ("28F128JA3 (128 Mbit)\n");
+ case FLASH_28F128J3A:
+ printf ("28F128J3A (128 Mbit)\n");
break;
case FLASH_ROM:
printf ("ROM\n");
info->size = 0x80000;
break;
- case INTEL_ID_28F640JA3:
+ case INTEL_ID_28F640J3A:
info->flash_id += FLASH_28F640J3A;
info->sector_count = 64;
info->size = 128*1024 * 64; /* 128kbytes x 64 blocks */
if(info->width==4) info->size*=2; /* 2x16 */
break;
- case INTEL_ID_28F128JA3:
- info->flash_id += FLASH_28F128JA3;
+ case INTEL_ID_28F128J3A:
+ info->flash_id += FLASH_28F128J3A;
info->sector_count = 128;
info->size = 128*1024 * 128; /* 128kbytes x 128 blocks */
if(info->width==4) info->size*=2; /* 2x16 */
case INTEL_ID_28F320C3 & FLASH_TYPEMASK:
printf ("28F320RC3(4 MB)\n");
break;
- case INTEL_ID_28F320JA3 & FLASH_TYPEMASK:
- printf("28F320JA3 (4 MB)\n");
+ case INTEL_ID_28F320J3A & FLASH_TYPEMASK:
+ printf("28F320J3A (4 MB)\n");
break;
default:
printf ("Unknown Chip Type\n");
}
switch (info->flash_id & FLASH_TYPEMASK) {
- case FLASH_28F320JA3: printf ("28F320JA3 (32Mbit = 128K x 32)\n");
+ case FLASH_28F320J3A: printf ("28F320J3A (32Mbit = 128K x 32)\n");
break;
- case FLASH_28F640JA3: printf ("28F640JA3 (64Mbit = 128K x 64)\n");
+ case FLASH_28F640J3A: printf ("28F640J3A (64Mbit = 128K x 64)\n");
break;
- case FLASH_28F128JA3: printf ("28F128JA3 (128Mbit = 128K x 128)\n");
+ case FLASH_28F128J3A: printf ("28F128J3A (128Mbit = 128K x 128)\n");
break;
default: printf ("Unknown Chip Type\n");
break;
DEBUGF("Device ID @ 0x%08lx: 0x%08lx\n", (ulong)(&addr[1]), value);
switch (value) {
- case INTEL_ID_28F320JA3:
- info->flash_id += FLASH_28F320JA3;
+ case INTEL_ID_28F320J3A:
+ info->flash_id += FLASH_28F320J3A;
info->sector_count = 32;
info->size = 0x00400000 * 2;
break; /* => 8 MB */
- case INTEL_ID_28F640JA3:
- info->flash_id += FLASH_28F640JA3;
+ case INTEL_ID_28F640J3A:
+ info->flash_id += FLASH_28F640J3A;
info->sector_count = 64;
info->size = 0x00800000 * 2;
break; /* => 16 MB */
- case INTEL_ID_28F128JA3:
- info->flash_id += FLASH_28F128JA3;
+ case INTEL_ID_28F128J3A:
+ info->flash_id += FLASH_28F128J3A;
info->sector_count = 128;
info->size = 0x01000000 * 2;
break; /* => 32 MB */
Hit any key to stop autoboot: 0
=> flinfo
-Bank # 1: Intel 28F320JA3 (32Mbit = 128K x 32)
+Bank # 1: Intel 28F320J3A (32Mbit = 128K x 32)
Size: 4 MB in 32 Sectors
Sector Start Addresses:
FF800000 (RO) FF820000 FF840000 FF860000 FF880000
}
switch (info->flash_id & FLASH_TYPEMASK) {
- case FLASH_28F320JA3: printf ("28F320JA3 (32Mbit = 128K x 32)\n");
+ case FLASH_28F320J3A: printf ("28F320J3A (32Mbit = 128K x 32)\n");
break;
- case FLASH_28F640JA3: printf ("28F640JA3 (64Mbit = 128K x 64)\n");
+ case FLASH_28F640J3A: printf ("28F640J3A (64Mbit = 128K x 64)\n");
break;
- case FLASH_28F128JA3: printf ("28F128JA3 (128Mbit = 128K x 128)\n");
+ case FLASH_28F128J3A: printf ("28F128J3A (128Mbit = 128K x 128)\n");
break;
default: printf ("Unknown Chip Type\n");
break;
DEBUGF("Device ID @ 0x%08x: 0x%08x\n", (&addr[1]), device);
switch (device) {
- case BYTEME(INTEL_ID_28F320JA3):
- info->flash_id += FLASH_28F320JA3;
+ case BYTEME(INTEL_ID_28F320J3A):
+ info->flash_id += FLASH_28F320J3A;
info->sector_count = 32;
info->size = 0x00400000;
break; /* => 4 MB */
- case BYTEME(INTEL_ID_28F640JA3):
- info->flash_id += FLASH_28F640JA3;
+ case BYTEME(INTEL_ID_28F640J3A):
+ info->flash_id += FLASH_28F640J3A;
info->sector_count = 64;
info->size = 0x00800000;
break; /* => 8 MB */
- case BYTEME(INTEL_ID_28F128JA3):
- info->flash_id += FLASH_28F128JA3;
+ case BYTEME(INTEL_ID_28F128J3A):
+ info->flash_id += FLASH_28F128J3A;
info->sector_count = 128;
info->size = 0x01000000;
break; /* => 16 MB */
}
switch (info->flash_id & FLASH_TYPEMASK) {
- case FLASH_28F320JA3:
- printf ("28F320JA3\n"); break;
- case FLASH_28F640JA3:
- printf ("28F640JA3\n"); break;
- case FLASH_28F128JA3:
- printf ("28F128JA3\n"); break;
+ case FLASH_28F320J3A:
+ printf ("28F320J3A\n"); break;
+ case FLASH_28F640J3A:
+ printf ("28F640J3A\n"); break;
+ case FLASH_28F128J3A:
+ printf ("28F128J3A\n"); break;
default: printf ("Unknown Chip Type\n"); break;
}
value = addr[1]; /* device ID */
switch (value) {
- case (FPW)INTEL_ID_28F320JA3:
- info->flash_id += FLASH_28F320JA3;
+ case (FPW)INTEL_ID_28F320J3A:
+ info->flash_id += FLASH_28F320J3A;
info->sector_count = 32;
info->size = 0x00400000;
break; /* => 4 MB */
- case (FPW)INTEL_ID_28F640JA3:
- info->flash_id += FLASH_28F640JA3;
+ case (FPW)INTEL_ID_28F640J3A:
+ info->flash_id += FLASH_28F640J3A;
info->sector_count = 64;
info->size = 0x00800000;
break; /* => 8 MB */
- case (FPW)INTEL_ID_28F128JA3:
- info->flash_id += FLASH_28F128JA3;
+ case (FPW)INTEL_ID_28F128J3A:
+ info->flash_id += FLASH_28F128J3A;
info->sector_count = 128;
info->size = 0x01000000;
break; /* => 16 MB */
case FLASH_AM040:
printf ("AM29LV040 (4096 Kbit, uniform sector size)\n");
break;
- case FLASH_28F320JA3:
- printf ("28F320JA3 (32 Mbit = 128K x 32)\n");
+ case FLASH_28F320J3A:
+ printf ("28F320J3A (32 Mbit = 128K x 32)\n");
break;
- case FLASH_28F640JA3:
- printf ("28F640JA3 (64 Mbit = 128K x 64)\n");
+ case FLASH_28F640J3A:
+ printf ("28F640J3A (64 Mbit = 128K x 64)\n");
break;
- case FLASH_28F128JA3:
- printf ("28F128JA3 (128 Mbit = 128K x 128)\n");
+ case FLASH_28F128J3A:
+ printf ("28F128J3A (128 Mbit = 128K x 128)\n");
break;
default:
printf ("Unknown Chip Type\n");
/* Device ID - This shit is interleaved... */
value = *(addr2 + 1);
switch (value) {
- case (unsigned long)INTEL_ID_28F320JA3:
- info->flash_id += FLASH_28F320JA3;
+ case (unsigned long)INTEL_ID_28F320J3A:
+ info->flash_id += FLASH_28F320J3A;
info->sector_count = 32;
info->size = 0x00400000 * 2;
break; /* => 2 X 4 MB */
- case (unsigned long)INTEL_ID_28F640JA3:
- info->flash_id += FLASH_28F640JA3;
+ case (unsigned long)INTEL_ID_28F640J3A:
+ info->flash_id += FLASH_28F640J3A;
info->sector_count = 64;
info->size = 0x00800000 * 2;
break; /* => 2 X 8 MB */
- case (unsigned long)INTEL_ID_28F128JA3:
- info->flash_id += FLASH_28F128JA3;
+ case (unsigned long)INTEL_ID_28F128J3A:
+ info->flash_id += FLASH_28F128J3A;
info->sector_count = 128;
info->size = 0x01000000 * 2;
break; /* => 2 X 16 MB */
for (i = 0; i < info->sector_count; i++)
info->start[i] = base + (i * 0x00010000);
break;
- case FLASH_28F320JA3:
- case FLASH_28F640JA3:
- case FLASH_28F128JA3:
+ case FLASH_28F320J3A:
+ case FLASH_28F640J3A:
+ case FLASH_28F128J3A:
for (i = 0; i < info->sector_count; i++)
info->start[i] = base + (i * 0x00020000 * 2); /* 2 Banks */
break;
volatile long *addr = (unsigned long *)sector;
switch(info->flash_id & FLASH_TYPEMASK) {
- case FLASH_28F320JA3:
- case FLASH_28F640JA3:
- case FLASH_28F128JA3:
+ case FLASH_28F320J3A:
+ case FLASH_28F640J3A:
+ case FLASH_28F128J3A:
*addr = 0x00550055L; /* Clear the status register */
*addr = 0x00600060L; /* Set lock bit setup */
*addr = 0x00010001L; /* Set lock bit confirm */
volatile long *addr = (unsigned long *)sector;
switch(info->flash_id & FLASH_TYPEMASK) {
- case FLASH_28F320JA3:
- case FLASH_28F640JA3:
- case FLASH_28F128JA3:
+ case FLASH_28F320J3A:
+ case FLASH_28F640J3A:
+ case FLASH_28F128J3A:
*addr = 0x00550055L; /* Clear the status register */
*addr = 0x00600060L; /* Clear lock bit setup */
*addr = 0x00D000D0L; /* Clear lock bit confirm */
ulong addr, size, length;
ulong i, nbytes, linebytes;
u_char *cp;
+ int rc = 0;
/* We use the last specified parameters, unless new ones are
* entered.
}
printf("\n");
nbytes -= linebytes;
+ if (ctrlc()) {
+ rc = 1;
+ break;
+ }
} while (nbytes > 0);
dp_last_addr = addr;
dp_last_length = length;
dp_last_size = size;
- return 0;
+ return (rc);
}
int do_mem_mm (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
*/
#define CFG_PBSIZE (CFG_CBSIZE + sizeof(CFG_PROMPT) + 16)
-#define CFG_MAXARGS 16 /* max number of command args */
+#define CFG_MAXARGS 64 /* max number of command args */
#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
#define CFG_LOAD_ADDR 0x00100000 /* Default load address */
#define CFG_FLASH_WRITE_TOUT 1000 /* Timeout for Flash Write (in ms) */
/*
- * Warining: environment is not EMBEDDED in the ppcboot code.
+ * Note: environment is not EMBEDDED in the ppcboot code.
* It's stored in flash separately.
*/
#define CFG_ENV_IS_IN_FLASH 1
*/
#define CFG_MIN_AM_MASK 0xC0000000
-#define CFG_MPTPR 0x4000
+#define CFG_MPTPR 0x1F00
#define CFG_MRS_OFFS 0x00000000
*/
#define CFG_OR2_9COL (CFG_MIN_AM_MASK |\
ORxS_BPD_4 |\
- ORxS_ROWST_PBI1_A4 |\
+ ORxS_ROWST_PBI0_A7 |\
ORxS_NUMR_13)
#define CFG_PSDMR_9COL (PSDMR_SDAM_A14_IS_A5 |\
#define CFG_FLASH_ERASE_TOUT 120000 /* Flash Erase Timeout (in ms) */
#define CFG_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (in ms) */
-#define CFG_FLASH_TYPE FLASH_28F640JA3
-#define CFG_FLASH_ID (INTEL_ID_28F640JA3 & 0xff)
+#define CFG_FLASH_TYPE FLASH_28F640J3A
+#define CFG_FLASH_ID (INTEL_ID_28F640J3A & 0xff)
#define CFG_FLASH_NBLOCKS 64
#define CFG_ENV_IS_IN_FLASH 1
#define INTEL_ID_28F320C3 0x88C588C5 /* 4MB , 8 8KB + 63 64KB bbt */
#define INTEL_ID_28F640J5 0x00150015 /* 64M = 128K x 64 */
-#define INTEL_ID_28F320JA3 0x00160016 /* 32M = 128K x 32 */
-#define INTEL_ID_28F640JA3 0x00170017 /* 64M = 128K x 64 */
-#define INTEL_ID_28F128JA3 0x00180018 /* 128M = 128K x 128 */
+#define INTEL_ID_28F320J3A 0x00160016 /* 32M = 128K x 32 */
+#define INTEL_ID_28F640J3A 0x00170017 /* 64M = 128K x 64 */
+#define INTEL_ID_28F128J3A 0x00180018 /* 128M = 128K x 128 */
#define INTEL_ID_28F160S3 0x00D000D0 /* 16M = 512K x 32 (64kB x 32) */
#define INTEL_ID_28F320S3 0x00D400D4 /* 32M = 512K x 64 (64kB x 64) */
#define FLASH_INTEL640T 0x007A /* INTEL 28F320B3T ( 64M = 4 M x 16 ) */
#define FLASH_INTEL640B 0x007B /* INTEL 28F320B3B ( 64M = 4 M x 16 ) */
-#define FLASH_28F320JA3 0x007C /* INTEL 28F320JA3 ( 32M = 128K x 32) */
-#define FLASH_28F640JA3 0x007D /* INTEL 28F640JA3 ( 64M = 128K x 64) */
-#define FLASH_28F128JA3 0x007E /* INTEL 28F128JA3 (128M = 128K x 128) */
+#define FLASH_28F320J3A 0x007C /* INTEL 28F320J3A ( 32M = 128K x 32) */
+#define FLASH_28F640J3A 0x007D /* INTEL 28F640J3A ( 64M = 128K x 64) */
+#define FLASH_28F128J3A 0x007E /* INTEL 28F128J3A (128M = 128K x 128) */
#define FLASH_28F008S5 0x0080 /* Intel 28F008S5 ( 1M = 64K x 16 ) */
#define FLASH_28F016SV 0x0081 /* Intel 28F016SV ( 16M = 512k x 32 ) */