Skip to content
Snippets Groups Projects
Commit c7428d49 authored by Wolfgang Denk's avatar Wolfgang Denk
Browse files

Add support for 28F256J3A flah (=> 64 MB) on PM520 board

parent 97c8d0bb
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
Changes since U-Boot 1.1.4: Changes since U-Boot 1.1.4:
====================================================================== ======================================================================
* Add support for 28F256J3A flah (=> 64 MB) on PM520 board
* Fix compiler problem with at91rm9200dk board. * Fix compiler problem with at91rm9200dk board.
Patch by Eugen Bigz, 19 Dec 2005 Patch by Eugen Bigz, 19 Dec 2005
......
...@@ -168,6 +168,10 @@ void flash_print_info (flash_info_t *info) ...@@ -168,6 +168,10 @@ void flash_print_info (flash_info_t *info)
} }
switch (info->flash_id & FLASH_TYPEMASK) { switch (info->flash_id & FLASH_TYPEMASK) {
case FLASH_28F256J3A:
printf ("28F256J3A\n");
break;
case FLASH_28F128J3A: case FLASH_28F128J3A:
printf ("28F128J3A\n"); printf ("28F128J3A\n");
break; break;
...@@ -236,25 +240,32 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info) ...@@ -236,25 +240,32 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info)
switch (value) { 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: case (FPW) INTEL_ID_28F128J3A:
info->flash_id += FLASH_28F128J3A; info->flash_id += FLASH_28F128J3A;
info->sector_count = 128; info->sector_count = 128;
info->size = 0x02000000; info->size = 0x02000000;
info->start[0] = CFG_FLASH_BASE; info->start[0] = CFG_FLASH_BASE + 0x02000000;
break; /* => 32 MB */ break; /* => 32 MB */
case (FPW) INTEL_ID_28F640J3A: case (FPW) INTEL_ID_28F640J3A:
info->flash_id += FLASH_28F640J3A; info->flash_id += FLASH_28F640J3A;
info->sector_count = 64; info->sector_count = 64;
info->size = 0x01000000; info->size = 0x01000000;
info->start[0] = CFG_FLASH_BASE + 0x01000000; info->start[0] = CFG_FLASH_BASE + 0x03000000;
break; /* => 16 MB */ break; /* => 16 MB */
case (FPW) INTEL_ID_28F320J3A: case (FPW) INTEL_ID_28F320J3A:
info->flash_id += FLASH_28F320J3A; info->flash_id += FLASH_28F320J3A;
info->sector_count = 32; info->sector_count = 32;
info->size = 0x800000; info->size = 0x800000;
info->start[0] = CFG_FLASH_BASE + 0x01800000; info->start[0] = CFG_FLASH_BASE + 0x03800000;
break; /* => 8 MB */ break; /* => 8 MB */
default: default:
...@@ -285,6 +296,7 @@ static void flash_sync_real_protect (flash_info_t * info) ...@@ -285,6 +296,7 @@ static void flash_sync_real_protect (flash_info_t * info)
switch (info->flash_id & FLASH_TYPEMASK) { switch (info->flash_id & FLASH_TYPEMASK) {
case FLASH_28F256J3A:
case FLASH_28F128J3A: case FLASH_28F128J3A:
case FLASH_28F640J3A: case FLASH_28F640J3A:
case FLASH_28F320J3A: case FLASH_28F320J3A:
......
...@@ -200,12 +200,13 @@ ...@@ -200,12 +200,13 @@
* Flash configuration (8,16 or 32 MB) * Flash configuration (8,16 or 32 MB)
* TEXT base always at 0xFFF00000 * TEXT base always at 0xFFF00000
* ENV_ADDR always at 0xFFF40000 * 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 * 0xFD000000 for 16 MB
* 0xFD800000 for 8 MB * 0xFD800000 for 8 MB
*/ */
#define CFG_FLASH_BASE 0xfc000000 #define CFG_FLASH_BASE 0xFA000000
#define CFG_FLASH_SIZE 0x02000000 #define CFG_FLASH_SIZE 0x04000000
#define CFG_BOOTROM_BASE 0xFFF00000 #define CFG_BOOTROM_BASE 0xFFF00000
#define CFG_BOOTROM_SIZE 0x00080000 #define CFG_BOOTROM_SIZE 0x00080000
#define CFG_ENV_ADDR (0xFDF00000 + 0x40000) #define CFG_ENV_ADDR (0xFDF00000 + 0x40000)
...@@ -214,17 +215,18 @@ ...@@ -214,17 +215,18 @@
* Flash configuration (8,16 or 32 MB) * Flash configuration (8,16 or 32 MB)
* TEXT base always at 0xFFF00000 * TEXT base always at 0xFFF00000
* ENV_ADDR always at 0xFFF40000 * 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 * 0xFF000000 for 16 MB
* 0xFF800000 for 8 MB * 0xFF800000 for 8 MB
*/ */
#define CFG_FLASH_BASE 0xfe000000 #define CFG_FLASH_BASE 0xFC000000
#define CFG_FLASH_SIZE 0x02000000 #define CFG_FLASH_SIZE 0x04000000
#define CFG_ENV_ADDR (0xFFF00000 + 0x40000) #define CFG_ENV_ADDR (0xFFF00000 + 0x40000)
#endif #endif
#define CFG_MAX_FLASH_BANKS 1 /* max num of memory banks */ #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_ERASE_TOUT 240000 /* Flash Erase Timeout (in ms) */
#define CFG_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (in ms) */ #define CFG_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (in ms) */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment