[U-Boot] [PATCH] tegra2: Enable data cache

Aneesh V aneesh at ti.com
Wed Sep 14 15:10:25 CEST 2011


Hi Mike,

On Friday 09 September 2011 05:55 AM, Mike Frysinger wrote:
> On Thursday, September 08, 2011 18:20:16 Simon Glass wrote:
>> --- a/board/nvidia/common/board.c
>> +++ b/board/nvidia/common/board.c
>> @@ -307,3 +307,11 @@ int board_mmc_getcd(u8 *cd, struct mmc *mmc)
>>  	return 0;
>>  }
>>  #endif
>> +
>> +#ifndef CONFIG_SYS_DCACHE_OFF
>> +void enable_caches(void)
>> +{
>> +	/* Enable D-cache. I-cache is already enabled in start.S */
>> +	dcache_enable();
>> +}
>> +#endif
> 
> not specific to your patch, but this seems kind of dumb to copy & paste the 
> same thing between all the arm sub arches/boards.  why cant the default 
> enable_caches() look like this for arm:
> void enable_caches(void)
> {
> #ifndef CONFIG_SYS_DCACHE_OFF
> 	dcache_enable();
> #endif
> #ifndef CONFIG_SYS_ICACHE_OFF
> 	icache_enable();
> #endif
> }

That was how it was earlier. But then many boards were not cache ready
and still didn't define CONFIG_SYS_DCACHE_OFF, so they were broken. So,
the current situation is that the absence of CONFIG_SYS_DCACHE_OFF
doesn't mean that the board is cache-ready.

I like the suggestion made by Jason Liu, that of using
CONFIG_SYS_DCACHE_ON instead. In the present situation ARM cpus that
properly support cache handling seems to be in the minority, so
CONFIG_SYS_DCACHE_ON may be more appropriate. But Wolfgang doesn't seem
to like this.

best regards,
Aneesh


More information about the U-Boot mailing list