[U-Boot] [PATCH] MPC8349EMDS: do not setup unused PCI clock outputs in PCI agent mode

When running in PCI agent mode, the PCI_CLK_OUT signals are not used, so do not enable them. See the MPC8349EA Reference Manual, Section 4.4.2 "Clocking in PCI Agent Mode".
Signed-off-by: Ira W. Snyder iws@ovro.caltech.edu --- board/freescale/mpc8349emds/pci.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-)
diff --git a/board/freescale/mpc8349emds/pci.c b/board/freescale/mpc8349emds/pci.c index ad7bf5d..af0b1da 100644 --- a/board/freescale/mpc8349emds/pci.c +++ b/board/freescale/mpc8349emds/pci.c @@ -171,15 +171,10 @@ void pci_init_board(void) void pci_init_board(void) { volatile immap_t *immr = (volatile immap_t *)CONFIG_SYS_IMMR; - volatile clk83xx_t *clk = (volatile clk83xx_t *)&immr->clk; volatile law83xx_t *pci_law = immr->sysconf.pcilaw; volatile pcictrl83xx_t *pci_ctrl = &immr->pci_ctrl[0]; struct pci_region *reg[] = { pci1_regions };
- /* Enable all 8 PCI_CLK_OUTPUTS */ - clk->occr = 0xff000000; - udelay(2000); - /* Configure PCI Local Access Windows */ pci_law[0].bar = CONFIG_SYS_PCI1_MEM_PHYS & LAWBAR_BAR; pci_law[0].ar = LAWAR_EN | LAWAR_SIZE_1G; @@ -187,8 +182,6 @@ void pci_init_board(void) pci_law[1].bar = CONFIG_SYS_PCI1_IO_PHYS & LAWBAR_BAR; pci_law[1].ar = LAWAR_EN | LAWAR_SIZE_4M;
- udelay(2000); - mpc83xx_pci_init(1, reg, 0);
/* Configure PCI Inbound Translation Windows (3 1MB windows) */

void pci_init_board(void) { volatile immap_t *immr = (volatile immap_t *)CONFIG_SYS_IMMR;
volatile clk83xx_t *clk = (volatile clk83xx_t *)&immr->clk; volatile law83xx_t *pci_law = immr->sysconf.pcilaw; volatile pcictrl83xx_t *pci_ctrl = &immr->pci_ctrl[0]; struct pci_region *reg[] = { pci1_regions };
/* Enable all 8 PCI_CLK_OUTPUTS */
clk->occr = 0xff000000;
udelay(2000);
It will cause the PCI host broken. It needs case by case

On Tue, Jan 13, 2009 at 08:09:23AM +0800, Liu Dave wrote:
void pci_init_board(void) { volatile immap_t *immr = (volatile immap_t *)CONFIG_SYS_IMMR;
volatile clk83xx_t *clk = (volatile clk83xx_t *)&immr->clk; volatile law83xx_t *pci_law = immr->sysconf.pcilaw; volatile pcictrl83xx_t *pci_ctrl = &immr->pci_ctrl[0]; struct pci_region *reg[] = { pci1_regions };
/* Enable all 8 PCI_CLK_OUTPUTS */
clk->occr = 0xff000000;
udelay(2000);
It will cause the PCI host broken. It needs case by case
Yes, there are two pci_init_board() functions in this file. One for PCI host mode, and one for PCI agent mode. This version only runs in agent mode, it doesn't even get compiled in host mode.
It should be fine in host mode.
Thanks, Ira

Yes, there are two pci_init_board() functions in this file. One for PCI host mode, and one for PCI agent mode. This version only runs in agent mode, it doesn't even get compiled in host mode.
That is fine.

On Mon, 12 Jan 2009 13:33:17 -0800 Ira Snyder iws@ovro.caltech.edu wrote:
When running in PCI agent mode, the PCI_CLK_OUT signals are not used, so do not enable them. See the MPC8349EA Reference Manual, Section 4.4.2 "Clocking in PCI Agent Mode".
Signed-off-by: Ira W. Snyder iws@ovro.caltech.edu
board/freescale/mpc8349emds/pci.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-)
applied to u-boot-mpc83xx next.
Thanks,
Kim
participants (3)
-
Ira Snyder
-
Kim Phillips
-
Liu Dave