summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnish Trivedi <anish@freescale.com>2011-11-03 11:56:01 -0500
committerAnish Trivedi <anish@freescale.com>2011-11-04 09:49:42 -0500
commitd34f48bb69f50309abe452f23c7bb4371635eb4f (patch)
tree73781b779295b7caa24d0878debc338d13d352c9
parenteadeefdbe43d513dbc8e9ac22e7f892c69259b94 (diff)
downloadu-boot-imx-d34f48bb69f50309abe452f23c7bb4371635eb4f.zip
u-boot-imx-d34f48bb69f50309abe452f23c7bb4371635eb4f.tar.gz
u-boot-imx-d34f48bb69f50309abe452f23c7bb4371635eb4f.tar.bz2
ENGR00161354 MX6Q ARM2 U_BOOT: "mmc dev 0" or "mmc dev 1" cmds will hang
Ungate the clocks to SD1 and SD2 ports (on baseboard of ARM2 system) so that the above cmds do not hang waiting for cmd to complete or timeout. Signed-off-by: Anish Trivedi <anish@freescale.com>
-rw-r--r--board/freescale/mx6q_arm2/lowlevel_init.S2
-rw-r--r--board/freescale/mx6q_arm2/mx6q_arm2.c14
2 files changed, 10 insertions, 6 deletions
diff --git a/board/freescale/mx6q_arm2/lowlevel_init.S b/board/freescale/mx6q_arm2/lowlevel_init.S
index 2ac77b9..882f62a 100644
--- a/board/freescale/mx6q_arm2/lowlevel_init.S
+++ b/board/freescale/mx6q_arm2/lowlevel_init.S
@@ -143,7 +143,7 @@ d_inv_loop:
str r1, [r0, #CLKCTL_CCGR4]
ldr r1, =0xF0000C3
str r1, [r0, #CLKCTL_CCGR5]
- ldr r1, =0x3C0
+ ldr r1, =0x3FC
str r1, [r0, #CLKCTL_CCGR6]
.endm
diff --git a/board/freescale/mx6q_arm2/mx6q_arm2.c b/board/freescale/mx6q_arm2/mx6q_arm2.c
index bbc5ea8..d97f7b8 100644
--- a/board/freescale/mx6q_arm2/mx6q_arm2.c
+++ b/board/freescale/mx6q_arm2/mx6q_arm2.c
@@ -110,9 +110,9 @@ static inline void setup_boot_device(void)
break;
case 0x3:
if (bt_mem_type)
- boot_dev = SPI_NOR_BOOT;
- else
boot_dev = I2C_BOOT;
+ else
+ boot_dev = SPI_NOR_BOOT;
break;
case 0x4:
case 0x5:
@@ -479,8 +479,12 @@ int get_mmc_env_devno(void)
{
uint soc_sbmr = readl(SRC_BASE_ADDR + 0x4);
- /* BOOT_CFG2[3] and BOOT_CFG2[4] */
- return (soc_sbmr & 0x00001800) >> 11;
+ if (SD_BOOT == boot_dev || MMC_BOOT == boot_dev) {
+ /* BOOT_CFG2[3] and BOOT_CFG2[4] */
+ return (soc_sbmr & 0x00001800) >> 11;
+ } else
+ return -1;
+
}
#endif
@@ -851,7 +855,7 @@ int checkboard(void)
default:
printf("unknown");
}
- printf("]\n");
+ printf(" ]\n");
printf("Boot Device: ");
switch (get_boot_device()) {