提交 5db1dcce 编写于 作者: W Wolfgang Denk

Merge branch 'master' of git://git.denx.de/u-boot-ppc4xx

...@@ -87,6 +87,20 @@ DECLARE_GLOBAL_DATA_PTR; ...@@ -87,6 +87,20 @@ DECLARE_GLOBAL_DATA_PTR;
*/ */
int __pci_pre_init(struct pci_controller *hose) int __pci_pre_init(struct pci_controller *hose)
{ {
#if defined (CONFIG_405EP)
/*
* Enable the internal PCI arbiter by default.
*
* On 405EP CPUs the internal arbiter can be controlled
* by the I2C strapping EEPROM. If you want to do so
* or if you want to disable the arbiter pci_pre_init()
* must be reimplemented without enabling the arbiter.
* The arbiter is enabled in this place because of
* compatibility reasons.
*/
mtdcr(cpc0_pci, mfdcr(cpc0_pci) | CPC0_PCI_ARBIT_EN);
#endif /* CONFIG_405EP */
return 1; return 1;
} }
int pci_pre_init(struct pci_controller *hose) __attribute__((weak, alias("__pci_pre_init"))); int pci_pre_init(struct pci_controller *hose) __attribute__((weak, alias("__pci_pre_init")));
...@@ -323,8 +337,15 @@ void pci_405gp_init(struct pci_controller *hose) ...@@ -323,8 +337,15 @@ void pci_405gp_init(struct pci_controller *hose)
} }
#endif #endif
#if defined(CONFIG_405EP) /* on ppc405ep vendor id is not set */ #if defined(CONFIG_405EP)
pci_write_config_word(PCIDEVID_405GP, PCI_VENDOR_ID, 0x1014); /* IBM */ /*
* on ppc405ep vendor/device id is not set
* The user manual says 0x1014 (IBM) / 0x0156 (405GP!)
* are the correct values.
*/
pci_write_config_word(PCIDEVID_405GP, PCI_VENDOR_ID, PCI_VENDOR_ID_IBM);
pci_write_config_word(PCIDEVID_405GP,
PCI_DEVICE_ID, PCI_DEVICE_ID_IBM_405GP);
#endif #endif
/* /*
......
...@@ -174,11 +174,6 @@ cpu_init_f (void) ...@@ -174,11 +174,6 @@ cpu_init_f (void)
* Set EMAC noise filter bits * Set EMAC noise filter bits
*/ */
mtdcr(cpc0_epctl, CPC0_EPRCSR_E0NFE | CPC0_EPRCSR_E1NFE); mtdcr(cpc0_epctl, CPC0_EPRCSR_E0NFE | CPC0_EPRCSR_E1NFE);
/*
* Enable the internal PCI arbiter
*/
mtdcr(cpc0_pci, mfdcr(cpc0_pci) | CPC0_PCI_HOST_CFG_EN | CPC0_PCI_ARBIT_EN);
#endif /* CONFIG_405EP */ #endif /* CONFIG_405EP */
#if defined(CONFIG_SYS_4xx_GPIO_TABLE) #if defined(CONFIG_SYS_4xx_GPIO_TABLE)
......
...@@ -275,7 +275,8 @@ void pci_init_board(void); ...@@ -275,7 +275,8 @@ void pci_init_board(void);
void pciinfo (int, int); void pciinfo (int, int);
#if defined(CONFIG_PCI) && (defined(CONFIG_4xx) && !defined(CONFIG_AP1000)) #if defined(CONFIG_PCI) && (defined(CONFIG_4xx) && !defined(CONFIG_AP1000))
int pci_pre_init (struct pci_controller * ); int pci_pre_init (struct pci_controller *);
int is_pci_host (struct pci_controller *);
#endif #endif
#if defined(CONFIG_PCI) && (defined(CONFIG_440) || defined(CONFIG_405EX)) #if defined(CONFIG_PCI) && (defined(CONFIG_440) || defined(CONFIG_405EX))
...@@ -285,7 +286,6 @@ void pciinfo (int, int); ...@@ -285,7 +286,6 @@ void pciinfo (int, int);
# if defined(CONFIG_SYS_PCI_MASTER_INIT) # if defined(CONFIG_SYS_PCI_MASTER_INIT)
void pci_master_init (struct pci_controller *); void pci_master_init (struct pci_controller *);
# endif # endif
int is_pci_host (struct pci_controller *);
#if defined(CONFIG_440SPE) || \ #if defined(CONFIG_440SPE) || \
defined(CONFIG_460EX) || defined(CONFIG_460GT) || \ defined(CONFIG_460EX) || defined(CONFIG_460GT) || \
defined(CONFIG_405EX) defined(CONFIG_405EX)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册