powerpc/86xx: display boot device and bank on the MPC8610 HPCD
authorTimur Tabi <timur@freescale.com>
Thu, 28 Apr 2011 18:41:20 +0000 (13:41 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Mon, 11 Jul 2011 18:24:19 +0000 (13:24 -0500)
Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
board/freescale/mpc8610hpcd/mpc8610hpcd.c

index d7dd470c3ffb5605b8166655b8ba67f3e3e2e7f9..4e4b7c096fc7719321c89063898ebdc242f9f050 100644 (file)
@@ -94,11 +94,32 @@ int checkboard(void)
        volatile ccsr_local_mcm_t *mcm = &immap->im_local_mcm;
        u8 *pixis_base = (u8 *)PIXIS_BASE;
 
-       printf ("Board: MPC8610HPCD, System ID: 0x%02x, "
-               "System Version: 0x%02x, FPGA Version: 0x%02x\n",
+       printf ("Board: MPC8610HPCD, Sys ID: 0x%02x, "
+               "Sys Ver: 0x%02x, FPGA Ver: 0x%02x, ",
                in_8(pixis_base + PIXIS_ID), in_8(pixis_base + PIXIS_VER),
                in_8(pixis_base + PIXIS_PVER));
 
+       /*
+        * The MPC8610 HPCD workbook says that LBMAP=11 is the "normal" boot
+        * bank and LBMAP=00 is the alternate bank.  However, the pixis
+        * altbank code can only set bits, not clear them, so we treat 00 as
+        * the normal bank and 11 as the alternate.
+        */
+       switch (in_8(pixis_base + PIXIS_VBOOT) & 0xC0) {
+       case 0:
+               puts("vBank: Standard\n");
+               break;
+       case 0x40:
+               puts("Promjet\n");
+               break;
+       case 0x80:
+               puts("NAND\n");
+               break;
+       case 0xC0:
+               puts("vBank: Alternate\n");
+               break;
+       }
+
        mcm->abcr |= 0x00010000; /* 0 */
        mcm->hpmr3 = 0x80000008; /* 4c */
        mcm->hpmr0 = 0;