Commit Graph

2403 Commits

Author SHA1 Message Date
Justin T. Gibbs
b2608b2c73 Staticize the overrun buffer so that they are not shared between
cards of different bus types as each bus type may have a different
bus mapping.

Submitted by:	Eivind Eklund <eivind@yes.no>
1998-12-22 18:14:15 +00:00
Joerg Wunsch
082004e119 As promised, cleanup the #if __FreeBSD_version mess. 1998-12-21 18:11:10 +00:00
Joerg Wunsch
8194a57215 This is my first cut on a driver for the RealTek RTL 8002 pocket
ethernet driver.

The BUGS section is still impressive, but the driver seems to work for
me now.  Disclaimer: i haven't been able to test this under -current
so far (but it compiles, and the notebook it's intended for can now be
updated to -current more easy than before).  Don't be afraid of the
many #ifdefs on __FreeBSD_version in the imported file; i want them in
the repository on the vendor-branch so other people can also manually
integrate it into older systems.  I'll clean it up on the -current
branch in a followup commit.  The vendor-banch version right now
supports systems back to 2.2R.

This driver should be layered upon ppc(4), but i currently have no
idea how to do this.

Eventually i'll further develop the driver to also support the more
modern RTL 8012 success, which seems to be present in a number of
cheap pocket ethernet adapters these days.  Right now, i doubt it will
run with the 8012 without any changes.

Finally a big Thanks! to RealTek for promptly providing me with
documentation and with the source code for the 8012 pocket driver upon
request.  I wish all vendors were that cooperative!.
1998-12-21 18:01:15 +00:00
Bruce Evans
3bc124d470 Wait for channel commands to complete after issuing the commands.
The optimisation of only waiting before issuing new commands is
obviously invalid in general and it caused many errors in NIST-PCTS.
I think the errors were mostly for characters sent with the wrong
parity, etc., after a half complete tcsetattr().

Use microtime() instead of a magic loop count to limit the wait.
The wait is a busy-wait :-( and normally takes about 500 usec.
1998-12-19 16:28:57 +00:00
Bruce Evans
ead8747a8c Removed unused (slightly wrong) stub functions.
Fixed some staticization obfuscations.
1998-12-18 18:07:10 +00:00
Bruce Evans
747c608e8d Flush the tx fifo in cystop(). Now ttyflush() (and thus tcflush(3))
almost works properly.  Unfortunately, there is no way to flush
the rx fifo without resetting the channel, which also flushes the
tx fifo.  We avoid resetting even when both fifos need to be flushed,
since resetting seems to cause the rx to lose sync if it is done
while data is arriving.

Reminded by:	NIST-PCTS
1998-12-17 19:23:09 +00:00
Bruce Evans
f9828cced4 Fixed handling of BREAK in input. BREAK was not being converted into an
escape sequence in the `-ignbrk -brkint parmrk' case.

Found by:	NIST-PCTS
1998-12-17 18:43:08 +00:00
Bruce Evans
7cfc9b133e Oops, this should have been in the previous commit (ensure atomic update
of com->cor[1]).
1998-12-17 18:18:06 +00:00
Bruce Evans
657365cdd7 Implemented sending of BREAKs. This is quite complicated because the
hardware is interrupt-driven to a fault and sending a BREAK requires
mode switching.  Always running in the BREAK-capable mode as in PR 8318
would double the overhead for sending \0's.

Reminded by:	PR 8318
1998-12-17 17:40:13 +00:00
Poul-Henning Kamp
11749a2453 Straigthen out the use of the tls and tlf callbacks.
Not tested on the if_sr, if_cx and if_ar drivers, but
expected to work just the same as it used to.

Any users of these drivers (or even better: donors
of hardware for them) please contact phk@freebsd.org
so we can test the next batch of changes to if_sppp.
1998-12-16 18:42:38 +00:00
Poul-Henning Kamp
a2c8d39884 Best version so far. Flicker floor is now 2e-12. 1998-12-16 11:46:41 +00:00
KATO Takenori
4896212043 Oops, I forgot to commit two diffs to fe driver. 1998-12-15 15:56:37 +00:00
KATO Takenori
2d2d8cc4f0 PC/AT(ISA) version and PC-98(NEC) version of if_fe drivers are merged,
as well as several functional additions.

(1) dot3 MIB support.
(2) if_media selection method support.
(3) bridge support.
(4) new boards support. Supported boards are as follows.
    [PC/AT]
     * Fujitsu FMV-180 series
     * Allied-Telesis RE2000 series
     * Allied-Telesyn AT1700 series
     * Gateway Communications G/Ether series
     * UB networks Access/PC ISA series
     * TDK/LANX LAC-AX series
     * ICL EtherTeam16i series
     * RATOC REX-5586/5587
    [PC-98]
     * Allied-Telesis RE1000 series
     * Allied-Telesis RE1000Plus/ME1500 series
     * Contec C-NET(9N)E series
     * Contec C-NET(98)P2 series
     * UB networks Access/PC N98C+ series
     * TDK/LANX LAC-98 series(not tested)

Submitted by: seki@sysrap.cs.fujitsu.co.jp (Masahiro Sekiguchi) and
              chi@bd.mbn.or.jp (Chiharu Shibata)
1998-12-15 15:51:37 +00:00
Bruce Evans
c03ddf2074 Fixed misformatted error messages. wderror() was broken way back
in rev.1.30 (just before FreeBSD-1.1R) to almost match corresponding
breakage in FreeBSD-1.x's diskerr().  FreeBSD-2.x's diskerr() never
had the breakage.
1998-12-15 09:16:57 +00:00
Bruce Evans
407e5f394f Moved the declaration of another non-SMP variable into the non-SMP section. 1998-12-14 19:16:17 +00:00
Bruce Evans
0be036c31a Ifdefed the declarations of conditionally used variables. 1998-12-14 18:21:34 +00:00
Bruce Evans
ff9607b070 Fixed LINT breakage in previous commit. Option FDC_YE enabled a
syntax error.  Options FDC_YE and DEVFS together enabled references
to a nonexistent variable and calls of a nonexistent function.
1998-12-14 16:29:58 +00:00
Stephen McKay
2619394c7c Fix tabs that should have been spaces. Some were in kernel error messages. 1998-12-14 13:30:29 +00:00
Eivind Eklund
1c413ddaf0 Fix 3-byte buffer overflow.
Also, while I'm here, fix up some more after those that haven't
noticed #endif isn't a comment introducer.
1998-12-13 23:36:16 +00:00
Eivind Eklund
79f41b6df0 Fix typo - [0], [1], [2], not [0], [1], [3]. 1998-12-13 23:32:44 +00:00
Steve Price
4a76413bf7 wcd_read_toc returns zero on success and EIO on failure, so change the
test in open to return EIO if non-zero.

PR:		8316
Submitted by:	Masatoshi TAMURA <tamrin@shinzan.kuee.kyoto-u.ac.jp>
1998-12-13 23:30:15 +00:00
Eivind Eklund
494dc6bbe2 Fix typo - sizeof(struct crtl *) -> sizeof(struct ctrl *).
XXX This still assume that bzero() over a field create null-pointers,
which seems a chancy proposition at best.
1998-12-13 23:25:29 +00:00
Eivind Eklund
b3a941181e Remove warning introduced by the last committer. 1998-12-13 23:00:48 +00:00
Eivind Eklund
b405a21dd1 Another extra pointer check. 1998-12-13 22:29:32 +00:00
Warner Losh
69acd21dfd Add support for the YE-Data external PCMCIA floppy driver. This
floppy is used on the toshiba Libretto line of subnotebook computers.
It differs from a normal floppy in that you must use PIO rather than
DMA to transfer the data.

To enable this, you must add options "FDC_YE" to your kernel.  I don't
have a machine that has a floppy and a pcmcia slot to test to make
sure that this doesn't impact normal floppy units, so I've left this as
an option.

I have ported this to -current and made an attempt to ensure that the
indentation conforms to style(9), aka the bruce filter.

Reviewed by:	nate, markm
Submitted by:	David Horwitt (dhorwitt@ucsd.edu)
1998-12-12 08:16:01 +00:00
Eivind Eklund
2ae353f9a7 Rename one of the two devfs_link's to devfs_makelink. 1998-12-10 19:57:01 +00:00
Brian Somers
db21d4f4fc Support ESS1868 (and probably ESS688 & ESS1668).
Submitted by: Max Khon <fjoe@husky.iclub.nsu.ru>
1998-12-10 18:36:10 +00:00
Archie Cobbs
bd3d61e39f Eliminate compiler warning. 1998-12-10 01:52:16 +00:00
Archie Cobbs
4b62fdebb8 Eliminate compiler warnings. 1998-12-10 01:42:32 +00:00
Eivind Eklund
0d8e97fbaf Someday I hope people will learn that "#endif" is not a comment
introducer in ANSI C.
1998-12-09 03:30:52 +00:00
Eivind Eklund
80524be65c If we're not going to check returnvalues, it had better be M_WAITOK.
M_NOWAIT -> M_WAITOK in attach.
1998-12-09 03:11:33 +00:00
Eivind Eklund
11e8322cac Move the return so that the DEVFS code can execute, too. All code is
equal (it is just that some is more equal than other).
1998-12-09 02:56:48 +00:00
Archie Cobbs
f1d19042b0 The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static
and local variables, goto labels, and functions declared but not defined.
1998-12-07 21:58:50 +00:00
Bruce Evans
f9809f9802 Ifdefed a conditionally used include.
Don't depend on "implicit int".

Don't bloat the data section with labpc_devsw_installed.
1998-12-06 17:58:21 +00:00
Archie Cobbs
2127f26023 Examine all occurrences of sprintf(), strcat(), and str[n]cpy()
for possible buffer overflow problems. Replaced most sprintf()'s
with snprintf(); for others cases, added terminating NUL bytes where
appropriate, replaced constants like "16" with sizeof(), etc.

These changes include several bug fixes, but most changes are for
maintainability's sake. Any instance where it wasn't "immediately
obvious" that a buffer overflow could not occur was made safer.

Reviewed by:	Bruce Evans <bde@zeta.org.au>
Reviewed by:	Matthew Dillon <dillon@apollo.backplane.com>
Reviewed by:	Mike Spengler <mks@networkcs.com>
1998-12-04 22:54:57 +00:00
Archie Cobbs
790eeb2b51 Fix compiler warnings. 1998-12-04 22:14:05 +00:00
Archie Cobbs
aa0d9efc2e Fix typo: the expression .. & .. == .. needs parentheses: (.. & ..) == ..
PR:             8280 (2/3 patches contained in this PR)
Submitted by:   Sakari Jalovaara <sja@tekla.fi>
1998-12-04 21:33:06 +00:00
Poul-Henning Kamp
5986967ee2 don't print '?' for ioaddr the device may legitimately not have an
ioaddr.
1998-11-29 15:42:40 +00:00
Bruce Evans
d21c930ccb Fixed sloppy clearing of TS_BUSY. Don't clear it until the transmitter
is completely empty.  There is an interrupt for output completion.  It
is painful to use, but polling method used in the corresponding fix in
sio.c (rev.1.152) can't be used because there is no status bit for
transmitter-empty.  Now ttywait() works right.

Reminded by:	NIST-PCTS
1998-11-28 15:48:09 +00:00
Bruce Evans
4635f7acc0 Merge from sio.c rev.1.163:
Don't call timeout() for DTR wakeup if the relevant timeout is already
active.  This fixes "timeout table full" panics when sufficiently many
cyopen()s are interrupted while they are sleeping waiting for the
timeout to expire.
1998-11-28 13:18:16 +00:00
Paul Richards
1a3376721b Add Id string to if_lnc.h and fix up copyrights to be consistent and up to date. 1998-11-26 00:57:32 +00:00
Paul Richards
6789e41fe6 Despite what people may think the Am79C970 returns the chip id of an Am79C965.
Fix the PCI probe code to accept this id otherwise cards based on the Am79C970
fail to probe.
1998-11-26 00:53:45 +00:00
Bruce Evans
976d09b9f2 Untangled the Cyclades offsets a little. CY16_RESET and CY_CLEAR_INTR
were half of their physical offsets for ISA and 1/4 of their physical
offsets for PCI, while all other Cyclades offsets were physical/1 for
ISA and physical/2 for PCI.  Logically wrong macros were used to scale
CY16_RESET and CY_CLEAR_INTR to the correct physical offsets.

Fixed some style bugs (mostly long lines).
1998-11-23 13:58:55 +00:00
Bruce Evans
a84c84f5b0 Reduce i/o overheads by not preserving the channel access register in
interrupt handlers.  Instead, load and use it atomically as necessary.
This reduces mode switching overhead for "polled" mode interrupt handling
from 5 i/o's to 3 (per service type, per port) so that polled mode is only
slightly more inefficient than "interrupt" mode.
1998-11-22 17:40:32 +00:00
Bruce Evans
8280a33470 Deleted the workaround for lockup of certain (hopefully no longer used)
UARTs when their divisor latch registers are selected while they are
doing output.  Waiting for (some) output to drain is not permitted for
the TCSANOW case of tcsetattr().  NIST-PCTS easily detects bugs like
this by testing at at speeds that no one would want to use (50 bps).

Deleted stale comments related to flushing i/o.  Flushing works properly
for 16550s according to NIST-PCTS (it can't work properly for 16450s).
This finishes fixing all sio(16550)-related bugs found by NIST-PCTS.
1998-11-22 10:47:42 +00:00
Bruce Evans
121d04904e Fixed a comment in code that will soon go away. 1998-11-22 09:41:12 +00:00
Archie Cobbs
2b81bbcbef Eliminate compiler warning. 1998-11-21 01:57:48 +00:00
Archie Cobbs
3a8dbd82b3 Eliminate some ompiler warnings. 1998-11-21 01:54:50 +00:00
Kazutaka YOKOTA
0e06fe21c6 - Added some configuration flags as workaround for not-so-compatible
keyboard/mouse/display switch products (console switches).  Some
  products claim they emulate the PS/2 mouse when the host computer
  talks to the mouse while the mouse is actually routed to another
  host.

	flags 0x200	Do not try to identify the mouse model. All
			mice will be recognized as "generic PS/2".
	      0x400	Do not reset the mouse.  Some switches' response
			to the reset command is too slow and the psm
			will timeout.
	      0x1000	Relax error checking when probing the mouse
			port.

- Added another flag for pad devices.

	flags 0x800	Assume the pad behaves like ALPS GlidePoint
			when the user `taps' the surface of the pad;
			it will be reported as the fourth button.
1998-11-20 11:46:43 +00:00
KATO Takenori
8ea9416c8c Fix ROOL UP/DOWN keys of PC-98. 1998-11-18 08:33:58 +00:00