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

Marek Vasut marex at denx.de
Wed Jun 10 11:58:42 CEST 2015


On Wednesday, June 10, 2015 at 11:49:54 AM, Josh Wu wrote:
> 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 at 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.

VPAC is PXA270 and to my knowledge, PXA has no cache support in place at all.


More information about the U-Boot mailing list