[U-Boot] [PATCH] 86xx: Report which "bank" of NOR flash we are booting from on MPC8641HPCN

The MPC8641HPCN board is capable of swizzling the upper address bit of the NOR flash we boot out of which creates the concept of "virtual" banks. This is useful in that we can flash a test of image of u-boot and reset to one of the virtual banks while still maintaining a working image in "bank 0".
The PIXIS FPGA exposes registers on LBC which we can use to determine which "bank" we are booting out of (as well as setting which bank to boot out of).
Signed-off-by: Kumar Gala galak@kernel.crashing.org --- board/freescale/mpc8641hpcn/mpc8641hpcn.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/board/freescale/mpc8641hpcn/mpc8641hpcn.c b/board/freescale/mpc8641hpcn/mpc8641hpcn.c index 7422e6b..d115ce1 100644 --- a/board/freescale/mpc8641hpcn/mpc8641hpcn.c +++ b/board/freescale/mpc8641hpcn/mpc8641hpcn.c @@ -42,10 +42,19 @@ int board_early_init_f(void)
int checkboard(void) { - printf ("Board: MPC8641HPCN, System ID: 0x%02x, " - "System Version: 0x%02x, FPGA Version: 0x%02x\n", + u8 vboot; + + printf ("Board: MPC8641HPCN, Sys ID: 0x%02x, " + "Sys Ver: 0x%02x, FPGA Ver: 0x%02x, ", in8(PIXIS_BASE + PIXIS_ID), in8(PIXIS_BASE + PIXIS_VER), in8(PIXIS_BASE + PIXIS_PVER)); + + vboot = in8(PIXIS_BASE + 0x16); + if ((vboot >> 7) & 0x1) + printf ("vBank: %d\n", ((vboot >> 6) & 0x1)); + else + puts ("Promjet\n"); + #ifdef CONFIG_PHYS_64BIT printf (" 36-bit physical address map\n"); #endif

Dear Kumar Gala,
In message 1248187311-5943-1-git-send-email-galak@kernel.crashing.org you wrote:
The MPC8641HPCN board is capable of swizzling the upper address bit of the NOR flash we boot out of which creates the concept of "virtual" banks. This is useful in that we can flash a test of image of u-boot and reset to one of the virtual banks while still maintaining a working image in "bank 0".
The PIXIS FPGA exposes registers on LBC which we can use to determine which "bank" we are booting out of (as well as setting which bank to boot out of).
Signed-off-by: Kumar Gala galak@kernel.crashing.org
board/freescale/mpc8641hpcn/mpc8641hpcn.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/board/freescale/mpc8641hpcn/mpc8641hpcn.c b/board/freescale/mpc8641hpcn/mpc8641hpcn.c index 7422e6b..d115ce1 100644 --- a/board/freescale/mpc8641hpcn/mpc8641hpcn.c +++ b/board/freescale/mpc8641hpcn/mpc8641hpcn.c @@ -42,10 +42,19 @@ int board_early_init_f(void)
int checkboard(void) {
- printf ("Board: MPC8641HPCN, System ID: 0x%02x, "
"System Version: 0x%02x, FPGA Version: 0x%02x\n",
- u8 vboot;
- printf ("Board: MPC8641HPCN, Sys ID: 0x%02x, "
in8(PIXIS_BASE + PIXIS_ID), in8(PIXIS_BASE + PIXIS_VER), in8(PIXIS_BASE + PIXIS_PVER));"Sys Ver: 0x%02x, FPGA Ver: 0x%02x, ",
- vboot = in8(PIXIS_BASE + 0x16);
--------------------------------^^^^^^^
Maybe you can use a symbolic name here, too?
- if ((vboot >> 7) & 0x1)
if (vboot & 0x80) ???
printf ("vBank: %d\n", ((vboot >> 6) & 0x1));
printf ("vBank: %d\n", !!(vboot & 0x40)); ???
And eventually you can even come up with symbolic names for the magic numbers 0x80 and 0x40 ?
Best regards,
Wolfgang Denk

On Tuesday 21 July 2009 17:05:56 Wolfgang Denk wrote:
int checkboard(void) {
- printf ("Board: MPC8641HPCN, System ID: 0x%02x, "
"System Version: 0x%02x, FPGA Version: 0x%02x\n",
- u8 vboot;
- printf ("Board: MPC8641HPCN, Sys ID: 0x%02x, "
in8(PIXIS_BASE + PIXIS_ID), in8(PIXIS_BASE + PIXIS_VER), in8(PIXIS_BASE + PIXIS_PVER));"Sys Ver: 0x%02x, FPGA Ver: 0x%02x, ",
- vboot = in8(PIXIS_BASE + 0x16);
--------------------------------^^^^^^^
Maybe you can use a symbolic name here, too?
- if ((vboot >> 7) & 0x1)
if (vboot & 0x80) ???
printf ("vBank: %d\n", ((vboot >> 6) & 0x1));
printf ("vBank: %d\n", !!(vboot & 0x40)); ???
And eventually you can even come up with symbolic names for the magic numbers 0x80 and 0x40 ?
And please switch from using in8() to in_8().
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================
participants (3)
-
Kumar Gala
-
Stefan Roese
-
Wolfgang Denk