[PATCH] Correctly display PCI arbiter en-/disabled on some 4xx boards
authorStefan Roese <sr@denx.de>
Fri, 2 Feb 2007 11:44:22 +0000 (12:44 +0100)
committerStefan Roese <sr@denx.de>
Fri, 2 Feb 2007 11:44:22 +0000 (12:44 +0100)
Previously the strapping DCR/SDR was read to determine if the internal PCI
arbiter is enabled or not. This strapping bit can be overridden, so now
the current status is read from the correct DCR/SDR register.

Signed-off-by: Stefan Roese <sr@denx.de>
cpu/ppc4xx/cpu.c

index 7c96ad8ab95115332cdc85a0cfbc08fb0708c345..b02f6f4eefb099974902f2269551e23db54c45ee 100644 (file)
@@ -88,14 +88,18 @@ int pci_arbiter_enabled(void)
        return (mfdcr(cpc0_strp1) & CPC0_STRP1_PAE_MASK);
 #endif
 
-#if defined(CONFIG_440GX) || \
-    defined(CONFIG_440EP) || defined(CONFIG_440GR) || \
-    defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \
-    defined(CONFIG_440SP) || defined(CONFIG_440SPE)
+#if defined(CONFIG_440GX) || defined(CONFIG_440SP) || defined(CONFIG_440SPE)
        unsigned long val;
 
-       mfsdr(sdr_sdstp1, val);
-       return (val & SDR0_SDSTP1_PAE_MASK);
+       mfsdr(sdr_xcr, val);
+       return (val & 0x80000000);
+#endif
+#if defined(CONFIG_440EP) || defined(CONFIG_440GR) || \
+    defined(CONFIG_440EPX) || defined(CONFIG_440GRX)
+       unsigned long val;
+
+       mfsdr(sdr_pci0, val);
+       return (val & 0x80000000);
 #endif
 }
 #endif