Access to 3rd and 4th serial ports

modified: Sun Mar 26 2000


Q: Can minix communicate with the third and fourth serial ports?

A: The Minix serial port driver only supports two lines, /dev/tty00 (MS-DOS COM1) and /dev/tty01 (MSDOS COM2). It would be a major effort to change this, because doing so would require sharing interrupts between different devices. MS-DOS can handle 4 COM ports if two of them are polled, rather than interrupt-driven, but polling ports would not work well in the multitasking, multiuser environment of Minix.

If you want, you can modify the source code in /usr/src/kernel/rs232.c to access the MS-DOS COM3 instead of COM1, or COM4 instead of COM2, by changing the I/O addresses. The ports will still be known to Minix as /dev/tty00 and /dev/tty01. The following are the lines to modify, the comments show what to do:

#if (MACHINE == IBM_PC)
/* 8250 base addresses. */
PRIVATE port_t addr_8250[] = {
  0x3F8,                /* COM1: (line 0); COM3 might be at 0x3E8 */
  0x2F8,                /* COM2: (line 1); COM4 might be at 0x2E8 */
};
#endif

[Modified from a response posted to the Minix-l mailing list in Dec 1998 -- asw]

Return to the Minix hints page .