summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorChunhe Lan <[email protected]>2014-05-07 10:50:20 +0800
committerYork Sun <[email protected]>2014-05-16 16:24:26 -0500
commitf1a96ec1a9920854c3308a062caca0b339bd1e3b (patch)
treef1cf2111f5b0b49ad7ef751db0bd19ca608c8891 /drivers
parent0f1fa36ffffbd34c8512eeacade7139bcffda47c (diff)
fsl/pci: Add workaround for erratum A-005434
By default, all PEX inbound windows PEX_PEXIWARn[TRGT] are mapped to 0xF, which is local memory. But for BSC9132, 0xF is CCSR, 0x0 is local memory. Signed-off-by: Minghuan Lian <[email protected]> Signed-off-by: Chunhe Lan <[email protected]> Reviewed-by: York Sun <[email protected]>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pci/fsl_pci_init.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/pci/fsl_pci_init.c b/drivers/pci/fsl_pci_init.c
index 6317fb13241..3a41b0ec173 100644
--- a/drivers/pci/fsl_pci_init.c
+++ b/drivers/pci/fsl_pci_init.c
@@ -49,8 +49,13 @@ static void set_inbound_window(volatile pit_t *pi,
u64 size)
{
u32 sz = (__ilog2_u64(size) - 1);
- u32 flag = PIWAR_EN | PIWAR_LOCAL |
- PIWAR_READ_SNOOP | PIWAR_WRITE_SNOOP;
+#ifdef CONFIG_SYS_FSL_ERRATUM_A005434
+ u32 flag = 0;
+#else
+ u32 flag = PIWAR_LOCAL;
+#endif
+
+ flag |= PIWAR_EN | PIWAR_READ_SNOOP | PIWAR_WRITE_SNOOP;
out_be32(&pi->pitar, r->phys_start >> 12);
out_be32(&pi->piwbar, r->bus_start >> 12);