This is the mail archive of the
ecos-bugs@sourceware.org
mailing list for the eCos project.
[Bug 1001606] Enable the cache on Kinetis in RAM startup mode
- From: bugzilla-daemon at bugs dot ecos dot sourceware dot org
- To: ecos-bugs at ecos dot sourceware dot org
- Date: Sun, 7 Oct 2012 18:24:12 +0100
- Subject: [Bug 1001606] Enable the cache on Kinetis in RAM startup mode
- Auto-submitted: auto-generated
- References: <bug-1001606-13@http.bugs.ecos.sourceware.org/>
Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001606
--- Comment #22 from Ilija Kocho <ilijak@siva.com.mk> 2012-10-07 18:23:57 BST ---
Created an attachment (id=1950)
--> (http://bugs.ecos.sourceware.org/attachment.cgi?id=1950)
Round-robin bus arbitration for copy-back DDRAM 121007
There is a subtle behaviour (with RAM start-up) when ICACHE is disabled, DCACHE
is in copy-back mode. Cache purge or sync gets preempted by code execution.
Since the macros for cache syncing and purging contain spin-check of cache
status, a deadlock happens, because of perpetual access to DDRAM, that has
higher priority than the cache flushing.
When ICACHE is enabled there isn't a deadlock, because [after initial misses],
the instructions are fetched from ICACHE so code fetches don't compete for
DDRAM.
The attached code avoids deadlock by introducing round-robin arbitration in
case start-up type is RAM and DCACHE uses copy-back scheme. The patch only
affects Kinetis variant and is incremental to attachment 1948.
Ilija
--
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.