> Supports an unlimited number of stand-alone serial ports, COM ports, and multiport boards." as I’ve quoted in the other part of this thread doesn’t help.
This is purely misunderstand what this statement intends to say. I explained in my previous reply what the intent was. This statement in no way implies anything or says anything about the underlying hardare (pci, isa, usb, whatever) that exposes the com port and any issues associated with that, rather it is just saying that there are no hard coded max values in the serial driver
d
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Charles
Sent: Tuesday, October 04, 2011 9:28 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] serial.sys support for m;ultiport UART, each with 16550 interface?
Am 04.10.2011 06:40, schrieb Jake Oshins:
The class code is essentially irrelevant, as there’s no PCI class code
that means “here’s the exact programming interface for this class
code, and it’s compatible with a 16550.”
Well I’ll have to disagree with you on that point. PCI Local Bus version 3.0, page
300 clearly says, class/subclass/interface 0x07/0x00/0x02 means “16550 compatible serial controller”. Of course I assume only the programming interface is considered. Level/Edge signalled interrupts and possibly even features like FIFO depth are not necessarily implied. Let’s just say the programming model is ‘close enough to be usable in most cases’
Similarly, there’s no such thing as perfectly 16550-compatible on PCI,
because you may be forced to use your line-based interrupt instead of
MSI, and line-based interrupts are level-triggered and a 16550’s interrupts are edge-triggered.
Furthermore, people have discovered over many years that amalgamating
12 or more actual 16550’s on a single board would generate a truly
astounding number of interrupts. So almost everybody eventually
decides to depart, at least slightly, from the “just a bunch of UARTs” strategy. I encourage you to depart from this, too.
I’ll agree 100% on this. But Microsoft issuing statements like “Supports an unlimited number of stand-alone serial ports, COM ports, and multiport boards.” as I’ve quoted in the other part of this thread doesn’t help.
My customer reads things like that (or has somebody who reads things like that) and takes them for something close to trivial to implement. Firstly, I just need to get a demo up and running on an FPGA board. Preferably with some flashing lights or something like that (maybe I can get it to make a few noises as well) and then when I explain the problems and can back up them up with something like 80% system activity on the task manager I can probably convince him to go a DMA route with custom driver and less interrupt activity. i.e. first give him what he wants and then what he needs (hope he’s not listening)
And once you’ve departed from something that’s perfectly 16550
compatible, you’re going to need a custom driver. Start with the sample. Go from there.
Jake Oshins
Hyper-V I/O Architect
Windows Kernel Group
This post implies no warranties and confers no rights.
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer