[U-Boot] [PATCH] mmc: atmel: Properly fix clock configuration

Marek Vasut marex at denx.de
Thu Nov 5 17:38:45 CET 2015


On Thursday, November 05, 2015 at 03:53:16 PM, Gregory CLEMENT wrote:
> Timing issue occurs on eMMC not only when modifying the frequency but
> also for all the switch command(CMD6). According to the MMC spec waiting
> 8 clocks after a switch command would be the thing to do.
> 
> This patch allows fixing CPU hang observed when trying to changing the
> bus width on a eMMC on SAMA5D4.
> 
> Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>

On DENX MA5D4EVK:

Tested-by: Marek Vasut <marex at denx.de>

[...]

> @@ -284,8 +286,10 @@ mci_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
> struct mmc_data *data) {
>  				u32 cnt = word_count * 4;
>  				printf("Read Data:\n");
> +				/*
>  				print_buffer(0, data->dest + cnt * block_count,
>  					     1, cnt, 0);
> +				*/

This bit shouldn't be in the patch I guess ;-)

>  			}
>  #endif
>  #ifdef DEBUG
> @@ -323,6 +327,12 @@ mci_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
> struct mmc_data *data) }
>  	}
> 
> +	/* After the switch command, wait for 8 clocks before the next
> +	 * command
> +	 */

The comment style should match the kernel one -- multilines go like this:
/*
 * foo
 * bar
 */

> +	if (cmd->cmdidx == MMC_CMD_SWITCH)
> +		udelay(8*1000000/ priv->curr_clk); /* 8 clk in us*/
> +
>  	return 0;
>  }

Best regards,
Marek Vasut


More information about the U-Boot mailing list