From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Thu, 3 Jan 2008 11:16:18 +0100 Subject: [U-Boot-Users] disabling d-cache in 'bootelf' for QNX In-Reply-To: <477BCC7F.4030709@semihalf.com> References: <477BCC7F.4030709@semihalf.com> Message-ID: <200801031116.18392.sr@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Rafal, On Wednesday 02 January 2008, Rafal Jaworowski wrote: > Currently do_bootelf() disables data cache just before passing control to > the entry point: > > /* > * QNX images require the data cache is disabled. > * Data cache is already flushed, so just turn it off. > */ > if (dcache_status ()) > dcache_disable (); > > With this piece of code present I'm seeing strange effects (corrupt data > access, hangs) in standalone apps running from the ELF envelope. What platform are you testing on? PPC? If yes, which one? > A pure > binary made of this same ELF works without problems. Contrary to the > comment above, there's no quarantee in do_bootelf() code flow that all data > cache has been flushed and it seems there needs to be flush_data_cache() > executed before the disable. dcache_disable() should flush the dcache itself before disabling it. At least this is the implementation I have seen on 405 and IIRC other PPC platforms. > 1. Does it really hold true that QNX requires d-cache disabled upon passing > control to it? > > 2. If so, this is a custom QNX thing that belongs to do_bootm_qnxelf() and > should be handled there and not at the common ELF handling level. Hmmm. I think that calling applications and especially OS'es is more safe with caches disabled then with caches enabled. > Any objections to pushing this down to do_bootm_qnxelf()? I can provide a > patch, but cannot test it with any QNX system. Is there anyone with such > setup that would give this a try? It's possible that other OS'es rely on caches being disabled too. I'm not sure here, but VxWorks could be one of those. Does anybody know for sure? Thanks. Best regards, Stefan ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de =====================================================================