Subject: CVS commit: syssrc/sys/arch
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 07/31/2002 20:34:27
Module Name:	syssrc
Committed By:	thorpej
Date:		Wed Jul 31 17:34:27 UTC 2002

Modified Files:
	syssrc/sys/arch/arm/arm32: bus_dma.c pmap.c
	syssrc/sys/arch/arm/footbridge/isa: isadma_machdep.c
	syssrc/sys/arch/arm/include: bus.h
	syssrc/sys/arch/arm/include/arm32: pmap.h
	syssrc/sys/arch/arm/ixp12x0: ixp12x0_pci_dma.c
	syssrc/sys/arch/arm/xscale: i80312_pci_dma.c i80312var.h i80321.c
	    i80321_local_dma.c i80321_pci_dma.c i80321var.h
	syssrc/sys/arch/cats/cats: cats_machdep.c
	syssrc/sys/arch/cats/isa: isa_machdep.c
	syssrc/sys/arch/evbarm/ifpga: ifpga.c ifpga_pci.c
	syssrc/sys/arch/evbarm/integrator: int_bus_dma.c int_bus_dma.h
	syssrc/sys/arch/netwinder/isa: isa_machdep.c
	syssrc/sys/arch/netwinder/netwinder: netwinder_machdep.c
	syssrc/sys/arch/shark/isa: isadma_machdep.c
	syssrc/sys/arch/shark/ofw: ofw.c

Log Message:
Overhaul how DMA ranges work in the ARM bus_dma implementation.

A new "arm32_dma_range" structure now describes a DMA window, with
a system address base, bus address base, and length.  In addition to
providing info about which memory regions are legal for DMA, the new
structure provides address translation support, as well.

As before, if a tag does not list any ranges, then all addresses are
considered valid, and no DMA address translation is performed.

This allows us to remove a large chunk of code which was duplicated and
tweaked slightly (to do the address translation) from the stock ARM
bus_dma in the XScale IOP and ARM Integrator ports.

Test compiled on all ARM platforms, test booted on Intel IQ80321 and Shark.


To generate a diff of this commit:
cvs rdiff -r1.14 -r1.15 syssrc/sys/arch/arm/arm32/bus_dma.c
cvs rdiff -r1.102 -r1.103 syssrc/sys/arch/arm/arm32/pmap.c
cvs rdiff -r1.1 -r1.2 syssrc/sys/arch/arm/footbridge/isa/isadma_machdep.c
cvs rdiff -r1.5 -r1.6 syssrc/sys/arch/arm/include/bus.h
cvs rdiff -r1.54 -r1.55 syssrc/sys/arch/arm/include/arm32/pmap.h
cvs rdiff -r1.1 -r1.2 syssrc/sys/arch/arm/ixp12x0/ixp12x0_pci_dma.c
cvs rdiff -r1.4 -r1.5 syssrc/sys/arch/arm/xscale/i80312_pci_dma.c \
    syssrc/sys/arch/arm/xscale/i80321.c \
    syssrc/sys/arch/arm/xscale/i80321_pci_dma.c \
    syssrc/sys/arch/arm/xscale/i80321var.h
cvs rdiff -r1.5 -r1.6 syssrc/sys/arch/arm/xscale/i80312var.h
cvs rdiff -r1.2 -r1.3 syssrc/sys/arch/arm/xscale/i80321_local_dma.c
cvs rdiff -r1.31 -r1.32 syssrc/sys/arch/cats/cats/cats_machdep.c
cvs rdiff -r1.5 -r1.6 syssrc/sys/arch/cats/isa/isa_machdep.c
cvs rdiff -r1.9 -r1.10 syssrc/sys/arch/evbarm/ifpga/ifpga.c
cvs rdiff -r1.2 -r1.3 syssrc/sys/arch/evbarm/ifpga/ifpga_pci.c
cvs rdiff -r1.9 -r1.10 syssrc/sys/arch/evbarm/integrator/int_bus_dma.c
cvs rdiff -r1.1 -r1.2 syssrc/sys/arch/evbarm/integrator/int_bus_dma.h
cvs rdiff -r1.4 -r1.5 syssrc/sys/arch/netwinder/isa/isa_machdep.c
cvs rdiff -r1.33 -r1.34 \
    syssrc/sys/arch/netwinder/netwinder/netwinder_machdep.c
cvs rdiff -r1.1 -r1.2 syssrc/sys/arch/shark/isa/isadma_machdep.c
cvs rdiff -r1.16 -r1.17 syssrc/sys/arch/shark/ofw/ofw.c

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