ISA

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
xsix
Member
Member
Posts: 59
Joined: Tue Oct 24, 2006 10:52 am

ISA

Post by xsix »

I was wondering about programming ISA bus. I've never programmed it before and i cannot find information about it. I've some sound, video, network cards for ISA, and i want to code them, but there's question, how to detect if there is a device somewhere like old network card
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: ISA

Post by Brendan »

Hi,
xsix wrote:I was wondering about programming ISA bus. I've never programmed it before and i cannot find information about it. I've some sound, video, network cards for ISA, and i want to code them, but there's question, how to detect if there is a device somewhere like old network card
There is not way to auto-detect most ISA cards (although a few of them support the "ISA Plug & Play" standard, but not many). Mostly you either use a config script (like "config.sys" in DOS) or you do manual probing (or both).


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Tyler
Member
Member
Posts: 514
Joined: Tue Nov 07, 2006 7:37 am
Location: York, England

Re: ISA

Post by Tyler »

Brendan wrote:Hi,
xsix wrote:I was wondering about programming ISA bus. I've never programmed it before and i cannot find information about it. I've some sound, video, network cards for ISA, and i want to code them, but there's question, how to detect if there is a device somewhere like old network card
There is not way to auto-detect most ISA cards (although a few of them support the "ISA Plug & Play" standard, but not many). Mostly you either use a config script (like "config.sys" in DOS) or you do manual probing (or both).


Cheers,

Brendan
How does one manually probe? Wouldn't sending data to any port have completely diferent results on all ports?
User avatar
spix
Member
Member
Posts: 128
Joined: Mon Jun 26, 2006 8:41 am
Location: Millicent, South Australia
Contact:

Post by spix »

You can probe for specific ISA cards if you know what you are looking for. For example, if you are looking for an NE2000 ISA card, you know what ports it is likely using.. 0x300, 0x280, 0x320, 0x340, 0x360, 0x380. You send a command to each of those ports, and if a card responds in a way that it should, you know that there is an NE2000 card there.

For the IRQ, linux uses a trick, where it enables all IRQs and then makes the card fire an IRQ, if the IRQ is not assigned to a card already, and it's not a spurious irq, then it belongs to the card.

Hope that helps

Andrew
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Post by Brendan »

Hi,
spix wrote:You can probe for specific ISA cards if you know what you are looking for. For example, if you are looking for an NE2000 ISA card, you know what ports it is likely using.. 0x300, 0x280, 0x320, 0x340, 0x360, 0x380. You send a command to each of those ports, and if a card responds in a way that it should, you know that there is an NE2000 card there.

For the IRQ, linux uses a trick, where it enables all IRQs and then makes the card fire an IRQ, if the IRQ is not assigned to a card already, and it's not a spurious irq, then it belongs to the card.
Yes..

It's also a good idea to do things in a certain order. For example, disable all PCI cards and Plug & Play ISA cards, then manually probe for "plain" ISA cards, then re-enable Plug & Play ISA cards and set their resources, then re-enable PCI cards and set their resources. That way you minimise the chance of poking something that doesn't like to be poked, and there's less chance of resource conflicts... ;)


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Tyler
Member
Member
Posts: 514
Joined: Tue Nov 07, 2006 7:37 am
Location: York, England

Post by Tyler »

So would you advise having Legacy ISA/COM/LPT device drivers have routines that check if the device exists and i just have to load and run every single one i have? Or are the some standard ISA checksing documents you can send my way?
xsix
Member
Member
Posts: 59
Joined: Tue Oct 24, 2006 10:52 am

Post by xsix »

PCI has the detection way of getting vendor and device ID of every BUS.DEVICE.FUNCTION, so if ID is 0xFFFF or zero(0) then there isn't device. If there is device then by it's ID i can load drivers, but if there isn't any detection routine on ISA, except checking for specific device by it's IO ports, it's quite not cool =\ .
Post Reply