From: Sylvain Munaut We were counting on the bootloader to init some stuff, like get the bus out of reset and enable accesses. Signed-off-by: Sylvain Munaut Signed-off-by: Andrew Morton --- arch/ppc/syslib/mpc52xx_pci.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff -puN arch/ppc/syslib/mpc52xx_pci.c~ppc32-fix-mpc52xx-pci-init-in-cas-the-bootloader arch/ppc/syslib/mpc52xx_pci.c --- devel/arch/ppc/syslib/mpc52xx_pci.c~ppc32-fix-mpc52xx-pci-init-in-cas-the-bootloader 2006-01-03 21:16:16.000000000 -0800 +++ devel-akpm/arch/ppc/syslib/mpc52xx_pci.c 2006-01-03 21:16:16.000000000 -0800 @@ -154,9 +154,12 @@ static struct pci_ops mpc52xx_pci_ops = static void __init mpc52xx_pci_setup(struct mpc52xx_pci __iomem *pci_regs) { + u32 tmp; /* Setup control regs */ - /* Nothing to do afaik */ + tmp = in_be32(&pci_regs->scr); + tmp |= PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY; + out_be32(&pci_regs->scr, tmp); /* Setup windows */ out_be32(&pci_regs->iw0btar, MPC52xx_PCI_IWBTAR_TRANSLATION( @@ -197,13 +200,12 @@ mpc52xx_pci_setup(struct mpc52xx_pci __i /* Not necessary and can be a bad thing if for example the bootloader is displaying a splash screen or ... Just left here for documentation purpose if anyone need it */ -#if 0 - u32 tmp; tmp = in_be32(&pci_regs->gscr); +#if 0 out_be32(&pci_regs->gscr, tmp | MPC52xx_PCI_GSCR_PR); udelay(50); - out_be32(&pci_regs->gscr, tmp); #endif + out_be32(&pci_regs->gscr, tmp & ~MPC52xx_PCI_GSCR_PR); } static void _