Commit Graph

27 Commits

Author SHA1 Message Date
nyan
87d450b90b Increase BUS_SPACE_IAT_MAXSIZE to 33 for the ed driver. 2004-05-04 06:38:13 +00:00
nyan
2ae09c9ace Implement the bus_space_map() function to allocate resources and initialize
a bus_handle, but currently it does only initializing a bus_handle.
2003-09-23 08:22:34 +00:00
mux
186c547c81 Correctly set BUS_SPACE_MAXSIZE in all the busdma backends.
It was bogusly set to 64 * 1024 or 128 * 1024 because it was
bogusly reused in the BUS_DMAMAP_NSEGS definition.
2003-02-26 02:16:06 +00:00
nyan
a27ddf2e9d Remove unneeded ## for GCC 3.1 2002-05-21 12:50:20 +00:00
alfred
61bf661405 Remove __P. 2002-03-20 05:48:58 +00:00
nyan
338edfed46 Add bus_space_unmap() and bus_space_free() functions to release
a bus_space_handle allocated by bus_space_subregion().
2002-02-18 13:44:46 +00:00
nyan
1ed4a21d07 - Split the routine to initialize a bus_space_handle into the separate
function.
- Only access a bus_space_handle if the resource type is SYS_RES_MEMORY or
  SYS_RES_IOPORT.
- Add the bus_space_subregion supports.
2002-02-17 09:16:45 +00:00
nyan
1a72ba014d Added #include <sys/systm.h> 2002-02-16 12:58:16 +00:00
nyan
c0f87bdb16 Rewrite the pc98 bus_space stuff.
The type of bus_space_tag_t is now a pointer to bus_space_tag structure,
and the bus_space_tag structure saves pointers to functions for direct
access and relocate access.

Added bsh_bam member to the bus_space_handle structure, it saves access
method either direct access or relocate access which is called by
bus_space_* functions.

Added the mecia device support. If the bs_da and bs_ra in bus tag are set
NEPC_io_space_tag and NEPC_mem_space_tag respectively, new bus_space stuff
changes the register of mecia automatically for 16bit access.

Obtained from:	NetBSD/pc98
2001-10-07 10:04:18 +00:00
nyan
93864b29c8 - Moved the bus_dma declarations from bus_{at386,pc98}.h into bus_dma.h.
(bus_dma.h is repo-copied from bus_at386.h)
- Added '#include <machine/bus_dma.h>' into bus.h for backward compatibility.
2001-10-06 16:27:21 +00:00
nyan
0e5d5b529a Merged from sys/i386/include/bus_at386.h revision 1.14. 2001-06-26 11:36:45 +00:00
kato
ed30b93b9e Merged from sys/i386/include/bus_at386.h revision 1.13. 2001-03-02 08:31:38 +00:00
nyan
61ceeec191 Moved prototypes of isa_alloc_resourcev() and isa_load_resourcev() to
isa/isavar.h, and added needed includes.
2000-10-22 16:48:08 +00:00
jhb
16168b364a Axe the barrier_{read,write,rw}() helper functions as this method of
doing memory barriers doesn't really scale well for the ia64.  Also,
memory barriers are more a property of the CPU than bus space.

Requested by:	dfr
2000-10-20 06:45:48 +00:00
kato
22dd9a0920 Convert the type of bus_space_handle_t of pc98 from structure into
pointer to structure.

Reviewed by:	nyan
2000-10-20 02:42:06 +00:00
jhb
a4104b417e Add in a simple API for memory barriers to machine/bus.h:
- barrier_read() enforces a memory read barrier
- barrier_write() enforces a memory write barrier
- barrier_rw() enforces a memory read/write barrier
2000-10-18 10:30:12 +00:00
bde
ce281cb5af Fixed syntax errors and style bugs in previous commit. The syntax
errors were normally harmless because they were in unreachable code
and gcc apparently doesn't check the syntax inside asm statements
that it optimizes away.
2000-06-14 18:48:39 +00:00
nyan
b4451d2d3a Sync with sys/i386/include/bus_at386.h revision 1.9. 2000-05-31 10:47:55 +00:00
nyan
4135c72d72 Fixed bus_space_{read,write}_region_* functions.
Pointed out:	Motomichi Matsuzaki <mzaki@e-mail.ne.jp>
2000-05-07 14:46:15 +00:00
kato
7af5f89a60 Added indirect pio into the bus space stuff for the NEC PC-98. bus.h
includes one of bus_at386.h and bus_pc98.h. Becuase only bus_pc98.h
supports indirect pio and bus_at386.h is identical to old bus.h, there
is no functional change in PC-AT's kernels.  That is, it cannot cause
performance loss.

Submitted by:	nyan
Reviewed by:	imp
bde and luoqi provided useful comments for earlier version.
2000-03-29 03:15:22 +00:00
obrien
d7ffc4c6e0 Fix clobbers so that GENERIC may compile with GCC 2.95.2.
Historically, the documentation of extended asm was lacking, namely you
should NOT specify the same register as an input, and a clobber.
If the register is clobbered, it should be specified as an output as well,
e.g., by linking input and output through the "number" notation.
(Beware of lvalues, some local variables needed...)

URL:http://egcs.cygnus.com/faq.html

In versions up to egcs-1.1.1, the compiler did not even warn about it,
but it was liable to output bad code. Newer egcs are pickier and simply
refuse to swallow such code.

Note, since *addr changes, it needs to be an output operand.
We might be excessive in saying that all memory has changed.

Obtained from:	OpenBSD
		w/extra thanks to Marc Espie <Marc.Espie@liafa.jussieu.fr>
1999-11-14 03:36:34 +00:00
peter
3b842d34e8 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
imp
7afdd102ca Improve compatibility with other systems by changing the default
behavior slightly.

If machine/bus.h is included, but neither bus_memio.h nor bus_pio.h
are included, then behave as if both were included.

This won't change existing drivers, all of which include one or more
of bus_{p,mem}io.h, but will allow drivers from other systems to come
over with fewer changes.  I freely admit that this might not be
optimal for some drivers, but those drivers can be optimized for
FreeBSD after the initial bringup happens.

Without the change, there is a bug that preclude drivers from
compiling with strange warning/errors.

I've been running this here for a while now w/o ill effects.

Reviewed by: gibbs
Not objected to by: bde, arch@ list.
1999-07-03 20:14:08 +00:00
bde
dc111a9a45 Don't pretend to support ix86's with 16-bit ints by using longs just
to ensure 32-bit variables.  Doing so broke ix86's with 64-bit longs.
1998-09-29 09:06:00 +00:00
gibbs
9fcbed6a43 Implement bus_dmamem_* functions and correct a few nits reported by Peter Wemm. 1998-05-06 01:45:55 +00:00
bde
d975ccddaf Support compiling with `gcc-pedantic' (don't use hard newlines in
(asm) string constants or trailing commas in enum declarations).
1998-04-19 15:28:30 +00:00
gibbs
ea2baad210 Implementation of Bus Space for FreeBSD-x86.
Obtained From: NetBSD
1998-01-15 07:32:56 +00:00