powerpc/mpc5200: Don't touch pipelining for MPC5200B
authorWolfram Sang <w.sang@pengutronix.de>
Wed, 15 Oct 2008 17:09:59 +0000 (11:09 -0600)
committerGrant Likely <grant.likely@secretlab.ca>
Wed, 15 Oct 2008 17:09:59 +0000 (11:09 -0600)
MPC5200 needs to have pipelining disabled for ATA to work. MPC5200B does not.
So, for the latter, don't touch the original setting from the bootloader.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
arch/powerpc/platforms/52xx/mpc52xx_common.c

index 044b4e6..ae7c34f 100644 (file)
@@ -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);
 }