Commit Graph

394 Commits

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