diff options
author | Zhang Wei <wei.zhang@freescale.com> | 2007-05-21 23:38:26 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2007-06-29 02:58:17 -0400 |
commit | bf7c036fb48a6176635f2e7b749d7398728d4b7d (patch) | |
tree | 2ee335cc5ae2597e75caaa42254b1ed73484f015 /arch/powerpc/platforms/86xx | |
parent | 0a3786c5f7575c0739ad94057213b931a9423502 (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.h | 6 | ||||
-rw-r--r-- | arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/86xx/pci.c | 18 |
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); | |||
20 | extern int mpc86xx_exclude_device(struct pci_controller *hose, | 20 | extern int mpc86xx_exclude_device(struct pci_controller *hose, |
21 | u_char bus, u_char devfn); | 21 | u_char bus, u_char devfn); |
22 | 22 | ||
23 | extern void setup_indirect_pcie(struct pci_controller *hose, | ||
24 | u32 cfg_addr, u32 cfg_data); | ||
25 | extern void setup_indirect_pcie_nomap(struct pci_controller *hose, | ||
26 | void __iomem *cfg_addr, | ||
27 | void __iomem *cfg_data); | ||
28 | |||
29 | extern void __init mpc86xx_smp_init(void); | 23 | extern 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 | |||
143 | int 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 | ||
151 | int __init mpc86xx_add_bridge(struct device_node *dev) | 138 | int __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); |