[U-Boot] [PATCH v2 1/3] ARM: cache: add an empty stub function for invalidate/flush dcache

Josh Wu
2015-06-10T09:49:54Z

On 6/9/2015 9:11 PM, Tom Rini wrote:
> On Tue, Jun 09, 2015 at 11:54:14AM +0800, Josh Wu wrote:
>> Hi, Tom
>>
>> On 6/8/2015 9:20 PM, Tom Rini wrote:
>>> On Mon, Jun 08, 2015 at 10:26:29AM +0200, Marek Vasut wrote:
>>>> On Monday, June 08, 2015 at 04:05:04 AM, Josh Wu wrote:
>>>>> Hi, Marek
>>>>>
>>>>> On 6/5/2015 9:18 PM, Marek Vasut wrote:
>>>>>> On Friday, June 05, 2015 at 09:47:30 AM, Josh Wu wrote:
>>>>>>> Since some driver like ohci, lcd used dcache functions. But some ARM
>>>>>>> cpu don't implement the invalidate_dcache_range()/flush_dcache_range()
>>>>>>> functions.
>>>>>>>
>>>>>>> To avoid compiling errors this patch adds an weak empty stub function
>>>>>>> for all ARM cpu.
>>>>>>>
>>>>>>> And each cpu can implement its own implementation. If not implemented
>>>>>>> by default it will use an empty function.
>>>>>>>
>>>>>>> Signed-off-by: Josh Wu <josh.wu@atmel.com>
>>>>>>> ---
>>>>>>>
>>>>>>> Changes in v2: new added
>>>>>>>
>>>>>>> arch/arm/lib/cache.c | 9 +++++++++
>>>>>>> 1 file changed, 9 insertions(+)
>>>>>> So, why exactly can't this be entirely common code , but a CPU-specific
>>>>>> code ? :)
>>>>> Do you mean to make those empty functions as common code for all arch
>>>>> cpu to use?
>>>> Yes.
>>>>
>>>>> It seems there is no place to put common code for all arch cpu.
>>>> Isn't that what the common/ directory is for ? ;-)
>>> No, this is making something common for the sake of making it common
>>> rather than good architecutre of the code I think. We aren't going to
>>> share real cache functions just these dummy ones.
>> So it is the right place: arch/arm/lib/cache.c to put the dummy
>> cache function.
> Yes.
>
>>> We may re-evaluate
>>> our dummy ones at some point in the future when people try and use some
>>> particular combination harder, see for example the PowerPC dummy cache
>>> functions we just recently dropped. Thanks!
>> If this patch set are ok for you. I will sent more patches to drop
>> the dummy cache functions in <arch>/cpu/ folders.
> Right, that's the best palce I think, baring an existing arch having a
> location for weak cache functions already (like arm does).
>
>> Also the flush_cache() in arch/arm/lib/cache.c can be dropped and
>> just call flush_dcache_range() as the ARM1136, ARM926ejs alreay
>> implemented their own flush_cache().
> Nope, other things fail if you do that (vpac270_nor_256 and 24 others at
> least so far in my test build).

Does it fail to compile or on running? As I don't have the board to test
the binary, but I don't find any compile error when I apply such a patch.
Maybe it is better to sent out my patch for you to check.

Best Regards,
Josh Wu
>