summaryrefslogtreecommitdiff
path: root/cpu/ppc4xx/4xx_pci.c
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2009-11-12 17:19:37 +0100
committerStefan Roese <sr@denx.de>2009-11-19 11:35:34 +0100
commit6c70049bd14e8e81764570732be7f34a89831f09 (patch)
tree9e2028ab7a017c9a8f78ac62a99e135bb5b23630 /cpu/ppc4xx/4xx_pci.c
parenta760b0203155da6fb8b8e9086169bb87d09d76fa (diff)
downloadu-boot-imx-6c70049bd14e8e81764570732be7f34a89831f09.zip
u-boot-imx-6c70049bd14e8e81764570732be7f34a89831f09.tar.gz
u-boot-imx-6c70049bd14e8e81764570732be7f34a89831f09.tar.bz2
ppc4xx: Consolidate pci_master_init() function
This patch removes the duplicted implementations of the pci_master_init() function by introducing a weak default function for it. It can be overridden by a board specific version. Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'cpu/ppc4xx/4xx_pci.c')
-rw-r--r--cpu/ppc4xx/4xx_pci.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/cpu/ppc4xx/4xx_pci.c b/cpu/ppc4xx/4xx_pci.c
index 01b9cf7..eed4534 100644
--- a/cpu/ppc4xx/4xx_pci.c
+++ b/cpu/ppc4xx/4xx_pci.c
@@ -686,6 +686,24 @@ void pci_target_init(struct pci_controller * hose)
int pci_pre_init(struct pci_controller *hose)
__attribute__((weak, alias("__pci_pre_init")));
+#if defined(CONFIG_SYS_PCI_MASTER_INIT)
+void __pci_master_init(struct pci_controller *hose)
+{
+ u16 reg;
+
+ /*
+ * Write the PowerPC440 EP PCI Configuration regs.
+ * Enable PowerPC440 EP to be a master on the PCI bus (PMM).
+ * Enable PowerPC440 EP to act as a PCI memory target (PTM).
+ */
+ pci_read_config_word(0, PCI_COMMAND, &reg);
+ pci_write_config_word(0, PCI_COMMAND, reg |
+ PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY);
+}
+void pci_master_init(struct pci_controller *hose)
+ __attribute__((weak, alias("__pci_master_init")));
+#endif /* CONFIG_SYS_PCI_MASTER_INIT */
+
int pci_440_init (struct pci_controller *hose)
{
int reg_num = 0;