Re: midi problem, an isa device on a pci card

From: Terry Lambert <tlambert2_at_mindspring.com>
Date: Mon, 07 Apr 2003 04:25:24 -0700
"M. Warner Losh" wrote:
> In message: <20030407064749.GO17533_at_cnd.mcgill.ca>
>             Mathew Kanner <mat_at_cnd.mcgill.ca> writes:
> : On Apr 07, M. Warner Losh wrote:
> : > You can't create ISA devices that are parented to the pci bus.  You
> : > just can't.
> :
> :       I don't understand your comment, isn't the newly created
> : devices parent the (first) ISA bus?  I scan for the isa class, get
> : device instances and create from there.
> 
> I'm saying that what you are doing isn't right and won't work too
> well.  If the device is on the pci bus, you have to create a pci
> attachment.

[ ... ]

> :       But it's an ISA device on on a pci card.
> 
> that's not possible.  It is *NOT* an ISA device unless it is on a card
> that has ISA fingers on it.  Otherwise it *IS* a PCI device.  Does the
> pci card have a PCI to ISA bridge on it?  If not, then you have to
> deal with it as a PCI bus.

I think this is what he means: yes, there's a PCI-ISA bridge on
the card, with an ISA device hung off the ISA side of the bridge.

I remember that there were 1-ISA-device-PCI-ISA bridges when PCI
first came out; this is probably one of them.

His issue has got to be that you can't treat this as a normal PCI
card, and have it "just work", because there's a 24 bit limit on
the DMA addresses.  This basically boils down to a "how do I get
bounce buffers for an address space limited PCI card, if I am
pretending it's a ``pure PCI'' device"?

I think there's also a sub-issue; in his next-to-last post, he
sort of implied (but didn't come right out and say) that the
bridge driver itself gets probed and attached by the system,
which then sees an ISA bus there.  This could be problematic
for him, since I don't think he wants to have to grab the card
as PCI, and then write his own bridge chipset code (maybe he
does, and I just missed it...).
 
I think it would probably be a mistake to end up with multiple
drivers for bridge chipsets, depending on whether or not they
are on the motherboard or on a PCI card.  Worst case, you have
a box full of PCI cards whose function is to provide PCI-ISA
bridges for ISA devices (serial ports, whatever), and every one
of them has a seperate bridge driver in its driver.  8-(.

So, I think he needs to tell you/the rest of us?

1)	You imply a PCI-ISA bridge twice.  Does the card have a
	PCI-ISA bridge?

2)	Assuming the answer to #1 is "yes", who finds the bridge
	chip?  Is it your code in your driver, or does the OS find
	it, as a recognized bridge chipset?

3)	How do you want to handle the 24-bit address space problem
	on a PCI device?  This is going to depend on the answer to
	#2.

-- Terry
Received on Mon Apr 07 2003 - 02:26:56 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:02 UTC