Commit Graph

101 Commits

Author SHA1 Message Date
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
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
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
cgd f89ffa1fe4 don't clobber IER in cominit(). (suggested by mycroft.) 1997-01-30 19:42:33 +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
cgd 197d80c63a update these so they compile whether or not __BROKEN_INDIRECT_CONFIG
is defined.
1996-12-05 01:25:23 +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
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
christos 86373f8cf9 backout kprintf changes 1996-10-13 01:37:04 +00:00
christos 58953408cb printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:04:48 +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
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
cgd bc2f07f331 move DDB-only label inside an #ifdef, so that -Wall works 1996-07-10 18:14:04 +00:00
cgd 08d585e924 add tty_attach() where appropriate. 1996-05-30 18:24:09 +00:00
mycroft cec36bf8d5 Use intr.h. 1996-05-12 23:51:23 +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 e8a8a6298c - prototype fixes 1996-04-29 20:02:32 +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
cgd 179f65d15e Add #ifdef's at the right places, on NCOM_ISA and NCOM_COMMULTI, to
only include the relevant code in the probe & attach functions.  Still
one probe and one attach function, with #ifdefs, but this is a step
in the right direction and saves a few hundred bytes (ooh, ahh!).
1996-03-17 13:38:14 +00:00
thorpej 6d9ea4cf59 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 00:43:52 +00:00
cgd 85286bff2f convert these to use new <machine/bus.h> interfaces. This involved
substantial reworking of the multi-port drivers, as they need to frob
bits in the io-port spaces of their children.  As a result, the
commulti->com attachment interface is substantially more complex.
(This may be fixable in the future by making some of the code common,
but as long as io-port allocation checking is planned, it's necessary.)
1996-03-10 09:01:20 +00:00
cgd a7c6dfe1cd include comvar.h for comprobe1() prototype 1996-03-09 01:02:08 +00:00
scottr 4005c5fd09 Fix typo (PR 2123, from Michael VanLoon) 1996-02-26 22:48:32 +00:00
mycroft a35f0ac985 Add more debugging code. 1996-02-20 12:13:09 +00:00
mycroft 5021ab87f1 Update copyright notice. 1996-02-19 15:23:25 +00:00
mycroft 5bc567b0d3 Set IER_ETXRDY before outputting any bytes, to prevent race condition. 1996-02-19 15:09:25 +00:00
mycroft c011a5eae4 Handle break more correctly.
Make IER_ETXRDY track TS_BUSY.  (Prevents a loop in comintr() if no output
is available.)
Add a bunch of debugging code.
1996-02-19 14:53:03 +00:00
mycroft e5730c4a73 Fix a race condition where we might stop outputting if a write follows a
flush too closely.
1996-02-18 09:10:15 +00:00
mycroft 203f5d5329 Add some text describing the UART lossage worked around in the previous. 1996-02-17 04:51:41 +00:00
mycroft 121f6570d7 Drain the transmitter FIFO before changing the baud rate or FIFO depth
registers.  Fixes PR 2046.
Also, if COMCONSOLE is defined, expect CONSPEED to be the baud rate.
1996-02-17 04:04:28 +00:00
christos 11d31f7ce7 Hayes ESP patches [from PR database] 1996-02-10 20:23:18 +00:00
christos d3427703db Hayes ESP support from Michael Van Loon, with minor cleanups. Tested on
a single port ESP card; works great!
1996-01-14 23:44:34 +00:00
mycroft 3da4b2a160 The IST_* and IPL_* constants are not bus-specific; don't treat them as such.
Change splimp -> splnet in Ethernet, ARCnet, and FDDI drivers.
1995-12-24 02:29:35 +00:00
mycroft f096f370fb Use SET(), CLR(), and ISSET() macros.
Rename CFCR to LCR, and cache its value.
Check MSR before transmitting, for better flow control.
Preserve LCR_SBREAK inside comparam().
1995-10-15 19:43:04 +00:00
mycroft eb99dcc09a Fix a condition where ttywait() wouldn't be woken up. Also, short-circuit
the case of no pending input in compoll().
1995-07-04 06:47:18 +00:00
cgd 2b71eae2c7 note that most of dev/ic's contents have changed names 1995-06-28 04:30:30 +00:00
mycroft 4bfd7749ad Various:
* Check for CTS in the correct register.
* Only do a selwakeup() if we output something.
* Don't make assumptions about what TTYDISC does.
1995-06-05 19:08:09 +00:00
mycroft 5b37a8fded Handle BREAK correctly when not entering DDB. 1995-06-04 20:50:14 +00:00
mycroft 38847d04c0 Add an input FIFO, and fix several flow control problems. Based on code from
Felix A. Croes.
1995-06-04 20:39:22 +00:00
jtc d045544ebd Changed ns82450 to ns8250 and dropped ns82550 from probe console messages. 1995-06-01 21:26:51 +00:00
mycroft addaff473b Only use the `no pending interrupt' bit in the IIR; the other bits
are too unreliable on clone chips.
1995-05-28 03:26:37 +00:00
cgd c821cb684a (1) conditionalize debugger usage in comeint with DDB, not COMCONSOLE;
latter would lead to undefined symbols if DDB not defined.
(2) check for break on console, and therefore debugger entry (if ddb
	in kernel) earlier, so that the device doesn't need to be open.
(3) return immediately after breaking into the debugger in comeint().
(4) only do the normal character input routine in comintr if receive
	mask yeilds _EXACLTY_ LSR_RXRDY.  if there's only a receive
	error, or there's a receive error _and_ a received character,
	do comeint().
(former two by me.  latter two from Bob Baron <rvb@cs.cmu.edu>.)
1995-05-12 17:54:41 +00:00
hpeyerl c9319ad5c4 <break> --> ddb if defined(comconsole).
(if you have a serial console and you hit break, you get ddb).
1995-04-28 00:34:08 +00:00
mycroft 9e28a35469 Fix thinko in previous change. 1995-04-19 22:04:33 +00:00