Commit Graph

1818 Commits

Author SHA1 Message Date
bouyer 22a10be43e sheduler->scheduler, as pointed out by Klaus Klein 2000-06-13 13:59:15 +00:00
ad 3553879fc2 Use my proper name. 2000-06-13 13:36:42 +00:00
bouyer 12d3bf8c1a Add a callback (*irqack), for controllers that need special action to ack
the interrupt once it has been ack'd on the drive.
2000-06-12 21:10:40 +00:00
bouyer 221a99f782 Handle "scsi bus mode change" interrupts on 895 and higther.
Thanks to Hal Murray for reporting the problem and testing the fix.
2000-06-12 20:13:41 +00:00
ad 397fa0e4e2 Fix a couple of pastos. 2000-06-12 11:07:45 +00:00
mrg b9140fbc0c KNF a line. 2000-06-12 05:25:48 +00:00
bouyer 7bb3d03448 Relax condition on 'sn' for atapi probe, it can be different from 0x1 with
some controllers/devices. Fixes a problem reported by Markus Illenseer.
2000-06-11 17:09:34 +00:00
onoe 73a779fa1f Restore the original copyright notice by Bill Sommerfeld
<sommerfeld@netbsd.org> since it is based on the original code.
2000-06-09 14:36:25 +00:00
onoe 4da3935bae cleanup haeders.
add opt_awi.h to define AWI_DEBUG, AWI_WEP_ARC4.
show the firmware version at attach.
create a framework to support WEP (encryption code is not included for now).
a new wiconfig compatible ioctl interface replaced the awictl interface.
fix memory leak in selecting AP
fix bugs in ESSID selection
changes from FreeBSD-current by Warner Losh:
  revision 1.2
  date: 2000/04/17 22:58:15;  author: imp;  state: Exp;  lines: +16 -1
  Provide mem* for compat with NetBSD to fix LINT
fixes from FreeBSD-current by Guido van Rooij:
  revision 1.4
  date: 2000/05/29 19:58:10;  author: guido;  state: Exp;  lines: +5 -2
  Fix a panic resulting from an obvious null pointer deref.
  Apparently some other panics still exist in this driver, but with
  this fix, it was at least possible to run the Nokia card at SANE 2000.
2000-06-09 05:31:15 +00:00
soda 0f76c56f2d increase number of parameters of pckbc_cnattach(), since offset of command port
is not 4 (KBCMDP), but 1 on jazz based platforms of arc port.
2000-06-09 04:58:32 +00:00
cgd 1e158fae9a nuke bogus use of s = spl0() / splx(s). reviewed by Jason Thorpe. 2000-06-08 22:43:15 +00:00
cgd 625dbd8f87 in allegedly-MI code, if we're gonna use '#pragma pack(N)', #pragma pack()
should be used to reset the packing.  (#pragma pack(4) was used here
before.  "wrong!")
2000-06-08 18:22:15 +00:00
cgd d8dcb11d4f don't include ISA headers. these have been properly abstracted so that
the ISA headers are unnecessary, and they're used by PCI VGA.  There may
not be any ISA at all.
2000-06-08 07:01:19 +00:00
tsutsui 3f94f56142 Adapt struct scsipi_adapter changes. 2000-06-07 14:40:20 +00:00
soren 3b8b24cffe Only wait 100 ms instead of 1 s for the SEEPROM to come ready. This is
still plenty for cards with SEEPROM's and reduces the delay on platforms
without, which conveniently also avoids triggering the O2 watchdog timer.
2000-06-06 17:29:40 +00:00
soren b4b667c0a0 Make ID printing a little more robust in case of problems reading
AC97 registers.
2000-06-06 17:25:52 +00:00
soren 8b0390203b Some minor diagnostics cleanups. 2000-06-06 16:41:33 +00:00
soren 1ec719ccc0 Add power management hooks. 2000-06-06 16:26:57 +00:00
sommerfeld f1802cf848 Fix previous change: guard against missing subdevices of pckbc. 2000-06-06 16:21:22 +00:00
tsutsui 499db14bcb sun3 always defines Debugger(), so don't redefine it. 2000-06-06 14:24:05 +00:00
sommerfeld bcf02ec8ff If rnd is configured into the kernel, do rnd(4) entropy collection
from devices connected to pckbc:
 - Do actual sample collection in pckbc.
 - Add rndsource_element_t to the slot data.
 - Change pckbc_set_inputhandler() to take an additional argument,
the name of the device, which is (eventually) passed into
rnd_attach_source() to identify the source.
 - Change callers of pckbc_set_inputhander() appropriately.
2000-06-05 22:20:54 +00:00
bouyer 0e7cd755f4 use the correct variable in a debug printf(). 2000-06-05 21:47:25 +00:00
tsutsui a12331c461 Oops, struct scsipi_adapter was changed recently. 2000-06-05 15:19:42 +00:00
nisimura 4371d91433 Have MI ncr53c9x_attach() the 2nd and 3rd arguments for scsipi_adater
and scsipi_device respectively, with size reduction of ncr53c9x_softc.
Specifying NULL instructs the driver to use default adapter and default
device codes. Every target port has ncr53c9x_attach(sc, NULL, NULL) anyway.
2000-06-05 07:59:50 +00:00
matt 6204fa3c99 Update to new evcnt stuff 2000-06-05 02:28:19 +00:00
fvdl c8c1e5854f Fix wrong test for (software) queue blocked condition. 2000-06-04 11:42:55 +00:00
matt 576faa0c31 Start couting interrupts. 2000-06-04 02:14:12 +00:00
fair e3a9f21a5f Change the debug level from 1 to 3 for "skipping target" diagnostic
which spews unreasonably for a Qlogic SCSI-2 narrow controller, which
does not have ID's above 7.
2000-06-03 22:44:43 +00:00
fvdl b9bb94500e Obey the "Reset SCSI bus at startup" EEPROM setting. 2000-05-29 20:13:53 +00:00
jhawk 1e59d99d28 For all network drivers that call ether_ifattach(), and also
have _detach() functions:
  Ensure that softc keeps state about whether the attach succeeded,
  and make the detach function return immediately if the attach did
  not complete.
2000-05-29 17:37:12 +00:00
tsubai 8cde93a435 * Support (not so) new cards. (only Cyclom-8YsP+ is tested)
* Make compilable with CY_DEBUG.
2000-05-29 12:05:41 +00:00
matt 2864a7186a reclaim transmitted packets on receive interrupts. 2000-05-28 01:28:52 +00:00
fvdl 3713246e34 Don't bother searching the qinfifo for SCBs to requeue in the BUSY
and QUEUE FULL cases; this is already done for all BAD_STATUS cases.

Make sure to requeue the SCB in the above cases internally in the driver,
the SCSI layer doesn't know how to deal with it properly.
2000-05-28 00:19:59 +00:00
fvdl 4b7b35ae8a When a bus is accessed for the first time, reset it. Without this,
some devices may not be found if the BIOS (which would normally
do the reset at startup) is disabled. Should really be done from the SCSI
layer.

Implement the SCBUSIORESET ioctl.
2000-05-27 21:58:15 +00:00
dante 39c7c9aff6 Change AdwInitCarriers in adwmcode.c
Add new AdwInitCarriers prototype in adwmcode.h
All of the supported adapters are now initialized calling a unique common
    function
2000-05-27 18:24:50 +00:00
thorpej d0a8b751b2 Don't use sleep() and a callout; just use tsleep(). 2000-05-27 04:46:24 +00:00
matt dd266dbb2f Fix counting of output packets. Only count descriptors with TDES_LS set.
Also make transmit timeout logic more correct.
2000-05-27 04:26:32 +00:00
tsutsui 7ae8c684a8 Increase delay on EEPROM access.
CATS sometimes cannot read MAC address correctly.
2000-05-27 00:55:42 +00:00
ragge 38d5764cd1 Fix for a driver bug provided by Jon W Grubbs (jgrubbs@megsinet.net).
This bug is only visible on some disks, and I have verified that it works
correctly on VAX. However, du to the author, it is a problem on other
machines/disks as well. Here's the author's comments:

> The MI code for the NCR5380 has a small bug in it  The RZ56 wants to
> negotiate for Synchronous Data Transfers and when it does, the current code
> looks like it will send a REJECT message as the spec calls for when we cant
> handle the request.  However, a couple of lines of code in the
> ncr5380_msg_in routine are missing wrt the PARITY message and anything that
> wants to send a REJECT message.  The ATN setup that is done in
> ncr_sched_msgout is immediately negated by the final byte ACK sequence in
> this routine.  This causes bad things to happen to an RZ56.
2000-05-26 21:11:00 +00:00
tsutsui e3427d8f2c Call bus_dmamap_sync() properly before/after reading fcd_stats
in fxp_control_data.
2000-05-26 19:11:24 +00:00
thorpej 8a3725612d Add support for the Davicom DM9102 and DM9102A 10/100 Ethernet chips.
Partially based on diffs submitted by Matthew Orgass <darkstar@pgh.net>
and IWAMOTO Toshihiro <iwamoto@sat.t.u-tokyo.ac.jp>.
2000-05-26 16:38:13 +00:00
dante 3d7bdc4c94 Fix a bug introduced in last commit which caused a painc due to
re-enqueueing an already free ccb.
Prepare the background to have a unique initialization function for
    all of the supported host adapters.
Rename a lot of #define in a more sane way.
Move Carriers initialization and defines in adwmcode.{c,h}
Don't lose Carrier nodes in case of a BUS/Chip reset explicitly invoked
    after a DMA failure.

XXX - DMA failure still arise when AdvanSys U[2]W host adapters are used
      in conjunction with Intel 82443BX Host Bridge/Controller (rev. 0x03).
      !?!Have to understand why!?!
2000-05-26 15:13:43 +00:00
tsutsui 5dca757b0e Swap the order of u_int16_t member in Tx/Rx descriptors
on big endian machines.

"Big endian mode" of smc83c170 actually works!
(i.e. no htole??()/le??toh() functions are needed.)
2000-05-26 00:20:26 +00:00
tsutsui dea97be7fd Don't use bcopy() to copy u_int16_t data to u_int8_t array. 2000-05-26 00:14:41 +00:00
thorpej c9a7ec7a66 Add Davicom DM9102 registers. 2000-05-25 22:50:11 +00:00
thorpej 7c709cc6b4 Comment the fact that the X3201-3 requires FS|LS in the setup
packet descriptor.
2000-05-25 22:18:07 +00:00
thorpej f4a3f5ea48 So, while the DEC chips and other clones want no FS|LS in the
setup descriptor, apparently the Xircom X3201-3 requires it.
2000-05-25 18:46:07 +00:00
thorpej 215a635a5b Truncate receive buffers to 4-byte boundary. Slightly modified
from kern/10198, from Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>.
2000-05-25 16:47:18 +00:00
thorpej 2f08658512 Fix a couple of typos in debugging messages. From IWAMOTO Toshihiro,
kern/10194.
2000-05-25 16:37:33 +00:00
thorpej 05a766d42e Don't set FS and LS in the setup packet descriptor. From
IWAMOTO Toshihiro <iwamoto@sat.t.u-tokyo.ac.jp>, kern/10194,
and confirmed with the 21040 manual.
2000-05-25 16:36:03 +00:00
fvdl 3e54d43abc Be sure to not use tagged queueing for a few commands. 2000-05-25 11:41:05 +00:00
bouyer b063b2ec36 Separate the sheduler from the main script, allocate another DMA-safe
memory page for the sheduler. Put the main script in the on-chip RAM when
available.
Avoid a null-pointer dereference when DSA is invalid.
2000-05-25 10:10:54 +00:00
soren c25111e4ae Make two previous changes more correct, as shown by Izumi Tsutsui. 2000-05-24 13:20:32 +00:00
soren 8922795de0 The EEPROM is little-endian. 2000-05-24 08:04:23 +00:00
soren 66083288eb Fix DMA status reading on big-endian systems. From Sanjay Lal on port-macppc. 2000-05-24 07:49:13 +00:00
soren 35bf53bd9c And a newline after error string. 2000-05-24 06:04:12 +00:00
bouyer 2904666f56 Allocate dynamically the command block descriptors. 2000-05-23 17:08:07 +00:00
soren 9f00930ace Make AHC_DEBUG compile. 2000-05-23 03:50:12 +00:00
fvdl c9fe89891a Don't try to re-enable tags once they have been disabled because of a
MSG_REJECT from the target. Obey the NOTAG quirk.
2000-05-22 21:14:24 +00:00
tsutsui a6d8e45ba7 Call bus_dmamap_unload() if any Tx mbuf remains in rtk_stop(). 2000-05-21 13:00:46 +00:00
matt 20a98cb524 count input and output packets. 2000-05-20 18:33:18 +00:00
jhawk 92f539aa66 Calibrate the timeouts from rev 1.26 by using DELAY(1) so their
values are less machine-dependant. Fixes port-i386/10141, where
spurrious timeouts were being seen.
Also note the line numbers of the timeouts so it can be determined
which is being seen (via __LINE__).
2000-05-19 16:00:30 +00:00
tsutsui f2973e2fb8 - Change RL_* -> RTK_*
- Free bus_dma resources if attach fails
- Add detach and power management code

Patch from Masanori Kanaoka <kanaoka@ann.hi-ho.ne.jp> in kern/10156.
2000-05-19 13:42:29 +00:00
thorpej f636538446 NULL != 0 2000-05-19 04:34:39 +00:00
mrg badbd98b2a rearrange the order of bus_dma operations to be more like many other
drivers, at the suggestion of fvdl.  also, use bus_dmamap_load() not
load_raw().
2000-05-18 14:00:46 +00:00
mrg cc57e4111a do not pass a `boundary' argument to bus_dmamap_create(), particularly one
that is smaller than the `size' argument.
2000-05-18 12:49:09 +00:00
thorpej b5cf4e96cf Use big-endian CRC on ADMtek multicast hash. 2000-05-18 03:02:45 +00:00
thorpej 463931b3ba Nuke dk_establish() from orbit except from those ports which still use
it to determine the boot device: mvme68k, pc532, macppc, ofppc.  Those
platforms should be changed to use device_register().  In the mean time,
those ports defined __BROKEN_DK_ESTABLISH.
2000-05-16 05:45:44 +00:00
thorpej 47490d3527 Whitespace glitch. 2000-05-16 00:18:44 +00:00
dante e66be0bd10 Cosmetic change 2000-05-15 16:38:49 +00:00
bouyer c94bdce1f4 Don't enable debug message by default. 2000-05-15 15:16:59 +00:00
bouyer 863014523a - split siop.c in script-dependant vs script-independant part, for
comming esiop
- add a reset callback for bus-dependant registers settings
2000-05-15 07:48:24 +00:00
thorpej 7da80620c9 splimp() -> splnet() 2000-05-15 01:55:53 +00:00
thorpej e5ae7c287a Symbol namespace cleanup: rl_ -> rtk_ 2000-05-15 01:55:12 +00:00
thorpej 706ee091ed Move register definitions into ac97reg.h 2000-05-15 01:32:03 +00:00
thorpej 1838aef29c ac97.h -> ac97var.h 2000-05-15 01:27:44 +00:00
dante e852afa89f Fix a typo 2000-05-14 19:52:34 +00:00
dante 94cd08a535 Handle better the status codes.
Add a way to instruct the upper layer to don't bother w/ new requests if/when a device queue is full/busy or the device is unavailabale at that time
Use scsipi_inquiry_data instead of its own inquiry structure
2000-05-14 18:25:49 +00:00
dante 1937dbee6a Reflect changes in scsipi_inquiry_data structure: "flags" field is now named "flags3" 2000-05-14 18:22:13 +00:00
he 084953b8f7 Update from Matthew Jacob:
Correctly account for F-port vs. F-port (no FLOGI_ACC) topologies.
  Make sure we get a port database entry for the fabric name server.
  Preserve fabric logins if the device didn't change across fabric
  or port database changes, or the device has already logged into
  us (e.g., for target/initiator dual role devices like Veritas
  SANbox). Propagate class 3 service parameter changes where devices
  can change roles.

  Fix all occurrences of setting a sendmarker so that setting it
  for one bus on dual bus cards doesn't wipe a pending sendmarker
  for other busses on the same card :-;.

  Comments added and clarifications made in some of the target mode code.
2000-05-13 16:53:03 +00:00
jhawk e0292df01c sc_ih (interrupt cookie) is not pci-specific data
and needs to remain in fxp_softc rather than fxp_pci_softc;
otherwise we break cardbus.
2000-05-12 18:46:33 +00:00
thorpej d6c07323b2 If using ring-mode, don't update the receive descriptor list base address
when a receive overrun occurs.  From Castor Fu <castor@geocast.com>.
2000-05-12 17:09:27 +00:00
thorpej f0481f14ab Oops! We actually want the *lower* 6 bits of the crc32 of the multicast
address to generate the multicast filter bit index, not the upper 6.

Should address kern/8268.
2000-05-12 16:57:30 +00:00
thorpej 6e4b4f6954 Use ether_crc32_le(). 2000-05-12 16:45:42 +00:00
thorpej 692e54c43d Use ether_crc32_be(). 2000-05-12 16:44:19 +00:00
tsutsui 0ee6a24aa7 Read upd_pktstatus from DMA buffer after bus_dmamap_sync() called. 2000-05-12 15:22:33 +00:00
bouyer 9b45dfba17 Accept any 'sc' value when probing atapi drives: with some drives, or
controllers, or combination of both, the value can be different from the
expected one after a reset.
2000-05-12 15:00:33 +00:00
jhawk 6622f20fc1 Move pci-specific data to fxp_pci_softc from fxp_pci_softc.
Add some more pci-specific data to fxp_pci_softc.
2000-05-12 03:36:18 +00:00
jhawk e50925114e Catch some potentially infinite loops in while() loops if the chip happens
to "go insane" and never complete some operations (dmasync, etc.).
2000-05-12 03:35:57 +00:00
bjh21 2d09335a35 Fixes from PR 9838:
Only access board memory using the front-end functions.
Add hook for clearing latched interrupts.
Corrent debugging printf of ethertype on LE systems.
Make it possible to us I82586_DEBUG as a kernel option.

Tested on arm26 and mvme68k.
2000-05-11 20:55:03 +00:00
bouyer 2222d240a7 Use correct divider value for scxfer 2000-05-11 09:30:12 +00:00
dante 8c999651eb Change adw_isr_callback() status handler
Add a catch for DMA Error which show up on Intel 82443BX Host Bridge/Controller (rev. 0x03). This doesn't fix the problem, but reset the SCSI bus and reinitialize the host adapter
Minor cosmetical changes

Thanks a lot to Greg Oster and Andan Lauber
2000-05-10 21:22:34 +00:00
pk 1bf775b965 Conform bus_dmamem_{alloc,map} usage to bus_dma(9) specs. 2000-05-09 22:42:08 +00:00
explorer 6b66bf5d80 set paa_busname to pcmcia, like the i82365.c driver does. 2000-05-08 19:44:34 +00:00
dante 6644e670f7 Change the way ADW_CARRIER is allocated and handled.
Increased ADW_MAX_CCB to 63 and ADW_MAX_CARRIER to 253
Print WDTR/SDTR negotiation result per target
Protect AdvISR() inside splbio()/splx() pair
Add a pending queue to keep track of all the CCBs that are being executed by the host adapter.
Rewrote timeout handler in a more efficient way:
    After 3 timeout now the SCSI is resetted and all pending queues not completed are now reenqueued in the waiting queue so to get executed just after the BUS Reset (hoping that resetting the SCSI BUS and reinitializing the adapter could solve the problem).
2000-05-08 17:21:33 +00:00
mycroft f5bd37be57 Make the SPARC audioamd driver at least *compile*. Well, the C code, that is.
*sigh*
2000-05-08 02:44:31 +00:00
martin 41dc1a6839 Avoid stomping on the W0_CONFIG_CTRL register which seems not to be
implemented on EISA cards. This makes a 3Com 3C597 Fast Etherlink TX
work for me at last, fixing PR kern/7067.
2000-05-07 14:03:25 +00:00
wiz 7392f90215 multiple inclusion protection 2000-05-07 03:01:58 +00:00
wiz 006e9528a1 install bt8xx.h for bktr 2000-05-07 00:29:03 +00:00
wiz c2f780fbfd Import of (finally busspaced) bktr-driver from FreeBSD (part 2).
This version is from the location specified in the README, modified
by bktr2netbsd, to be committed later.
2000-05-07 00:17:13 +00:00