From c4b465f63e3b6fc998526dc217ff988e5c91e667 Mon Sep 17 00:00:00 2001
From: Wolfgang Denk <wd@pollux.(none)>
Date: Fri, 13 Jan 2006 17:00:56 +0100
Subject: [PATCH] Fix 28F256J3A support on PM520 board (without bank-switching
 only 32 MB can be accessed)

---
 CHANGELOG               | 5 ++++-
 board/pm520/flash.c     | 9 +++++----
 include/configs/PM520.h | 4 ++--
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 84ce40a736e..2f10f7f5dbc 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,9 +2,12 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Fix 28F256J3A support on PM520 board
+  (without bank-switching only 32 MB can be accessed)
+
 * Fix mkimage bug with multifile images created on 64 bit systems.
 
-* Add support for 28F256J3A flah (=> 64 MB) on PM520 board
+* Add support for 28F256J3A flash (=> 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 ccd0bd19cb6..38f579bc596 100644
--- a/board/pm520/flash.c
+++ b/board/pm520/flash.c
@@ -242,10 +242,11 @@ static ulong flash_get_size (FPW *addr, flash_info_t *info)
 
 	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     */
+		/* In U-Boot we support only 32 MB (no bank-switching) */
+		info->sector_count = 256 / 2;
+		info->size =  0x04000000 / 2;
+		info->start[0] = CFG_FLASH_BASE + 0x02000000;
+		break;				/* => 32 MB     */
 
 	case (FPW) INTEL_ID_28F128J3A:
 		info->flash_id += FLASH_28F128J3A;
diff --git a/include/configs/PM520.h b/include/configs/PM520.h
index 812bfd0aaf8..e73ad5100c2 100644
--- a/include/configs/PM520.h
+++ b/include/configs/PM520.h
@@ -327,11 +327,11 @@
 #define CFG_CS0_SIZE		CFG_BOOTROM_SIZE
 #define CFG_CS1_START		CFG_FLASH_BASE
 #define CFG_CS1_SIZE		CFG_FLASH_SIZE
-#define CFG_CS1_CFG		0x0004fb00
+#define CFG_CS1_CFG		0x0004FF00
 #else
 #define CFG_BOOTCS_START	CFG_FLASH_BASE
 #define CFG_BOOTCS_SIZE		CFG_FLASH_SIZE
-#define CFG_BOOTCS_CFG		0x0004fb00
+#define CFG_BOOTCS_CFG		0x0004FF00
 #define CFG_CS0_START		CFG_FLASH_BASE
 #define CFG_CS0_SIZE		CFG_FLASH_SIZE
 #define CFG_CS1_START		CFG_DOC_BASE
-- 
GitLab