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

Gregory CLEMENT gregory.clement at free-electrons.com
Thu Nov 5 20:56:19 CET 2015


Hi Marek,
 
 On jeu., nov. 05 2015, Marek Vasut <marex at denx.de> wrote:

> 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>

Thanks for having tested it so quick!

>
> [...]
>
>> @@ -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 ;-)

You're right!

>
>>  			}
>>  #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
>  */

Sure, I will send a v2 with tour comment taken into account anw with
your tested-by.

Thanks,

Gregory

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

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com


More information about the U-Boot mailing list