[U-Boot] [PATCH v2 01/10] arm: move flush_dcache_all() to just before disable cache

Simon Glass sjg at chromium.org
Sat Jan 12 17:33:41 CET 2013


Hi,

On Thu, Jan 10, 2013 at 11:59 PM, R Sricharan <r.sricharan at ti.com> wrote:
> Hi,
>
>
> On Saturday 01 December 2012 04:31 AM, Simon Glass wrote:
>>
>> From: Arun Mankuzhi <arun.m at samsung.com>
>>
>> In Cortex-A15 architecture, when we run cache invalidate
>> the cache clean operation executes automatically.
>> So if there are any dirty cache lines before disabling the L2 cache
>> these will be synchronized with the main memory when
>> invalidate_dcache_all() runs in the last part of U-boot
>>
>> The two functions after flush_dcache_all is using the stack. So this
>> data will be on the cache. After disable when invalidate is called the
>> data will be flushed from cache to memory. This corrupts the stack in
>> invalida_dcache_all. So this change is required to avoid the u-boot
>> hang.
>>
>> So flush has to be done just before clearing CR_C bit
>>
>> Signed-off-by: Arun Mankuzhi <arun.m at samsung.com>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>> Changes in v2: None
>>
>>   arch/arm/lib/cache-cp15.c |    5 ++++-
>>   1 files changed, 4 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/arm/lib/cache-cp15.c b/arch/arm/lib/cache-cp15.c
>> index 939de10..06119c8 100644
>> --- a/arch/arm/lib/cache-cp15.c
>> +++ b/arch/arm/lib/cache-cp15.c
>> @@ -124,8 +124,11 @@ static void cache_disable(uint32_t cache_bit)
>>                         return;
>>                 /* if disabling data cache, disable mmu too */
>>                 cache_bit |= CR_M;
>> -               flush_dcache_all();
>>         }
>> +       reg = get_cr();
>> +       cp_delay();
>> +       if (cache_bit == (CR_C | CR_M))
>> +               flush_dcache_all();
>>         set_cr(reg & ~cache_bit);
>
>  Sorry for the late question.
>  But are the two functions that is after flush_dcache_all currently ?
>
>  There is only set_cr, which does not use the stack.

I'm not sure I understand that comment, but Arun is copied on this
email and may have some further comment.

>
> Regards,
>  Sricharan
>
>

Regards,
Simon


More information about the U-Boot mailing list