Commit Graph

2673 Commits

Author SHA1 Message Date
thorpej
6568739901 Add an ISA front-end to the SMC91cxx Ethernet driver ("sm"). This
supports generic SMC91cxx-based ISA cards and the built-in SMC
Ethernet found in some laptop docking stations.

Thanks much to Andrew Gillham <gillhaa@ghost.whirlpool.com> for
making this work!
1997-11-05 06:06:07 +00:00
thorpej
03a0c2d900 Implement a simple queueing mechanism that makes these drivers much
more robust in resource shortage situations, basically identical to
code I added to the "ahc" driver some time ago.

Thanks to Brad Spencer for the testing help.
1997-11-04 05:58:22 +00:00
thorpej
d64e10645f Add "we" driver, remove "ed" driver. 1997-11-03 21:29:19 +00:00
thorpej
ae4498b7bf This driver is now obsolete. 1997-11-03 21:28:49 +00:00
thorpej
60c2342028 Add a front-end to the MI dp8390 driver for the Western Digital/SMC 80x3
family, SMC Elite Ultra family, and SMC EtherEZ family of Ethernet cards.

This front-end completes the split of the ISA "ed" driver.
1997-11-03 21:22:50 +00:00
mycroft
26ecc7d3b0 Trivial change; use KB_SUN4 rather than the constant in one place. 1997-11-03 20:18:00 +00:00
mycroft
47c2d7502f Actually use TIOCFLAG_CDTRCTS. 1997-11-03 16:30:54 +00:00
mycroft
0e16ca013b Always leave DCD_IE and CTS_IE on for now. Needs more work in zsparam() to
make the optimization actually work right.
1997-11-03 16:15:47 +00:00
mycroft
37e260f4a6 Leave the console running with or without DDB. 1997-11-03 15:35:42 +00:00
mycroft
13e9b38191 Slight optimization in soft input routine. 1997-11-03 08:20:35 +00:00
mycroft
ce29cdf2e7 Set the ring size back to 2k. 1997-11-03 06:56:28 +00:00
mycroft
9b9cce6084 Mostly cosmetic and performance changes:
* Make the ring buffer size and water marks patchable, and allocate the buffer
  separately.
* Do the ttymalloc() at attach time.
* Reorganize the receive buffer so the status and data pair are next to each
  other.  This is slightly faster.
* Make sure we actually do turn off interrupts in comclose() if we have DDB
  configured and it's not the console.  (D'oh!!!!)
* When we exhaust the current transmit run, turn off transmit interrupts in
  comintr(), so we're fairly sure we don't get another one.
* Nuke the silly lsrmap[] idea; it's slower in the normal case.
* Cache the l_rint pointer in the soft interrupt routine.
1997-11-03 06:55:54 +00:00
mycroft
7d7ecb9200 Bug fixes:
* Carrier detect (TS_CARR_ON) is based on the actual DCD bit, even if it's
  being ignored.
* Set TS_WOPEN early on in zsopen().
* Don't disable interrupts on the console during close if we have DDB.

Inert changes:
* Don't handle ZS_HWFLAG_NO_DCD here; the frontend does it.
* Deprecate `register'.
* Use SET(), CLR(), and ISSET().

More performance changes:
* Rototill receive handling; use a backpressure mechanism to prevent livelock.
* Output silo/ibuf overflow warnings at most once per minute, from a callout.
* When we exhaust the current transmit run, turn off transmit interrupts in
  zstty_txint(), so we're fairly sure we don't get another one.
1997-11-03 06:16:43 +00:00
mycroft
067898abb8 Mostly cosmetic and performance changes:
* Make the ring buffer size and water marks patchable, and allocate the buffer
  separately.
* Do the ttymalloc() at attach time.
* Reorganize the receive buffer so the status and data pair are next to each
  other.  This is slightly faster.
* Make sure we actually do turn off interrupts in comclose() if we have DDB
  configured and it's not the console.  (D'oh!!!!)
* When we exhaust the current transmit run, turn off transmit interrupts in
  comintr(), so we're fairly sure we don't get another one.
* Nuke the silly lsrmap[] idea; it's slower in the normal case.
* Cache the l_rint pointer in the soft interrupt routine.
1997-11-03 06:12:02 +00:00
gwr
80a52b9e7d KIOCSLED ioctl takes a char (from Krister Walfridsson). 1997-11-03 05:05:45 +00:00
gwr
762cc5a0fc Fix serial console support (did not turn on CLOCAL). 1997-11-03 04:34:18 +00:00
thorpej
e7044069f6 Fix a think'o in ifmedia initialization. 1997-11-03 00:19:41 +00:00
pk
d0f1a6dc73 Enable the `xy' entries. 1997-11-02 23:14:13 +00:00
pk
e12cd50724 Fix pasto 1997-11-02 23:12:53 +00:00
pk
abaee437ea Converted Xylogics 450 (XY) VME driver. 1997-11-02 23:09:25 +00:00
mjacob
20d01ea842 Updated f/w from Qlogic. 1997-11-02 22:10:57 +00:00
mycroft
61bf289f3e Slight code rearrangement. 1997-11-02 09:31:49 +00:00
mycroft
acb27fb42a Slight code rearrangement. 1997-11-02 09:24:51 +00:00
mycroft
5869b743c7 Rearrange *param() slightly to eliminate a spl.
Also fix another comment regarding DTR.
1997-11-02 09:15:41 +00:00
mycroft
76b7dd52df Add another splserial()/splzs(). 1997-11-02 08:55:52 +00:00
mycroft
acd97c6676 Minimize some spl regions slightly. 1997-11-02 08:50:31 +00:00
mycroft
8914537568 If we lose HFC, assert RTS. 1997-11-02 08:29:51 +00:00
mycroft
b000ee5105 Set the state of DCD_IE and CTS_IE based on what's in rr0_mask. 1997-11-02 08:02:40 +00:00
scottr
c35524f0a1 Fix a serious problem in dp8390_write_mbuf(), noticed by Jason Thorpe:
after we've written out the contents of the mbuf, increment the transmit
buffer offset by m->m_len.
1997-11-02 06:18:27 +00:00
thorpej
892b0c409e Fix a slight brain lapse. 1997-11-02 05:17:32 +00:00
thorpej
2497f4a8da Garbage-collect the 3Com 3c503 support from the "ed" driver. The ISA "ec"
driver now handles the 3c503.
1997-11-02 00:57:24 +00:00
thorpej
a945a24322 Front-end to the dp8390 chip driver for the 3Com 3c503 Ethernet interface.
Supports changing media with ifconfig's "media" directive.

This splits the 3c503 functionality out of the ISA "ed" driver, much the
same way NE2000 support was split out.
1997-11-02 00:44:25 +00:00
thorpej
7438e6c882 Adjust for ifmedia-related changes to dp8390 driver. 1997-11-02 00:25:11 +00:00
thorpej
18636a8934 Add ifmedia support via callbacks to the front-end. 1997-11-02 00:23:54 +00:00
pk
f00f5d9428 Start an MI VMEbus framework.
Includes two sample drivers: IE ethernet driver (VME front-end to
dev/ic/i82586.c) and the XD disk driver, both converted from the
sparc versions.
1997-11-01 22:56:19 +00:00
mycroft
74df2cee60 Correct a comment regarding our behaviour with DTR. 1997-11-01 20:40:36 +00:00
mycroft
d0df1f96f4 Add additional splserial()s in comopen() and comclose(). These are not
necessary on the i386 port, but may be on others.
1997-11-01 20:31:57 +00:00
mycroft
8475e6c0ba Fix minor omission; write back reg 1 earlier in zsopen(). 1997-11-01 20:23:50 +00:00
mycroft
386d55a1ca Need some additional splzs() in zsopen(), and nuke one that's no longer
needed.
1997-11-01 20:15:10 +00:00
mycroft
8ffb1f6b84 Nuke the special case of heldchange for reg 5. We don't use it for flow
control any more, and the speed of changing DTR isn't really an issue.  Also,
the old code created a bug where zsparam() might have failed to set some
registers.
1997-11-01 18:15:12 +00:00
mycroft
75dc31c41d Yet more changes imported from com driver:
Change the interface to zs_hwiflow(); just have it use zst_rx_blocked.
Make zs_modem() a tiny bit faster.
Do RTS updates immediately; do not allow them to be held.
1997-11-01 17:57:14 +00:00
mycroft
eb0f6686d2 Make zst_tba a u_char *. 1997-11-01 17:12:54 +00:00
mycroft
4377152a4b More changes taken from com driver:
Stop output as fast as possible when DCD is deasserted.
Do *not* automatically drop DTR when DCD is deasserted.
Only check for rr0 bits that we care about (DTR and DCD).
1997-11-01 17:09:06 +00:00
mycroft
deb1d9f40a GC some unused bits.
Also, part of the previous was copied from the com driver, so DTRT.
1997-11-01 15:59:26 +00:00
mycroft
8008239563 Rearrange open sequence to make sure we catch all line status changes.
Make sure we turn on DTR and/or RTS as appropriate during open.
Rearrange close sequence so the tty is flushed before turning off interrupts.
Deal with `softcar' and the console device by silently asserting CLOCAL and
|HUPCL, as in com driver.
Do *not* fiddle with DTR when changing the line speed.
Make sure we update the tty's carrier status when CLOCAL or MDMBUF is changed.
Only change rr1 when we actually need to turn on or off TIE.
1997-11-01 15:51:23 +00:00
lukem
3e8e744696 getopt returns -1 not EOF 1997-11-01 06:49:14 +00:00
bouyer
ce0da80741 Add NOCAPACITY quirk entry for MATSHITA CR-574, rev 1.02. 1997-10-31 09:11:06 +00:00
jonathan
7fb01f01ae Print TC bus speed properly when attaching device, since the SCSI
clock is taken (and computed) from the TC bus clock.  See PR 4380.
1997-10-31 06:29:59 +00:00
thorpej
5322570d8a - Move all of the configurable parameters (alloc_iobase, alloc_iosize,
intr_alloc_mask) into one place, comment them, and defopt them.
- Rename pcic_intr_alloc_mask to pcic_isa_intr_alloc_mask, since it's
  an ISA-specific thing.
- When allocating/establishing the PCIC's interrupt (for card events),
  do error checking, and pay attention to the intr_alloc_mask.
1997-10-29 22:48:43 +00:00
thorpej
c733020f4b Take IRQ 10 out of the default IRQ allocation mask. That IRQ is reserved
for the built-in SCSI on NEC Versa docking stations, and if a card
allocates that IRQ, it will never get interrupts.  This caused the
default kernel to not work on these laptops, as IRQ 10 was often the
first free IRQ.
1997-10-29 21:33:16 +00:00
drochner
d52df86460 Print probe result after the LCR is restored. Otherwise, bad
things happen if we are the console.
Restore to the prevoius value (not to hardwired 8N1) because this
could be set by the serial console initialization.
Closed PR kern/4373 (Dave Huang)
1997-10-29 18:28:07 +00:00
thorpej
7964d4bd34 When probing for a dp8390 in ne2000_detect(), check for RST being set
in the ISR (from the ISA "ed" driver's generic 8390 probe routine).
Also, add a big comment describing exactly what we're checking when
probing for the dp8390 (also lifted from the ISA "ed" driver).

The RST check should help weed-out non-matches before they get to the
fairly invasive memory check.
1997-10-29 07:57:53 +00:00
augustss
b366d54e2e Fix slight glitch in last commit when AUDIO_DEBUG is on. 1997-10-29 02:11:45 +00:00
augustss
9f84e63746 Do audio attachment the right way. From Chris Demetriou.
(Maybe I'll get the hang of the configuration stuff one of these days. :-)
1997-10-29 02:00:20 +00:00
thorpej
87ca153bb5 When creating ccbs, be a little more informative about why we couldn't
should creation/initialization of a ccb fail.  Also, don't panic in
these situations.  Instead, simply return an error condition and allow
the caller to deal with it.  It may be the case that we were able to
create one ccb what we can grab, and continue to hobble along.

Also, fix the scb freelist fencepost, like the aha/bha/uha drivers.
1997-10-29 00:30:00 +00:00
thorpej
8001991ed8 When creating ecbs, be a little more informative about why we couldn't
should creation/initialization of a ecb fail.  Also, don't panic in
these situations.  Instead, simply return an error condition and allow
the caller to deal with it.  It may be the case that we were able to
create one ecb what we can grab, and continue to hobble along.
1997-10-29 00:18:21 +00:00
thorpej
b01dbb214c When creating mscps, be a little more informative about why we couldn't
should creation/initialization of a mscp fail.  Also, don't panic in
these situations.  Instead, simply return an error condition and allow
the caller to deal with it.  It may be the case that we were able to
create one mscp what we can grab, and continue to hobble along.

Also, fix the mscp freelist fencepost error, similar to aha.c and bha.c
1997-10-28 23:46:49 +00:00
thorpej
6e8facbdcc When creating ccbs, be a little more informative about why we couldn't
should creation/initialization of a ccb fail.  Also, don't panic in
these situations.  Instead, simply return an error condition and allow
the caller to deal with it.  It may be the case that we were able to
create one ccb what we can grab, and continue to hobble along.
1997-10-28 23:31:30 +00:00
thorpej
711fc71012 When creating ccbs, be a little more informative about why we couldn't
shoud creation/initialization of a ccb fail.  Also, don't panic in
these situations.  Instead, simply return an error condition and allow
the caller to deal with it.  It may be the case that we were able to
create one ccb what we can grab, and continue to hobble along.
1997-10-28 23:06:21 +00:00
christos
c12bf4cc9f DTRT with level and edge interrupts:
- add a type field to the isapnp_pin struct and set to IST_EDGE or
      IST_LEVEL depending on the card configuration data.
    - use the irq type field in all the drivers instead of hardcoding it.
1997-10-28 21:27:55 +00:00
thorpej
d1bfbc66c6 Syncronize with changes to aha.c:
Adjust the number of ccbs allocated during initialization.
Every ccb could potentially lock 64k of memory for dma buffers if bounce
buffers are used.  Instead of BHA_CCB_MAX ccbs using 2MByte, only
sc_link.openings ccbs per device are allocated.  Thus we now use only
256KByte per device present.
(hannken)

Fix a couple of errors in bha_create_ccbs():
- Don't ever let the number of CCBs be creater than BHA_CCB_MAX.
- Fix a fencepost that caused the last CCB allocated to never be put
  on the freelist.
(thorpej)
1997-10-28 19:13:36 +00:00
thorpej
1dfae448cd Reply from an INQUIRE DEVICES is a lun map. 1997-10-28 19:08:26 +00:00
thorpej
1bfea0bd23 Fix a couple of errors in aha_create_ccbs():
- Don't ever let the number of CCBs be creater than AHA_CCB_MAX.
- Fix a fencepost that caused the last CCB allocated to never be put
  on the freelist.
1997-10-28 18:40:07 +00:00
gwr
d6a95307e3 The release and control maps are shared by all keyboard types, so
change KEYSYM_HOLE to KEYSYM_NOP most places in those tables.
Map the `R' function keys with KEYSYM_FUNC_R instead of the
arrow key strings so that numlock indirection works.
1997-10-28 06:18:36 +00:00
gwr
f4a80e422c Print more helpful information if we get unexpected keysyms.
Call kbd_xlate_init() after we know the keyboard type so it
has a chance to install the RIGHT keymap pointers!  (Duh!)
1997-10-28 06:14:17 +00:00
thorpej
e0ccf46ed0 In isapnp_alloc_irq(), use isa_intr_alloc(), since it performs resource
conflict checking.
1997-10-27 23:42:30 +00:00
thorpej
a222447f6f Oops, missed one in previous. 1997-10-27 23:34:19 +00:00
thorpej
ce3918177b Update for new pcidevs entry for Winbond NE2000-compatible Ethernet ASIC. 1997-10-27 23:31:41 +00:00
thorpej
bb340dc5c7 Regen. 1997-10-27 23:29:23 +00:00
thorpej
10e3181b2b Fix the description of the Winbond NE2000-compatible Ethernet ASIC.
It's a W89C940F.
1997-10-27 23:27:35 +00:00
thorpej
16905ceeda Make sure we don't allocate a conflicting DRQ. From Christos. 1997-10-27 22:16:49 +00:00
bouyer
917389821c Changes to the probe and attach routine:
- at end of attach, explicitely select an existing drive. This fixes hangs
  some users reported (such as the one reported in port-i386/4247).
- Some atapi cdrom drives (e.g. Nec 24x) don't enables their registers before
  a controller reset is issued. The controller probe routine is changed as
  follow: issue a controller reset. If fail, test atapi signature on slave.
  If fail, wait 5s and retry a reset. If the second reset fail, return(0).
  If the first reset succeed, test presence of a master drive:
  atapi signature, and if this fail RO/RW registers test. If no master, test
  atapi signature on slave. If no slave, return 0.
1997-10-27 14:09:23 +00:00
thorpej
bbc9422b97 Print interrupt information like all of the other PCI drivers. 1997-10-27 02:10:07 +00:00
pk
233c534958 Apply patch from Michael L. Hitch (PR#4318):
"A sequence step of 0 after a select with ATN can be a selection
 timeout, or it can also indicate the target did not respond with
 a message out phase.  The latter will occur on very old SCSI
 devices which do not respond to the ATN signal and go directly to
 the command phase".
1997-10-26 16:45:24 +00:00
christos
15839e5d3d PR/4328: Matthias Scheler: Syntax errors in debug macros. 1997-10-24 15:44:42 +00:00
mikel
1f8a154917 add comments describing what devices correspond to each PnP ID matched 1997-10-23 06:14:11 +00:00
gwr
0889565499 Clean up kbdioctl():
* Make sure all uses of the data pointer are type-cast appropriately.
* Eliminate the super-user check in the KIOCSKEY case (back as it was).
* Return ENOTTY if the ioctl command code is unrecognized.
1997-10-21 15:17:31 +00:00
bouyer
b1b04efc58 Correct 'ThunderLAN' spelling 1997-10-21 05:54:21 +00:00
fvdl
37e4eea4a4 Make 16650 probe optional on COM16650 define. It breaks on some
multiport Startech chips.
1997-10-21 01:25:41 +00:00
thorpej
37919a04d9 Moved to src/sys/dev/ic/i82365.c via repository copy. 1997-10-20 20:24:17 +00:00
is
4a8fcf4aed Dont waste time in delay()s... else we won't finish in time to get our first
lowwatermark interupt for AUDIO_BYPASS data.
1997-10-20 19:07:59 +00:00
explorer
1f2bca63e2 clean up the event queue more. Add volatile where needed. 1997-10-20 18:43:48 +00:00
thorpej
5c6445bc0d Don't panic if we fail to remap i/o or mem space in the attach function.
Instead, print a diagnostic and return.  (Some drivers do this already.)

Also, normalize the diagnostic message, and fix some places where the
printfs were getting ugly.
1997-10-20 18:43:03 +00:00
explorer
7f8a4b47f8 Clean up the timeout and queue code. 1997-10-20 15:05:05 +00:00
explorer
c327761377 Don't pretned to maintain an internal "global" entropy pool. In-kernel
locking cannot be done with it, and that sort of thing probably should not
be shared anyway.
1997-10-20 15:03:19 +00:00
matt
500281c8a4 21142 / 21143 chips always use ISVSROM format. (print out message is
SROM checksum is invalid).
1997-10-20 14:32:46 +00:00
fvdl
d82bb1870c Make sure to unmap bus space when a successful probe is done, to prevent
a panic when the attach code does the map again. PR 4302, from
Anders Hjalmarsson.
1997-10-20 13:46:53 +00:00
thorpej
cdc616ca77 Port the latest FreeBSD "fxp" driver to NetBSD-current. Changes include:
- Work around a bug in the 82557 that causes the receiver to lock up
  in certain conditions by kicking the multicast address filter if we
  haven't heard anything come down the wire for some period of time.
- Fix a bug that could cause TxCB descriptor chains to cross page boundaries
  on the Alpha.
- Remove some unneeded register masking.
- Fix a bug where too much data was copied from the config template, causing
  memory corruption.
- Fix handing of if_timer (it was be cleared too early in some cases).
- Attempt to reduce the chances of receiver overrun by doubling the
  number of receive DMA segments, and processing receive interrupts
  before transmit interrupts.
- Remove a gratuitous assignment.
- Fix a bug where incoming packets were counted twice.
1997-10-20 01:15:53 +00:00
fvdl
9e76627586 Do hack around VOP_BMAP call to avoid recursive locks. The locking
interface doesn't allow currently to specify recursive locks.
Should fix vnd device locking panics.
1997-10-20 00:11:03 +00:00
is
b266316bea Fix pasto in symbolic name for string 1997-10-19 20:46:32 +00:00
christos
7507e6a5e9 Make this compile again. 1997-10-19 20:34:54 +00:00
is
eb1b51cac1 tav_write_word -> tav_write_short 1997-10-19 20:21:49 +00:00
mycroft
1bb75c1efa Initialize the IER to 0 in com_attach_subr(). 1997-10-19 20:01:08 +00:00
thorpej
29500b20c0 Make sure the i/o and/or mem addresses aren't wildcarded (i.e. -1) before
using the address in a bus_space_map() call.
1997-10-19 18:56:39 +00:00
fvdl
ab36c13e4b Add 16650 hardware flowcontrol support. Basically PR 3844 from
Dave Huang <khym@bga.com>, with added check for broken early versions
of the 16650, taken from the Linux driver.

This should be extended to use, for example, higher trigger levels for
the bigger 16650 FIFO, and its capability for using a smaller divisor
and thus higher speeds. But this patch is very useful for 16650 users
already.
1997-10-19 14:26:25 +00:00
fvdl
961e39030d Add 16650 hardware flowcontrol support. Basically PR 3844 from
Dave Huang <khym@bga.com>, with added check for broken early versions
of the 16650, taken from the Linux driver.

This should be extended to use, for example, higher trigger levels for
the bigger 16650 FIFO, and its capability for using a smaller divisor
and thus higher speeds. But this patch is very useful for 16650 users
already.
1997-10-19 14:26:16 +00:00
enami
fe0c14e139 Fix typo; hang binary operator at the end of previous line. 1997-10-19 14:10:11 +00:00
enami
5c1050e68f Include locators.h and use symbolic name comes from it. 1997-10-19 14:07:19 +00:00
enami
0afff66463 Include locators.h and use symbolic name comes from it. 1997-10-19 14:04:29 +00:00
enami
4e304b8dd7 Make manufacturer' and product' 32bit wide so that they can contain
both 16bit id values found in card CIS and special value to indicate
that no value found in CIS.  Use that special value for the card that
doesn't have id values.  Test that value in ne2000_match().
1997-10-19 14:00:32 +00:00