Add support for 28F256J3A flah (=> 64 MB) on PM520 board
diff --git a/CHANGELOG b/CHANGELOG
index c70c376..c1da98f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,8 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Add support for 28F256J3A flah (=> 64 MB) on PM520 board
+
 * Fix compiler problem with at91rm9200dk board.
   Patch by Eugen Bigz, 19 Dec 2005
 
diff --git a/board/pm520/flash.c b/board/pm520/flash.c
index 3868221..ccd0bd1 100644
--- a/board/pm520/flash.c
+++ b/board/pm520/flash.c
@@ -168,6 +168,10 @@
 	}
 
 	switch (info->flash_id & FLASH_TYPEMASK) {
+	case FLASH_28F256J3A:
+		printf ("28F256J3A\n");
+		break;
+
 	case FLASH_28F128J3A:
 		printf ("28F128J3A\n");
 		break;
@@ -236,25 +240,32 @@
 
 	switch (value) {
 
+	case (FPW) INTEL_ID_28F256J3A:
+		info->flash_id += FLASH_28F256J3A;
+		info->sector_count = 256;
+		info->size = 0x04000000;
+		info->start[0] = CFG_FLASH_BASE;
+		break;				/* => 64 MB     */
+
 	case (FPW) INTEL_ID_28F128J3A:
 		info->flash_id += FLASH_28F128J3A;
 		info->sector_count = 128;
 		info->size = 0x02000000;
-		info->start[0] = CFG_FLASH_BASE;
+		info->start[0] = CFG_FLASH_BASE + 0x02000000;
 		break;				/* => 32 MB     */
 
 	case (FPW) INTEL_ID_28F640J3A:
 		info->flash_id += FLASH_28F640J3A;
 		info->sector_count = 64;
 		info->size = 0x01000000;
-		info->start[0] = CFG_FLASH_BASE + 0x01000000;
+		info->start[0] = CFG_FLASH_BASE + 0x03000000;
 		break;				/* => 16 MB     */
 
 	case (FPW) INTEL_ID_28F320J3A:
 		info->flash_id += FLASH_28F320J3A;
 		info->sector_count = 32;
 		info->size = 0x800000;
-		info->start[0] = CFG_FLASH_BASE + 0x01800000;
+		info->start[0] = CFG_FLASH_BASE + 0x03800000;
 		break;				/* => 8 MB     */
 
 	default:
@@ -285,6 +296,7 @@
 
 	switch (info->flash_id & FLASH_TYPEMASK) {
 
+	case FLASH_28F256J3A:
 	case FLASH_28F128J3A:
 	case FLASH_28F640J3A:
 	case FLASH_28F320J3A:
diff --git a/include/configs/PM520.h b/include/configs/PM520.h
index 9f1dec8..812bfd0 100644
--- a/include/configs/PM520.h
+++ b/include/configs/PM520.h
@@ -200,12 +200,13 @@
  * Flash configuration (8,16 or 32 MB)
  * TEXT base always at 0xFFF00000
  * ENV_ADDR always at  0xFFF40000
- * FLASH_BASE at 0xFC000000 for 32 MB
+ * FLASH_BASE at 0xFA000000 for 64 MB
+ *               0xFC000000 for 32 MB
  *               0xFD000000 for 16 MB
  *               0xFD800000 for  8 MB
  */
-#define CFG_FLASH_BASE		0xfc000000
-#define CFG_FLASH_SIZE		0x02000000
+#define CFG_FLASH_BASE		0xFA000000
+#define CFG_FLASH_SIZE		0x04000000
 #define CFG_BOOTROM_BASE	0xFFF00000
 #define CFG_BOOTROM_SIZE	0x00080000
 #define CFG_ENV_ADDR		(0xFDF00000 + 0x40000)
@@ -214,17 +215,18 @@
  * Flash configuration (8,16 or 32 MB)
  * TEXT base always at 0xFFF00000
  * ENV_ADDR always at  0xFFF40000
- * FLASH_BASE at 0xFE000000 for 32 MB
+ * FLASH_BASE at 0xFC000000 for 64 MB
+ *               0xFE000000 for 32 MB
  *               0xFF000000 for 16 MB
  *               0xFF800000 for  8 MB
  */
-#define CFG_FLASH_BASE		0xfe000000
-#define CFG_FLASH_SIZE		0x02000000
+#define CFG_FLASH_BASE		0xFC000000
+#define CFG_FLASH_SIZE		0x04000000
 #define CFG_ENV_ADDR		(0xFFF00000 + 0x40000)
 #endif
 #define CFG_MAX_FLASH_BANKS	1	/* max num of memory banks      */
 
-#define CFG_MAX_FLASH_SECT	128	/* max num of sects on one chip */
+#define CFG_MAX_FLASH_SECT	256	/* max num of sects on one chip */
 
 #define CFG_FLASH_ERASE_TOUT	240000	/* Flash Erase Timeout (in ms)  */
 #define CFG_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (in ms)  */