summaryrefslogtreecommitdiff
path: root/board/freescale/mx53_loco
diff options
context:
space:
mode:
authorRobin Gong <B38343@freescale.com>2011-08-29 16:09:07 +0800
committerWayne Zou <b36644@freescale.com>2011-08-29 16:58:21 +0800
commit190451ad69f8d1f34806c8bc1c602dd387666f1e (patch)
tree68002138da3784bf7a51a8721b8fc6612caadbcc /board/freescale/mx53_loco
parente80a93cb9ab25e841418c64b92eea18bf6bf9ae0 (diff)
downloadu-boot-imx-190451ad69f8d1f34806c8bc1c602dd387666f1e.zip
u-boot-imx-190451ad69f8d1f34806c8bc1c602dd387666f1e.tar.gz
u-boot-imx-190451ad69f8d1f34806c8bc1c602dd387666f1e.tar.bz2
ENGR00155472 mx53_loco: support both of RevA and RevB in uboot
to fix we should amend systemrev in uboot, add new board RevB for it Signed-off-by: Robin Gong <B38343@freescale.com>
Diffstat (limited to 'board/freescale/mx53_loco')
-rw-r--r--board/freescale/mx53_loco/mx53_loco.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/board/freescale/mx53_loco/mx53_loco.c b/board/freescale/mx53_loco/mx53_loco.c
index 7f6ded0..caa476a 100644
--- a/board/freescale/mx53_loco/mx53_loco.c
+++ b/board/freescale/mx53_loco/mx53_loco.c
@@ -65,6 +65,13 @@ DECLARE_GLOBAL_DATA_PTR;
static u32 system_rev;
static enum boot_device boot_dev;
+u32 get_board_rev_from_fuse(void)
+{
+ u32 board_rev = readl(IIM_BASE_ADDR + 0x878);
+
+ return board_rev;
+}
+
static inline void setup_boot_device(void)
{
uint soc_sbmr = readl(SRC_BASE_ADDR + 0x4);
@@ -738,7 +745,7 @@ int board_late_init(void)
}
/* set up rev #1 for loco/ripley board */
- setup_board_rev(1);
+ setup_board_rev(get_board_rev_from_fuse());
/* Switch to 1GHZ */
clk_config(CONFIG_REF_CLK_FREQ, 1000, CPU_CLK);
} else if (!i2c_probe(0x48)) {
@@ -775,10 +782,17 @@ int board_late_init(void)
int checkboard(void)
{
printf("Board: ");
- printf("MX53-LOCO 1.0\n");
+ printf("MX53-LOCO 1.0 ");
+ switch (get_board_rev_from_fuse()) {
+ case 0x3:
+ printf("Rev. B\n");
+ break;
+ case 0x1:
+ default:
+ printf("Rev. A\n");
+ break;
+ }
printf("Boot Reason: [");
-
-
switch (__REG(SRC_BASE_ADDR + 0x8)) {
case 0x0001:
printf("POR");