1 Jun 2002 17:29
Problem with bus_dma(9) on 68020 and 68030 systems
Frederick Bruckman <fredb <at> immanent.net>
2002-06-01 15:29:48 GMT
2002-06-01 15:29:48 GMT
I found that, when trying to build for `options M68030' only, that the
DC[FP][LP]() macros in _bus_dmamap_sync() -- data cache
{flush,purge}{line,page} -- are undefined for the M68020 only and
M68030 only cases. Worse, much worse, in the _MULTI_CPU case, it
indeed compiles, but it looks like the M68040 instruction will always
be executed on the lesser processors.
Could this account for an apparent FPU exception being taken in the
kernel:
http://mail-index.netbsd.org/port-mac68k/2002/05/29/0008.html
or must there be still another problem?
In the following patch, I went ahead and filled in all the blanks with
macros that expand to nothing (to preserve parallelism and prevent
such problems in the future). Does this look OK? Does it need another
comment: something to the effect, "68020 has no data cache, 68030's is
write-through"?
Index: include/cacheops.h
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/m68k/include/cacheops.h,v
retrieving revision 1.8
diff -u -r1.8 cacheops.h
--- include/cacheops.h 2000/04/05 19:38:33 1.8
+++ include/cacheops.h 2002/06/01 02:18:32
<at> <at> -61,6 +61,14 <at> <at>
#define DCIU() DCIU_20()
#define DCIAS(pa) DCIAS_20((pa))
(Continue reading)
Thanks!
RSS Feed