[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Config area (yet again)



Hi again,

I'm doing one last modification before sending my IDE driver 
set into beta test.  It's becoming very difficult to speed 
up this ATA device search because there's the possibility 
for 2 separate IDE controllers being defined in the space 
of one PCI configuration header.  This at least applies to 
the on-board PCI chipset controllers.  Does this also apply 
to add-on controller cards, where 2 separate controllers 
are defined in one config header, or beyond the on-board 
chipset controllers, is it required that the primary and 
secondary controllers each have their own PCI config header?  
I need to know if the IRQ line byte at 0x60 in the header 
space can be relied on to be accurate, or if it only holds 
partial info.  Currently I'm making the following assumptions:

  o  BA 170 must use IRQ 15 (this is in the spec)
  o  BA 1F0 must use IRQ 14 (also in the spec)
  o  any other non-standard base address values will not 
     be found on the on-board chipset controllers -- is      
     this a bad assumption?
  o  any other non-standard base address is therefore
     not an on-board controller, and the header space
     representing this IDE controller will only represent
     one single controller, therefore the byte at 0x60 is
     accurate as far as the IRQ line used.

The timeouts allowed by the ATA spec can go up to 31 seconds,
therefore it's obvious why I want to eliminate any direct 
device testing that I don't have to do.  If I can't rely on
that byte at 0x60 to hold the correct IRQ line, then I have to
ignore it and run the tests.  Remember that on the on-board 
controller, both the primary and secondary channels are 
represented in one single PCI config header and only IRQ 14
is listed there, even though the secondary channel uses IRQ
15.  There is no mention of IRQ 15 in the config header.

Thanks in advance.

-- Chris
»XG