Hi, ga1000-ga:
Some inexpensive (free!) but dated documentation on the PCI
architecture is available here:
[PCI Specifications Documents]
http://members.datafast.net.au/dft0802/specs.htm
Implementation of PCI bus features requires a BIOS that is PCI aware.
Your specific concern about how the (hardware) interrupts (IRQs) are
allocated among PCI boards is a BIOS-mediated topic. See here:
[PCI BIOS Specifications]
http://members.datafast.net.au/dft0802/specs/bios21.pdf
See Section 4.2 which describes the low-level interface to query for
available interrupt routing options available on the system
motherboard, including PCI interrupts already allocated.
[It also shows how to set hardware interrupts for PCI boards, but this
is intended for the operating system's use, not by a device driver.
It is my understanding that while a device driver might need to
"query" for interrupt information, it shouldn't be necessary for the
device driver to attempt to set hardware interrupts, as this would be
against the philosophy of allowing the operating system to manage the
fairly scarce resource of hardware interrupts.]
The most current versions of the PCI specifications are found here:
[PCI Special Interest Group]
http://www.pcisig.com/home
Membership is $3000 per year, but if your company is a member, then
you can request access on that basis.
I'd be happy to point you to further reference materials to your
specific environment (FreeDos? a DOS extender?) if you will provide
the details. For example, the Phar Lap DOS extended provides tools
for debugging PCI peripherals:
[Phar Lap TNT DOS Extender]
http://www.dinigroup.com/products/pharlap.html
David Lindauer (LADSoft) has written GRDB, an MS-DOS/FreeDOS
compatible real-mode debugger that handles PCI buses, available under
GNU public license with source code:
[Get Real Debugger]
http://members.tripod.com/~ladsoft/frindx.htm?grdb.htm
that may be useful to you in developing and testing your device
driver.
regards, mathtalk-ga |
Request for Answer Clarification by
ga1000-ga
on
01 Jul 2003 08:50 PDT
If the bios is PCI aware, does a commonly available DOS(such as
version 6.2 or later)supports PCI boards?
I have a multiport RS232 board with Linux device driver, but one
customer wants to use it on DOS.
|
Clarification of Answer by
mathtalk-ga
on
01 Jul 2003 10:30 PDT
Hi, ga1000-ga:
Yes, MS-DOS 6.2 and more recent "free" DOS substitutes will generally
support PCI boards, given the PCI enabled BIOS on the motherboard.
Rather than write a device driver for a multiport RS232 board, I'd
first investigate whether off the shelf software can handle your
particular board. For example:
[COMM-DRV/DOS]
http://www.wcscnet.com/CdrvDBro.htm
"COMM-DRV/Dos allows the sharing of individual IRQs on the PC. Several
serial ports can be connected to the same IRQ. IRQ00 through IRQ15 are
supported. Any port address can be assigned to any COM device. Any COM
device can be renamed. Each port supports adjustable communication
buffers of up to 128k bytes. DTR/RTS/DSR/CTS hardware protocol is
supported on both reception and transmission as well as XON/XOFF
software protocol.
"COMM-DRV/Dos operate at speeds in excess of 460.2K baud on cards that
allow it. It supports most non-intelligent multiport serial cards that
have the 8250, 16450, 16550, 16650, or compatible serial chip as well
as many intelligent multiport cards. It supports both ISA and PCI
cards."
At the list price of $189.95, you'd be hard put to cost effectively
write and maintain your own device driver if this one works for you.
The COMM-DRV/Dos package bundles a handful of utilities, but probably
the piece you are looking for is commdrv.drv, a device driver "that
allows any application or program the ability to write to the serial
port if it can open, read, & write to a standard file."
See the Web site linked above for a listing of supported boards.
regards, mathtalk-ga
|
Request for Answer Clarification by
ga1000-ga
on
01 Jul 2003 12:01 PDT
Thank you for your further comments. I will look into this DOS tool.
|
Clarification of Answer by
mathtalk-ga
on
01 Jul 2003 12:51 PDT
Thanks for taking time to rate my answer. The feedback is encouraging...
best wishes, mathtalk-ga
|