This is the mail archive of the mailing list for the eCos project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug 1001606] Enable the cache on Kinetis in RAM startup mode

Please do not reply to this email. Use the web interface provided at:

--- Comment #22 from Ilija Kocho <> 2012-10-07 18:23:57 BST ---
Created an attachment (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

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.


Configure bugmail:
------- You are receiving this mail because: -------
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]