Subject: CVS commit: syssrc/sys/arch/sparc64
To: None <source-changes@netbsd.org>
From: Eduardo Horvath <eeh@netbsd.org>
List: source-changes
Date: 03/20/2002 20:54:50
Module Name:	syssrc
Committed By:	eeh
Date:		Wed Mar 20 18:54:50 UTC 2002

Modified Files:
	syssrc/sys/arch/sparc64/dev: auxio.c com_ebus.c iommu.c iommureg.h
	    iommuvar.h lpt_ebus.c pci_machdep.c psycho.c psychovar.h sbus.c
	    zs.c
	syssrc/sys/arch/sparc64/include: bus.h
	syssrc/sys/arch/sparc64/sparc64: clock.c machdep.c

Log Message:
Overhaul bus space.

bus_space_handle_t now holds an address and two ASIs, one for normal accesses
and one for streaming accesses.  This allows to map individual handles
different ways, so some can use MMU bypass accesses and others use virtual
addresses.  bus_space_map() will now create handles that use bypass accesses
unles BUS_SPACE_MAP_LINEAR is passed in.  So only pass in BUS_SPACE_MAP_LINEAR
if you absolutely *need* to use bus_space_vaddr().  This removes at least one
extra level of indirection and should reduce TLB misses.

32-bit kernels have problems accessing 64-bit addresses, so they always use
virtual addresses.


To generate a diff of this commit:
cvs rdiff -r1.4 -r1.5 syssrc/sys/arch/sparc64/dev/auxio.c
cvs rdiff -r1.11 -r1.12 syssrc/sys/arch/sparc64/dev/com_ebus.c
cvs rdiff -r1.49 -r1.50 syssrc/sys/arch/sparc64/dev/iommu.c
cvs rdiff -r1.7 -r1.8 syssrc/sys/arch/sparc64/dev/iommureg.h
cvs rdiff -r1.10 -r1.11 syssrc/sys/arch/sparc64/dev/iommuvar.h \
    syssrc/sys/arch/sparc64/dev/lpt_ebus.c
cvs rdiff -r1.25 -r1.26 syssrc/sys/arch/sparc64/dev/pci_machdep.c
cvs rdiff -r1.44 -r1.45 syssrc/sys/arch/sparc64/dev/psycho.c
cvs rdiff -r1.6 -r1.7 syssrc/sys/arch/sparc64/dev/psychovar.h
cvs rdiff -r1.47 -r1.48 syssrc/sys/arch/sparc64/dev/sbus.c
cvs rdiff -r1.32 -r1.33 syssrc/sys/arch/sparc64/dev/zs.c
cvs rdiff -r1.37 -r1.38 syssrc/sys/arch/sparc64/include/bus.h
cvs rdiff -r1.48 -r1.49 syssrc/sys/arch/sparc64/sparc64/clock.c
cvs rdiff -r1.118 -r1.119 syssrc/sys/arch/sparc64/sparc64/machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.