📄 readme.epca
字号:
it's base address does not have to be (And cannot be configured directly). 7. Modified digiConfig to prompt for EISA/XEM cards. Files affected : epca.c, epca.h, digi1.h, digiConfigRelease version : 1.0.0g (BETA)----------------------------------------------------------------------------------------------------------------------------------------------Programmer : Ronnie SanfordDate : August 21, 1996Description (Verbose) : Made the following modifications: 1. A problem affecting hard flow control was found in the termios2digi_h routine. Specifically, when the user activated hard flow control using the CRTSCTS specification, the values used to program hard flow control on the board were incorrect. The solution was to change a line that read "res |= ((ch->m_dtr) | (ch->m_rts));" to "res |= ((ch->m_cts) | (ch->m_rts));" This line only applies if cflag & CRTSCTS. Special thanks to Matt Robinson (matt@mania.com.au) who found and fixed this problem. 2. In previous betas the cud device was set to CLOCAL on driver boot up. Likewise the ttyD device was set to ~CLOCAL. This has been fixed in this driver. Now ttyD is CLOCAL and cud is ~CLOCAL. The fix for this can be found in pc_init. 3. In ditty.c many changes were made to eliminate bugs and warning messages. Two ioctl calls were eliminated as well a problem involving using the returned baud index to determine the drivers baud rate. Newer Linux kernels support higher baud rates by using 0x1000 bit. When the returned value (ored with 0x1000) was used to reference our fbaud table a serious memory problem occurred. This has been fixed. 4. Added a request_region call to post_fep_init. This should cause the i/o ports being used to be registered with proc. 5. Modified digiConfig to set all cud and ttyD devices to read/write all permission. 6. Developed a new apps called buildPCI that provides an easy way to build device nodes for PCI cards. 7. Modified user.doc and technotes.doc document the use of buildPCI.Files affected : epca.c, ditty.c, digiConfig, user.doc, technotes.doc Release version : 1.0.0 (Official release)-----------------------------------------------------------------------Programmer : Ronnie SanfordDate : August 21, 1996Description (Verbose) : Made the following modifications: 1. Removed code from pc_close which closes the drivers line discipline and restores its original line discipline. This is currently unecessary, though future fast cook enhancements may require this. 2. Removed code in block_til_ready that set the asyncflags to either ASYNC_CALLOUT_ACTIVE, or ASYNC_NORMAL_ACTIVE. This code was redundant as it already existed in block_til_ready. 3. Added code in block_til_ready to cause a return prior to schedule being called if the device was a CALLOUT device. CALLOUT devices never block on CD. (This was a serious bug that prevented the CALLOUT devices (ttyD) from functioning properly in some instances. Make a change in the MODEMCHG_IND case of doevent such that it does not require ASYNC_CALLOUT_ACTIVE or ASYNC_NORMAL_ACTIVE to be set in order to unblock an open (Using wait_interruptible). Thanks to Mike McLagan (mike.mclagan@linux.org) for diagnosing and fixing this problem. 4. Made changes to the disposition of CLOCAL on both SERIAL NORMAL and CALLOUT devices. Both device types now have CLOCAL active at default. This may be changed with a stty command. 5. Made changes to digiConfig such that it checks major.h (If valid) for the correct major numbers to use.Files affected : epca.c, digiConfig Release version : 1.0.1a -----------------------------------------------------------------------Programmer : Ronnie SanfordDate : September 17, 1996Description (Verbose) : Made the following modifications: 1. Modified pc_open such that it no longer checks the cflag value returned by termios2digi_c for CLOCAL. Digi hardware does not use this value and thus termios2digi_c rightly screens this value out. This driver checks for CLOCAL using the drivers cflag value as known by the Linux OS. (The value passed into termios2digi_c) 2. Modified termios2digi_c to screen out the CBAUDEX in CBAUD. This error caused parity to automaticaly be enabled on at higher baud rates. 3. Added the "disable_bh()" call to the shutdown subroutine. Hopefully this will allow the driver to correctly clean up after itself when used as a module. 4. Added support for the PC/XI and 64K PC/XE cards. This involved primarily modifying digiDload to initialize and boot the new cards; however driver modifications were also required to provide the proper windowing for the newly supported cards. (Code was also added to determine the memory segment of the XI card as that card may have more than 64K. Currently digiDload assumes a 64K XI card.) 5. Added subroutine called epca_setup that can be called during LILO boot up. This provides the user an easy way to change cards; without running digiConfig and without recompiling the kernel. Added code in pc_init and pc_open to support the epca_setup routine. pc_init checks the liloconfig flag (Which is set by epca_setup) to determine if the driver is using the LILO arguments. If not pc_init loads the board data found in epcaconfig.h; if so it DOESN'T load epcaconfig data depending on epca_setup to handle board configuration. pc_open has been modified such that it checks to ensure that no errors occurred during the LILO boot process. If a user attempts to boot the driver (via. LILO) with incorrect data, the open will fail. 6. Modified the windowing routines pcxe_rxwinon and pcxe_txwinon routines. A bug existed such that those routines checked to see if the rxwin and txwin flags were reset. If so they assumed the board was an XI or 64K XE. Furthermore since these flags were never initialized in our driver sometimes they were 0 and therefore caused a memory fault (Or at least a window overrun). This code has been removed since the pcxe shares nothing in common with the 64K XI and XE. 7. Added code in pc_init to set the memory_seg for the various boards. This code was necessary to correct a bug in the PCXE, PCXEVE code where receive and transmit pointers were being calculated from an uninitialized variable (memory_seg). 8. Modified digiConfig to allow 64K PC/XI and 64K PC/XE cards to be configured. 9. Made changes to support the new 2.1.x development kernel. In particular this required changing all references to vremap to ioremap. 10. Modified digiConfig such that it now generates node names corresponding to their internal as opposed to the label on the port itself. Nodes (ttyD?? and cud??) now start at 0. Example: ttyD0 and cud0 represent port 1 on any supported Digi product. A similar change has been made in buildPCI.c. 12. At the early portion of post_fep_init if a PCI card is detected a warning message could be given incorrectly if 64 ports were attached to a PCI card. The below line : epcaassert(bd->numports > 64,"PCI returned a invalid number of ports"); was changed to : epcaassert(bd->numports <= 64,"PCI returned a invalid number of ports"); Remember that epcaassert checks for NOT true. Special thanks to Daniel Taylor for fixing this. 13. Modified the epcaparam routine. In version 100 and 101a there was a line that looked like the below: if (ch->omodem != mval) The problem with this line was that the first time through omodem was not initialized. Secondly, since many TIOC commands did not alter mval (They use a different variable) changes made by these commands could be lost. This line was changed to: mval ^= ch->modemfake & (mval ^ ch->modem); if (ch->omodem ^ mval) 14. Modified digiConfig in such a way that it checks the version number of the kernel and if it finds a 2.x.x kernel or higher it reads the necessary major numbers for cud and ttyD devices from major.h. This was also done in prior versions but these versions required a #define which identified the kernel as a version which did not have major numbers assigned to Digi systems. This #define is no longer required allowing the same source tree for multiple kernel releases. 15. Used macros to replace kernel specific calls such as put_fs_long, get_fs_long, put_user, and get_user the kernel version is now detected and the macro is defined as to correspond with the kernel it is being compiled into. Again this was done to allow one source tree for multiple kernel releases. 16. Added support for the new 2.1.x development kernels to digiInstall.Files affected : epca.c, digiConfig Release version : 1.1.0-----------------------------------------------------------------------Programmer : Daniel TaylorDate : April 25, 1997Description (Verbose) : Updated driver: 1. Fixed DCD bug. (&tq_scheduler) 2. Removed BH handler code, as it was only handling hangups, and not being called for that. 3. Namespace cleanup (DIGI_TIMER2 => DIGI_TIMER) 4. Updated to 2.1.36, removed #ifdefs for earlier kernel revisions.Files affected : epca.cRelease version : 1.1.1 (BETA)-----------------------------------------------------------------------Programmer : Daniel TaylorDate : March 11, 1999Description (Verbose) : Updated driver: 1. Simultaneous data and modem change events were resulting in the modem change events not being recognized. Fixed. 2. Modified pc_info device name to work better with devfs.Files affected : epca.cRelease version : 1.3.0-K -----------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -