Mark McDougall
2010-04-15 08:10:23 UTC
Hi Guys,
The background: we have a custom device on the LPC bus mapped to
$4400-$47FF in I/O space. This address space is partitioned between a
number of drivers. The drivers are all working, but some report a conflict
with "Motherboard resources". Some drivers have a custom install class. OS
is WinXPe.
I'm currently re-working the driver suite for a 2nd revision of the
hardware. As part of the process, I'm writing a "bus driver" that will
claim the entire address space, and then create PDOs for child devices
with their own drivers, because it's neater and easier to manage the drivers.
Now, problem is that this bus driver also reports a conflict with
"Motherboard resources". This is a real PITA, because I can't stop/start
the driver without rebooting during development. It's also not very nice
to have conflicts reported in the first place. I note that the PCI.SYS
driver has claimed pretty much the entire I/O space - hence the conflict.
As I mentioned, only *some* of my devices report a conflict. It would
appear that they all have in common the fact that they're root-enumerated.
Other devices that don't report a conflict are 2 (fake) hid devices and
the custom serial ports. The latter use the normal msports.inf file. The
other (non-root-enumerated) drivers do *NOT* conflict, despite the fact
they're using I/O ports in the same range.
So, my questions are:
* is the root-enumeration causing the conflicts?
* what hardware/device id should I be using if not root-enumerated?
* can/should I be using custom install class for the bus driver?
* if not already answered, how do I eliminate conflicts between my drivers
and the motherboard resources?
TIA
Regards,
The background: we have a custom device on the LPC bus mapped to
$4400-$47FF in I/O space. This address space is partitioned between a
number of drivers. The drivers are all working, but some report a conflict
with "Motherboard resources". Some drivers have a custom install class. OS
is WinXPe.
I'm currently re-working the driver suite for a 2nd revision of the
hardware. As part of the process, I'm writing a "bus driver" that will
claim the entire address space, and then create PDOs for child devices
with their own drivers, because it's neater and easier to manage the drivers.
Now, problem is that this bus driver also reports a conflict with
"Motherboard resources". This is a real PITA, because I can't stop/start
the driver without rebooting during development. It's also not very nice
to have conflicts reported in the first place. I note that the PCI.SYS
driver has claimed pretty much the entire I/O space - hence the conflict.
As I mentioned, only *some* of my devices report a conflict. It would
appear that they all have in common the fact that they're root-enumerated.
Other devices that don't report a conflict are 2 (fake) hid devices and
the custom serial ports. The latter use the normal msports.inf file. The
other (non-root-enumerated) drivers do *NOT* conflict, despite the fact
they're using I/O ports in the same range.
So, my questions are:
* is the root-enumeration causing the conflicts?
* what hardware/device id should I be using if not root-enumerated?
* can/should I be using custom install class for the bus driver?
* if not already answered, how do I eliminate conflicts between my drivers
and the motherboard resources?
TIA
Regards,
--
Mark McDougall, Engineer
Virtual Logic Pty Ltd, <http://www.vl.com.au>
21-25 King St, Rockdale, 2216
Ph: +612-9599-3255 Fax: +612-9599-3266
Mark McDougall, Engineer
Virtual Logic Pty Ltd, <http://www.vl.com.au>
21-25 King St, Rockdale, 2216
Ph: +612-9599-3255 Fax: +612-9599-3266