[U-Boot] [PATCH] i.MX: fsl_esdhc: allow use with cache enabled.
Eric Nelson
eric.nelson at boundarydevices.com
Sat Mar 24 23:36:14 CET 2012
Hi Stefano,
Sorry I let this linger.
On 03/17/2012 03:50 AM, Stefano Babic wrote:
> On 03/03/2012 23:37, Eric Nelson wrote:
>> Signed-off-by: Eric Nelson<eric.nelson at boundarydevices.com>
>> ---
>
> Hi Eric,
>
> I have added Andy in CC as MMC Maintainer
>
>> drivers/mmc/fsl_esdhc.c | 12 +++++++++++-
>> 1 files changed, 11 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
>> index a2f35e3..8e4bcef 100644
>> --- a/drivers/mmc/fsl_esdhc.c
>> +++ b/drivers/mmc/fsl_esdhc.c
>> @@ -190,6 +190,8 @@ static int esdhc_setup_data(struct mmc *mmc, struct mmc_data *data)
>> esdhc_clrsetbits32(®s->wml, WML_RD_WML_MASK, wml_value);
>> esdhc_write32(®s->dsaddr, (u32)data->dest);
>> } else {
>> + flush_dcache_range((ulong)data->src,(ulong)data->src+data->blocks*data->blocksize);
>
> This breaks PowerPC boards.
>
Can you tell me how?
AFAIK, blocksize needs to be a multiple of 512 so this should be cache-safe with
any cacheline size.
>> +
>> if (wml_value> WML_WR_WML_MAX)
>> wml_value = WML_WR_WML_MAX_VAL;
>> if ((esdhc_read32(®s->prsstat)& PRSSTAT_WPSPL) == 0) {
>> @@ -249,7 +251,12 @@ static int esdhc_setup_data(struct mmc *mmc, struct mmc_data *data)
>> return 0;
>> }
>>
>> -
>> +static void check_and_invalidate_dcache_range(struct mmc_cmd *cmd, struct mmc_data *data) {
>> + unsigned start = data->dest ;
>
> A cast is missing, a warning is generated.
>
Yep. I recognized that right **after** I hit <send>...
If you can give me some guidance on the comment above, I'll address with a V2.
Regards,
Eric
More information about the U-Boot
mailing list