home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 1 / 1843 / RELEASENOTES < prev   
Encoding:
Text File  |  1990-12-28  |  19.1 KB  |  439 lines

  1.      release 1.1a Sat Nov 11, 1989
  2.  
  3.      This is an unofficial release as I'm not the original author
  4.      of this async driver.
  5.  
  6.      Uwe Doering             Domain   : gemini@geminix.in-berlin.de
  7.      Billstedter Pfad 17 b   Bangpath : ...!unido!fub!tmpmbx!geminix!gemini
  8.      1000 Berlin 20
  9.      Germany
  10.  
  11.      New Features:
  12.  
  13.           Added a third minor tty device number for every physical
  14.           port. See description preceding the asyopen function in
  15.           asy.c. Changed the behavior of ttyxx, too.
  16.  
  17.           Added output hardware handshake support for DSR. Now you
  18.           can do handshake with CTS, DSR or both. Input hardware
  19.           handshake is on if you use at least one of the output
  20.           handshake signals.
  21.  
  22.           More flexible support of additional interrupt registers
  23.           on mux boards. This is fully configurable now.
  24.  
  25.           Added support for the CREAD flag. If not set, receiver
  26.           interrupts are still serviced, but the received characters
  27.           are simply thrown away. This is not as elegant as disabeling
  28.           the interrupts themselves, but with the already existing
  29.           driver it was the easiest way, and the most new-bugs-preventing,
  30.           too.
  31.  
  32.           Added a lot of comments to the source so that the curious
  33.           user can understand why and how things are done.
  34.  
  35.  
  36.      Bug Fixes:
  37.  
  38.           The hang-up-on-last-close flag (HUPCL) was ignored. DTR
  39.           was asserted regardless of this flag.
  40.  
  41.           Made the detection of CTS and DCD more bullet-proof.
  42.           Especially because between a close and the next open of
  43.           a line, where interrupts are ignored, the software copys of
  44.           CTS and DCD must be set up propperly in the asyopen function
  45.           or the tty line would be blocked under certain circum-
  46.           stances. For similar reasons, there is also a setup in the
  47.           asyparam function.
  48.  
  49.           Rewrote the input character processing function to work
  50.           according to the TERMIO(7) man page.
  51.  
  52.           Changed the behavior of BREAK generation to let the
  53.           transmitter drain before TX is set to low.
  54.  
  55.           Changed line hangup procedure so that the closing
  56.           process returns immediately and doesn't sleep during
  57.           the hangup delay/time. Instead, if an other process tries
  58.           to open the line while hangup is still in progress, this
  59.           process will sleep until hangup is competed.
  60.  
  61.           With DOS Merge, on MicroPort V/386 3.0e the linker was
  62.           missing the function `init8250'. Reengineered this from
  63.           a disassembler listing of MicroPort's original driver and
  64.           modified it to work with the NS16550A 16-byte FIFO. This
  65.           funktion was added simply to be able to link the kernel.
  66.           DOS Merge's virtual COM ports are still unusable with this
  67.           release, though. To include this function, add a `-DMERGE'
  68.           to the CFLAGS line in your makefile.
  69.  
  70.           Made a lot of other corrections and enhancements in both
  71.           speed and functionallity. As a result of all my effords
  72.           I think this driver is slightly faster, more versatile
  73.           and much more stable than the original release.
  74.  
  75.      ------------------------------------------------------------
  76.           
  77.      release 1.1b Sat Nov 25, 1989
  78.  
  79.      New Features:
  80.  
  81.           Changed the minor device number scheme again.
  82.           There are now two main groups: The unblocked open
  83.           and the blocked open. Every group has four sub-modes
  84.           and an additional hardware handshake flag. All this
  85.           is coded in the higher four bits of the minor device
  86.           number. Because of this, the maximum of 32 ports was
  87.           reduced to 16 ports so that the port number fits into
  88.           the remaining lower four bits of the minor device number.
  89.           32 dumb ports in a single machine would have been overkill
  90.           anyway. For more details refer to the description in the
  91.           README file.
  92.  
  93.      ------------------------------------------------------------
  94.           
  95.      release 2.00 Mon Nov 27, 1989
  96.  
  97.      As this release differs so much from the original version I got,
  98.      I now declare this as independant from the original author
  99.      Jim Murray. This allows me to introduce new release levels
  100.      without wondering whether they will collide with Jim's releases.
  101.      Of course many credits to Jim for writing this software in the
  102.      first place. Without his driver as a base I never would have
  103.      been able to do such kernel driver development.
  104.  
  105.      Bug Fixes:
  106.  
  107.           If there were glitches on the hardware handshake lines
  108.           and the DCD line a getty on this port would sometimes
  109.           hang and become an immortal process. I think this was
  110.           because the output buffer wasn't flushed properly
  111.           on carrier loss. I hope I fixed this now. We'll see.
  112.  
  113.      ------------------------------------------------------------
  114.           
  115.      release 2.01 Tue Nov 28, 1989
  116.  
  117.      Did some cleanup in the source code.
  118.  
  119.      I splitted the driver into two parts: The driver itself and
  120.      the file `space.c'.
  121.      `space.c' contains all data structures necessary to configure
  122.      the driver and is compiled at kernel link time. Therefore if you
  123.      change your serial card configuration you simply change `space.c'
  124.      directly in the link kit directory and relink the kernel. No
  125.      driver recompilation or installation is necessary for this.
  126.      But note that whenever you use `make install' your setup in
  127.      the link kit directory is overwritten by the original `space.c'
  128.      file. Therefore you should copy your new `space.c' back to
  129.      the source directory when you are finished with the configuration.
  130.  
  131.      Renamed the package to `FAS Final Async Solution'. The following
  132.      files have been renamed:
  133.           asy.c          -> fas.c
  134.           asy.h          -> fas.h
  135.           asy_conf-xxxxx -> space-xxxxx
  136.  
  137.      ISC 386/ix is supported now. There are separate makefiles
  138.      for uPort and ISC to cope with the differences in link kit
  139.      installation.
  140.  
  141.      Bug Fixes:
  142.  
  143.           `getty' still hung sometimes on a line with hardware
  144.           handshake. Tried to fix it this time.
  145.  
  146.      ------------------------------------------------------------
  147.           
  148.      release 2.02 Thu Nov 30, 1989
  149.  
  150.      Abandoned the distinction between space-xxxxx files with
  151.      and without hardware flow control because this is selected
  152.      by the minor device number now.
  153.  
  154.      Bug Fixes:
  155.  
  156.           Set the high and low water marks for hardware input flow
  157.           control to higher values than software flow control. This
  158.           gives precedence to software flow control if both methods
  159.           are used. These marks are self-adjusting and don't need to
  160.           be changed if some flavor of UNIX has a different buffer
  161.           size than the standard 256 characters. Before this change
  162.           concurrent use of both flow controls could cause trouble
  163.           with some high-speed modems. This is fixed now.
  164.  
  165.           A flush read or write buffer request now also clears the
  166.           receiver or transmitter FIFO, respectively. An ioctl
  167.           call with a TCSETA* command clears the FIFOs, too.
  168.  
  169.      ------------------------------------------------------------
  170.           
  171.      release 2.03 Fri Dec 01, 1989
  172.  
  173.      Wrote an installation guide. The driver should be quite
  174.      easy to install now.
  175.  
  176.      Added tty node configuration files for ISC.
  177.  
  178.      Hardware input flow control is bound now to the level of the
  179.      receiver ring buffer instead of the UNIX input buffer. This
  180.      has the advantage that buffer size and trigger levels are
  181.      defined in the driver and therefore can be varied as needed.
  182.  
  183.      New Features:
  184.  
  185.           Added a boot time status message that shows the init
  186.           state of each port. This tells you immediately what
  187.           ports are found and initted by the driver. Useful to
  188.           determine hardware configuration problems. Look at
  189.           the description in the README file. Thanks to
  190.           Kritt Gierlewsen (kritt@einoed.UUCP) for this proposal.
  191.  
  192.      ------------------------------------------------------------
  193.           
  194.      release 2.04 Thu Dec 07, 1989
  195.  
  196.      Did some cleanup in the source.
  197.  
  198.      Removed the FIFO clear from the ioctl function. We don't want
  199.      to do things there that aren't in the book.
  200.  
  201.      An ioctl call that switches off the CLOCAL flag will create
  202.      a SIGHUP signal if the carrier is actually missing at this
  203.      time.
  204.  
  205.      Every device is tested now quite thoroughly during initialization.
  206.      If the test fails the corresponding device keeps unconfigured.
  207.  
  208.      ------------------------------------------------------------
  209.           
  210.      release 2.05 Sat Jan 13, 1990
  211.  
  212.      This is the first public release of the FAS driver.
  213.  
  214.      Special thanks to the sysops of my test sites, Axel Fischer
  215.      (fischer@utower.UUCP) and Kritt Gierlewsen (kritt@einoed.UUCP).
  216.  
  217.      FAS is now an independant driver with its own driver name (`fas'),
  218.      major device number, link kit directory and other things necessary
  219.      for a driver. The original asy driver may or may not be linked
  220.      with the kernel. You only need it if you want to access some
  221.      serial devices via the virtual COM ports of the DOS emulator
  222.      (DosMerge or VP/ix) because the FAS driver doesn't have this
  223.      (really vendor dependant) feature.
  224.  
  225.      The default prefix for tty device node names is `ttyF' now.
  226.      This prevents mix-ups with the device names of the original
  227.      asy driver.
  228.  
  229.      Dropped the SYSV/AT support. I couldn't test the driver
  230.      for several release generations on uPort SYSV/AT, and because
  231.      there are not very much systems left with that flavor of UNIX
  232.      it doesn't make sense to try to maintain compatibility with it.
  233.      If someone really wants to use this driver on a 286 he has
  234.      to port it himself.
  235.  
  236.      Improved the transmitter FIFO fill procedure. Now it will try
  237.      harder to fill the FIFO as much as possible to cut down on
  238.      transmitter interrupts.
  239.  
  240.      Software input flow control (XON/XOFF) is controlled by the driver now.
  241.      It is bound to the level of the receiver ring buffer (as is hardware
  242.      flow control). As usual, it can be switched on and off by the
  243.      IXOFF flag in the termio(7) structure.
  244.  
  245.      Changed and speeded up the ring buffer -> unix buffer processing.
  246.  
  247.      For ISC, the getty lines for the inittab file are installed
  248.      by the makefile now.
  249.  
  250.      The conditional compilation of the function `init8250' (for
  251.      DosMerge) is now controlled by a define in `fas.h'. The compiler
  252.      switch `-DMERGE' is not used any more.
  253.  
  254.      Improved the documentation.
  255.  
  256.      The signals used for modem control and hardware flow control are
  257.      fully configurable in the `space.c' file now. Look at `fas.h' for
  258.      possible macros and combinations.
  259.  
  260.      There are some new modes for hardware flow control, for instance
  261.      HO_CTS_ON_DSR. This means that CTS is only looked at if DSR is on.
  262.      If DSR is off output is possible regardless of CTS. The underlying
  263.      assumption here is that we can expect proper handshake handling
  264.      only from devices that are in the ready state (indicated by DSR).
  265.      As a spin-off the problem with the hanging getty on lines with
  266.      turned-off terminals (mentioned in earlier releases) should be
  267.      gone if you use this new mode.
  268.  
  269.      If the XCLUDE-Flag is availabe (SYSV 3.2 because of Xenix
  270.      compatibility) exclusive open of a device is possible.
  271.  
  272.      The default size of the input ring buffer is now 5000 bytes.
  273.      This makes streaming input more likely even on loaded systems.
  274.  
  275.      Bug Fixes:
  276.  
  277.           The task state busy flag wasn't reset in some rare cases.
  278.           This could cause processes to become immortal while waiting
  279.           for the busy flag.
  280.  
  281.           Under some special conditions an ioctl call with a TCSETA?
  282.           command could corrupt the last character in the transmitter
  283.           shift register. This is fixed now.
  284.  
  285.           More fixing of the busy flag handling was necessary.
  286.           Co-ordinating several delayed tasks controlling this flag
  287.           is kind of tricky.
  288.  
  289.           After a TCSETA* ioctl command we disable the transmitter
  290.           for 2 sec (measured from the last transmitted character)
  291.           if the character format and/or speed has changed. This
  292.           gives the receiving side some time to do the same changes.
  293.           This is kind of experimental. There may be applications that
  294.           suffer from this delay. You may change the #define ADAPT_TIME
  295.           in `fas.h' to a smaller value.
  296.  
  297.      ------------------------------------------------------------
  298.           
  299.      release 2.06 Fri Mar 16, 1990
  300.  
  301.      This should have been patch #3 for release 2.05, but there are
  302.      so many changes now that I decided to make it a new release.
  303.      Therefor some of the changes are described in the 2.05 release
  304.      notes above but were never released to the public.
  305.  
  306.      New Features:
  307.  
  308.           There is a transmitter ring buffer now to make the output
  309.           less system load dependent. This really speeds things up
  310.           because the transmitter FIFO gets filled with more characters
  311.           at once. The buffer size depends on the actual baud rate to
  312.           prevent long output buffer drains at low speeds.
  313.  
  314.           There are also bigger input buffers to make FAS more competitive
  315.           against "intelligent" cards.
  316.  
  317.           Lots of speed improvements and many small changes.
  318.  
  319.      Bug Fixes:
  320.  
  321.           Fixed input/output buffer flush on carrier loss while close
  322.           is waiting for the output to drain.
  323.  
  324.      ------------------------------------------------------------
  325.           
  326.      release 2.07 Tue Sep 18, 1990
  327.  
  328.      This is a major redesign of the previous release. I put most of the
  329.      time consuming tasks in one function that is invoked asynchronously
  330.      by timeout calls. Inside this function most of the code runs at
  331.      a lower system priority level (spl5) than the interrupts. That
  332.      means that during character processing tty interrupts are allowed.
  333.      This is the main key to operation at 38400 bps on multiple ports
  334.      at the same time which is possible now with this release.
  335.  
  336.      New Features:
  337.  
  338.           FAS supports the VP/ix DOS emulator!
  339.           Now you can throw out the vendor's original driver even
  340.           if you like to have a serial mouse or modem access in DOS.
  341.           Read the paragraph about VP/ix in the README file.
  342.  
  343.           The Intel i82510 port chip is supported. It has separate
  344.           4-character FIFOs for input and output. Although the
  345.           NS16550A is much better this chip is your second choice
  346.           if you can't get your hands on the National chips.
  347.           Thanks to Christian Seyb (cs@gold.UUCP) for sending me
  348.           patches and the necessary documentation for the Intel
  349.           chips.
  350.  
  351.           There is an init sequence in `space.c'. You can put any
  352.           number of address-data pairs in a null terminated array
  353.           to program your serial card or other hardware before
  354.           FAS makes the first access to the ports. AST 4-port cards,
  355.           for instance, have an additional port that needs to be
  356.           written to with a certain bit pattern to allow shared
  357.           interrupts. If you need to read a port to achieve the
  358.           setting or resetting of flags as a side effect, this
  359.           is possible, too.
  360.  
  361.           ESIX is officially supported now.
  362.  
  363.           SCO UNIX is officially supported, too. FAS needs to be
  364.           compiled with the command line flag `-DSCO'. The makefile
  365.           for SCO takes care of that. Thanks to Walter Mecky
  366.           (walter@mecky.systemware.de) and Frank Simon
  367.           (terra@sol.north.de) for helping me in making the necessary
  368.           changes for SCO UNIX.
  369.  
  370.           SCO Xenix 386 is also officially supported. FAS needs to be
  371.           compiled with the command line flag `-DXENIX'. The makefile
  372.           for SCO Xenix takes care of that. Thanks to Andreas
  373.           Steinmetzler (andreas@oil.UUCP) for doing the port.
  374.  
  375.           If you have the RTSFLOW and CTSFLOW termio(7) flags,
  376.           hardware handshake can be controlled by them.
  377.           Note that enabling handware flow control via the
  378.           minor device number overrides these flags. If you
  379.           like to use them you need to create tty device nodes
  380.           with minor device numbers in which the bit for hardware
  381.           handshake is set to 0. Look at the description in the
  382.           README file for more details.
  383.           Note also that if you choose to use RTSFLOW and CTSFLOW
  384.           all your programs that do initial access to tty devices
  385.           (getty, uucico, cu, SLIP dialup program etc.) need to know
  386.           about these flags or hardware handshake will not be used.
  387.  
  388.           The `O_EXCL' flag for the open(2) call is honored now.
  389.           This allowes exclusive access to an FAS device without
  390.           suffering from race conditions which could occure with
  391.           the termio(7) XCLUDE flag method.
  392.  
  393.           The `fas_test_device' function returns a digit now that
  394.           indicates at which phase the test exited due to an error.
  395.           This error digit is displayed in the boot message. Thanks
  396.           to Brian Beattie (beattie@visenix.UUCP) for sending me
  397.           the necessary patches.
  398.  
  399.      Bug Fixes:
  400.  
  401.           Automatic input FIFO flush after unblocking the getty
  402.           open by the carrier or the unblock signal. This makes sure
  403.           that there is no chance that there are characters in the
  404.           FIFO that were received before the open got unblocked.
  405.  
  406.           The sdevice entry for the AST 4-port card had a wrong
  407.           I/O address range (`s_fas-mux4'). This didn't affect FAS
  408.           but is checked by the kernel config program.
  409.  
  410.           The gcc (GNU cc) support was removed because gcc's object
  411.           file wants to link in some "helpful" functions that aren't
  412.           contained in the kernel. But anyway, FAS is tuned so carefully
  413.           and depends on the optimization behaviour of the AT&T
  414.           standard C compiler that gcc won't have any advantages.
  415.  
  416.           I changed the method with which the `fas_test_device' function
  417.           waits for certain events. The `delay' function was used
  418.           for that purpose but it turned out that with some flavors
  419.           of UNIX it is prohibited to use this function during the
  420.           xxinit phase of the boot process. Now a simple timeout loop
  421.           is used instead.
  422.  
  423.           Removed the ADAPT_TIME mechanismn introduced in release 2.05.
  424.  
  425.           The open() call now returns an `EBUSY' error number if the
  426.           device is already open and can't be opened in the desired
  427.           mode at this time.
  428.  
  429.           The handling of the RING signal needed fixing. Unlike the other
  430.           three modem status lines RING generates an interrupt only at
  431.           the trailing edge.
  432.  
  433.           No SIGHUP signal is sent any more if an ioctl call clears
  434.           the CLOCAL termio(7) flag while there is no carrier present.
  435.           SIGHUP is only sent if the actual DCD modem line drops.
  436.  
  437.           The files *-mux4 were renamed to *-ast4 because this type of
  438.           card was originally developed by AST (AST 4-port card).
  439.