MIPS: malta: malta-init: Fix System Controller memory mapping for EVA
authorLeonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Fri, 17 Jan 2014 13:11:29 +0000 (13:11 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 26 Mar 2014 22:09:20 +0000 (23:09 +0100)
Shift System Controller memory mapping to 0x80000000

Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
arch/mips/mti-malta/malta-init.c

index eebb2d1..4f9e44d 100644 (file)
@@ -244,10 +244,23 @@ mips_pci_controller:
                          MSC01_PCI_SWAP_BYTESWAP << MSC01_PCI_SWAP_MEM_SHF |
                          MSC01_PCI_SWAP_BYTESWAP << MSC01_PCI_SWAP_BAR0_SHF);
 #endif
+#ifndef CONFIG_EVA
                /* Fix up target memory mapping.  */
                MSC_READ(MSC01_PCI_BAR0, mask);
                MSC_WRITE(MSC01_PCI_P2SCMSKL, mask & MSC01_PCI_BAR0_SIZE_MSK);
+#else
+               /*
+                * Setup the Malta max (2GB) memory for PCI DMA in host bridge
+                * in transparent addressing mode, starting from 0x80000000.
+                */
+               mask = PHYS_OFFSET | (1<<3);
+               MSC_WRITE(MSC01_PCI_BAR0, mask);
 
+               mask = PHYS_OFFSET;
+               MSC_WRITE(MSC01_PCI_HEAD4, mask);
+               MSC_WRITE(MSC01_PCI_P2SCMSKL, mask);
+               MSC_WRITE(MSC01_PCI_P2SCMAPL, mask);
+#endif
                /* Don't handle target retries indefinitely.  */
                if ((data & MSC01_PCI_CFG_MAXRTRY_MSK) ==
                    MSC01_PCI_CFG_MAXRTRY_MSK)