Commit Graph

912 Commits

Author SHA1 Message Date
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
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
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
explorer ebf03fd00c Add hooks for entropy collection. Right now, you must place
options RND_COM
in your kernel config file (along with the
	pseudo-device rnd
line) to enable this.  If results are positive, I will make this enabled
by default.
1997-10-19 11:45:33 +00:00
augustss e7029fc0da Make the audio API (almost) SunOS compatible.
The changes is to allow some limited mixer manipulation through
the audio device (instead of the mixer device).
This rendered 4 methods in audio_hw_if unused so garbage collect these.
1997-10-19 07:41:33 +00:00
is 1083b2ab71 Use long long in bitrate tolerance computation, else we'll overflow for
higher than standard-pc chip clocks.
1997-10-18 23:11:45 +00:00
jonathan 8bb9a1ccb2 Protect #ifdef DEBUG printfs with a run-time teson a patchable variable
(epdebug), as per Jason Thorpe's comments.
1997-10-18 00:15:02 +00:00
gwr b4e346f85d Rename cs_pad to cs_spare1 (for future use by Bill Studenmund). 1997-10-17 23:02:37 +00:00
gwr b69fc1a7cf Move the ttychars() call below the if-not-raw block.
(from Bill Studenmund)
1997-10-17 22:55:09 +00:00
enami 801620373d Define width_names[] only when PCICDEBUG is defined. 1997-10-17 09:37:12 +00:00
matt 54a45a47c8 EN1207 definitions 1997-10-17 09:26:58 +00:00
enami 4eef29b72f No need to cast a generic pointer. 1997-10-17 07:59:39 +00:00
is 11446b9b6e TMS320AV110 (mpeg layer 2 decoder chip) and ZBUS Melody board, which uses it.
No optionboards yet for Melody, only audio driver.
MPEG data types for audio.c
1997-10-16 23:58:10 +00:00
thorpej 5345a8bef9 Pull marc-pcmcia branch down to trunk. 1997-10-16 23:21:46 +00:00
thorpej b3620a0f8d Pull marc-pcmcia branch down to trunk. 1997-10-16 23:18:18 +00:00
enami 12e22025c4 Remove interrupt handler cookie from aic_softc. 1997-10-16 22:57:02 +00:00
matt 9d865fc8f0 Fix a misspelling of slave in a comment. 1997-10-16 15:16:34 +00:00
thorpej 1ccf0984c2 "com" driver files copied by repository copy magick to sys/dev/ic, and
adjusted for their new home.
1997-10-16 00:01:00 +00:00
thorpej 9ba1ceb091 Pulldown from marc-pcmcia branch. 1997-10-15 22:00:10 +00:00
thorpej 2939780605 Garbage-collect some old i386 console stuff that is no longer used, and
add a comment about something to be fixed later.
1997-10-15 21:13:36 +00:00
matt 2a5a426a31 Some changes to get the 21142/21143 to work in 10Mb/s mode. 1997-10-15 18:51:00 +00:00
thorpej b1ba3c5488 Pulldown from marc-pcmcia branch: minor tweaks to make this a completely
bus-independent driver, and garbage collect a few unnecessary things
from the softc.
1997-10-15 16:54:39 +00:00
gwr 44365b6619 Bring back the optimized ether_cmp() that was lost when the
LLADDR() changes went in.  Mainly relevant on the Sun3/50,
where LANCE_REVC_BUG has to be defined.  Tested on sparc.
1997-10-15 16:34:10 +00:00
explorer 66f8a19d70 back out previous change (committed in error) 1997-10-15 06:08:27 +00:00
explorer f9370ddc7a Add and/or update rnd_*() hooks 1997-10-15 05:55:13 +00:00
explorer 1d74fdb6a3 minor formatting change 1997-10-15 05:48:56 +00:00
enami 4321b83ee2 Pull following change from marc-pcmcia branch:
> revision 1.1.2.4
> date: 1997/10/15 01:01:57;  author: enami;  state: Exp;  lines: +10 -8
> Use bus_space_write_1() directly instead of NIC_PUT(), since
> - same io port is accessed by bus_space_read_1() in the same function, and
> - can bypass sc_reg_map[].
1997-10-15 01:15:51 +00:00
thorpej 457454d81f Pull down from marc-pcmcia branch: Common code used by NE2000 and compatible
ethernet cards.
1997-10-14 22:54:09 +00:00
thorpej 768cd3034d Pull down from marc-pcmcia branch:
Add support for power management.
1997-10-14 21:41:00 +00:00
thorpej 10708da893 Pull down from marc-pcmcia branch:
Minor tweaks to deal with PCMCIA differences, and support for power
management.
1997-10-14 21:28:37 +00:00
is 59129515bb Finalize the isa/lpt.c split:
The isa attachment code is in isa/lpt_isa.c now, which attaches to the
already created ic/lpt* files.
You don't need to change your config files, but you need to re-"config" if
using lpt at isa.
XXX The "lpt" device definition should be in sys/conf/files instead, but to
my knowledge, there are some ports which have private copies of lpt, and would
choke on that. No need to make people unhappy 7 days before release branching.
1997-10-14 15:50:15 +00:00
explorer 80513cb5ae o Make usage of /dev/random dependant on
pseudo-device   rnd                     # /dev/random and in-kernel generator
  in config files.

o Add declaration to all architectures.

o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include
  that this code is derived in part from Ted Tyso's linux code.
1997-10-13 00:46:08 +00:00
mycroft 3081c6f8cf AudioC[A-Z] -> AudioC[a-z]
AudioElinear -> AudioEslinear
1997-10-11 12:43:51 +00:00
mycroft b551325998 AudioElinear -> AudioEslinear 1997-10-11 12:36:04 +00:00
mycroft 2d019e5efd AudioC[A-Z] -> AudioC[a-z] 1997-10-11 11:28:49 +00:00
explorer b5feb41072 Add hooks to insert timing info into the random system 1997-10-10 01:09:03 +00:00
jtc d6ae2cd7fd Fix tipo inherited from old version of TNF copyright template. 1997-10-09 08:03:42 +00:00
jtk 827918e4ab fix warnings when -DAHC_DEBUG 1997-10-09 02:17:36 +00:00
christos 64ff55911c From Enami Tsugutomo: Busify and split the aic6360 driver. 1997-10-06 19:49:17 +00:00
augustss 72251c67c9 Driver for the Interwave audio chip used in the GUS PnP sound card. 1997-10-06 16:03:34 +00:00
thorpej 616e0b7e33 Copyright assigned to The NetBSD Foundation. 1997-10-05 18:26:38 +00:00
gwr 4371d4ef78 Remove the while loop from zsc_intr_hard(). It caused problems on
some machines, and those that really want to can just call this
function in a loop until it returns zero.
1997-10-04 22:30:30 +00:00
mhitch d2f48f6b3e Add yet another chip variant: FAS216, used by the amiga Phase5 SCSI boards. 1997-10-04 03:59:00 +00:00
enami 7376003aeb Cosmetic change; delete one space character. 1997-10-03 16:40:35 +00:00
mikel 20cf0e1cc1 fix missing com_kgdb_attached() argdecl, from Michael C. Richardson in PR 4196 1997-10-03 06:11:35 +00:00
christos a2512e8ec5 Add TIOCM{BI{C,S},{S,G}ET} from revision 1.98. As Charles says these
interfaces are slightly broken and should be obsoleted, but some programs
are using them and also they are useful for debugging.
1997-09-30 21:51:43 +00:00
chuck d3a7613827 midway update:
[1] add EN_ENIDMAFIX - the byte-aligner on the ENI version of the card
	appears to lose under heavy load so avoid using it.  see comment
	in midway.c for full details.

	note that the Adaptec version of the card works properly under
	load.

	detected by Kenjiro Cho <kjc@csl.sony.co.jp> [confirmed by chuck]
	fix by chuck & kjc

[2] update some freebsd specific code [from kjc]

[3] for circular buffers: ensure there is always one free slot so
	that we can easily tell the difference between a full and
	empty list.   re-structure a few loops to reflect this.
	fixes a problem with mbufs being free'd while still in DMA,
	and makes drive a bit more robust.

	detected and fixed by kjc
1997-09-29 17:40:38 +00:00
mjacob 6716542383 A little cleanup and print more error messages. 1997-09-29 01:41:30 +00:00
is 3ad599d701 First part of splitting lpt.c, and the NetBSD/Amiga "supio" frontend. Needs
a bit more work to allow an ISA frontend.
1997-09-27 22:44:11 +00:00
bouyer a2f2e87677 Return the rigth value in the interrupt handler. This change the semantic
of wdc_atapi_intr, so we check for ITSDONE rather than the return value for
a pooled command.
1997-09-24 17:00:55 +00:00
enami 82625dc61e Cosmetic Changes; make coding style closer to other part of this file.
(This version is identical with version 1.109 except whitespace changes.)
1997-09-19 01:17:37 +00:00
is 718fb97e11 Support for the upcoming NetBSD/Amiga Hypercom driver family:
* support chip clocks != COM_FREQ, by introducing sc_frequency (for the
  mainline code) and adding a frequency parameter right after the rate
  parameter to comcnattach() and com_kgdb_attach().
- Make com_isa and com_multi initialize sc_frequency to COM_FREQ.
- Make i386/machdep.c and alpha/dec_xxx.c call com*attach() with the freq.
  parameter.
* supio_attach_args get two more fields: a sc_ipl and a sc_arg, both ints.
- com_supio uses the first for interupt establishment (all childs will, as
  soon as they exist) and the 2nd for sc_frequency.
- drsupio passes sc_ipl alway as 5, and for the "com"s, sc_arg as 16*115200
- hyper will pass sc_ipl as 6, and sc_arg as 16 * 460800
1997-09-16 20:34:23 +00:00
mjacob f762783999 Wierd- well, what isn't with devices? Anyway, the type code for the ISP
chip on AlphaStation 500 is 2- which wasn't handled, and bad things happened
because the default case wasn't sane. Both are corrected now.
1997-09-13 05:18:30 +00:00
mjacob acd1b90617 Some formatting cleanup, and for the ISP2100, the flags hadn't being set
quite right, but things worked okay anyhow.
1997-09-10 02:18:19 +00:00
mjacob 3772f94daf (for the 2100) The flags weren't set in the right place, but things worked
anyway. Wierd. Also, a bit of cleanup.
1997-09-10 02:17:22 +00:00
mycroft fa0b187898 Make `hashkey' unsigned. 1997-09-09 18:56:15 +00:00
scottr 1acea33632 Fix a couple of field references missed during the scsipi merge. 1997-09-05 17:57:19 +00:00
bouyer 702b60b0c1 Add a map to wdc_softc to track the already known devices to prevent them to
be probed several times. This fixes the "ATAPI CD probed as wd drive" problem.
Thanks to Geoff Wing <mason@primenet.com.au> for testing this on his hardware.
1997-09-03 07:57:51 +00:00
mikel 06ecebc8c0 add missing argument to LPRINTF() declaration; from Geoff Wing in PR 4072.
I also made inclusion of LPRINTF() dependent solely on the symbol
  LPTDEBUG, initialized lptdebug variable to 0 instead of 1, and
  matched arguments to format strings in LPRINTF() calls.
1997-09-02 01:37:19 +00:00
thorpej e531f18c8b Pull the SMC91Cxx single-chip Ethernet driver core down from the marc-pcmcia
branch.  It is also needed by and ISA front-end.
1997-09-02 00:10:55 +00:00
pk d4afe94f7c Finish work-around for the re-select bug on ESP100s by dealing with
"illegal command" interrupt apparently caused by writing to the chip
while a re-selection is in progress.
1997-08-31 23:09:58 +00:00
bouyer 9f3695bff9 Change an ATAPI_DEBUG2->ATAPI_DEBUG. This debug message is needed when
looking what's the autoconfig do on strange harware, and ATAPI_DEBUG2 is
for debuging data transfers (and is really verbose once the machine has booted
from an IDE disk).
1997-08-28 11:05:01 +00:00
augustss a79408b6c7 Change match routine to use "audio" as the ROM name. 1997-08-27 22:42:23 +00:00
augustss c58d387b0f Fix prototype for amd7930_set_params. 1997-08-27 22:33:59 +00:00
is 25c05417ed Make this work with __GENERIC_SOFT_INTERRUPTS. 1997-08-27 18:00:13 +00:00
bouyer 6f3bab1f59 Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
1997-08-27 11:22:52 +00:00
augustss 6616d47838 - Change audio_hw_if a little: set_param now sets the play and record modes
at the same time instead by using two different calls.  This enables
  it to check more easily if the combined mode is all right.
- Improve the error checking in audio.c.
- Add a new audio property, AUDIO_PROP_INDEPENDENT, show if the
  play and record settings are independent.
- Fix some buglets in audio.c.
1997-08-24 22:31:23 +00:00
scottr 27f30774af Conditionalize DEBUG printf on dp8390_debug. Pointed out by Jonathan
Stone.
1997-08-24 15:22:28 +00:00
drochner 8188be767e Check for KGDB port == console port in a consistent way. 1997-08-24 09:40:16 +00:00
drochner d36e668737 clean up the serial console / KGDB attachment:
-put all early console / KGDB initialization into 1 exported function
  (com_*_attach()) each, dont use global variables anymore
-use the passed tcflag_t for port settings instead of hardwiring 8N1
-at autoconfiguration attach time, decide if the attaching device is
  already console / KGDB by comparing bus tag and base addr (cgd's wish)
-export a function "com_is_console()" for use by driver frontends for
  this comparision
-delay setting of cn_tab->cn_dev until autoconfiguration attach
  to get the minor number right
-delete unused comcnprobe() and comcninit()
1997-08-23 14:01:32 +00:00
augustss 332ad95e76 Change the MI audio driver so it attaches to the MD driver in the
normal way.  This requires adding a line to the config files to
get audio to work again.
1997-08-19 23:49:33 +00:00
drochner 570688abef Bring back the "comconsattached" flag. It is necessary for starred
com devices (on non "__BROKEN_INDIRECT_CONFIG" ISA).
1997-08-16 08:33:08 +00:00
mjacob 50d4bdf35c Merge foo. 1997-08-16 00:56:52 +00:00
mjacob 14a7730c16 *Major* differences to support the Qlogic 2100 (Fibre Channel PCI), as well
as being able to do microdifferentiation of the ISP SCSI chip; a couple of
bug fixes, and the beginnings of some watchdog support.
1997-08-16 00:22:11 +00:00
mjacob 7540ed1699 Differences necessary to support the Qlogic 2100 (Fibre Channel PCI
Card)
1997-08-16 00:20:28 +00:00
mjacob 49d40727ff Defines and structures necessary to support the Qlogic 2100 (Fibre Channel
PCI card); Some additional defines to try and manage various flavors of
the SCSI host adapters (parameters for various SYNC modes).
1997-08-16 00:18:36 +00:00
mjacob 2c7696de16 Additional defines and structures necessary to support the Qlogic ISP 2100
Fibre Channel PCI card.
1997-08-16 00:16:40 +00:00
drochner b426bd9be3 -Export variables needed for system console initialization.
-Enable line break interrupt for DDB on a serial console.
-Share initialization code between DDB and KGDB.
1997-08-14 16:15:15 +00:00
drochner d5998780c0 KGDB improvements:
-Separate KGDB port initialization and softc related stuff to allow
 KGDB to be attached in early system startup, before autoconfiguration.
-Export the variables needed by md code to hand-craft bus tag/handle.
-Fix initialization to enable interrupt by line break.
-Call DDB/KGDB at line break (move DDB call from the softirq handler
 to the hard handler because it should work without a tty attached too).
1997-08-12 17:25:43 +00:00
scottr 6b1b87f213 spltty() does not drop the SPL; use splx() instead. 1997-08-07 19:22:45 +00:00
fair 623ad5f899 trivial change for PR#3815 1997-08-04 08:16:49 +00:00
pk cf02802b04 Add `nop' commands to chain with the `xmit's. 1997-08-01 20:33:03 +00:00
pk 4fea3b463a Provide an alternative method of transmitting frames that avoids sending
a command to the 82586 for every frame to be transmitted. Instead, a
single command sets off the execution of a chain of commands consisting
of alternate XMITs and NO-OPs, where the link fields in the NO-OPs are
set to loop back onto themselves until the next XMIT is ready to go.
This trick found on a Linux WEB page.

All this induces reasonable transmission performance in my old multibus
adapter. The receiver performance is still abysmal..
1997-08-01 20:04:40 +00:00
augustss 658656bb99 Audio changes:
- Change the way attach and open works to allow multiple audio
	  devices.
	- Split the mulaw.c file into two to avoid dragging in mulaw
	  convertsion when they are not needed.  Add 16 bit alaw/mulaw tables.
	- Change the way audio properties are gotten.
	- Recognize more versions os SoundBlaster.
1997-07-31 22:33:08 +00:00
matt f80c1355fe The bus-independent parts needed to support the DEC
EtherWORKS III cards (LEMAC): the DE203/DE204/DE205
1997-07-31 21:54:58 +00:00
jonathan 2f459bf1d8 Initialize local variable 'j' in eeprombusy() to pacify gcc -O (not -O2)
on i386.
1997-07-30 18:26:23 +00:00
pk c589871dc6 Arrange to turn off future sync-mode negotiation after experiencing a
timeout while in a data phase.

Replace XS_STUFFUP with XS_TIMEOUT, so we get a second chance after
recovering.
1997-07-30 12:01:53 +00:00
pk 09109c38a1 Maintain a copy of the configuration flags in our `softc'. 1997-07-30 11:48:32 +00:00
pk 2c3cf06107 If state is NCR_CLEANING, do not schedule commands until reset is complete. 1997-07-29 22:26:01 +00:00
pk 7250d56f4a Some more cleanup and synchronization with ISA version.
Also make a start at using bus_* macros (just bus_barrier() for now).
1997-07-29 20:24:46 +00:00
pk 8c535d8cfe No need to send two copies to the bpf tap when sending. 1997-07-28 22:35:49 +00:00
pk a07a88cdcb Bring over assorted changes applied to the ISA ie driver over time.
Fix some inaccuracies in the ring-scan code.
1997-07-28 22:26:12 +00:00
augustss a63034762b Audio: Remove the machine dependant code I put in audio.c by mistake.
This adds another method to audio_hw_if.  Also remove a field from
audio_hw_if that was not read-only.
1997-07-28 20:56:05 +00:00
mjacob 002c218565 Kudos and thanks to Mark Brinicombe (mark@causality.com): bug in waiting for
RISC_INT to be set after stuffing a mailbox.
1997-07-28 18:56:36 +00:00
augustss d58bc6796f audio: Simplify handling of AUDIO_SETFD and committing of encoding mode. 1997-07-27 23:51:48 +00:00
augustss 9745684ebe Changes to the sudio system:
- It is now possible to handle devices that want "looping" DMA,
    e.g. the SoundBlaster correctly.  The WSS and SB drivers use this.
    To do this several new methods were introduced in audio_hw_if.
  - Different silence handling (forced by previous change).
  - The audio driver can now be mmap()-ed, but due to problems in
    the VM system only for writing for now.
  - The OSS (Linux) audio emulation takes advantage of some of the
    new features.
1997-07-27 01:16:32 +00:00
pk 4459db6815 Kill a bogon in timeout loop. 1997-07-23 12:00:12 +00:00
pk 32aa713950 First cut at a MI i82586 chip driver. 1997-07-22 23:31:58 +00:00
pk 1e39126631 Relax `DMA terminal count' check to exclude any selection state to avoid
triggering the message when merely probing targets.
1997-07-22 18:55:20 +00:00
pk e1616d211e While processing DISCONNECTs, take note of the transfer count reaching
zero. We use this later when the COMPLETE message comes in to set the
final residual count to zero. The flag is reset if the target resumes
a data phase. This obsoletes the `AUTOSAVE' quirk (for this driver).
Also, avoid overwriting the residual count if a SENSE was appended to
the current transaction.
1997-07-20 16:46:17 +00:00
pk a4ae679706 Declare `ncr53c9x_dmaselect'. 1997-07-20 16:24:00 +00:00
pk 2b8fb4cacd Propagate SCSI status byte back to higher levels. 1997-07-19 21:54:16 +00:00
jtk 37f9c6bd88 use locator defines in "locators.h" to index cf_loc[] 1997-07-17 01:17:45 +00:00
cgd 5c2a76b304 fix static inline functions' prototypes so they're correctly marked
'inline' as well as static.  mark prototypes for static inline functions
as possibly unused (with __attribute__ ((unused))), to avoid generating
warnings when compiling without optimization but with most ports'
default warning flags.  Clean up prototype list spacing, and make it more
consistent.
1997-07-07 22:52:17 +00:00
is 3040e9247c * Command code definitions for the Dallas Semiconductor series of chips which
connect to their 1-wire bus like the DS2404 "EconoRAM Time Chip"
- and -
* Interface function definitions for this kind of chips. Currently only
low-level byte_read and _write, implenented as inline functions.
This functions take a struct ds_handle * (also defined here), which contains
pointers to bit-read/write and reset functions.
Eventually, prototypes for memory-access functions should go here, and the
1-wire bus should be made a BSD auto-configuration bus.
1997-07-06 22:22:01 +00:00
thorpej 2252d1317b Add support for remote serial KGDB. 1997-07-05 20:52:40 +00:00
thorpej 2eaa922149 Do not print "esp0: !TC [intr ...]" messages if:
(a) The interrupt is a RESEL interrupt, and
	(b) our state is SELECTING.
This condition can occur in perfectly normal operation if we are using
DMA to select the target and we are interrupted by another target
reselecting us.  Per discussion with Paul Krannenburg.
1997-06-26 00:27:25 +00:00
hannken 5d4f988920 Adjust the number of ccbs allocated during initialization.
Every ccb locks 64k of memory for dma buffers.
Instead of AHA_CCB_MAX ccbs using 1MByte only sc_link.openings ccbs
per device are allocated. Thus we now use only 128KByte per device present.
1997-06-25 13:30:59 +00:00
mjacob 68d184dc19 Hmm- seriously funny and sad bug: you need to directly establish the
clock rate for this board on Alpha/PCI systems. Under x86/PCI, the
board f/w will correctly tell you "I'm running at 60Mhz", so the code
that preserved that across a board reset (which would drop the chip
back to 40Mhz) worked fine. On the 8200, the chip was saying "I'm 40Mhz"-
which wasn't true. This turned out to be okay as long as you didn't have
any FAST or UltraFast targets- In fact, setting the chip to 40Mhz allowed
you to run up to 8Mhz SCSI. Unfortunately you die bigtime on the devices
that go faster than that. The fix here is to only use what the chip tells
you the clock rate is in the cases you don't really know (sbus is the
only case where this could be different, although with 66Mhz PCI coming up,
this may change).
1997-06-22 19:57:06 +00:00
cgd 57f46a9e4a fix several bugs pointed out by Jarkko Torppa <torppa@cute.fi> in PR 3753:
(1) fix a printf format (%x to print int, not %lx).
(2) fix probe of 4th chip/16th channel (used to tell whether or not the
    board is a 16- or 32-port board) by removing an incorrect offset so
    that the code matched its comments. (!!!)
(3) fix storage of chip number in per-channel structure so that it actually
    stores the chip number, rather than the chip offset.  This allows the
    driver to work with more than the first four channels (i.e. with chips
    other than chip number 0, which happens to have an offset of zero). (!!!)
1997-06-17 05:38:10 +00:00
cgd 6b78891053 the port number is the low 5 bits of the minor. That means that it should
be masked with 0x1f (the low 5 bits), rather than 0x0f (the low four bits).
Pointed out by Jarkko Torppa <torppa@cute.fi> in PR 3753.
1997-06-17 05:32:46 +00:00
mycroft 09cad93ce8 Implement a better backpressure mechanism so that data is collected
in the driver's buffer if the tty buffer is full.  If the driver's buffer
becomes full, turn off receive interrupts until it drains a bit.
1997-06-15 11:18:59 +00:00
thorpej da1b5f9021 It's perfectly normal for an older (e.g. pre SCSI-2) device to send
MESSAGE_REJECT in response to SDTR or WDTR.  Because of this, the
printfs that indicate refusal of sync/wide negotiation are unneeded
in normal operation.  In the __NetBSD__ case, disable them by default.
They, like the other extra-verbose ahc driver boot messages, may be
reenabled with "options DEBUG".  The behavior in the !__NetBSD__ case
is unchanged.
1997-06-09 01:51:03 +00:00
thorpej 6bf33a7fe3 Merge pdq-970604 update. 1997-06-08 19:47:13 +00:00
thorpej cd4fc920b0 Put back Matt Thomas's revision ID, per PR 3723, submitted by
enami tsugutomo <enami@ba2.so-net.or.jp>.
1997-06-08 18:44:02 +00:00
thorpej b937ee4745 - Simplify mailbox DMA setup, allowing the front-ends to allocate the
mailbox storage in a way they see fit.
- Define macros to index and size the request and result queue entries.
1997-06-08 06:31:52 +00:00
thorpej fbc0df0a1a Pull thorpej-bus-dma branch into mainline. 1997-06-06 23:30:02 +00:00
mellon 4f4f344f71 Clean up conflicts during merge (thomas de-970603) 1997-06-06 23:14:19 +00:00
mjacob 62b3daa7d2 Finally found the cause of that nagging 'lost command' (for the first
command) bug: the initial response queue index is take from mbox 5,
not mbox 4, and mbox 5 wasn't getting initialized to zero.
1997-06-01 23:42:04 +00:00
mycroft cf09974361 Add DMA37MD_DEMAND and DMA37MD_BLOCK. 1997-05-29 21:42:28 +00:00
mycroft 6bfd7b7d45 Remove unneeded call to comstop() in commsrint(). This fixes a problem
where the driver would sometimes retransmit bytes.
1997-05-26 14:54:46 +00:00
pk c6a933f6ea Remove all `bustype' arguments from map[io]dev() and REG2PHYS(). 1997-05-24 20:15:59 +00:00
thorpej 97c6a307e3 Where _is_ that brick when you need it?! 1997-05-24 03:45:40 +00:00
mrg ac74fdbb9c KNF. 1997-05-19 04:01:16 +00:00
pk 990857fe21 Mods for ESP406/FAS408 SCSI driver (from Eric S. Hvozda; PR#3581) 1997-05-17 20:56:55 +00:00
pk 72d640a497 Tweak gain curve (from nsayer@kfu.com; PR#2909) 1997-05-15 22:32:56 +00:00
thorpej 151926da32 Make sure we're in register window 0 before attempting EEPROM access,
pointed out by Matthias Drochner.
1997-05-14 00:22:00 +00:00
jonathan fac2cd30a0 Set TX-available threshhold in epinit() just before enabling interrupts,
so TX_AVAIL intrs are enabled for root-on-NFS kernels.
Tested (and required) on 3c595TX with root-on-NFS kernel booted from floppy.
1997-05-11 05:47:08 +00:00
augustss e63a553175 Change the interface between high and lowlevel audio drivers again:
Set the encoding parameters slightly differently.
Remove the SW encoding/decodinf functions from this interface
and move them to the audio_parameter struct; this is both more efficient
and flexible.
1997-05-09 22:16:27 +00:00
augustss 07cf0ea21d Oops, forgot this in previous commit. 1997-05-07 20:23:53 +00:00
augustss c4a52794f1 Convert to new orthogonal audio encoding scheme and implement
some of the new encodings.  The change to ioctl AUDIO_GETENC is
NOT backwards compatible.
1997-05-07 18:51:31 +00:00
jeremy 3aa6ce0369 Moved from arch/sun3/sun3 and changed according to implied references
in recent commits to sun3/clock.c and sun3x/clock.c by Gordon Ross.
1997-05-02 06:15:28 +00:00
pk 31b943b8ac Preliminary support for ESP406 and FAS408 variants (from Eric Hvodza; PR#3559) 1997-05-01 22:16:24 +00:00
scottr cd3abdf098 Fix typo in last change. 1997-04-30 19:16:23 +00:00
scottr c0d7fd03ae Remove the use16bit softc field, replacing the functionality with dcr_reg.
This allows the front end to override the default DCR (byte-wide DMA,
x86 byte order, 8-byte FIFO) with different transfer size, byte order, DMA
parameters, and FIFO threshhold.  If the loopback select bit is not set for
normal operation, the default is used instead.

Inspired by thoughts from Bernd Ernesti.
1997-04-30 18:09:14 +00:00
augustss 526ef2f618 Change the interface between the high and low level audio drivers
so that all audio encoding parameters are set at once.  This simplifies
the interface and make error checking easier.
1997-04-29 21:01:33 +00:00
scottr ad24724cbc Machine-independent driver for DP8390/WD83C690-based Ethernet controller.
Derived from the ISA if_ed driver and the mac68k if_ae driver.
1997-04-29 04:32:07 +00:00
mycroft 103c7d360d Oops; forgot to GC the last mbuf allocated when out of clusters. 1997-04-28 17:03:58 +00:00
mjacob ac6fbba3ac On alpha size_t is not an int, ergo last argument to dma setup glue
function can't be a pointer to an int.
1997-04-28 15:43:47 +00:00
pk 94eaf1bb04 Implement target selection using DMA.
To allow a period of testing the variable `ncr53c9x_dmaselect' is used to
enable this feature (default is 0, i.e. the old behaviour).
1997-04-27 22:08:51 +00:00
jonathan dbf4f7b71f * Tidy PHY [sic] selection code in epsetmedia().
* epinit() had both explicit xcvr selection for 3c589 and a call
  to epsetmedia().  The first is redundant; delete it, and EP_COAX_DEFAULT.

* Update comments to reflect 3c589 and 3c509B fixes.  Fix typos.
1997-04-27 21:09:56 +00:00
veego bf37fc50d0 Rename the PROD_ID to PROD_ID_3C509 to make it possible to add other
product id's, e.g. for the 3c515.
1997-04-27 09:42:34 +00:00
veego a2e1f15ba7 - Replace the check for EP_BUS_PCMCIA in epsetmedia with a check for
EP_CHIPSET_3C509 and change it a bit so it works now with the 3c509
  and still works with the 3c589.
- KNF
1997-04-27 09:38:50 +00:00
jonathan 593e5dd8e1 Pad of first mbuf in chain, even if it's a cluster (pr 3536).
Garbage-collect padding of header mbuf.
1997-04-25 20:14:37 +00:00
mycroft 91a808523c Fix typo in previous. 1997-04-24 08:05:13 +00:00
mycroft 68258fba20 Do not force the initial part of a packet into a separate mbuf. 1997-04-24 02:25:36 +00:00
mycroft 581399fc4c If we fail to allocate a cluster to hold a large packet, simply
drop it rather than using a chain of tiny mbufs.
1997-04-24 02:24:04 +00:00
cjs 9be8b65e23 Smaller, cleaner code for aligning struct ip on receipt. 1997-04-23 08:15:03 +00:00
cjs 5c8bf48817 Align struct ip on incoming packets for all types of cards, not just
32-bit ones.
1997-04-22 21:19:11 +00:00
cgd dcd9b58489 don't bother keeping around the i/o tag. It's useless by itself, and
without other significant changes to this driver wouldn't be particularly
useful to keep around permanently anyway.
1997-04-13 20:02:11 +00:00
cgd 04e7505aaa clean up an autoconfiguration printf. Much more should be done 1997-04-13 20:00:29 +00:00
thorpej c0c810cbe0 Initialize the scsi_link before calling bha_init(), since that is how
we check for "wide controller" now.
1997-04-11 01:34:25 +00:00
cgd db0f072019 clean these up (mostly rename bus_space_{tag,handle}_t variables) so that
this code makes equal sense for memory and I/O space, prefer to map
the PCI front end via memory space (conditionalized on a patchable kernel
variable), and do a bit of other random NetBSD-specific cleanup.  (These
changes were sent to Justin Gibbs on March 28.)
1997-04-10 02:48:38 +00:00
jonathan f11d74c508 Remove IFF_LINK[01] "connector" support.
Add if_media support.   Still missing a software autosense FSM.
1997-04-07 23:49:47 +00:00
scottr d7a6762ae8 Fix a debugging printf() format. 1997-04-07 16:28:26 +00:00
mjacob 6d4d1f8852 Okay, Charles convinced me that XS_DRIVER_STUFFUP is better than XS_SELTIMEOUT. 1997-04-05 22:36:56 +00:00
mjacob ddc693c299 A) Attempt to get clock rate from ISP chip prior to bashing it over the head
in reset. If none there, try and get from the bus/platform specific code.
If a nonzero value for either, set the clock rate. This is why the PCI
card versions weren't working- they need to be set at 60MHZ, rather than
the default 40MHZ (which worked fine for the internal ISP chips on the
Alpha 8X00).

B) If a isp_poll returns failure (command never completed) to the caller
and no error is set in the xs struct, set XS_SELTIMEOUT. And then call...

C) Added isp_lostcmd function to try and ask the ISP chip about it's current
state as well as the state of commands for a particular target/lun. This is
going along to try and figure out why the very first command to the ISP always
seems to get swallowed up.
1997-04-05 02:53:22 +00:00
mjacob 8f28eaab67 Need a bus/platform specific clock speed variable. 1997-04-05 02:48:36 +00:00
pk c59dd873f4 Remove alignment requirement of ether_cmp(): turn it into a series of
byte comparisons. Compare the ethernet addresses backwards on the
assumption that address number byte 6 has the most random distribution,
so packets not for us spend the least time in here.
1997-04-04 22:35:36 +00:00
mycroft 9448a01404 New version of com driver. Uses a different queueing mechanism and a split
hardware/software interrupt mechanism for improved performance.  Many odd
protocols bugs also fixed.
1997-04-04 20:56:34 +00:00
mycroft 232ade1b2b comdefaultrate -> comconsrate
comconsbah -> comconsioh
Only use comconsrate on the console.
1997-04-04 20:49:49 +00:00
gwr 1614a8ad2e Always schedule a timeout before the first occasion where
we return from the driver expecting to come back due to an
interrupt, because the interrupt might not happen...
Do the untimeout in ncr53c9x_done instead of just before
almost every call to ncr53c9x_done as was done previously.
Make ncr53c9x_sense schedule its own timeout for the new
command it is starting (request sense), separate from the
timeout for the command that just completed.
1997-04-01 22:10:04 +00:00
gwr 50b0bafbbb Allow separate control over the "per-target trace" feature
via the NCR53C9X_DEBUG value.  Add some padding for m68k.
1997-04-01 22:08:18 +00:00
jonathan c1f72bba37 Add ifmedia hooks: include <ifmedia.h> and add sc_media to softc. 1997-03-30 22:47:05 +00:00
mycroft 11117540d2 Use a temporary data structure for holding probe information, rather than a
full softc.
1997-03-29 02:32:30 +00:00
mycroft 080350dc0d Use a temporary data structure for holding probe information, rather than a
full softc.
1997-03-28 23:47:08 +00:00
veego 7ae296c7de - new hardware reset hook, mainly for PCnet-ISA cards (79c960)
- new MD variable: sc_initmodemedia, 79c960 cards can select
  between two ports, but this needs to be done in the MI init mode page
- new defines for PCnet-ISA cards (79c960)
1997-03-27 21:01:50 +00:00
veego 5aa9546783 - new hardware reset hook, mainly for PCnet-ISA cards (79c960)
- new MD variable: sc_initmodemedia, 79c960 cards can select
  between two ports, but this needs to be done in the MI init mode page
- new defines for PCnet-ISA cards (79c960)
1997-03-27 21:01:49 +00:00
veego a715085e43 - new hardware reset hook, mainly for PCnet-ISA cards (79c960)
- new MD variable: sc_initmodemedia, 79c960 cards can select
  between two ports, but this needs to be done in the MI init mode page
- new defines for PCnet-ISA cards (79c960)
1997-03-27 21:01:47 +00:00
scottr b316767c92 Work around an ambiguity in the SCSI spec. Some implementations,
particularly older ones, don't do a SAVE DATA POINTER before disconnecting.
When the driver reconnects, it does an implicit RESTORE POINTERS, and
restores the data pointer from *before* the last transfer.  If the driver
calculates the residual using the data pointer and doesn't account for
this, the residual will be wrong.

What we do is test for the SDEV_AUTOSAVE quirk when we see a disconnect
message, falling through to do a SAVE DATA POINTER if the quirk applies
to this target.

The workaround was suggested by Mycroft, who also provided the explanation
of the problem.  Actual code was (mostly) ripped off from the 53C9x driver.
1997-03-27 07:30:40 +00:00
gwr 8be7d1ef9e No longer need the hack that forced SCSI_POLL when cold. 1997-03-27 01:16:01 +00:00
pk c5d5c54038 Add workaround for the "extraneous bytes after re-select" problem that
ESP100 chips may exhibit.
1997-03-27 00:29:57 +00:00
thorpej 66908db327 Resolve conflicts from merge. 1997-03-26 02:08:07 +00:00
gwr 5c88d15269 When cold!=0 force SCSI_POLL (otherwise swapconf will hang) 1997-03-24 17:16:45 +00:00
thorpej 4c03c2945d Resolve conflicts from merge. 1997-03-24 00:35:02 +00:00
cgd da14b3d856 clean up isp_poll() so that it works more correctly. (Modeled on the version
in the BusLogic driver.)
1997-03-23 00:50:07 +00:00
chuck 63c14f2d75 MAJOR CHANGES: [contributed by Chuck Cranor <chuck@ccrc.wustl.edu> and
Anne Hutton <hutton@isi.edu>]:
   - add support for Adaptec 155 PCI ATM cards (e.g. ANA-5940)
          - add sc->is_adaptec to handle differences between cards.
          - break out MID_MK_TXQ/MID_MK_RXQ seperate macros to handle
                  the new Adaptec format TXQ/RXQ.
          - adjust en_dqneed to return 1 on ADP (since the Adaptec can
                  DMA anything in one DRQ/DTQ!)
          - add hook for a bus specific reset function (adaptec has
                  a seperate reset register that needs to be hit when
                  resettting the midway).
          - adjust DMA test to not worry about burst sizes on the
                  adaptec (since it handles it all for us!) and to handle
                  the new DTQ/DRQ format.
          - add Adaptec DMA support to en_txlaunch() and en_service()


BUG FIXES:
   - fixed receiver panic under heavy load ("lost mbuf in slot 0!").
          when the reassembly buffer overflows, the T-bit is set in
          the RDB and the data field is empty.  en_service() sets up
          a 4-byte (RDB size) dummy DMA without IF_ENQUEUE.  but the
          recv intr handling in en_intr() always does IF_DEQUEUE.
          as a result, a successive recv intr loses its mbuf and
          leads to a panic.  the solution is to only IF_DEQUEUE if
          the interrupt has non-zero length (indicating that there
          is an mbuf to get).   in order for this to work, EN_DQ_MK
          must always be non-zero.   we do this by or'ing in an unused
          bit (0x80000).
                  reported by: Kenjiro Cho <kjc@csl.sony.co.jp>

   - fix setting of transmit channel when txspeed[] is non-zero
          (e.g. traffic shaping).    the old scheme didn't work
          properly (it allowed the same VCI to use multiple tx channels
          thus defeating the txspeed[] parameter).   the new scheme
          statically assigns a VC to a channel when txspeed[] is set.
          [note that the code to set txspeed[] isn't in the driver right
          now since a MI interface to do this hasn't been made yet]
          we add sc->txvc2slot[] and sc->txslot[n].nref for this.
                  reported by: Kenjiro Cho <kjc@csl.sony.co.jp>,
                                  Milind M Buddihikot <milind@ccrc.wustl.edu>,
                                  Dong Lin <dong@eecs.harvard.edu>

   - when doing SRAM copies, be sure to round up the length to the next
          largest word (otherwise the driver will try to do a byte clean
          up DMA and then get an ID error interrupt).


MINOR CLEANUPS:
   - clean up loops in DMA test
                  contributed by: Kenjiro Cho <kjc@csl.sony.co.jp>

   - restructure and cleanup of en_read/en_write macros/inlines

   - clean up some byte ordering stuff so that we are consistant throughout
          the driver
1997-03-20 21:34:42 +00:00
mycroft 7a55cafeeb Implement set_format. 1997-03-20 16:51:38 +00:00
mikel 80a8a81608 normalize off-by-four ad1848 register offsets. 1997-03-19 06:45:21 +00:00
is bde018355f Signed shifts are evil.
Thanks to Michael Smith for reporting, Jason Thorpe for pointing to the
report, doing a quick workaround which pointed me to the right code part and
for testing the final fix.
1997-03-17 18:29:56 +00:00
thorpej 0398318515 Resolve conflicts from merge. 1997-03-17 03:44:49 +00:00
thorpej 80e6765189 - Add support for media selection via if_media. If the front-end
does not supply media types, default to the "manual" type.
- Clean up the ETHER_CMP stuff slightly.
- Keep track of our carrier status, for media status requests.
1997-03-17 03:14:03 +00:00
is 07b064e02e New ARP system, supports IPv4 over any hardware link.
Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.

For the detailed change history, look at the commit log entries for
the is-newarp branch.
1997-03-15 18:09:08 +00:00
mikel 8147d1718f fix various AD1848/PSS misfeatures; from Jason Baker in PR kern/2045.
also did some misc cleanup of my own.
1997-03-13 08:34:49 +00:00
mycroft 919efaeb60 Make the microcode table const. 1997-03-13 03:33:03 +00:00
mycroft ac3b8b13b7 Don't share the silence block between devices. Make silence filling work for
more encodings, and make it device-independent.  From Lennart Augustsson, in
PR kern/3305.
1997-03-13 02:19:32 +00:00
cgd 4c654c0acf fixes from Matt Jacob so that these can compile and run on the Alpha.
(aic7xxx has been tested and works on the Alpha, bha has not yet been
tested on thne Alpha.)
1997-03-13 00:38:48 +00:00
cgd cf26d31ad2 NetBSD RCS ID tweaks, a few comment block tweaks. Also, make copyright
notices consistent (per Matt Jacob).
1997-03-12 21:06:41 +00:00
cgd 099e30a322 ISP 10x0 driver from Matthew Jacob of NASA Ames Research Center.
(March 12, 1997 version).
1997-03-12 20:44:50 +00:00
cgd 9753d8f7a5 properly #define MC_REGB_SQWE. From Matt Jacob 1997-03-12 06:53:42 +00:00
chuck 7df0dbdd33 minor fixes to freebsd code sections from Kenjiro Cho <kjc@csl.sony.co.jp>
get ready to add support for adaptec version of midway card (which
has a different DMA interface).
1997-03-11 23:30:19 +00:00
leo 3d849b9429 - Turn the sc_[tr]bufaddr fields into arrays of addresses instead of just
the base address. This allows for a more flexible layout of buffers
  in the Lance's memory.
- Add a new element 'sc_saved_csr0' to am7990_softc. It's value is or-ed
  with the current csr0 value in the am7990_intr() function. This allowes
  for a 'deferred' interrupt sceme.
1997-03-09 21:12:39 +00:00
mikel a71e39e5d5 fix some spelling errors noticed by Charles Kane <ckane@mipos2.intel.com>.
fix some more noticed by myself; all are in comments or strings.
1997-03-09 06:10:32 +00:00
mycroft e481e52aa9 Fix a couple of splhigh()s that should be splbio(). 1997-03-04 21:42:32 +00:00
briggs 2163898eeb Add the 53c96 variant. 1997-02-27 13:59:32 +00:00
thorpej dd89d8fd78 Machine-independent NCR 53c9x SCSI driver, derived from the SPARC/Alpha
versions.  Thanks to Chris Demetrious and Paul Krannenburg for the
initial work towards merging the two.
1997-02-27 01:12:07 +00:00
gwr 9f53f9825f Use sc_no_disconnect (per-target) instead of NCR5380_PERMIT_RESELECT. 1997-02-26 22:23:48 +00:00
gwr 07378343ed Add the new member "sc_no_disconnect" to ncr5380_softc, and
remove NCR5380_PERMIT_RESELECT.
1997-02-26 22:22:13 +00:00
gwr 4dd31a28f0 Integrate fix for rude targets that transfer more data than requested.
(From Matthias Pfaller).
1997-02-26 20:31:16 +00:00
sommerfe 9def46bf50 Fix PR3260: cosmetic glitch in aha autoconf output. 1997-02-26 04:52:13 +00:00
gwr 1da91c27bc Tweak the KGDB glue slightly - do the printf here. 1997-02-24 16:03:05 +00:00
gwr f9d32cbb9b Add declaration for zs_check_kgdb() 1997-02-24 16:01:39 +00:00
is b22d1088ea Make this compile again on NetBSD-current/i386. 1997-02-20 17:53:50 +00:00
mikel b6a5671c00 make sure that packets are ours before passing them up if interface is
in promiscuous mode; from Juergen Weiss in PR kern/3121.
1997-02-20 06:59:32 +00:00
mikel 2af30c1cd3 make sure max_target is initialized for both buses on multibus parts;
from Anders Hjalmarsson in PR 3103.
1997-02-20 05:15:50 +00:00
jonathan c7cec27edf Move if_ep media-sense code from front ends to inside back end,
to prepare for if_media, and to support EISA 3c59x cards:

  * change epconfig() to take a short that encodes the chipset
    type (3c509, or Demon/Vortex/Boomerang).
  * add  distinct 3c509 and Demon/Vortex/Boomerang media-sense
    functions to back end.
  * Add EISA match/attach support for the 3c592 and 3c597
    (Demon) cards as well as the 3c509-comatibl EISA 3c509/3c579.

  * Assume that ISA and ISA PnP cards are 3c509-style, until
    proof to the contrary (e.g. large packet support).

Tested on 3c595, 3c590, and 3c509b. Not tested on 3c515 or Demon.
1997-02-18 10:51:06 +00:00
jonathan 4fdff0ed65 * Add ep_complete_cmd() function, to issue commands that perform a reset
(RX_RESET, TX_RESET, GLOBAL_RESET).
  Commands issued while a reset is in progress may be dropped. The driver
  must wait until resets are complete; ep_complete_cmd() does so.
* Change RX_RESET,  TX_RESET, GLOBAL_RESET to use ep_complete_cmd().

* Revert epconfig() to use inline RX_RESET, TX_RESET.
  That avoids accidentally setting IFF_UP, which  breaks both diskless boot,
  and "halt" commands issued before the interface is brought up.
1997-02-16 04:09:18 +00:00
mycroft 1dd1504980 Move the aha ISA probe functions into a separate file. 1997-02-07 17:37:27 +00:00
cgd f89ffa1fe4 don't clobber IER in cominit(). (suggested by mycroft.) 1997-01-30 19:42:33 +00:00
chuck 16ef494b41 bug fix:
- if aal5 frame has a CRC error then the length field in the aal5 trailer
	may not be valid, so we can not use it [and we must dump the frame]
	[Yuhang Sun <sunyh@dworkin.wustl.edu> & chuck@ccrc.wustl.edu]
1997-01-24 20:58:42 +00:00
mycroft 54133e5f93 Remove a previous gratuitous change, and KNF police. 1997-01-17 22:09:09 +00:00
gwr 77eb8c5a65 fix alignment again for m68k 1997-01-15 18:22:35 +00:00
thorpej aceef5987f Merge into mainline, tidy up some debug code. 1997-01-11 04:47:31 +00:00
jonathan f703350d59 typo in definition of extended-geometry register. 1997-01-04 16:47:03 +00:00
jonathan 9821b30fe4 Use DELAY() after doing a TX_RESET or RX_RESET command.
Newer boards (e.g., Vortex) take  time to reset, and wedge on some machines.
Polling on S_COMMAND_IN_PROGRESS would be better, but that doesn't
work with xx_RESET commands on 3c509s.
1996-12-31 21:36:30 +00:00
jonathan 259ce9f178 * make sure 100mbit media-present bits don't collied with 3c509
CONFIG_CNTRL bits by making the "conn" argument to epconfig()
   a u_int, not a u_int16_t, and by defining 100mbit media
   bits in the upper 16 bits.

A redesigned interface that fixes this properly is in the pipeline.
1996-12-30 19:18:28 +00:00
jonathan b00ac4cf2c * add epshutdown(), and establish as shutdown hook: see multiboot
comments in pr port-i386/2358: "if_ep/3C590 no longer working"
* Only call Vortex media-config code on PCI-attached devices, until
  we know if it works on ISA and EISA large-packet devices also.
* Fix typo in printf of MAC address
1996-12-29 17:01:58 +00:00
jonathan 23c1d14c64 * Add 100Mbit xcvr flags to epconfig():
look for 100mbit Xcvrs, print their names, add to ep_connectors.

* Print 10baseT as 10baseT, since media name (utp) is no longer a unique
  transceiver type.

* Redo FIFO memory size printing, also show Tx/Rx split (xxx isa 3c509?).

* Print MAC address on a separate line,  with 100Mbit media and fifo-ram
  info it no longer fits on the same line as media types.

* Comment the fact that the "connection" media-selection code just doesn't
  grok 100Mbit media.

* add code to look for 3c59x/3c90x media-select and autoconfig bits, though
  we don't yet dynamically probe media when the autoconfig bit is set
  (see previous bullet).

* XXX the whole connector/media code should be redone, perhaps a' la
  the BSDI ifmedia design.
1996-12-29 13:32:46 +00:00
jonathan 6ad69cd711 * Expand softc sc_connectors field to 16 bits.
For now, we really only need 8 bits of media type.

* Add bogus definitions for 100mbit transcievers, to be set in the
  "conn" argument to ep_config(). Should  really  use the same bits
  as in EP_W0_CONFIG_CTRL bits, but I don't know what bits the 3c515
  &c use for 100mbit media.

* Define bitflags for 100Mbit transceiver options in ep_connectors.

* Add definitions of powerup/powerdown commands. for interfaces with
  power management. Should send a powerup after APM resume?

* Add definition of fragment-busmaster (vortex) START_DMA command.

* Add definition  of PCI configuration-space media-present bits.
  (really just EP_W3_RESET_OPTIONS remapped into pci config space.)

* Add comments describing what the #define's above are used for.
1996-12-29 13:25:23 +00:00
jonathan 48f7828104 * Expand softc sc_connectors field to 16 bits.
For now, we really only need 8 bits of media type.

* Add bogus definitions for 100mbit transcievers, to be set in the
  "conn" argument to ep_config(). Should  really  use the same bits
  as in EP_W0_CONFIG_CTRL bits, but I don't know what bits the 3c515
  &c use for 100mbit media.

* Define bitflags for 100Mbit transceiver options in ep_connectors.

* Add definitions of powerup/powerdown commands. for interfaces with
  power management. Should send a powerup after APM resume?

* Add definition of fragment-busmaster (vortex) START_DMA command.

* Add definition  of PCI configuration-space media-present bits.
  (really just EP_W3_RESET_OPTIONS remapped into pci config space.)

* Add comments describing what the #define's above are used for.
1996-12-29 12:36:43 +00:00
jonathan f029ade219 Define the contents of window 3's InternalConfig register. 1996-12-29 10:21:48 +00:00
thorpej fca7fce17e Deal with targets > 7 on wide Buslogic controllers. Remember the "wide"
bit from the extended setup inquiry and key off it to:
- Force synchronous negotiation on targs > 7.
- Read additional information returned by wide cards on inquire setup.
- Read sync period on targs > 7.
- Display sync period/offset on targs > 7.
- Set scsi_link.max_target to 15.
cvs: ----------------------------------------------------------------------
1996-12-20 21:35:10 +00:00
jonathan e7a52ac635 Add missing fields to the extended_inquire reply struct.
Fixes probing of aha154x's, and provides wide/ultra bits for the MI scsi code.
1996-12-20 06:20:49 +00:00
gwr 494730c376 New version of the z8530 driver that should permit the mac68k port
to use this instead of its own.  Also fix warnings, etc.
1996-12-17 20:42:40 +00:00
scottr c5d19fd124 Make this compile #ifdef DDB:
- Prototype debugging functions
 - Replace %x and %lx with %p as appropriate
1996-12-15 10:02:30 +00:00
mycroft be33336052 If attaching the console, reinitialize it immediately. 1996-12-14 10:46:38 +00:00
mycroft 58e4442168 Turn off the baud rate changing optimization. 1996-12-14 08:56:23 +00:00
gwr aaa60cfea6 Add ZSWR1_IMASK (all intr. enable bits in WR1) 1996-12-13 21:02:39 +00:00
pk 841d1ec634 Comply with recent autoconfiguration changes. Diffs graciously
supplied by Chris Demetriou.
1996-12-10 22:54:46 +00:00
thorpej d502e68402 Fill in sc_link.max_target 1996-12-10 21:27:16 +00:00
cjs 75d4fb207b Add definition for internal config register. 1996-12-07 16:23:40 +00:00
cjs b1e0c7d657 Print the memory size on startup.
Add newline to `Interface disabled' printf and clean up formatting.
Change packet read/write code to align all reads and writes into
memory to an appropriate boundary for the I/O size. This also fixes
a bug where the trailing unaligned bytes (1-3 of them) would be
put in an additional mbuf even if there was enough space for them
in the one we were currently filling.
This has been tested on a 3c905 in an Alpha (32-bit I/O, alignment
required), a 3c905 in an i386 (32-bit I/O, alignment not required)
and a 3c509 in an i386 (16-bit I/O, alignment not required). It
should be tested on a 3c509 in an Alpha with an ISA bus, if somone
can manage to get the two items together.
There are still some bugs in the driver relating to initialisation;
on my Alpha with a 3c905 you need to do an `ifconfig ep0 down;
ifconfig ep0 up' after the initial ifconfig to make it start working.
Apparently there are also some problems with a 3c579 in an i386,
although a 3c905 in an i386 works just fine.
1996-12-07 08:33:07 +00:00
pk e974072523 Deal with Lance memory size 132KB (sparc `lebuffer' devices use this size). 1996-12-06 21:54:00 +00:00
cgd 197d80c63a update these so they compile whether or not __BROKEN_INDIRECT_CONFIG
is defined.
1996-12-05 01:25:23 +00:00
thorpej 7d4d4753a8 Implement a simple scsi xfer queue to avoid presenting a resource
shortage to the upper scsi layers, which don't (yet) deal well with
resource shortages.
1996-12-02 19:06:41 +00:00
thorpej a4f9e46a87 The MODIFY_IOPORT command does not generate an HACC (command complete)
signal; don't wait for it.

Add a "clarification" cast to the last argument to bha_cmd() in
bha_disable_isacompat().
1996-11-28 00:43:26 +00:00
cgd d7c58f547e Drop LPT_NPORTS to 4 from 8. Some lpt units require only 4 I/O ports
(e.g. from 0x3bc to 0x3bf, for example).  Others may require more,
but until there's some special handling for them, 4 should be returned
so that on systems with I/O port accounting, the unit at 0x3bf can be
properly mapped, etc.  (OK'd by mycroft.)
1996-11-23 23:22:50 +00:00
jonathan f6a82ef733 * 3c509s drop the low-oder bits of EP_THRESH_DISABLE (2047) on a write,
and the result reads back as zero.  Mask probe code accordingly.
1996-11-22 04:48:26 +00:00
chuck ae805c5cbf midway fixes:
1. fix possible hang in en_txlaunch().   when attempting to extend
	the length of an mbuf to avoid a flush we should extend it
	by cnt [which is ((need - len) % 4)] rather than 4 - cnt.
	also, add an EN_DEBUG printf() when we pad/FLUSH a buffer
	to help with debugging/understanding what the driver is up to.
  2. use interface packet counters
  3. when turning off a recv VCI we recompute the new mode.   make sure
	we don't include the "in service" bit in the new mode, otherwise
	a VCI may appear "hung" if you turn it off while a service
	interrupt is pending.
  4. when shutting down a VCI that is still receiving data, don't bother
	going into "drain mode" if only the hardware in service bit is
	set (otherwise the VCI may get "hung" in drain mode).
	as a result of this we may get "unexpected rx interrupt" messages
	which are not really an error, so put this printf in EN_DEBUG.
  5. be sure to zero txspeed[lcv] when enabling a VCI (start at full
	speed).   (hooks for setting txspeed[] are currently not in
	the driver, but we are playing with it locally).
credits:
	#1: Detected by: Zdenek Salvet <salvet@horn.ics.muni.cz>, fix by me.
	#2: Contributed by: Zdenek Salvet <salvet@horn.ics.muni.cz>
	#3,#4,#5: Detected by: Milind M. Buddhikot <milind@dworkin.wustl.edu>,
		fixed by me.
1996-11-21 20:49:22 +00:00
gwr 16b8098faa Use ether_cmp() on the sun3 (for the "le" driver - 3/50, 3/60)
because those have to assume LANCE_REVC_BUG, which causes the
driver to compare Ethernet addresses on every received frame.
1996-11-19 21:21:13 +00:00
jonathan 16d760f318 Fix for hanging 3com ``large packet'' (100Mbit) Etherlink-III devices:
* Add a slot in the softc, ep_pktlenshift, to indicate that
    a board implements ``large packets'' (FDDI-sized frames) and
    therefore implicitly shifts the argument to packet-length commands
    by two bits to fit a 13-bit length in  an 11-bit command argument field.

 *  Change  the reset of station-mask filterto be independent of bus-type
    (e.g.,. for 3c515)

 * Replace  the "2044" constant used to disable TX threshold interrupts
   on 3c509-generation cards with a #define. Use 2047 instead,
   since that works on the large-packet cards (Vortex, Demon, Boomerang)
   and 2044 doesn't.

 *  Add code to  epconfing to probe for large-packet support,
    set the softc appropriately, and  shift packet sizes in commands
    by ep_pktlenshift to compensate  for the implicit shift.

 *  Tweak the epconfig() code to avoid hanging on startup.
    Set the Tx threshold to interrupt when there's space for
    a maximal-sized ether frame, then  do epinit() then epstop(),
    instead of just the Tx and Rx reset. Required on at least a 3c595.

Tested on  a 3c595, but not on 3c509-generation hardware.
1996-11-17 23:58:29 +00:00
jonathan 40bd2b1104 Fix front-ends of split uha driver to compile when DDB is not configured:
Propagate Debugger() macro from uha.c to uha_{eisa,isa}.c.
  update file names accordingly.
1996-11-15 22:53:36 +00:00
cgd b005a8ee10 move cominit() prototype to comvar.h, so that ports which use 'com'
for serial console, but don't use the (i386-specific)
comcninit()/comcnprobe() functions, can do the right thing.
1996-11-13 19:41:35 +00:00
mycroft 990ebfa55d Fix uha_{reset,init}_mscp() prototypes. 1996-11-12 20:57:43 +00:00
chuck 04550d40b6 netbsd pr#2919 (jukka.partanen@research.nokia.com):
- fix compiler warnings
1996-11-09 03:43:29 +00:00
jonathan 79b026a8f3 * Add command struct and modifier definitions for controlling the
ISA-compatible port space of PCI buslogic cards.

* Add call to bha_pci.c to disable the ISA-compatible ports of a PCI
  device.  The ISA-compatible ports are enabled by default, which
  causes the card to be autoconfigured a second time as an ISA device,
  which appears to deadlock the card.

* Change bha_cmd() to return the number of bytes it actually received
  in response to a command, or -1 on error.

*  Use heuristics (checking for bha-only registers, and checking the size
   of the response to BHA_INQURE_EXTENDED) to bha_find, to make sure the
   bha driver never matches an aha (Adaptec    1542 or compatible) device.

A single kernel should now boot on either Adaptec or BusLogic controllers,
provided we always probe for BusLogic devices before Adaptec devices,
but this has not yet been verified.
1996-11-05 03:04:28 +00:00
pk 92d21510ef Drop in a sun4m version of AUDIO_SET_SWINTR; thanks to Nick Sayer for
the reminder.
1996-11-01 23:32:15 +00:00
cgd 2ab4192195 update alpha_XXX_dmamap() invocations to match prototype. 1996-10-25 21:33:30 +00:00
cgd 2e7c250f84 update drivers to use the new NetBSD/alpha DMA mapping hack, since
the old one is not workable with the new bus.h.
1996-10-23 04:37:31 +00:00
gwr e1467b90b1 Add prototypes, and a few more fields now used in z8530tty.c 1996-10-23 00:38:05 +00:00
gwr a329be829e Add masks for some combinations of bits that are set as a group. 1996-10-23 00:32:31 +00:00
cgd 233251d896 add missing argument to bus_space_map in ESP code 1996-10-22 00:45:25 +00:00
thorpej 769a499800 New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
	  devices.  It's all "bus space" now, and space tags
	  differentiate the space with finer grain than the
	  bus chipset tag.
	- Add memory barrier methods.
	- Implement space alloc/free methods.
	- Implement region read/write methods (like memcpy to/from
	  bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
1996-10-21 22:34:38 +00:00
thorpej 16c4c5af26 New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
	  devices.  It's all "bus space" now, and space tags
	  differentiate the space with finer grain than the
	  bus chipset tag.
	- Add memory barrier methods.
	- Implement space alloc/free methods.
	- Implement region read/write methods (like memcpy to/from
	  bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
1996-10-21 22:24:37 +00:00
thorpej 0211a3232d Appease the compiler: get rid of some unused variables, add some
prototypes, and suppress a bogus "might be used uninitialized" warning.
It's clear from reading the logic of the function that produces the
warning that the variable will not be used uninitialized, but the
compiler just isn't smart enough, I guess.  Marked XXX for future reference.
1996-10-17 04:34:08 +00:00
gwr 377ab56b5e Add definitions for the Z85C30 and Z85230 enhanced serial controllers.
Thanks to Bill Studenmund <wrstuden@loki.stanford.edu>
1996-10-16 22:34:52 +00:00
gwr 3424a892b9 Correct a problem with CRTSCTS flow control where output may fail to
restart if we get multiple status interrupts before the softintr()
routine gets a chance to run.  The fix is to determine and accumulate
status line changes at the H/W interrupt level, and then check and zero
the accumulated changes when the softint() finally runs.  Many thanks
to Bill Studenmund <wrstuden@loki.stanford.edu> for finding and fixing.
1996-10-16 20:42:14 +00:00
gwr 58db3aa496 Replace the field cs_rr0_new with cs_rr0_delta (keep changes instead). 1996-10-16 20:34:54 +00:00
christos 0039d4aa0c backout previous kprintf change 1996-10-13 02:59:25 +00:00
christos 86373f8cf9 backout kprintf changes 1996-10-13 01:37:04 +00:00
christos 19d8368f2f printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:44:42 +00:00
christos 4c14cd79b2 - printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:18:34 +00:00
christos 48635ba80c - printf -> kprintf, sprintf -> ksprintf
- ifdef unused variable
1996-10-10 22:14:18 +00:00
christos 43ffb37118 - printf -> kprintf, sprintf -> ksprintf
- fix a bug where tp was used before it was initialized
- remove unused variable
1996-10-10 22:12:15 +00:00
christos a551ed0d3d - printf -> kprintf, sprintf -> ksprintf
- Fix an | -> ||
1996-10-10 22:08:05 +00:00
christos 58953408cb printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:04:48 +00:00
christos ea39989829 - printf -> kprintf, sprintf -> ksprintf
- add an #ifdef FreeBSD for an unused variable
1996-10-10 20:00:59 +00:00
christos b54342c9b9 - printf -> kprintf, sprintf -> ksprintf
- include <systm.h>
1996-10-10 19:59:17 +00:00
gibbs b9c06e6fa3 dev/microcode/aic7xxx/aic7xxx.seq,
dev/microcode/aic7xxx_seq.h,
dev/ic/aic7xxxreg.h:
  Remove intrinsic knowledge about SDTR and WDTR messages and replace it
  with a generic message system that allows the kernel driver to handle
  SDTR, WDTR and any other type of extended message it chooses too.  This
  makes the sequencer code much simpler, makes extended message handling
  debuggable since the bulk of the work is in the kernel driver, and saves
  lots of instruction space.

  Regen microcode header file.

dev/ic/aic7xxx.c, dev/ic/aic7xxxvar.h:
  Add code to handle WDTR and SDTR negotiation in light of the changes in
  the message interface to the sequencer.  Don't reject targets that
  negotiate async by sending an SDTR with a 0 offset.  Use an sdtr message
  with 0,0 to negotiate async when a target suggests a period that is too
  long for us to handle.  Some tape and cdrom drives don't like us doing
  the message reject that we did in the past.

  Fix a problem with handing the QUEUE FULL condition.

  Fix a race condition (most likely the cause of the SCB paging problems) that
  might allow the sequencer to get unpaused before the condition that caused
  it to be paused (a SEQINT) was handled.

  Race condition pointed out by Doug Ledford <dledford@dialnet.net> and
  by "Dan Willis" <dan@plutotech.com>.

dev/pci/ahc_pci.c:
  Add support for the 2940AU, an aic7860 based controller.

dev/pci/pcidevs.h, dev/pci/pcidevs_data.h:
  Add product IDs for the 2940AU, aic7860 and aic7855.

  Regen data file.

scsi/scsi_message.h:
  Add MSG_EXT_SDTR_LEN and MSG_EXT_WDTR_LEN - the length of bytes in these
  extended messages.

Thanks to Chuck Cranor <chuck@maria.wustl.edu> for testing these changes
out for me.
1996-10-08 03:04:02 +00:00
mycroft 767522373b If we get a RXRDY interrupt, but RXRDY is not set in the LSR, briefly set IER
to 0.  This fixes a condition where some UARTs send an infinite stream of
RXRDY interrupts.
1996-10-06 01:52:26 +00:00
mycroft d1f08e3e87 Serial console changes:
* Enable FIFO with trigger level 1.
* Set DTR and RTS so terminals are happy.
1996-10-06 01:46:04 +00:00
christos 26699175a4 Apply PR/2661 [from Jonathan Stone] 1996-09-29 11:19:42 +00:00
thorpej a962c12194 Use "cy_port_num" rather than "cy_port" where appropriate. 1996-09-26 19:16:02 +00:00
christos ded50ae798 New Cyclades driver from Timo Rossi 1996-09-24 18:02:33 +00:00
mycroft 94bfaac456 Wrap the definitions of CONADDR and CONUNIT in #ifndef. 1996-09-06 05:06:01 +00:00
mycroft 82f0b829e8 compoll() -> comsoft() 1996-09-05 16:42:32 +00:00
mycroft b3eac79b64 tty stop functions really should return void, not int, and certainly not both. 1996-09-02 06:43:16 +00:00
mycroft 80110252d0 Minor changes. 1996-09-01 00:54:34 +00:00
mycroft 44bb2d98e1 Split the UltraStor driver apart. 1996-08-31 20:26:48 +00:00
mycroft 06fdef11fd Split the BusLogic driver apart, and rename it to `bha (like BSDi). 1996-08-31 20:18:24 +00:00
thorpej c4366945e5 Quiet the ahc driver down a bit by only enabling some of less useful
messages #if defined(DEBUG) in the NetBSD case.
1996-08-28 23:39:40 +00:00
cgd 71ad30d0e9 (1) set scsi_link channel to either the appropriate channel (if a
multi-channel driver), or to SCSI_CHANNEL_ONLY_ONE if a
    single-channel driver.
(2) use scsiprint() rather than a locally-defined autoconfig print
    function, and kill any locally-defined print function.
1996-08-28 18:59:15 +00:00
cgd a4bb0a41da define PDQ_ASSERT directly in terms of __assert, because cpp doesn't seem
to do:
#define	foo(x)	...
#define bar	foo
like we'd like it to.
1996-08-28 16:01:29 +00:00
cgd 2a73ef60b7 change cfprint_t type definition to take a const char *, rather than
a char *, because that's what was really intended, and because
if the print function modifies the string, various things could become
unhappy (so the string should _not_ be modified).
1996-08-27 21:53:46 +00:00
cgd 5c7192b20c Including user-land headers in kernel code is not allowed in NetBSD.
Therefore:
	(1) define offsetof here, and
	(2) implement assertion checking in terms of the libkern
	    assertion-checking macros.
1996-08-27 00:51:29 +00:00
mycroft ef186dd501 Look for the sequencer code in the right place. 1996-08-10 08:45:17 +00:00
chuck 9ee9129dc4 fix:
- fix memory sizing bug for 2MB cards.   driver now works for both 512KB
   and 2MB ATM cards (we just got 10 2MB cards).
1996-08-02 02:55:14 +00:00
chuck b3bed30d80 fixes/update:
- adjust txhiwat and mindma params a bit

 - fixed a couple of incorrectly labeled panic calls

 - the "location" was being calculated incorrectly in some cases (forgot
   to subtract off MID_RAMBASE).   this only caused problem when trying
   to change the size of the tx/rx buffers (e.g. to 64KB).

 - fixed possible non-aligned DMA burst in the starting byte burst case.
        (e.g. if we could DMA 3 bytes, but only have 2 it is not legal
        for us to use MIDDMA_BYTE2 mode).

 - opt: on tx: try and avoid flushing the internal buffer by padding out the
        length of the last mbuf a bit (if possible)
1996-07-17 03:53:39 +00:00
chuck 1e5c811090 midway fixes + new stuff:
- merged multiple DRQ/DTQ ADD macros into a single DRQ and a single DTQ
   macro with a uniform interface to make the code simpler and easier to read.

 - en_start: only update atm_flags if EN_MBUF_OPT is enabled (which it
        should be)

 - for alburst: make sure we don't DMA more bytes than we need (on both
        tx and rx).   if the alburst is larger than we need, drop to
        MIDDMA_WORD mode.

 - major change: enable the use of byte and 2 byte DMA on the trasmit side.
   this allows us to DMA from non-word sized/aligned mbufs directly.
   [the old code would always call en_mfix which would copy (or move) the
    data in order to ensure proper alignment...   it turns out TCP gives
    us non-word sized/aligned mbufs when it is retransmitting, so we needed
    to handle this case more efficiently.]    the following functions
   were changed to make this work:
    - en_dqneed: add an arg to let us know if we are transmitting or not.
        if we are TX, then we must take into account byte DMAs when
        estimating the number of DTQs we will need for a buffer
    - en_start: only mfix mbufs if DMA is disabled
    - en_txdma: only set launch.nodma if we have en_mfix'd the mbuf chain
        also, we may need a DTQ to flush the chip's internal byte buffer
    - en_txlaunch: only attempt a copy if we have the proper alignment.
        add byte dma code for the front and end of the buffer.
        make sure the internal dma buffer is flushed out.
    - stats: keep track of how many times we have to use byte sized DMA

midwayreg:
 - add byte/2byte DMA defines

midwayvar:
 - add new stat counter to monitor less-than-word lengthed DMA
1996-07-16 22:11:05 +00:00
cgd effd413ecd before #defining the vtophys() hack for the alpha, #undef vtophys since
it may be a macro.
1996-07-15 16:40:27 +00:00
cgd 8ab5d16b77 insert the normal NetBSD/Alpha vtophys() hack, so that this will compile
and link nicely on the Alpha.  It may even run, if well written.
1996-07-14 20:05:31 +00:00
cgd f632c1cea9 fix bogus casts from pointer to unsigned int. Use unsigned long for this. 1996-07-14 19:36:56 +00:00
chuck 6ae82431b5 fix:
- en_mfix shouldn't touch M_EXT mbufs.    change to avoid this [at
    the expense of allocating a new cluster mbuf to copy to].

    XXX: en_mfix is getting called more often than I hoped it would
    (seems to happen when TCP retransmits... we get all sorts of odd
    sized, odd lengthed data mbufs, yuck).    i may revise the xmit
    DMA code to use non-word sized dma.
1996-07-11 22:48:10 +00:00
chuck 47131b5d81 fixes:
- don't try and add a PDU trailer (or TBD for that matter) to an M_EXT
   mbuf.   when M_EXT is set, the data area of the mbuf can be shared
   with other mbufs (see m_copym()), and writing to one M_EXT mbuf may
   invalidate another M_EXT mbuf (saw this with PDU trailers).

 - be sure to validate the length value from the PDU trailer so that it
   doesn't throw us out of sync with the chip (fixes yet another source
   of the dread "en_service: id mismatch" panic).

 - on recv, don't bother allocating an mbuf if mlen is zero since we are
   only going to toss the data anyway.
1996-07-11 00:15:56 +00:00
explorer c62a6661a1 Updates to aic7xxx driver ; from pr port-i386/2600 1996-07-10 22:50:44 +00:00
cgd 3a99dd36fe cast argument to alpha vtophys() to vm_offset_t, to catch up with
recent prototyping.
1996-07-10 18:55:05 +00:00
cgd 7b1d7251d1 add a couple of "default" entries in switch statements, to quiet -Wall. 1996-07-10 18:53:32 +00:00
cgd bc2f07f331 move DDB-only label inside an #ifdef, so that -Wall works 1996-07-10 18:14:04 +00:00
abrown de61f8f511 Add a new function hook sc_nocarrier() to am7990_softc. If non-null, this
function is called when carrier is lost in lieu of a console message.
This is used by the sparc port to switch media types on Sun4m machines
if the appropriate link flags are set by ifconfig (see following commit
message). Should not affect ports that do not use sc_nocarrier().
1996-07-05 23:56:57 +00:00
chuck db41df67cd ported to FreeBSD 2.2-960612-SNAP. [thanks to Matt Thomas' driver work] 1996-07-03 17:21:58 +00:00
chuck 921ed68fff new: add a raw_threshold for raw mode. this basically tells the driver
to ignore inbound data sizes less than the threshold.  otherwise,
        when connected to a video aal0 input the driver gives us a massive
        stream of 56 byte mbufs each with one aal0 cell in it and the
        system just can't keep up with it, especially if the socket buffer
        size is large [it hangs until you turn off the video source].

fixes: when turning off a vc, try and check the freshest copy of the mode
        when seeing if we need to enter the "drain" state.   also, don't
        panic if we get unexpected rx interrupt on a VCI (instead make sure
        the VC is off, print a warning, and move on!).
1996-06-29 23:23:35 +00:00
chuck 685684df93 change:
- change rxso into a void handle ... no need to know details at this low
        level.
fix:
 - forgot to init "vci" during ENOTHER_DRAIN case of RX DMA interrupt
        [could cause a vm_fault on native mode connection close depending
        on needing to drain out the VC and also the random value of vci]
1996-06-29 20:00:44 +00:00
chuck d8f8995650 new: add all needed hooks to engage raw mode. 1996-06-28 02:32:24 +00:00
chuck ff6f7d186b fixes/improvements:
- more stat counters (rxmbufout -- mbufs, ttrash -- trashed RBD)
 - add swsl_size to keep track of size of software slist
 - revise when we call en_service
 - fix handling of circular lists (was getting full vs empty confused in
        extreem cases...)
 - native mode atm: remove sbappend code: can't do it here since
        socket buffer is protected only by splsoftnet and that doesn't
        mask enintr off.    forces us to switch to a two level interrupt
        scheme.    revise call to atm_input to reflect that.
1996-06-27 04:29:40 +00:00
chuck 39b4f89493 fixes:
[1] rxslot "cur" pointer wasn't updated if we copied all data and
        didn't have any fill.   this could cause a service id mismatch
        panic under load.
  [2] recv of aal0 forgot to include the cell header in the data length
        calc [add cell header length to midwayreg.h]
  [3] fix control info "chop" for raw mode and aal0
  [4] handle rxsb better for native atm connections
        (XXX: still working on this ... not complete and needs revision)
1996-06-26 04:08:53 +00:00
chuck ba63d22426 add support for efficient networks midway atm chip. 1996-06-22 01:50:52 +00:00
mycroft a8e5b5ba47 Remove some unneeded FIFO flushes and reorder some register changes per the
6360 manual.  Turn off synchronous negotiation.
1996-06-18 16:13:05 +00:00
gwr e63a9d929c Add tty_attach(), and fix a type mismatch. 1996-06-13 23:05:40 +00:00
cgd 813c33fa36 clean up import of new revision (June 7, 1996) from Matt Thomas. 1996-06-07 23:35:04 +00:00
cgd 08d585e924 add tty_attach() where appropriate. 1996-05-30 18:24:09 +00:00
mrg 08bd090b26 count audio interupts (from OpenBSD). 1996-05-28 13:36:09 +00:00
thorpej 722d0da592 RCS Id police. 1996-05-20 00:56:39 +00:00
thorpej 1a614aed0c Fix conflicts during import. 1996-05-20 00:26:15 +00:00
gwr 9c5d297b0f New version that handles hardware flow-control (CRTSCTS) at the input
to the ring (or silo).  This eliminates ring overrun with crtscts.
Also handle deferred register changes earlier, and misc. cleanup.
Give credit to: Bill Studenmund and Ian Dall (Thanks!)
1996-05-17 22:49:23 +00:00
gwr eedc5c7e85 Rename cs_pclk_div16 to cs_brg_clk to clarify the fact that the
Baud Rate Generator (BRG) clock is not necessarily PCLK/16.
1996-05-17 19:30:34 +00:00
gwr 32e9715743 Rename cs_pclk_div16 to cs_brg_clk to clarify the fact that the
Baud Rate Generator (BRG) clock is not necessarily PCLK/16.
Also fix up spacing.
1996-05-17 19:29:37 +00:00
mycroft 1474c6f3a3 Replace STAILQ with SIMPLEQ. 1996-05-16 05:22:28 +00:00
mycroft f636c54f70 Replace STAILQ with SIMPLEQ. 1996-05-16 05:20:23 +00:00
mycroft 117bb8ae8b New version, with changes from Justin Gibbs and Noriyuki Soda. 1996-05-16 03:59:03 +00:00
thorpej 5dc3777c41 Be more careful with types, and pull in <machine/intr.h> 1996-05-14 22:22:05 +00:00
thorpej f668914751 Update for the arpwhohas() change. 1996-05-14 00:16:04 +00:00
christos 7cc0c97a06 Fix printf() statement argument order 1996-05-13 14:10:21 +00:00
mycroft cec36bf8d5 Use intr.h. 1996-05-12 23:51:23 +00:00
gwr 01e80ddb16 Add a new member to the softc (sc_parity_disable) with per-target
bits that tell the driver not to expect parity from those targets.
XXX: For now, it is up to MD code to set this mask.  Eventually,
XXX: we should identify targets first (without demanding parity)
XXX: and then use a new "SCSI quirk" to set the right bit.
1996-05-10 18:04:01 +00:00
thorpej f004654691 Update Herb's e-mail address; beer.org feels a lot more friendly. 1996-05-10 05:27:53 +00:00
christos c853e93fc3 Fixed gcc -Wall warnings. 1996-05-07 23:25:07 +00:00
thorpej 15354e899c Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit.  Updated interface to (*if_watchdog)() and (*if_reset)()
to take a struct ifnet *, rather than a unit number.
1996-05-07 01:55:13 +00:00
thorpej 300992c9ba Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit.  Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
1996-05-07 01:43:13 +00:00
thorpej 16e78eb3fb Make the MI LANCE driver standalone, and use cfattach to resolve
naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.

Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit.  Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
1996-05-07 01:38:35 +00:00
is 95f41d24cc Add "iy" driver for Ethernet ISA boards using the Intel i82595 chip, e.g.
(and only tested on) Intel Etherexpress PRO. Should work on any i82595 ISA
board which uses an EEPROM for config information; NETBLKID not yet supported.
TODO: change to BUS interface, add multicast support.
1996-05-06 21:36:51 +00:00
christos d53d6cd545 Move comintr() prototype to comvar.h; needed by the multi-port cards. 1996-05-05 19:50:44 +00:00
christos a16dd8b648 Move epstop prototype to the header file. 1996-05-03 19:08:47 +00:00
christos bd397af7ad - include <sys/systm.h>
- fix prototype of epmbuffill()
- fix typo of epxstat -> eptxstat
1996-05-03 17:44:59 +00:00
thorpej 0b637e93a8 Convert the Etherlink III (ep) driver to use <machine/bus.h>. 1996-04-30 22:29:56 +00:00
christos a1609dc859 - Fix gcc -Wall warnings
- BUG: if (error = ...() == EWOULDBLOCK)
1996-04-29 20:30:48 +00:00
christos e8a8a6298c - prototype fixes 1996-04-29 20:02:32 +00:00
thorpej aff40e2a72 Break up the ep driver into isa, eisa, and pci front-ends and a
bus-independent core driver.  Tested on all three bus types, including
an isa 3c509 masquerading as an eisa device (use ep* at eisa? slot ? in
your kernel config file to catch this one).
XXX Driver still needs to be converted to <machine/bus.h>
1996-04-25 02:15:42 +00:00
christos b016bd441a Add a hardware dependent initialization function lehwinit() 1996-04-22 02:40:49 +00:00
cgd d7d306aeb7 change LANCE copy & zero functions' names to start with amd7990_, and
remove their 'integrate' (usually defined to be 'static') keywords.
when lance drivers are split up by attachment, more than one file will
reference the copy/zero functions (i.e. not just the file that pulls in
am7990.c... and eventually inclusion of am7990.c should go away entirely).
1996-04-18 00:25:11 +00:00
cgd b6549d493d define and export the global variable "comconscflag", the default tty
'cflag' for the console.  Normally set to TTYDEF_CFLAG, may be
overridden by machine-dependent console attachment code, as necessary.
(Alpha uses it to set cs8 -parenb.)  Files including comvar.h now
need to include <sys/termios.h>, because comconscflag is of type
tcflag_t.
1996-04-15 18:54:31 +00:00
cgd 51e85d07b9 update for addition of a machine-dependent cookie as the first argument
to isa_intr_{,dis}establish().
1996-04-11 22:27:59 +00:00
gwr 32d12d3be4 Make the ring size configurable in the tty driver.
Make the pseudo-interrupt functions return void.
Call the tty layer at spltty (to be safe).
1996-04-10 21:44:35 +00:00
mycroft 0609135a66 Add explicit return types. 1996-04-10 19:03:46 +00:00
pk 696daec742 Make this compile if LEDEBUG id defined. 1996-04-09 15:21:59 +00:00