Commit Graph

195 Commits

Author SHA1 Message Date
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +00:00
bouyer 937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
mjacob f13ec50e47 Clean up bus dma code for request/response queues. 2001-04-12 21:40:56 +00:00
jdolecek 745ab257dc Put back all header files defining ioctls 2001-04-11 19:07:36 +00:00
jdolecek 372e5956ef Only install headers which are actually used by our userland. This
saves about 2.2MB under /usr/include/dev/. Discussed on tech-kern@
recently.

I HOPE to get the list right. The headers I left in are ones
used for MI tools and those whose usage I discovered by grep over tree sources.
Feel free to put needed includes back in if you encounter anything which
should not be removed from lists.
2001-04-11 07:42:31 +00:00
christos 95fda43dd5 make all debugging messages conditional on sc->sc_debug. 2001-03-30 17:30:18 +00:00
petrov b0605f71d5 fas support added 2001-03-29 02:58:38 +00:00
pk 4cefebdf8d Fix fall-out from previous change: the map's DMA address is valid only
after bus_dmamap_load().
2001-03-20 15:39:20 +00:00
mjacob 272082c697 ansify code 2001-03-14 06:58:25 +00:00
thorpej c8f050a7f1 Use bus_dmamap_load(), not bus_dmamap_load_raw(), and add
BUS_DMA_STREAMING to data transfer map loads.
2001-03-08 02:21:44 +00:00
thorpej 00ddf90164 Use bus_dmamap_load(), not bus_dmamap_load_raw(). 2001-03-08 02:20:39 +00:00
mrg 7fa2fd24b4 match SUNW,qfe; PR#12301 from Rob Quinn <rquinn@sprint.net> 2001-02-28 14:52:48 +00:00
mjacob 0adf4d13bb Oh, god, make the pain stop. "Fix" this one more time- but for the next
to last time.

It turns out that in fact, sparc64 was *not* working. There is a discussion
within the tech-kern@netbsd.org mail list as of just prior to this date
that contains the details.

Suffice to say that for sparc64 we have to add back in the usage
of BUS_DMA_COHERENT again to the call to bus_dmamap_load_raw. PK
added the usage of bus_dmamap_load_raw- which agrees with the
man page description of it- but now does not match what the
original BusDma author seems to think it's supposed to do.

While we're at it, do a specific set of steps for setting up and,
if necessary, tearing down, mailbox dma mappings.
2001-02-28 05:46:46 +00:00
mjacob 0dce6b45bc this was *still* wrong 2001-02-25 01:49:18 +00:00
mjacob 9d2a3fb24d More Kudos to Izumi: fix another argument to bus_dmamap_sync 2001-02-25 01:44:02 +00:00
mjacob d5f967e27f Now that the underlying code for bus_dmamap_sync appears to do the
right thing, don't use the illegal and "just worked by chance" addition
of BUS_DMA_COHERENT to bus_dmamap_load_raw. There still is a necessity
to add to the architecture to allow one to hint that this should be
a cache coherent mapping.

Fix offset argument to be zero for flushing data tranfers. Kudos to Izumi
for spotting this.
2001-02-24 23:30:01 +00:00
mjacob e8ae80a071 Add missing BUS_DMA_COHERENT to bus_dmamap_load_raw calls for request
and response queues- this makes this work on UltraSparc now.
2001-02-23 23:57:47 +00:00
mjacob 3744fa3f33 Implement bootverbose recognition. Move interrupt registry up a bit so we can
use interrupting mailbox commands for isp_init. Set default HBA role.
Rename request/response dma maps to be more consistent with PCI version.
Enable bus_dmamap_sync on request queue- we already do this for response
queue- better do it for the request queue as well.

Checked to be working against a Sparc10.
2001-02-23 17:28:58 +00:00
thorpej 372338915a Use splnet() to block network interrupts, not splimp(). 2001-01-14 17:37:41 +00:00
mrg c5802f9f90 avoid unused variables if not RASTERCONSOLE 2001-01-07 05:41:50 +00:00
wiz c8b0b91e7e Fix pathnames in comment. 2000-12-23 01:37:57 +00:00
thorpej a64a0f8137 ALTQ'ify. 2000-12-14 07:15:45 +00:00
martin d9d7c42e0c Remove esp specific function from ddb when esp @ sbus is not included
in the kernel config. Makes compiling sbus-less kernels possible again.
2000-12-08 17:29:12 +00:00
fvdl 245940b894 Clean up warnings in 32bit compile (bus_space_handle_t is 64bit wide
but will only contain 32bit values; casting via u_long is safe)
2000-12-04 20:17:10 +00:00
fvdl e58fff48bf Avoid compile warning on sparc64 32bit. sc_buffer doesn't seem to be
used at all, this line can probably be removed.
2000-12-04 20:12:55 +00:00
eeh 2a50931a1c Turn on TAG QUEUE support and add some debug stuff. 2000-12-03 23:31:13 +00:00
thorpej b84f740be0 Move bpfattach()/bpfdetach() calls into ether_ifattach()/ether_ifdetach(). 2000-11-15 01:02:11 +00:00
eeh 507aaec04c Adapt to the new line discipline scheme. 2000-11-02 00:01:44 +00:00
eeh 55fd5a2fb0 Pass along the bus frequency too, for devices that need it. 2000-11-01 06:18:45 +00:00
eeh 34ed153955 Fix warning in a debug printf. 2000-11-01 06:17:32 +00:00
eeh f9a51c7b15 Clean up a #define that doesn't belong. Oops. That's what I get for
working this late.
2000-10-31 08:06:14 +00:00
eeh 37486bb837 Get the bpp driver to work properly. 2000-10-31 06:32:06 +00:00
mjacob 0a481d850d fix SBus bursting *correctly* this time 2000-10-22 03:04:50 +00:00
mrg 0c6aa8d3ed ensure DMA mappings are not mapped streamable. fixes ethernet problems on
ultrasparc sbus class machines.  from eeh.
2000-10-20 06:08:02 +00:00
mrg 3af567c485 rework to use bus_dmamem_map() then bus_dmamem_load(), rather than
bus_dmamem_load_raw() then bus_dmamem_map().

tested on SS2 and SS5 and sbus cards.
2000-10-20 05:57:50 +00:00
mjacob cecccb23b2 quiet chatty boot messages 2000-10-17 17:39:10 +00:00
mjacob 7cc31292b3 Turn on 32 byte bursting for ISP 2000-10-16 05:13:13 +00:00
pk aa6df7169b yank error. 2000-09-12 19:13:30 +00:00
pk 17e5f7b17c Declare drivers moved here from arch/sparc. 2000-08-22 21:31:16 +00:00
pk d29f2ce630 Get tcxreg.h from the correct location. 2000-08-22 21:18:57 +00:00
pk 124d256269 Move these SBus drivers here from arch/sparc. 2000-08-20 22:27:07 +00:00
pk 5a308cf392 Split & move cgthree sbus attachment from arch/sparc. 2000-08-20 19:59:46 +00:00
pk 7857ad0b81 Move cgsix and bwtwo Sbus attach code here from arch/sparc. 2000-08-20 14:33:25 +00:00
mjacob d8aef491c1 Add a maintenance note. Add a bus specific isp_sbus_intr function- this is
so we, ahem, note we're on an interrupt stack so we don't try and sleep
on any mailbox commands we might want to run.
2000-08-14 07:00:08 +00:00
mjacob 068c76fc80 Core version 2.0 (platform version 1.0) rewrite of ISP driver. Some
interace cleanups, some new common functions. The major impact that
will be noticeable right away is that if you boot with not Fibre connected
to the FC cards, you no longer hang indefinitely.
2000-08-01 23:55:09 +00:00
mycroft f9f72ecf9a Purge C++-style comments. 2000-07-24 04:28:51 +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
mjacob 855b5ef9b0 Use new isp_handle_index inline function. Change order in whch
some things are done. Remember to enable interrupts after calling
isp_reset but before isp_attach.
2000-07-05 22:10:56 +00:00
mrg 261538ecac remove include of <vm/vm.h> 2000-06-28 16:39:25 +00:00
eeh 79dffec702 Get PCI HME working. 2000-06-25 01:05:16 +00:00