diff options
author | Anish Trivedi <anish@freescale.com> | 2011-11-03 11:56:01 -0500 |
---|---|---|
committer | Anish Trivedi <anish@freescale.com> | 2011-11-04 09:49:42 -0500 |
commit | d34f48bb69f50309abe452f23c7bb4371635eb4f (patch) | |
tree | 73781b779295b7caa24d0878debc338d13d352c9 | |
parent | eadeefdbe43d513dbc8e9ac22e7f892c69259b94 (diff) | |
download | u-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.S | 2 | ||||
-rw-r--r-- | board/freescale/mx6q_arm2/mx6q_arm2.c | 14 |
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()) { |