Commit Graph

35 Commits

Author SHA1 Message Date
martin 7d9d648a64 For aesthetical reasons use bus_addr_t instead of paddr_t in the BUS_ADDR
makro. Requested by uwe.
2002-03-01 11:34:36 +00:00
martin feaf0ddd87 Cast the "io" parameter of BUS_ADDR to paddr_t before it gets shifted.
This makes this makro work with smaller values passed for io. No functional
change.
2002-03-01 07:19:29 +00:00
eeh 6390142ec0 Make bus_space_barrier() an inline instead of a function vector. 2002-02-07 21:36:54 +00:00
eeh 766a9b8c9c Change bus_space_mmap() signature to the official one. 2001-09-24 23:49:31 +00:00
wiz d5e1bab856 Update copyright, fix typo and remove too many '/'.
Ok'd by eeh.
2001-09-21 15:30:41 +00:00
eeh 6138deb0d4 Handle DMA boundaries a bit better. 2001-09-21 03:04:09 +00:00
eeh e29b0dab62 Change some debug printfs to make gcc happy. 2001-09-10 14:56:33 +00:00
thorpej babefc5331 Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
2001-07-19 15:32:10 +00:00
thorpej 2c4c690f14 Add the BUS_DMA_STREAMING flag. 2001-03-07 22:42:16 +00:00
eeh 3e47436b79 Add some extra fields to a dmamap to track what's being mapped. 2001-02-11 00:05:47 +00:00
eeh ece5d6d3f0 Define __BUS_SPACE_HAS_STREAM_METHODS now we have them. 2000-09-22 21:01:55 +00:00
eeh 903720d945 Add bus_space*stream*() methods. I hope they work. 2000-09-16 14:07:58 +00:00
eeh 41da794863 Make all the inline functions static. 2000-07-14 21:00:17 +00:00
mrg 81ec8bef47 remove old (bogus) comment. 2000-07-13 06:23:07 +00:00
pk 406e0f779f Add a `device class' interrupt level argument (from machine/intr.h)
to bus_interrupt_establish().

It's currently only used in sparc64/dev/psycho.c to assign a CPU interrupt
level to devices in PCI slots.
2000-07-09 20:57:41 +00:00
eeh 3f2289a3d7 Handle bus_dma aligment properly. 2000-07-07 02:50:19 +00:00
pk 8906c1b836 Fix bus_space_read_region_{2,4,8}(). 2000-06-29 14:10:16 +00:00
simonb 889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
eeh 3dfb9ee7ac More debugging support. 2000-06-12 23:20:54 +00:00
eeh 03228642f7 Use all 64 address bits in ld*a()/st*a() macros so physical device addresses
work.  (Also add some bus_space_*() debug hooks).
2000-06-02 22:56:32 +00:00
mrg 1013298c2a whole bunch of changes:
- merge IOMMU DVMA code from sbus/psycho into iommu.c.  this code was
  identical and a few minor inconsistencies had crept in.  this way
  keeps them all in sync.
- with this code gone from psycho, merge the psycho.c and psycho_bus.c
  files.  same with ebus/ebus_bus.c.  delete the _bus.c files.
- add a _ds_boundary member to the dma segment structure, so that later
  dma mappings can find this value.
- set _ds_boundary in machdep.c:_bus_dmamem_alloc().
- kill much dead code.
2000-04-22 17:05:59 +00:00
drochner 8eb798e603 define a "BUS_SPACE_MAP_PREFETCHABLE" flag which basically means that
device accesses are idempotent (but should not be cached by the CPU)
2000-01-25 22:13:17 +00:00
eeh 1884f05354 Another general cleanup:
Remove the entire idea of fasttrap interrupts since V9 traps are really cheap,
the CPUs are really fast, and the completely different trap frames would make
these handlers really difficult to implement.

pmap_changeprot() was only used by the clock and one other place; deprecate it.

probeget() and probeset() now take 64-bit addresses even in 32-bit mode so we
can probe IO locations by physical addresses.

Some pmap cleanup.

Some more copyright cleanup.
1999-06-07 05:28:03 +00:00
eeh 3f7968c736 Fix things up so they compile again. 1999-06-05 20:38:24 +00:00
eeh 35d96171e7 Fix bus_type_t properly and enable ASI accesses for bus_space_{read,write}*() 1999-05-22 20:28:22 +00:00
drochner 76fa1751fe Add a macro to check for sufficient pointer alignment in bus.h context,
"BUS_SPACE_ALIGNED_POINTER()".
Equal to the param.h "ALIGNED_POINTER()" normally, but obeys additional
requirements of the bus_space_xxx_n() macros. (BUS_SPACE_DEBUG)
1999-03-23 21:29:03 +00:00
drochner 0e91ebb904 make the last fix work as intended 1999-01-31 11:15:43 +00:00
eeh 8ee118c70d Fix problems with bus_space*() macros (thanks M.Drochner). 1999-01-30 17:02:32 +00:00
eeh edc4ed9846 32-bit fixup. 1998-09-06 21:53:41 +00:00
eeh a112a2a4cc It slices. It dices. It does everything except exec a sparc32_compat init. 1998-09-05 23:57:24 +00:00
eeh cf9a8a5a53 Periodic update: now starts probing devices. 1998-09-02 05:51:35 +00:00
eeh 26d2d906c7 Some more 64-bit cleanup. Now everything compiles. 1998-08-30 15:32:16 +00:00
eeh a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
eeh d94474ccc9 General update:
Added genassym.cf
	Removed lderr which should never have gotten in
	Removed lots of dead code from locore.s
	Added some softint stuff to intr.c
	Added support for halt -p
	esp and le both use bus_dmamap_*() functions now
		instead of kdvma_mapin()
	groundwork for PCI (but we still have no drivers for
		any sun4u PCI devices)
1998-07-07 03:05:02 +00:00
eeh 01e2e698b6 Import of sparc64. 1998-06-20 04:58:50 +00:00