ppc4xx: Fix bug in PCI outbound map configuration for canyonlands
authorAnatolij Gustschin <agust@denx.de>
Fri, 20 Mar 2009 11:45:50 +0000 (12:45 +0100)
committerStefan Roese <sr@denx.de>
Fri, 20 Mar 2009 11:58:31 +0000 (12:58 +0100)
PCI outbound address map configuration doesn't match the
PCI memory address range covered by appropriate TLB entry
configuration for canyonlands causing machine check
exceptions while accessing PCI memory regions. This patch
provides a fix for this issue.

Kazuaki Ichinohe observed and reported this issue while
testing display output with PCI ATI video card on canyonlands.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
cpu/ppc4xx/4xx_pci.c

index 6fd36dea3532dbd33a3e130e9c908a990925eb8d..99b8e2f8824a4b17df44c9f195c2f419586786e6 100644 (file)
@@ -550,10 +550,12 @@ int pci_440_init (struct pci_controller *hose)
        out32r( PCIX0_POM0SA, 0 ); /* disable */
        out32r( PCIX0_POM1SA, 0 ); /* disable */
        out32r( PCIX0_POM2SA, 0 ); /* disable */
-#if defined(CONFIG_440SPE) || \
-    defined(CONFIG_460EX) || defined(CONFIG_460GT)
+#if defined(CONFIG_440SPE)
        out32r( PCIX0_POM0LAL, 0x10000000 );
        out32r( PCIX0_POM0LAH, 0x0000000c );
+#elif defined(CONFIG_460EX) || defined(CONFIG_460GT)
+       out32r( PCIX0_POM0LAL, 0x20000000 );
+       out32r( PCIX0_POM0LAH, 0x0000000c );
 #else
        out32r( PCIX0_POM0LAL, 0x00000000 );
        out32r( PCIX0_POM0LAH, 0x00000003 );