PCI I/O Card
Information on the DabsValue/NetMos Technology 222N-2/NetMos 9835 1 Parallel/2 Serial PCI I/O Card.
For quite some time now, I've been having to share quite a few different devices between the two serial ports on Jesmos. Needless to say, this got quite annoying. Sabrina took one of the ports on a permanent bases for her network connection (which is looking likely to stay that way unless someone can tell me about a PCMCIA NE2000 NIC, so every time I wanted to use another device, I had to go around the back, unplug one device and plug the new one in.
I eventually found a PCI card that provided a couple of extra serial ports at a reasonable price. I was slightly apprehensive, however, as it was sold as a DabsValue card, which is Dabs.com's line of cheap, rebadged hardware. If you're interested, the QuickLinx code is 24ZTWS. Anyway, my mate was putting in an order with Dabs, so I decided to tack the card on to the end of his order. Sure enough, not too long ago the card turned up, looking like your average generic PCI card:
Getting it to work under Linux was reasonably easy, once we'd decided exactly what the card was. lspci identified the card as follows:
00:0a.0 Communication controller: NetMos Technology 222N-2 I/O Card (2S+1P) (rev 01)
A quick search on Google reveals that this is in fact a NetMos 9835 chip with a serial EPROM causing it to be identified as a NetMos 222N-2. More searching shows that if you want to build a cheap PCI parallel/serial I/O card, this is the chip to base it on, so there are a lot of these cards out there. It might not be supported in the standard kernel, but there are patches out there for it.
For your convenience, the patches against 2.4.20-pre9 are included in the Linux Software section. These patches also apply cleanly on the release 2.4.20 tree. Just apply these patches and turn on parport_serial support, and all being well you should have /dev/tts/4 and /dev/tts/5 (or similar) magically appear. It also seems to support the card's parallel port, but short of looking for /dev/printers/1 (which does now exist), I haven't tested this.
The driver seems to indicate a maximum baud rate of 115,200bps for NetMos 9835-based cards, and it certainly does seem to manage this speed quite well. I've not got any other devices capable of talking any faster than 115,200, so I've not been able to try pushing the card past this speed. If anyone does and can let me know how it goes, please do.
Update:
Thanks to a (presently anonymous until I get confirmation of details for crediting) user of this site, I can sow say that certain manufacturers make boards where the serial port external clock can be controlled by jumpers present on the board. This seems to be the case at the very least for a Taiwanese manfuctured card labelled "MP9835R2".
Also, with many thanks, he has provided the start of a mini-FAQ for the NetMos driver:
NetMos 222N-2/9835 Mini-FAQ
- Some manufacturers make "two serial ports only" cards based on same 222N-2, disabling parallel inteface in chip. In this case you MUST enable motherboard parallel port, even if you needn't it and try to save interrupt lines in single-CPU PC. I see no workaround: parport_serial relies on parport_pc driver, and parport_pc does not start in absence of it's hardware.
- A non-trivial issue can be serial device naming and numbering. In my configuration parport_serial reports about "ttyS04" and "ttyS05" devices upon module load. The real device numbers are:
- 4,64 /dev/ttyS0 - COM1, in motherboard
- 4,65 /dev/ttyS1 - COM2, in motherboard
- 4,66 /dev/ttyS2 - COM3, non-existent but reserved by "serial"
- 4,67 /dev/ttyS3 - COM4, non-existent but reserved by "serial"
- 4,68 /dev/ttyS4 - parport_serial
- 4,69 /dev/ttyS5 - parport_serial