From mboxrd@z Thu Jan 1 00:00:00 1970 From: Henrik =?ISO-8859-1?Q?Nordstr=F6m?= Date: Wed, 15 May 2013 18:34:07 +0200 Subject: [U-Boot] ARM v7: Flush icache when executing a program with go In-Reply-To: <20130515171111.481eb3de@lilith> References: <1368540962.4464.9.camel@localhost> <20130515171111.481eb3de@lilith> Message-ID: <1368635647.3991.18.camel@localhost> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de ons 2013-05-15 klockan 17:11 +0200 skrev Albert ARIBAUD: > What is the rationale behind putting it in arch/ rather than in common/ > by adding this to the existing common/cmd_boot.c file under ARMv7 > conditionals? Only because of what I said earlier: blindly calling invalidate_icache_all() from the go command will cause loud complains on other arches where the icache is not supported/enabled. > Also: > > > ARM v7 runs with icache enabled. For reliable results the go command > > needs to flush the icache before jumping or it may risk running > > cached instructions that differ from what currently is in memory. > > IIUC, the issue is due to cache being enabled when doing the go, rather > than due to armv7 per se. Not entirely sure what you mean. > So, should we not have this icache flush conditioned at compile time on > cache being compiled in, and at run time on cache being enabled? This > way, we would automatically cater for the same issue appearing in other > ARM CPUs, and even more, in other architectures. Except.. see common/cmd_cache.c top of file and you'll see the yelling I am talking about. Regards Henrik