Subject: [PATCH] powerpc 4xx: DDR0_14[REDUC] decoded incorrectly

From: Mikhail Zolotaryov <[email-masked]>
Date: Mon, 09 Mar 2009 18:21:36 +0200

Hi,

according to the PPC440EPx Embedded Processor User Manual (rev 1.14) 
DDR0_14[REDUC] bit has the following meaning:

REDUC - Enable the half data path feature of the controller
0 = Standard operation using full 64/72-bit memory bus
1 = Memory data path width is 32/40 bits

However, "1" is decoded as 64 bit (8 byte), "0" - as 32 bit (4 byte) bus 
by the kernel code. My understanding is this is not correct - patch 
attached.

--- linux.orig/arch/powerpc/boot/4xx.c	2009-03-09 17:55:01.000000000 +0200
+++ linux/arch/powerpc/boot/4xx.c	2009-03-09 17:58:07.000000000 +0200
@@ -193,9 +193,9 @@
 	val = SDRAM0_READ(DDR0_14);
 
 	if (DDR_GET_VAL(val, DDR_REDUC, DDR_REDUC_SHIFT))
-		dpath = 8; /* 64 bits */
-	else
 		dpath = 4; /* 32 bits */
+	else
+		dpath = 8; /* 64 bits */
 
 	/* get address pins (rows) */
  	val = SDRAM0_READ(DDR0_42);