summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Fuzhen <fuzhen.lin@freescale.com>2013-01-28 17:46:07 +0800
committerLin Fuzhen <fuzhen.lin@freescale.com>2013-01-28 20:35:56 +0800
commit69867900d85e71737f6760c57c86d911625cd61c (patch)
tree4dc17d378b9bec158d6811ab880079a48abea42f
parentd33eefe083563a082840a46ec9cac21f98fad550 (diff)
ENGR00242042 MX6DQ/DL: fix boot fail issue on mx6dl boards
MX6DQ and MX6DL share the common board file, but only MX6DQ has built-in SATA, for the SATA PDDQ should be enabled default, so it needs to add code to distinguish different chip ID. Signed-off-by: Lin Fuzhen <fuzhen.lin@freescale.com>
-rw-r--r--board/freescale/common/fsl_sys_rev.c14
-rw-r--r--board/freescale/mx6q_arm2/mx6q_arm2.c7
-rw-r--r--board/freescale/mx6q_hdmidongle/mx6q_hdmidongle.c7
-rw-r--r--board/freescale/mx6q_sabreauto/mx6q_sabreauto.c7
-rw-r--r--board/freescale/mx6q_sabresd/mx6q_sabresd.c7
-rw-r--r--include/asm-arm/arch-mx6/mx6.h3
6 files changed, 35 insertions, 10 deletions
diff --git a/board/freescale/common/fsl_sys_rev.c b/board/freescale/common/fsl_sys_rev.c
index 0caa85901b..19a0347208 100644
--- a/board/freescale/common/fsl_sys_rev.c
+++ b/board/freescale/common/fsl_sys_rev.c
@@ -1,6 +1,6 @@
/*
* Freescale system chip & board version define
- * Copyright (C) 2012 Freescale Semiconductor, Inc.
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -118,8 +118,20 @@ void fsl_set_system_rev(void)
}
#endif
}
+
+int cpu_is_mx6q()
+{
+ if (fsl_system_rev != NULL)
+ fsl_set_system_rev();
+ return (((fsl_system_rev & 0xff000)>>12) == 0x63);
+}
#else
void fsl_set_system_rev(void)
{
}
+
+int cpu_is_mx6q()
+{
+ return 0;
+}
#endif
diff --git a/board/freescale/mx6q_arm2/mx6q_arm2.c b/board/freescale/mx6q_arm2/mx6q_arm2.c
index a68720ddf7..4f0ea8c7cb 100644
--- a/board/freescale/mx6q_arm2/mx6q_arm2.c
+++ b/board/freescale/mx6q_arm2/mx6q_arm2.c
@@ -1256,7 +1256,8 @@ int board_init(void)
gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
setup_uart();
- setup_sata();
+ if (cpu_is_mx6q())
+ setup_sata();
#ifdef CONFIG_VIDEO_MX5
@@ -1481,7 +1482,9 @@ int checkboard(void)
if (check_hab_enable() == 1)
get_hab_status();
#endif
- printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR + PORT_PHY_CTL)
+ if (cpu_is_mx6q())
+ printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR
+ + PORT_PHY_CTL)
& PORT_PHY_CTL_PDDQ_LOC)>>20) ? "enabled" : "disabled");
return 0;
diff --git a/board/freescale/mx6q_hdmidongle/mx6q_hdmidongle.c b/board/freescale/mx6q_hdmidongle/mx6q_hdmidongle.c
index 34edc0453e..c8834f6024 100644
--- a/board/freescale/mx6q_hdmidongle/mx6q_hdmidongle.c
+++ b/board/freescale/mx6q_hdmidongle/mx6q_hdmidongle.c
@@ -1203,7 +1203,8 @@ int board_init(void)
gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
setup_uart();
- setup_sata();
+ if (cpu_is_mx6q())
+ setup_sata();
#ifdef CONFIG_VIDEO_MX5
/* Enable lvds power */
@@ -1434,7 +1435,9 @@ int checkboard(void)
printf("UNKNOWN\n");
break;
}
- printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR + PORT_PHY_CTL)
+ if (cpu_is_mx6q())
+ printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR
+ + PORT_PHY_CTL)
& PORT_PHY_CTL_PDDQ_LOC)>>20) ? "enabled" : "disabled");
return 0;
}
diff --git a/board/freescale/mx6q_sabreauto/mx6q_sabreauto.c b/board/freescale/mx6q_sabreauto/mx6q_sabreauto.c
index 4229c69b5c..8577cdf0d2 100644
--- a/board/freescale/mx6q_sabreauto/mx6q_sabreauto.c
+++ b/board/freescale/mx6q_sabreauto/mx6q_sabreauto.c
@@ -1034,7 +1034,8 @@ int board_init(void)
#ifdef CONFIG_CMD_WEIMNOR
setup_nor();
#endif
- setup_sata();
+ if (cpu_is_mx6q())
+ setup_sata();
#ifdef CONFIG_VIDEO_MX5
panel_info_init();
@@ -1217,7 +1218,9 @@ int checkboard(void)
printf("UNKNOWN\n");
break;
}
- printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR + PORT_PHY_CTL)
+ if (cpu_is_mx6q())
+ printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR
+ + PORT_PHY_CTL)
& PORT_PHY_CTL_PDDQ_LOC)>>20) ? "enabled" : "disabled");
return 0;
}
diff --git a/board/freescale/mx6q_sabresd/mx6q_sabresd.c b/board/freescale/mx6q_sabresd/mx6q_sabresd.c
index 57173a4260..6b603e83c7 100644
--- a/board/freescale/mx6q_sabresd/mx6q_sabresd.c
+++ b/board/freescale/mx6q_sabresd/mx6q_sabresd.c
@@ -1755,7 +1755,8 @@ int board_init(void)
gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
setup_uart();
- setup_sata();
+ if (cpu_is_mx6q())
+ setup_sata();
#ifdef CONFIG_VIDEO_MX5
/* Enable lvds power */
@@ -1995,7 +1996,9 @@ int checkboard(void)
break;
}
- printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR + PORT_PHY_CTL)
+ if (cpu_is_mx6q())
+ printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR
+ + PORT_PHY_CTL)
& PORT_PHY_CTL_PDDQ_LOC)>>20) ? "enabled" : "disabled");
#ifdef CONFIG_SECURE_BOOT
if (check_hab_enable() == 1)
diff --git a/include/asm-arm/arch-mx6/mx6.h b/include/asm-arm/arch-mx6/mx6.h
index 45381e24fe..54eeddf970 100644
--- a/include/asm-arm/arch-mx6/mx6.h
+++ b/include/asm-arm/arch-mx6/mx6.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -815,6 +815,7 @@ extern unsigned int get_board_rev(void);
extern int is_soc_rev(int rev);
extern enum boot_device get_boot_device(void);
extern void fsl_set_system_rev(void);
+extern int cpu_is_mx6q(void);
#endif /* __ASSEMBLER__*/