Add support for 28F256J3A flah (=> 64 MB) on PM520 board
authorWolfgang Denk <wd@pollux.(none)>
Thu, 29 Dec 2005 14:12:09 +0000 (15:12 +0100)
committerWolfgang Denk <wd@pollux.(none)>
Thu, 29 Dec 2005 14:12:09 +0000 (15:12 +0100)
CHANGELOG
board/pm520/flash.c
include/configs/PM520.h

index c70c37695b2ae593f0ca89e11612808a386404c6..c1da98fc510ff38ad2ab83cdfd3b759848990631 100644 (file)
--- 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
 
index 386822179d8a0f4fe3b5b1de8a8abbfb4ee592e7..ccd0bd19cb6c5b6c24f29b672feb112d4ce489e2 100644 (file)
@@ -168,6 +168,10 @@ void flash_print_info (flash_info_t *info)
        }
 
        switch (info->flash_id & FLASH_TYPEMASK) {
+       case FLASH_28F256J3A:
+               printf ("28F256J3A\n");
+               break;
+
        case FLASH_28F128J3A:
                printf ("28F128J3A\n");
                break;
@@ -236,25 +240,32 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info)
 
        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 @@ static void flash_sync_real_protect (flash_info_t * info)
 
        switch (info->flash_id & FLASH_TYPEMASK) {
 
+       case FLASH_28F256J3A:
        case FLASH_28F128J3A:
        case FLASH_28F640J3A:
        case FLASH_28F320J3A:
index 9f1dec82b876895635df68c4d5f7f2e6b39b93af..812bfd0aaf841b4b763cc1551ca05134babba980 100644 (file)
  * 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)
  * 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)  */