Commit Graph

2024 Commits

Author SHA1 Message Date
ad
ac2883e218 - Interface cleanup. static, const in places.
- Pull in linkage useful for both PCI and EISA boards from cac_pci.c.
- cac_ccb_done() now frees the done CCB if the CCB callback completes.
- Model-specific linkage is now responsible for DMA synchronization.
- Use wakeup_one() in cac_ccb_free().
- Start synchronous commands `manually'.
- Add one hardware check in DIAGNOSTIC case.
- Improve error messages.
- Start firmware background tasks on controllers that need it.
2000-09-01 12:11:37 +00:00
ad
d8e5466776 - Move convenience macros from cacreg.h to cacvar.h.
- Define EISA board register set and some other magic numbers.
- Add missing elements to `struct cac_controller_info'.
2000-09-01 12:10:21 +00:00
haya
ea9ef4ff69 Correct LED polarity bit. This bit and PHY power bit should be
defined in elinkxlreg.h.
2000-08-31 08:42:29 +00:00
haya
25147761ff Add support 3C[CX]FE575CT. 2000-08-29 08:54:50 +00:00
mjacob
37c83e1340 fix some missing initializations 2000-08-27 21:43:26 +00:00
haya
0e2c6c0cc1 Access on ELINK_W3_INTERNAL_CONFIG register with 32-bit mode. Remove
16-bit access code.  This register is 32-bit.  16-bit access with the
register causes data inconsistency (especially for CardBus cards).
2000-08-25 09:01:59 +00:00
jeffs
d3afa878a2 Fix typo in SIATXRX_SPP comment. 2000-08-25 08:03:10 +00:00
haya
6cbde58ee4 Add flag defines for 3CCFE575BT and 3CCCFE575CT (CardBus cards). 2000-08-24 08:54:31 +00:00
thorpej
7951ece147 Use splsched() instead of splhigh(), and explain why in a comment,
as well as document a pitfall of the approach being used.
2000-08-21 14:25:14 +00:00
castor
0c05c0b9f2 Add register definitions for S.M.A.R.T. -- an autonomous disk monitoring
standard.
2000-08-21 03:53:55 +00:00
sommerfeld
8f5586c98f Avoid calling tsleep when running above splhigh() 2000-08-18 13:22:39 +00:00
bjh21
d7eebd9227 Basic driver for CHIPS 82C710 Universal Peripheral Controller and friends,
as used on later arm26 system (A5000, A4, A3010, A3020, A4000).

What we have got:
...
upc0 at iobus0 base 0x010000: config state bb 87 1c 00 00
fdc at upc0 offset 0x3f4 not configured
wdc0 at upc0 offset 0x1f0
lpt0 at upc0 offset 0x278
com0 at upc0 offset 0x3f8: ns8250 or ns16450, no fifo
...

What we haven't got:
 - FDC support (found, but not configured).
 - Clearing lpt interrupts on arm26 systems (needs help from IOEB).
 - A upc(4) manual page.
 - More than minimal testing (my A3020s don't have root devices).
 - A proper probe routine (arm26 can't use one anyway).
2000-08-16 23:56:08 +00:00
mjacob
4f5e77ca58 Change _res field in ispstatusreq_t to be req_response for FC.
Add some more FC specific response defines and split the response
defines into common, SCSI only and FC only cases.
2000-08-16 18:11:38 +00:00
mjacob
d9162135d4 Add some changes/notes suggested by eeh@netbsd.org (zero header of
response queue entry). Clean up some of the Fibre Channel completion
stuff so that thing we check actually match the current manual. There's
only one silly lossage that the manual doesn't cover at present- if
an FC command completes with SV (sense valid), the f/w does *not* s
et "GOT_STATUS" in the state bits- I guess they assume that you'd figure
out that if you have SENSE DATA you probably have a CHECK CONDITION. Still-
yet another fine f/w frotz from Qlogic. Add in an ISP_EXEC_THROTTLE
define to set a per-device execution throttle.
2000-08-16 18:10:21 +00:00
thorpej
f80d70f19a Just add the mmap argument to vga_common_attach(), don't bother
with vga_extended_attach().
2000-08-14 20:14:50 +00:00
onoe
7f6e2386a6 Make sure to reset length of data (len) and offset of mbuf (mlen) when
CRC is splitted into two mbufs in receiving.  This fixes panic or hangup
in arc4_encrypt() when WEP is enabled on awi.
2000-08-14 11:28:03 +00:00
mjacob
ec701021fd Add a maintenance note. Fix QFREE and QAVAIL macros to match change in usage. 2000-08-14 07:12:15 +00:00
mjacob
ed05406b77 Add a maintenance note 2000-08-14 07:11:14 +00:00
mjacob
b1c18a6bc7 Add a maintenance note. Move the single bit tags of islocked and
onintstack to be real integers. Add ISP_ILOCK/ISP_IUNLOCK macros.

Fix the isp_lock/isp_unlock inlines to stop being so embarrassingly
in error. Why, or why, can't I have mutex_enter/mutex_exit, pretty please?
2000-08-14 07:10:09 +00:00
mjacob
22ef6ec857 Add a maintenance note. Change all splbio's to use the ISP_LOCK/ISP_UNLOCK
or ISP_ILOCK/ISP_IUNLOCK macros.
2000-08-14 07:08:12 +00:00
mjacob
8801250c70 Add a maintenance note. Add a cast to u_int16_t which will keep
Solaris lint && the SUNPro SC5.0 complier happy.
2000-08-14 07:06:50 +00:00
mjacob
d7ee06672f Add a maintenance note.
Clarify some startup SCSI mode settings. Insist that the FC f/w options
*must* have ICBOPT_PDBCHANGE_AE set (wasted a half day on this crock).

Make a specific comment in isp_start that the tags being selected for FC
cards, in lieu of any set by the outer layers, are there for safety's sake.
This removes the change from a previous commit.

For the ISP_TOGGLE_TMODE function, do a complete reset, not just an
isp_init (info from Solaris port). Make some cleanup changes for
code clarity.
2000-08-14 07:05:28 +00:00
augustss
0390dd7f3e Fix spelling in comment. 2000-08-12 22:24:26 +00:00
tls
c9dc8413bb Make our policy WRT tagged queueing consistent and sane: ordered tags for sync writes, simple tags for all else. Should make ahc and adv a bit more reliable (metadata writes won't get reordered incorrectly...) and isp a bit more performant (it was using ordered tags all the time). 2000-08-11 21:31:19 +00:00
thorpej
8cb7deb85b Add support for the DEC DE422 Ethernet, which is a DEPCA
attached to the EISA bus.  This board is commonly found
on Alpha Jensen systems.
2000-08-11 02:27:07 +00:00
tv
389bf995b5 %b -> bitmask_snprintf() 2000-08-09 01:56:33 +00:00
mjacob
0dc8c1fb35 Remove ispcmd_slow routine- SCBUSACCEL routine will set/clear tag/wide/sync.
Make some changes about where some things sit in the softc.
2000-08-08 22:58:30 +00:00
bjh21
4f33d5a8ab Register definitions for the C&T 82C710, 82C711 and 82C721, as used in
the Acorn A5000, A4, A4000, A3010 and A3020.
2000-08-08 22:14:53 +00:00
jeffs
aaa5c58d70 Update arc map routine prototype to compile again. 2000-08-08 02:11:05 +00:00
briggs
b103a8ca48 Label the buffer size as such on probe. 128 KB makes sense, but 4608 does not. 2000-08-06 00:19:04 +00:00
bouyer
a8421d4787 Some W83781 have ID 0x11 instead of 0x10; handle these too.
Restore printing sdata for each sensors if DEBUG.
2000-08-03 09:27:01 +00:00
castor
b6dd28b4ce Support some differences in the Macronix 98715AEC-C and E chips from the other
98715* series.

The MX98715AEC-[C,E] use a different location in the serial eerom for
LED control, and programming it with the original location's values
caused unpredictable behavior.

Also, start integrating fixes where media changes on an adapter
under load may fail.  There's more work to be done here, but I need
to sort out our internal changes a little more carefully.
2000-08-03 03:07:30 +00:00
jeffs
e97c2066ab Add options DDB_BREAK_CHAR. This overrides break on the serial console
break character with the supplied one.  This is useful for cases where
break is hard to generate, or you are connected to a PC that "sends"
breaks when power cycled.  For this mode in com, interpret break char
in the polling section, which allows entry into the debugger before
the tty is opened.  Only supported in the com driver currently.
2000-08-03 00:30:47 +00:00
bouyer
de378db998 W83781D: Explicitely reselect bank0 before using "value RAM" registers.
Hopefully this will make the W83781D works.
Also use common functions to set up fan & temp info[] & sensors[] for
the W83781D.
2000-08-02 22:20:41 +00:00
bouyer
e445e43ddc Add support for the W83697HF - basically a W83627HF with only 2 temp sensors. 2000-08-02 21:50:37 +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
briggs
02e3c1ef40 Use bus_space_read/write_multi_stream_2 for FIFO instead of bsr/w_multi_2. 2000-07-31 22:48:49 +00:00
ad
067f5e9814 Previous would have misbehaved if polled commands overlapped. 2000-07-31 13:16:34 +00:00
briggs
3628f3e00c Make sure that we do not call bus_space_*_multi_* with zero count. 2000-07-31 02:14:47 +00:00
bouyer
100a4a6b22 Add support for the W83781D and W83782D hardware monitors. 2000-07-30 22:23:53 +00:00
briggs
e6dde2bd42 Add MII support to smc91cxx driver. This is supported for the 91c100
and 91c100FD (FEAST) controllers.  Existing controllers should continue
to work as they have.  Added the card's memory to the probe message.
2000-07-30 21:34:47 +00:00
bouyer
538126d75a swap lm_match() and wb_match(), as wb_match() is more restrictive.
Otherwise a winbond can be mis-probed as a lm if it has the rigth device ID.
Problem reported by Bernd Ernesti.
2000-07-30 17:22:26 +00:00
bouyer
e955a714ba Add support for the W83627HF: lm7x like, but with more sensors, and more
registers.
2000-07-27 21:49:22 +00:00
bouyer
ca5b9b0c22 Force 64bit arithmetic for timeout computation; a 32bit int opverflows for
large timeouts. Should fix PR kern/10575.
2000-07-27 21:28:17 +00:00
pk
4ba0c6b55c New time-of-day clock chip drivers. These implement the todr(9) interface. 2000-07-25 22:33:02 +00:00
bouyer
10afc4e0a8 create a funcion, siop_busreset(), to reset the scsibus.
Reset the scsi bus at attach time, to be sure all devices start in narrow/async
mode.
Defer sync/wide negotiation until after whe have a valid
xs->sc_link->device_softc, so that we can honnor the NOSYNC/NOWIDE quirks.
2000-07-24 15:15:00 +00:00
ad
74cf7af4a9 Increase polled command timeout to 2s. 2000-07-24 12:28:31 +00:00
onoe
afa5b645c2 add support for SIOCS80211NWKEY and SIOCG80211NWKEY. 2000-07-21 04:48:55 +00:00
scw
a1b8e79bb1 Take advantage of generic soft interrupts, if available. 2000-07-20 20:44:50 +00:00
deberg
0d5d0bd93a don't define LIST_FOREACH, it's in sys/queue.h now. 2000-07-20 03:47:56 +00:00
mjacob
c47c527343 add some more CTIO flags 2000-07-19 22:19:23 +00:00
mjacob
0615788781 zero result queue entry when done if debugging.
don't do an isp_notify_ack if we're not at run state.
2000-07-19 22:19:00 +00:00
mjacob
93379fb341 fix mislabelled error case 2000-07-19 22:18:02 +00:00
pk
f9e6c9cf42 Fixx off-by-one error in handlereset(). 2000-07-19 16:07:00 +00:00
onoe
0ab524f389 moved the check priviledge for SIOCS80211NWID from each driver to ifioctl().
it also fixes the problem that non-priviledged user can change nwid
for wi and ray drivers.
2000-07-19 06:00:39 +00:00
ad
7d1b0e5b39 Use device_lookup() and ditch TAILQ sillyness. 2000-07-18 15:27:44 +00:00
drochner
54ccff0437 define "80x24" screen types for better vt100 compatibility 2000-07-15 18:47:54 +00:00
scw
20305c6623 Fix a typo in the `device_lookup()' changes. 2000-07-15 18:12:42 +00:00
soren
b141a6bfe8 Merge-o. 2000-07-14 21:09:45 +00:00
onoe
6c4d97da13 Indicate WEP capability to association request when WEP is enabled.
Without this fix, some (IEEE802.11 conformant) APs will send data to this
station without using WEP.
2000-07-11 12:54:00 +00:00
onoe
b99e56173c do not allow non-priviledged user to change nwid via ifconfig. 2000-07-10 14:36:17 +00:00
onoe
c2ed037f55 move associated/synced/no-recent-beacons messages to IFF_DEBUG. 2000-07-10 12:32:53 +00:00
mycroft
d621cc4cb0 Add missing newlines in some messages.
Set Vpp the same as Vcc by default.  We need to do more with voltage sense.
2000-07-09 01:55:18 +00:00
sommerfeld
dcf6e7b09e When receiving an rx interrupt on a closed or unconfigured port, read
the data out of the board anyway so it won't re-interrupt anyway.
Fix tested by C Kane <ckane@best.com>
2000-07-08 18:36:02 +00:00
mjacob
58a60a43f2 Gah. Bad port from FreeBSD code (thanks Robert Elz) for setting
up default timeout for watchdogging commands.
2000-07-07 03:14:53 +00:00
onoe
a4d6bdac79 do not show wep keys to non-root users. 2000-07-06 17:22:25 +00:00
thorpej
cb450cc444 Use device_lookup(). 2000-07-06 01:47:34 +00:00
mjacob
7ed7b1b9fd Per advice from thorpej, reinstated some of Erik's changes. 2000-07-06 01:17:38 +00:00
mjacob
f78b367775 Roll core version. Get rid of dogactive (no longer used). Add in some
volatile flags (isp_mboxbsy- keeps a bitmask of expected output mailbox
registers) and storage for them (isp_mboxtmp). Get rid of macroized
LUN widths. This is determined at run time.
2000-07-05 22:28:08 +00:00
mjacob
7358822ab5 Fix incorrect uint8_t vs. u_int8_t usage. Add in offset macros for outgoing
mailbox regs and a INT_PENDING_MASK macro.
2000-07-05 22:26:53 +00:00
mjacob
b520c663d0 add MBOX_GET_RESOURCE_COUNT command 2000-07-05 22:25:53 +00:00
mjacob
93778c19b8 pick up FreeBSD changes 2000-07-05 22:25:34 +00:00
mjacob
3626695b49 Roll platform minor. We are now always supporting ISP2100_FABRIC. Add
in new MBOX_WAIT_COMPLETE/MBOX_NOTIFY_COMPLETE macros (ready for SMPizing).
Define STRNCAT inline for our usage.

Stealing a bit of the xs_status flags to maintain command state that
is pertinent for the hBA- should really reserve them for private usage
in scsipiconf.h.
2000-07-05 22:25:06 +00:00
mjacob
a743834a38 Redo watchdogs to handle cases of false death of commands- time
each command now.. Get rid of SCCLUn stuff. Use an isp_done routine
to handle cases of watchdog and isp_done racing to completion.
2000-07-05 22:23:05 +00:00
mjacob
a7560ced04 Add back in a (corrected) isp_prtstst function. 2000-07-05 22:21:44 +00:00
mjacob
e946846577 Back out previous commit- the author is incorrect. There is no 'narrow'
Qlogic controller driven by this chipset. If they don't want the verbosity,
don't compile a DIAGNOSTIC kernel.

Major amount of mailbox command rewrites- hopefully should fix some of the
outstanding PRs.

Change header to note that this is no longer maintained at NASA/Ames.
2000-07-05 22:20:51 +00:00
onoe
807a12c8cd change the argument of SIOCS80211NWID and SIOCG80211NWID ioctls from
u_int8_t array to struct ieee80211_nwid to prepend length field.
The length field is necessary because IEEE 802.11 spec doesn't prohibit
even '\0' for SSID.
Though the name and the value of SIOC... macro is unchanged, this change
breaks binary compatibility.  The only affected userland program on the
tree is ifconfig(8).
As Jason suggested on tech-net, it is better than live with problems
since there are no releases for this ioctls yet.
2000-07-05 02:35:53 +00:00
pk
e7adcbdb13 enet dma: claim interrupt as appropriate. 2000-07-04 14:58:36 +00:00
onoe
7411709050 Support WEP functions for awi driver. 2000-07-04 14:47:58 +00:00
onoe
793eb28211 Support WEP functions for awi driver.
arc4 implementation by Kalle Kaukonen has been added.
	define "wlan" in files.
		XXX: only awi depends on wlan for now.
	Allow authentication for adhoc (IBSS) mode.
Disable adhoc mode without bssid (mediaopt adhoc,flag0) for FH radio.
	FH cannot work without synchronization by beacons.
Align IP header for ethernet encapsulation (IFF_FLAG0) mode.
Print available access points for IFF_DEBUG.
2000-07-04 14:27:56 +00:00
onoe
0e23cbd506 Remove unneeded include <sys/kernel.h> from FreeBSD by <phk@freebsd.org> 2000-07-04 14:16:21 +00:00
thorpej
a02e08bf4f Remove work-around for Lite-On PNIC in tlp_filter_setup() that is
apparently no longer necessary (probably due to other fixes that
have happened in the filter setup path) and is in fact harmful.

Based on a patch from Krister Walfridsson, who claims this makes
his newer NetGear FA-310TX work (although, my older NetGear FA-310TX
still does not, but fails in an entirely different way).
2000-07-04 04:18:17 +00:00
itojun
33d6ee7269 sync with sys/dev/ic/adwlib.h change (s/ADV_TICKLE/ADW_TICKLE/)
not sure if it is right.  comments?
2000-07-04 04:17:03 +00:00
nisimura
0c92b006c6 Fix negative timeout symptoms caused by integer multiply overflow,
which is revealed with larger HZ systems like NetBSD/pmax (256Hz)
and NetBSD/alpha (1024Hz) as reported by PR#8645.  Polled tape
drive access is done with maximum 6 hour timeout which ended up
with negative time and then confused SCSI bus severely.
2000-07-04 01:10:18 +00:00
dante
fa845b7795 Fix a off-by-one error in sc_freeze_dev[].
Thanks to kwesterback@home.com
2000-07-03 18:14:18 +00:00
pk
8c46f6d687 #include "opt_ahc.h" 2000-06-29 23:12:19 +00:00
thorpej
756aa08443 Since the RFA is allocated in a normal mbuf, as opposed to DMA-safe
memory that is explicitly mapped in a DMA-coherent manner, we must
make sure to PREREAD sync the RFA after noticing a clear "complete"
bit.  Without this, the clear bit will linger in the cache, and the
CPU will not notice when the chip updates the bit via DMA later.

From Izumi Tsutsui on port-arm32@netbsd.org.
2000-06-29 16:53:48 +00:00
mrg
314f1e97c5 remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-28 17:12:48 +00:00
mrg
e185413725 remove redudant <vm/pmap.h> includes. <vm/pmap.h> -> <uvm/uvm_pmap.h> 2000-06-27 04:18:48 +00:00
fvdl
4cc6a62a33 Remove debugging code that wasn't supposed to be in the commit of version 1.55 2000-06-26 19:38:14 +00:00
mrg
89d0a3e519 remove redundant vm includes. 2000-06-26 14:38:50 +00:00
mrg
2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +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
44330020aa Make PCI HME work. 2000-06-25 01:10:04 +00:00
eeh
79dffec702 Get PCI HME working. 2000-06-25 01:05:16 +00:00
thorpej
f82e306928 Add a clearing-house pseudo-device for system monitoring devices
such as the LM78 and VT82C686A (and eventually ACPI).  Multiple
sensor devices can be hooked registered with `sysmon', and eventually
sysmon will also handle hardware (and software) watchdog timers.

Convert the `lm' and `viaenv' drivers to the new interface.
2000-06-24 00:37:19 +00:00
bouyer
dbc130250d Patch from Eduardo Horvath: don't bus_dmamap_sync the script dma map if
it lives in the on-chip RAM !
2000-06-20 17:16:22 +00:00
ad
318f9b048b Feck. 2000-06-20 15:04:50 +00:00
pk
5f887c484e The sparc clients of this driver (si & sw) now use bus_space_*(). 2000-06-18 19:22:33 +00:00
soda
849b74a926 add vga_extended_attach function on arc port, to make mmap() available.
XXX - is it better to remove "#ifdef arc"?
2000-06-17 07:11:50 +00:00
cgd
eee18e1f6c beat back the undead: __BROKEN_INDIRECT_CONFIG had risen, and was
terrorizing innocent hackers...
2000-06-16 23:41:33 +00:00
pk
6e94b922a1 Comply with bus_dma(9) specs. 2000-06-16 11:47:34 +00:00
soren
18b4be2a92 Update from Onno:
- Add a tr_reopen() and use that instead of tr_init() for callouts.
- As tr_reinit() and tr_reopen() are used as callouts, protect them at splnet.
2000-06-15 19:55:27 +00:00
pk
297445c2a2 Turn on the hash filter enable bit in the RX configuration register
when loading the multicast hash filter (noted by itojun@iijlab.net).
2000-06-15 15:34:32 +00:00
soren
ca34a6a69a Call frontend enable/disable functions in the ioctl path.
Use _sc prefixes for some softc members.
A few minor cleanups.
2000-06-13 20:00:02 +00:00
nathanw
a5598651e8 Arrange to use the right RAMDAC cookie at console initialization time.
[I thought I committed this months ago....]
2000-06-13 17:21:06 +00:00
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