diff options
author | Stefan Roese <sr@denx.de> | 2009-11-12 17:19:37 +0100 |
---|---|---|
committer | Stefan Roese <sr@denx.de> | 2009-11-19 11:35:34 +0100 |
commit | 6c70049bd14e8e81764570732be7f34a89831f09 (patch) | |
tree | 9e2028ab7a017c9a8f78ac62a99e135bb5b23630 /cpu/ppc4xx | |
parent | a760b0203155da6fb8b8e9086169bb87d09d76fa (diff) | |
download | u-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')
-rw-r--r-- | cpu/ppc4xx/4xx_pci.c | 18 |
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, ®); + 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; |