From 6183bb9e5be52582d99c50e676fbed6a77ccc526 Mon Sep 17 00:00:00 2001
From: Wolfgang Denk <wd@pollux.denx.de>
Date: Thu, 17 Aug 2006 00:50:26 +0200
Subject: [PATCH] MCC200: restrict addressable flash space to 32 MB

---
 CHANGELOG             | 2 ++
 board/mcc200/mcc200.c | 8 ++++++++
 2 files changed, 10 insertions(+)

diff --git a/CHANGELOG b/CHANGELOG
index 727d7ec7ae..a3b4b239f9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,8 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* MCC200: restrict addressable flash space to 32 MB
+
 * Add debug console on COM12 for MCC200 board
 
 * Fix control-c handing in CONFIG_CMDLINE_EDITING
diff --git a/board/mcc200/mcc200.c b/board/mcc200/mcc200.c
index 167dc0f846..775030c17c 100644
--- a/board/mcc200/mcc200.c
+++ b/board/mcc200/mcc200.c
@@ -203,6 +203,8 @@ int checkboard (void)
 
 int misc_init_r (void)
 {
+	ulong flash_sup_end, snum;
+
 	/*
 	 * Adjust flash start and offset to detected values
 	 */
@@ -257,6 +259,12 @@ int misc_init_r (void)
 			       (flash_info[0].start[0] - 1) + flash_info[0].size,
 			       &flash_info[0]);
 		*(volatile int*)MPC5XXX_CS0_CFG &= ~(1 << 6);
+		printf ("Warning: Only 32 of 64 MB of Flash are accessible from U-Boot\n");
+		flash_info[0].size = 32 << 20;
+		for (snum = 0, flash_sup_end = gd->bd->bi_flashstart + (32<<20); 
+			flash_info[0].start[snum] < flash_sup_end; 
+			snum++);
+		flash_info[0].sector_count = snum;
 	}
 
 	return (0);
-- 
2.39.5