[U-Boot-Users] [PATCH] TQM5200: fix bug in SDRAM initialization code

Martin Krause martin.krause at tqs.de
Mon Feb 25 13:27:52 CET 2008


This patch fixes a bug in the SDRAM initialization code for the
TQM5200. The hi_addr bit is now set correctly. Without this patch
the hi_addr bit is always set to 1, if the second SDRAM bank is
not populated.

For other MPC5200 boards a correspondig patch has already been applied
some time ago, see commit a63109281ad41b0fb489fdcb901171f76bcdbc2c.

Signed-off-by: Martin Krause <martin.krause at tqs.de>
--
Forget the first patch please. I confused flash with SDRAM in
the comment ...

---

 board/tqm5200/tqm5200.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/board/tqm5200/tqm5200.c b/board/tqm5200/tqm5200.c
index 905a043..8c3f701 100644
--- a/board/tqm5200/tqm5200.c
+++ b/board/tqm5200/tqm5200.c
@@ -155,10 +155,13 @@ long int initdram (int board_type)
 	*(vu_long *)MPC5XXX_SDRAM_CS1CFG = dramsize + 0x0000001c; /* 512MB */
 
 	/* find RAM size using SDRAM CS1 only */
-	sdram_start(0);
-	test1 = get_ram_size((long *)(CFG_SDRAM_BASE + dramsize), 0x20000000);
-	sdram_start(1);
-	test2 = get_ram_size((long *)(CFG_SDRAM_BASE + dramsize), 0x20000000);
+	if (!dramsize)
+		sdram_start(0);
+	test2 = test1 = get_ram_size((long *)(CFG_SDRAM_BASE + dramsize), 0x20000000);
+	if (!dramsize) {
+		sdram_start(1);
+		test2 = get_ram_size((long *)(CFG_SDRAM_BASE + dramsize), 0x20000000);
+	}
 	if (test1 > test2) {
 		sdram_start(0);
 		dramsize2 = test1;





More information about the U-Boot mailing list