summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2007-12-11 05:18:06 +0000
committerTill Straumann <strauman@slac.stanford.edu>2007-12-11 05:18:06 +0000
commit59a4066e01093ea96c773197d03350a82273c512 (patch)
tree02c63fcd2b77245e37786b180283bdfadbb7ab5f /c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README
parent2007-12-11 Ralf Corsepius <ralf.corsepius@rtems.org> (diff)
downloadrtems-59a4066e01093ea96c773197d03350a82273c512.tar.bz2
2007-12-10 Till Straumann <strauman@slac.stanford.edu>
* new-exceptions/bspsupport/README, new-exceptions/bspsupport/ppc_exc_bspsupp.h new-exceptions/bspsupport/vectors_init.c: added crude test to make sure MMU maps memory as write-back enabled.
Diffstat (limited to 'c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README')
-rw-r--r--c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README28
1 files changed, 28 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README
index 40d406407c..2959880692 100644
--- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README
+++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/README
@@ -242,6 +242,34 @@ USAGE
to 'libbsp_a_LIBADD'
+CAVEATS
+=======
+
+On classic PPCs, early (and late) parts of the low-level
+exception handling code run with the MMU disabled which mean
+that the default caching attributes (write-back) are in effect
+(thanks to Thomas Doerfler for bringing this up).
+The code currently assumes that the MMU translations
+for the task and interrupt stacks as well as some
+variables in the data-area MATCH THE DEFAULT CACHING
+ATTRIBUTES (this assumption also holds for the old code
+in libbsp/powepc/shared/vectors ../irq).
+
+During initialization of exception handling, a crude test
+is performed to check if memory seems to have the write-back
+attribute. The 'dcbz' instruction should - on most PPCs - cause
+an alignment exception if the tested cache-line does not
+have this attribute.
+
+BSPs which entirely disable caching (e.g., by physically
+disabling the cache(s)) should set the variable
+ ppc_exc_cache_wb_check = 0
+prior to calling initialize_exceptions().
+Note that this check does not catch all possible
+misconfigurations (e.g., on the 860, the default attribute
+is AFAIK [libcpu/powerpc/mpc8xx/mmu/mmu_init.c] set to
+'caching-disabled' which is potentially harmful but
+this situation is not detected).
RACE CONDITION WHEN DEALING WITH CRITICAL INTERRUPTS