Commit Graph

2151 Commits

Author SHA1 Message Date
jdolecek 5a3d02fe8b fix the copyright - Charles's name was added here by mistake, use
standard TNF cookie instead
2001-03-31 09:49:00 +00:00
jdolecek 592dfdc76b Prepare for MCA attachment:
* split off sharable stuff to dev/ic/ate_subr.[ch], move ate(4) device
  definition to conf/files
* cosmetic: attach with ate_isa
2001-03-31 00:26:53 +00:00
bjh21 f6ec9b4ab2 On an 80C04, try not to start reads at addresses of the form xx,ea, xx,ee, or
xx,f0.  This appears to heavily alleviate, but not to eliminate entirely,
the problems I've been seeing with garbage being read from the rx buffer.
I suspect the real solution lies elsewhere.
2001-03-29 20:49:44 +00:00
bjh21 2f6fd6b040 Print a warning message when the DMA FIFO fails to fill or empty before we
time out.
2001-03-29 17:46:39 +00:00
jdolecek 2a2070aec3 kill bunch of unneeded includes 2001-03-29 08:48:55 +00:00
petrov b0605f71d5 fas support added 2001-03-29 02:58:38 +00:00
bjh21 758fa94327 Print the address within the Rx buffer whenever anything goes wrong: it seems
to be significant.
2001-03-27 22:17:51 +00:00
bjh21 4beebf7d5d Clean up debugging printfs a little. 2001-03-27 21:43:13 +00:00
bjh21 8fc709ee67 Add some extra diagnostics:
* Use the timer to timoe out transmit operations.
 * Spot when the "next packet" pointer falls outside the recieve buffer and
   reset the interface.
 * Don't reset the interface when we get a bad packet (unless there's
   something else wrong as well).
2001-03-27 20:26:45 +00:00
bjh21 7dae264309 Comment and #ifdef cleanup. 2001-03-27 18:03:04 +00:00
bouyer f099a26df2 Cast to u_int64_t when computing callout argument, to avoid int overflow.
Fixes kern/12471.
2001-03-27 17:24:03 +00:00
ad d54c705158 Missing splx(). From OpenBSD. 2001-03-25 14:48:28 +00:00
is 51144af34f improve readibility 2001-03-25 14:38:23 +00:00
bjh21 39c267bb01 Tweak handling of multicast on 80C04. I think we need to set the match mode
to "multicast" for it to work, but I could be wrong.

Also make ALLMULTI work on 80C04, but this is untested.
2001-03-25 01:06:59 +00:00
bjh21 304809f5f1 Re-arrange board memory to suit the current (crude) transmit code.
Add ea_writembuf() from mark's code, and re-work eatxpacket() to use it.
2001-03-24 23:31:06 +00:00
bjh21 b94b953e92 Enormous pile of changes from mark's (uncommitted) work on this driver.
About the only bit of his code not here is the transmit routines, which I'll
merge in separately.

Also a few bug-fixes, so (for instance) multicast on an 8005 doesn't
immediately fall back to IFF_ALLMULTI.
2001-03-24 20:38:41 +00:00
bjh21 b83b8ac01f Change all the register definitions to match the names using in mark's
improved version of the driver.
2001-03-24 13:40:41 +00:00
martin 5171d409a5 First step to cleanup the hardware driver <-> upper layers interface.
This now provides slightly more functionality than the FreeBSD layer1-newbus
interface. It was meant to be a simple change to one header and a few
c files, but the change rippled all through various stuff.

To prevent a change to the kernel<->userland interface right now the kernel
is now lying about card types to userland (but who cares). This will be fixed
when the userland interface changes, after layer 3 <-> layer 4 has been
fixed.

Functional changes:

Provide a clean interface for hardware drivers to attach to the upper
layers. This will need another small change in the B-channel handling
when a similar change to the layer 3 <-> layer 4 interface happens.

Avoid passing indices into global arrays of pointers around, instead pass
the pointers itself. Don't code hardware driver types by predefined magic
numbers (think LKM). Prepare for detachable drivers (think pcmcia).

While there remove some sets of function pointers always pointing to the
same function (meant to be the configurable set of D channel protocol
handlers). It is unlikely another supported D-channel protocol will fit into
that (maximal layer interface) abstraction. When we get support for another
protocol, we will need to come up with a workable interface. Besides, the
old implementation was, uhm, strange.
2001-03-24 12:40:29 +00:00
bjh21 18db220fba Handle IFF_ALLMULTI correctly. We can now cope with multicast, but for
some reason DAD fails when starting IPv6.
2001-03-24 00:16:41 +00:00
jdolecek 6d79f8ce1e Split we(4) driver to bus independant and ISA-specific parts, in preparation
for MCA attachment.
2001-03-23 17:34:41 +00:00
jdolecek 031c6d8c24 Add MCA ep(4) attachment, for 3Com 3c529-type cards. Tested with 3c529-TP,
provided to me by David Brownlee (thanks!).

Performance of this card is quite poor on my PS/2 with 386DX, like 100KB/s
at best, but as low as 5KB/s when transferring bigger files due to
packet overruns. It would be good to revisit this later, probably by
teaching the ic code to use RX Early.
2001-03-22 16:54:45 +00:00
jdolecek 4ffa6a80d6 convert to use ether_ioctl()
fix bunch of typos
2001-03-22 12:00:26 +00:00
bouyer be5f917514 Add a small delay before reset at attach time, required by one old ATAPI
CD. Reported by Onno van der Linden.
2001-03-21 08:44:14 +00:00
is a4dce1a3f4 Don't need to use the hash filter for a single individual address; make
sure concurrent receive processing is disabled.
2001-03-16 13:43:31 +00:00
bouyer 2b318d4800 Note that SF_CHIP_QUAD is for clock quadrupler with busy wait for PPL.
SF_CHIP_DBLR is for clock doubler or quadrupler.
2001-03-15 17:38:59 +00:00
tsutsui 585b6f2b0a Fix tyop in comments. 2001-03-15 13:45:00 +00:00
chs ac3bc537bd eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS			0
KERN_INVALID_ADDRESS		EFAULT
KERN_PROTECTION_FAILURE		EACCES
KERN_NO_SPACE			ENOMEM
KERN_INVALID_ARGUMENT		EINVAL
KERN_FAILURE			various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE		ENOMEM
KERN_NOT_RECEIVER		<unused>
KERN_NO_ACCESS			<unused>
KERN_PAGES_LOCKED		<unused>
2001-03-15 06:10:32 +00:00
mjacob c67c3d855d Clean up and update copyright (remove advertising clause). Clean
up header guard.  Clean up structure definition for at2_entry so
it's correct rather than derived from at_entry- this is important
for unswizzling purposes. Add a whole bunch of unswizzle macros-
they're not quite right yet but at least they're a start. Note that
we now have, for at_entry, a 16 bit firmware handle as part of what
had been at_reserved- this is to correlate ATIOs with CTIOs- and
this must be carried along as part of a tag value to use with all
CTIOs we send in relation to this ATIO. ANSIfy.
2001-03-14 05:46:50 +00:00
mjacob 98381c7a2d ANSIfy source. 2001-03-14 05:44:46 +00:00
mjacob 8d81f18e84 Handles are now 16 bits. ANSIfy. 2001-03-14 05:44:21 +00:00
mjacob 765a49664e Roll core minor. ANSify. 2001-03-14 05:14:36 +00:00
mjacob 6112b6b2e7 Clean up some comments. Expand usage of cd_reserved. Expand cd_tagval
to 32 bits so it can haul along this furshlugginer handle for parallel
SCSI as well as a regular vanilla 8 bit SCSI tag.
2001-03-14 05:10:38 +00:00
mjacob 928cef6eb8 Clean up license && copyright a tad. ct_reserved should now be more
properly called ct_syshandle.
2001-03-14 05:01:54 +00:00
mjacob 5d68eec9d1 Handles are now u_int16_t instead of u_int32_t. ANSIfy (NetBSD was the holdout). 2001-03-14 04:55:21 +00:00
mjacob 4a005e2d38 Update copyright date. ANSIfy isp.c (NetBSD was the holdout of all
the platforms this code runs on). Handles are now u_int16_t, so adjust
code as required.
2001-03-14 04:54:13 +00:00
tsutsui 06237a6a03 Add some delay in zstty_attach() to wait previous console output
to complete before hardware initialization.
2001-03-12 15:46:56 +00:00
bouyer 9ea2b5098b Preliminary support for SYM53C1010-33 (at 80MB/s only for now), based on
patches sent by Matthias Drochner <M.Drochner@fz-juelich.de> and
Kenneth R Westerback <kwesterback@home.com>
2001-03-12 10:00:50 +00:00
wdk 688a84b1b2 Add missing \n during probe if port is dedicated to kgdb 2001-03-11 09:06:09 +00:00
jdolecek 9d66d7180b add 'why' argument to the channel attention hook function; this argument
is similar to the one passed to hwreset hook function
2001-03-10 20:04:30 +00:00
jdolecek c0d40387a0 improve the error messages for IE_TDR_OPEN & IE_TDR_SHORT 2001-03-10 19:59:13 +00:00
jdolecek a557028a27 improve description of IE_TDR_OPEN & IE_TDR_SHORT a bit 2001-03-10 19:57:38 +00:00
briggs 0828a1bcd0 Make this work on a PowerPC system:
- Load the DMA address a byte at a time, and
 - Use bus_space_read_stream_2() instead of bus_space_read_2() when reading
   the byte-stream of configuration data from the card.

Sanity-checked on both i386 and sandpoint.  Reviewed by ad.
2001-03-10 13:30:55 +00:00
thorpej 32a284db3a Make sure data after the header is aligned, so that this works on
systems with strict alignment constraints.
kern/12356, Feico Dillema <feico@pasta.cs.uit.no>.
2001-03-08 16:33:43 +00:00
thorpej 09cc55c97c Add additional padding to the status record, needed by the AIR-PCM342.
kern/12357, Feico Dillema <feico@pasta.cs.uit.no>.
2001-03-08 16:30:50 +00:00
thorpej 54bb0eddd9 Preliminary support for detaching an "adv" instance. This
could use some more work.

Derived from kern/12341, takashi.yamamoto@bigfoot.com.
2001-03-08 06:49:49 +00:00
thorpej fd7ed72be1 Add BUS_DMA_STREAMING to data transfer maps. 2001-03-07 23:07:12 +00:00
mjacob bf630787f7 Fix isp_print_qentry to print all four lines- it's been broken for months. 2001-03-02 04:51:14 +00:00
thorpej 8f79095477 Differentiate a couple of similar error message, and add newlines
on the end of them.
2001-03-01 22:10:57 +00:00
itojun 0913c0736c IPv6 support, from fujiwara@rcac.tdi.co.jp 2001-03-01 00:40:41 +00:00
mjacob bcc65cfc34 roll platform minor 2001-02-28 05:53:59 +00:00