Commit Graph

383 Commits

Author SHA1 Message Date
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