diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2008-10-21 13:14:33 +1100 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2008-10-21 13:14:33 +1100 |
commit | c1075fb7ec62b7ac0ac6baee2ceeb77270206aef (patch) | |
tree | cad7eac9f6755e7d73f07ae034db3bdb97d4b3cf /arch/powerpc | |
parent | dfe218b7ef0c1d561a0d5ce294c173f1551985ff (diff) | |
parent | 51d9861e9e09c5c0066e5e5d9bb0009be1957899 (diff) |
Merge commit 'gcl/gcl-next'
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/boot/cuboot-52xx.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/52xx/mpc52xx_common.c | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/arch/powerpc/boot/cuboot-52xx.c b/arch/powerpc/boot/cuboot-52xx.c index a8611546a65..4c42ec8687b 100644 --- a/arch/powerpc/boot/cuboot-52xx.c +++ b/arch/powerpc/boot/cuboot-52xx.c @@ -37,6 +37,10 @@ static void platform_fixups(void) * this can do a simple path lookup. */ soc = find_node_by_devtype(NULL, "soc"); + if (!soc) + soc = find_node_by_compatible(NULL, "fsl,mpc5200-immr"); + if (!soc) + soc = find_node_by_compatible(NULL, "fsl,mpc5200b-immr"); if (soc) { setprop(soc, "bus-frequency", &bd.bi_ipbfreq, sizeof(bd.bi_ipbfreq)); diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c index 044b4e6e874..ae7c34f37e1 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_common.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c @@ -99,11 +99,14 @@ mpc5200_setup_xlb_arbiter(void) out_be32(&xlb->master_pri_enable, 0xff); out_be32(&xlb->master_priority, 0x11111111); - /* Disable XLB pipelining + /* + * Disable XLB pipelining * (cfr errate 292. We could do this only just before ATA PIO * transaction and re-enable it afterwards ...) + * Not needed on MPC5200B. */ - out_be32(&xlb->config, in_be32(&xlb->config) | MPC52xx_XLB_CFG_PLDIS); + if ((mfspr(SPRN_SVR) & MPC5200_SVR_MASK) == MPC5200_SVR) + out_be32(&xlb->config, in_be32(&xlb->config) | MPC52xx_XLB_CFG_PLDIS); iounmap(xlb); } |