Subject: CVS commit: syssrc
To: None <source-changes@netbsd.org>
From: Steve Woodford <scw@netbsd.org>
List: source-changes
Date: 05/16/2001 22:06:47
Module Name: syssrc
Committed By: scw
Date: Wed May 16 19:06:47 UTC 2001
Modified Files:
syssrc/sys/arch/mvme68k/include: bus_dma.h pmap.h
syssrc/sys/arch/mvme68k/mvme68k: bus_dma.c pmap.c
Log Message:
Finally nobble the bus_dmamap_sync() problem with osiop(4).
Basically, bus_dmamap_sync() `PREREAD' needs to flush the cache
for the start and end of the region if it is not aligned to
a cacheline boundary, otherwise a subsequent POSTREAD can *purge*
valid data which was in the cacheline but *outside* the region
passed to bus_dmamap_sync().
Bus snooping doesn't always help here because osiop(4) calls
bus_dmamap_sync() with POSTREAD even if no data was actually
transferred! (And we can't rely on snooping on the 68060 models anyway).
To generate a diff of this commit:
cvs rdiff -r1.7 -r1.8 syssrc/sys/arch/mvme68k/include/bus_dma.h
cvs rdiff -r1.20 -r1.21 syssrc/sys/arch/mvme68k/include/pmap.h
cvs rdiff -r1.13 -r1.14 syssrc/sys/arch/mvme68k/mvme68k/bus_dma.c
cvs rdiff -r1.59 -r1.60 syssrc/sys/arch/mvme68k/mvme68k/pmap.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.