indicating an unhandled "command". ERESTART is -1, which can lead to
confusion. ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4. No ioctl code should now return -1 anywhere. The
ioctl() system call is now properly restartable.
when running at high speeds. This works by using hardware RTS again and
using the receive fifo threshold as well as the transmit fifo provided
by the sc26c92.
* Use machine/conf.h not sys/conf.h to get the prototypes for the
scn cdev functions.
* Include <sys/kgdb.h> to get prototypes for kgdb_connect and kgdb_attach.
* Add missing prototypes for some functions.
* Make ddb work before the console was opend. Thank's to Ian Dall
for this change. His comment:
Also, ddb doesn't work if a break is set before the console
is opened. That is because DTR and RTS are not asserted. It
would probably work if the console is wired to ingnore DTR
or RTS. The change below is probably not very correct.
Proabably the state of DTR and RTS should be saved and DTR
and RTS asserted on the start of a polled serial input and
the saved values restored on exiting polled input
* Remove unused function scn_ei.
* Uses Counter/Timer dynamicly for rate generation; You can
have both 19200 and 38400 on one duart, and 57600 on another!
* Improved scninfo program to dump driver internal information.
implemented counters for parity err, framing err, break
* Delays changes until transmitter idle to avoid "glitches"
* Cleaned up scn_softc member names
* Untested support for sc26c92 (I don't yet have any to test with);
+ Will use alternate rate tables (include 115.2kbps and 230.4kbps)
+ Will raise FIFO rx interrupt threshold and watchdog timer
at higher rates.
+ Unknown (to me) how fast pc532 MC145406 driver chips can go
NOTE: It seems like it may be a BAD idea to use a sc26c92 as
a console port for now; the PROM doesn't know to reset the
chip back to scn2692 mode!!
* Define RECOVER to something faster.
* Check for a valid softc in scnsoft. When there is
a "hole" (e.g. you have scn0,scn1, scn4, scn5) the
old code would panic. Thank's to Phil Budne for
finding and fixing this bug.
* intr_establish now takes *two* ipls. One at which the handler should run,
and one in which the interrupt should get blocked.
All the following changes were provided by Ian Dall:
* Remove SCN_HSOFT. Now that the pc532's software interrupt system is running
from int14, this won't work anymore.
* Add code to detect uart type (SCN2681, SCC2692 or SCC26C92).
* Cleanup my RECOVER mess. Thank's to Ian Dall for reading the datasheet
and removing all the unnecessary RECOVERs.
* Cleanup scnrxintr.
* Implement scnhiwflow.
* Do not use automatic RTS. This and scnhiflow and some changes to the
interrupt system suggested by Ian fix the scn overrun problem at 57600
baud.
* Real probe code added.
* Duart info is now allocated only for devices that are present.
* Added IO-Recovery delays for 30mhz systems.
* Removed a few potential NULL-pointer references.
- 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.
* conf/DEFAULT: new file, default install kernel
* conf/INSTALL: +MSDOSFS, +NO_INLINE_SPLX, +RD_SIZE=2mb, +scn4/5
* conf/KLONDIKE: cosmetic changes
* conf/STEELHEAD: cosmetic changes
* conf/files.pc532: rd got a file of it's own
* dev/lpt.c: changes to support lower interrupt latency, packet input/output
is now done at spl0
* dev/ncr.c: changes to support the most recent atari version of the ncr5380
driver
* dev/ncr5380.c, dev/ncr5380reg.h: upgraded to most recent atari version,
memcpy -> bcopy.
* dev/rd.c: ramdisk driver
* dev/scn.c: by patching scndefaultrate, the kernel's default baud rate can
be changed with gdb
* include/psl.h: struct iv now protected by !LOCORE && _KERNEL
inlining of splx can be prevented with new kernel option NO_INLINE_SPLX
splx_di is like splx but leaves processor interrupts disabled
* pc532/autoconf.c: cosmetic changes
* pc532/conf.c: with rd entries
* pc532/intr.c: changes to support splx_di
* pc532/locore.s: ramdisk is no longer initialized
not splx, but rett is now used to reenable CPU interrupts when leaving the
interrupt service routine. This is necessary to prevent recursive interrupts.
* pc532/sys_machdep.c: memcpy -> bcopy
* pc532/mem.c: moved ramdisk to dev/rd.c
* stand/Makefile: boot is now loaded at 0x3eb800 instead of 0x363800
Use current form of libsa and libkern.
* stand/inflate.c: emit twiddle every 8k and not every 1k
* stand/rd.c: ramdisk starts at 0x288000