From mboxrd@z Thu Jan 1 00:00:00 1970 From: Josh Wu Date: Thu, 11 Jun 2015 13:03:06 +0800 Subject: [U-Boot] [PATCH v2 1/3] ARM: cache: add an empty stub function for invalidate/flush dcache In-Reply-To: <201506101158.42684.marex@denx.de> References: <1433490452-26402-1-git-send-email-josh.wu@atmel.com> <20150609131156.GA1728@bill-the-cat> <55780842.6040009@atmel.com> <201506101158.42684.marex@denx.de> Message-ID: <5579168A.2080700@atmel.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 6/10/2015 5:58 PM, Marek Vasut wrote: > 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 >>>>>>>>> --- >>>>>>>>> >>>>>>>>> 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 /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. ok, so use a empty function is reasonable for pxa. Marek, Tom I just sent out another two patches: first one is drop the invalidate_dcache_range()/flush_dcache_range(). second one is drop the flush_cache() function. Could you check those two patches? thank you. Best Regards, Josh Wu