|
@@ -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;
|