[U-Boot] [PATCH 07/20] arm: Avoid error messages in cache_v7

Marek Vasut marex at denx.de
Thu May 19 17:22:41 CEST 2016


On 05/19/2016 06:02 AM, Simon Glass wrote:
> Hi Marek,
> 
> On 14 May 2016 at 15:41, Marek Vasut <marex at denx.de> wrote:
>> On 05/14/2016 11:22 PM, Simon Glass wrote:
>>> Hi Marek,
>>
>> Hi!
>>
>>> On 14 May 2016 at 14:23, Marek Vasut <marex at denx.de> wrote:
>>>> On 05/14/2016 10:02 PM, Simon Glass wrote:
>>>>> Move these to debug() like the one in check_cache range(), to save SPL space.
>>>>
>>>> This hides cache problems, which were visibly reported so far.
>>>> I am opposed to this patch.
>>>
>>> Sure, but see check_cache_range(). It uses debug(). In fact I found
>>> the at91 cache problem only after trying #define DEBUG in the code
>>> there.
>>
>> Which is the reason we should really be vocal about such cache misuse.
>> I had a few of such cache problems bite me too, which is why I would
>> like to avoid silencing this warning with debug() by default.
>>
>> I think check_cache_range() should also be fixed and should use printf()
>> by default.
>>
>>>>
>>>> Wouldn't it make more sense to completely disable printf() and co.
>>>> in SPL if you're after saving space?
>>>
>>> Or maybe we need something that prints a message in U-Boot proper, but
>>> not SPL? I'll take a look.
>>
>> But what if you trigger the issue only in SPL ?
> 
> Yes, but is that likely? So far I don't think the cache is enabled in SPL...

Yeah, it's probably unlikely.

btw have you tried patching away all console IO support in SPL? Does it
save space?

>>
>>>>
>>>>> Signed-off-by: Simon Glass <sjg at chromium.org>
>>>>> ---
>>>>>
>>>>>  arch/arm/cpu/armv7/cache_v7.c | 8 ++++----
>>>>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>>>>
>>>>> diff --git a/arch/arm/cpu/armv7/cache_v7.c b/arch/arm/cpu/armv7/cache_v7.c
>>>>> index dc309da..68cf62e 100644
>>>>> --- a/arch/arm/cpu/armv7/cache_v7.c
>>>>> +++ b/arch/arm/cpu/armv7/cache_v7.c
>>>>> @@ -66,8 +66,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
>>>>>        * invalidate the first cache-line
>>>>>        */
>>>>>       if (start & (line_len - 1)) {
>>>>> -             printf("ERROR: %s - start address is not aligned - 0x%08x\n",
>>>>> -                     __func__, start);
>>>>> +             debug("ERROR: %s - start address is not aligned - 0x%08x\n",
>>>>> +                   __func__, start);
>>>>>               /* move to next cache line */
>>>>>               start = (start + line_len - 1) & ~(line_len - 1);
>>>>>       }
>>>>> @@ -77,8 +77,8 @@ static void v7_dcache_inval_range(u32 start, u32 stop, u32 line_len)
>>>>>        * invalidate the last cache-line
>>>>>        */
>>>>>       if (stop & (line_len - 1)) {
>>>>> -             printf("ERROR: %s - stop address is not aligned - 0x%08x\n",
>>>>> -                     __func__, stop);
>>>>> +             debug("ERROR: %s - stop address is not aligned - 0x%08x\n",
>>>>> +                   __func__, stop);
>>>>>               /* align to the beginning of this cache line */
>>>>>               stop &= ~(line_len - 1);
>>>>>       }
> 
> Regards,
> Simon
> 


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list