[U-Boot] [RESEND 11/11] snowball: Adding board specific cache cleanup routine
Mathieu Poirier
mathieu.poirier at linaro.org
Wed Jul 4 21:53:16 CEST 2012
On 12-07-04 12:53 PM, Wolfgang Denk wrote:
> Dear mathieu.poirier at linaro.org,
>
> In message <1341413915-7944-12-git-send-email-mathieu.poirier at linaro.org> you wrote:
>> From: "Mathieu J. Poirier" <mathieu.poirier at linaro.org>
>>
>> Following ARM's reference manuel for initializing the cache - the
>> kernel won't boot otherwise.
>>
>> Signed-off-by: Mathieu Poirier <mathieu.poirier at linaro.org>
>> Signed-off-by: John Rigby <john.rigby at linaro.org>
>> ---
>> Changes for v2:
>> - Correcting cache maintenance register address.
>> - Invalidating all 16 bits in cache maintenance register.
>> - Polling cache maintenance register for cleared bits.
>> - Added comments to the code.
>> - Re-worked commit description.
>> ---
>> arch/arm/cpu/armv7/u8500/cpu.c | 16 ++++++++++++++++
>> 1 files changed, 16 insertions(+), 0 deletions(-)
> ...
>> +void cpu_cache_initialization(void)
>> +{
>> + /* invalidate all cache entries */
>> + *((volatile unsigned int *)(0xA041277C)) = 0xFFFF;
> ...
>> + while (*((volatile unsigned int *)(0xA041277C)) & 0xFF)
> ...
>> + *((volatile unsigned int *)(0xA0412900)) = 0xFF;
>> + *((volatile unsigned int *)(0xA0412904)) = 0xFF;
>
> NAK. Please use proper I/O accessors, and declare a C struct to
> access these registers.
Ok, to make sure I do this properly please point me to an example in the
code base where I can find I/O accessors.
Also, could you be more specific about the C struct you're like to see
implemented - again and example in the code would be welcomed.
Thanks,
Mathieu.
>
> Best regards,
>
> Wolfgang Denk
>
More information about the U-Boot
mailing list