aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/86xx
diff options
context:
space:
mode:
authorZhang Wei <wei.zhang@freescale.com>2007-05-21 23:38:26 -0400
committerKumar Gala <galak@kernel.crashing.org>2007-06-29 02:58:17 -0400
commitbf7c036fb48a6176635f2e7b749d7398728d4b7d (patch)
tree2ee335cc5ae2597e75caaa42254b1ed73484f015 /arch/powerpc/platforms/86xx
parent0a3786c5f7575c0739ad94057213b931a9423502 (diff)
[POWERPC] Remove PCI-e errata for MPC8641 silicon ver 1.0
Remove errata for PCI-e support of Rev 1.0 of MPC8641 since its considered obselete and is not production level silicon from Freescale. Signed-off-by: Zhang Wei <wei.zhang@freescale.com> Acked-by: Roy Zang <tie-fei.zang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms/86xx')
-rw-r--r--arch/powerpc/platforms/86xx/mpc86xx.h6
-rw-r--r--arch/powerpc/platforms/86xx/mpc86xx_hpcn.c2
-rw-r--r--arch/powerpc/platforms/86xx/pci.c18
3 files changed, 2 insertions, 24 deletions
diff --git a/arch/powerpc/platforms/86xx/mpc86xx.h b/arch/powerpc/platforms/86xx/mpc86xx.h
index 4c2789de045e..23f7ed2a7f88 100644
--- a/arch/powerpc/platforms/86xx/mpc86xx.h
+++ b/arch/powerpc/platforms/86xx/mpc86xx.h
@@ -20,12 +20,6 @@ extern int mpc86xx_add_bridge(struct device_node *dev);
20extern int mpc86xx_exclude_device(struct pci_controller *hose, 20extern int mpc86xx_exclude_device(struct pci_controller *hose,
21 u_char bus, u_char devfn); 21 u_char bus, u_char devfn);
22 22
23extern void setup_indirect_pcie(struct pci_controller *hose,
24 u32 cfg_addr, u32 cfg_data);
25extern void setup_indirect_pcie_nomap(struct pci_controller *hose,
26 void __iomem *cfg_addr,
27 void __iomem *cfg_data);
28
29extern void __init mpc86xx_smp_init(void); 23extern void __init mpc86xx_smp_init(void);
30 24
31#endif /* __MPC86XX_H__ */ 25#endif /* __MPC86XX_H__ */
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
index 042dbce89771..afa82371979f 100644
--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -358,8 +358,6 @@ mpc86xx_hpcn_setup_arch(void)
358#ifdef CONFIG_PCI 358#ifdef CONFIG_PCI
359 for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;) 359 for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
360 mpc86xx_add_bridge(np); 360 mpc86xx_add_bridge(np);
361
362 ppc_md.pci_exclude_device = mpc86xx_exclude_device;
363#endif 361#endif
364 362
365 printk("MPC86xx HPCN board from Freescale Semiconductor\n"); 363 printk("MPC86xx HPCN board from Freescale Semiconductor\n");
diff --git a/arch/powerpc/platforms/86xx/pci.c b/arch/powerpc/platforms/86xx/pci.c
index 7659259cc974..0db51e8ab5d4 100644
--- a/arch/powerpc/platforms/86xx/pci.c
+++ b/arch/powerpc/platforms/86xx/pci.c
@@ -133,19 +133,6 @@ mpc86xx_setup_pcie(struct pci_controller *hose, u32 pcie_offset, u32 pcie_size)
133 early_write_config_word(hose, 0, 0, PCI_COMMAND, cmd); 133 early_write_config_word(hose, 0, 0, PCI_COMMAND, cmd);
134 134
135 early_write_config_byte(hose, 0, 0, PCI_LATENCY_TIMER, 0x80); 135 early_write_config_byte(hose, 0, 0, PCI_LATENCY_TIMER, 0x80);
136
137 /* PCIE Bus, Fix the MPC8641D host bridge's location to bus 0xFF. */
138 early_read_config_dword(hose, 0, 0, PCI_PRIMARY_BUS, &temps);
139 temps = (temps & 0xff000000) | (0xff) | (0x0 << 8) | (0xfe << 16);
140 early_write_config_dword(hose, 0, 0, PCI_PRIMARY_BUS, temps);
141}
142
143int mpc86xx_exclude_device(struct pci_controller *hose, u_char bus, u_char devfn)
144{
145 if (bus == 0 && PCI_SLOT(devfn) == 0)
146 return PCIBIOS_DEVICE_NOT_FOUND;
147
148 return PCIBIOS_SUCCESSFUL;
149} 136}
150 137
151int __init mpc86xx_add_bridge(struct device_node *dev) 138int __init mpc86xx_add_bridge(struct device_node *dev)
@@ -173,11 +160,10 @@ int __init mpc86xx_add_bridge(struct device_node *dev)
173 return -ENOMEM; 160 return -ENOMEM;
174 hose->arch_data = dev; 161 hose->arch_data = dev;
175 162
176 /* last_busno = 0xfe cause by MPC8641 PCIE bug */
177 hose->first_busno = bus_range ? bus_range[0] : 0x0; 163 hose->first_busno = bus_range ? bus_range[0] : 0x0;
178 hose->last_busno = bus_range ? bus_range[1] : 0xfe; 164 hose->last_busno = bus_range ? bus_range[1] : 0xff;
179 165
180 setup_indirect_pcie(hose, rsrc.start, rsrc.start + 0x4); 166 setup_indirect_pci(hose, rsrc.start, rsrc.start + 0x4);
181 167
182 /* Setup the PCIE host controller. */ 168 /* Setup the PCIE host controller. */
183 mpc86xx_setup_pcie(hose, rsrc.start, rsrc.end - rsrc.start + 1); 169 mpc86xx_setup_pcie(hose, rsrc.start, rsrc.end - rsrc.start + 1);