This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Question about cyg_pci_translate_interrupt
Ok, I don't have my true target available here at home. But I tried it
on my home PC. In summary, some devices were ok with it. Most were not.
The "some devices" seems to be the main motherboard chipset, which shows
up as several PCI devices. Every add-on to the PC did not work. Attached
to the end are the output tests. (I did not realize the pci1 actually
scanned all of the device twice anyways, so this actually has three scans.
Based on this, I would recommend that the change that you made to pci.c
probably belongs in HAL_PCI_TRANSLATE_INTERRUPT for the HAL which
requires that change. Since there is no way to "undo" it for HALs that
do not need it.
David
David Brennan wrote:
Ok. thanks for the info. My platform is i386-pc. I will modify the pci
test program to scan all of the devices twice and check the results.
If it is only my particular device that has the problem, I can live
with that. I just wanted to make sure it wasn't a general problem first.
Mark Salter wrote:
On Wed, 2004-10-06 at 22:29, David Brennan wrote:
Is this function allowed to be called multiple times? I have a
particular device for which the driver is broken into two modules.
Each uses the standard pci probe and print logic from the pci1 test
file. The interrupt routine gets attached by the second module.
However, when I got the latest CVS, the device now reports to the
second module that it does not generate interrupts. I assume the
problem was introduced with this change
(http://sources.redhat.com/ml/ecos-patches/2004-08/msg00080.html).
And I can re-write my code (basically not check the interrupt vector
in the first module) to work. But wanted to make sure that was a
desired effect of the change. The problem may also be my specific
device, in which case it make perfect sense for me to solve it on my
end.
There should be no problem in calling cyg_pci_translate_interrupt
more than once. I tried it on a number of devices and it seems to
work fine. You may be dealing with a device which modifies its
interrupt pin register when the interrupt line register is written.
I can't find anything in the standard which would support this
behavior though. The actual translation is done by the HAL, so
there may be issues with the particular HAL you are using. If a
workaround is needed, it should be in that HAL code, not the drivers.
--Mark
Run with old pci.c logic:
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7190 [82443BX/ZX][440BX/ZX AGPset Host Bridge]
Command 0x0006, Status 0x3210
Class/Rev 0x06000003 [Bridge Device][Host/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7191 [82443BX/ZX][440BX/ZX AGPset PCI-to-PCI bridge]
Command 0x0107, Status 0x0220
Class/Rev 0x06040003 [Bridge Device][PCI/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7110 [82371AB/EB/MB][PIIX4/4E/4M ISA Bridge]
Command 0x000f, Status 0x0280
Class/Rev 0x06010002 [Bridge Device][PCI/ISA][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7111 [82371AB/EB/MB][PIIX4/4E/4M IDE Controller]
Command 0x0005, Status 0x0a80
Class/Rev 0x01018001 [UNKNOWN]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7112 [82371AB/EB/MB][PIIX4/4E/4M USB Interface]
Command 0x0005, Status 0x0280
Class/Rev 0x0c030001 [Serial Bus Controller][USB (Universal Serial
Bus)][Universal Host Controller]
Wired to HAL vector 42
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7113 [82371AB/EB/MB][PIIX4/4E/4M Power Management Controller]
Command 0x0003, Status 0x0280
Class/Rev 0x06800002 [Bridge Device][Other][]
Wired to HAL vector 32
Vendor 0x1106 [VIA][VIA Technologies Inc]
Device 0x3043 [VT86C100A][Rhine 10/100 Ethernet Adapter]
Command 0x0007, Status 0x0200
Class/Rev 0x02000006 [Network Controller][Ethernet][]
Wired to HAL vector 37
Vendor 0x1073 [Yamaha][Yamaha Corporation]
Device 0x0004 [YMF724][PCI Audio Controller]
Command 0x0006, Status 0x0210
Class/Rev 0x04010005 [Multimedia Device][Audio][]
Wired to HAL vector 44
Vendor 0x10de [NVIDIA][NVIDIA Corporation]
Device 0x0201 [NV20DDR][GeForce3 Ti 200]
Command 0x0007, Status 0x02b0
Class/Rev 0x030000a3 [Display Controller][PC Compatible][VGA]
Wired to HAL vector 43
********************************************************************************
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7190 [82443BX/ZX][440BX/ZX AGPset Host Bridge]
Command 0x0006, Status 0x3210
Class/Rev 0x06000003 [Bridge Device][Host/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7191 [82443BX/ZX][440BX/ZX AGPset PCI-to-PCI bridge]
Command 0x0107, Status 0x0220
Class/Rev 0x06040003 [Bridge Device][PCI/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7110 [82371AB/EB/MB][PIIX4/4E/4M ISA Bridge]
Command 0x000f, Status 0x0280
Class/Rev 0x06010002 [Bridge Device][PCI/ISA][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7111 [82371AB/EB/MB][PIIX4/4E/4M IDE Controller]
Command 0x0005, Status 0x0a80
Class/Rev 0x01018001 [UNKNOWN]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7112 [82371AB/EB/MB][PIIX4/4E/4M USB Interface]
Command 0x0005, Status 0x0280
Class/Rev 0x0c030001 [Serial Bus Controller][USB (Universal Serial
Bus)][Universal Host Controller]
Wired to HAL vector 42
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7113 [82371AB/EB/MB][PIIX4/4E/4M Power Management Controller]
Command 0x0003, Status 0x0280
Class/Rev 0x06800002 [Bridge Device][Other][]
Wired to HAL vector 32
Vendor 0x1106 [VIA][VIA Technologies Inc]
Device 0x3043 [VT86C100A][Rhine 10/100 Ethernet Adapter]
Command 0x0007, Status 0x0200
Class/Rev 0x02000006 [Network Controller][Ethernet][]
Wired to HAL vector 37
Vendor 0x1073 [Yamaha][Yamaha Corporation]
Device 0x0004 [YMF724][PCI Audio Controller]
Command 0x0006, Status 0x0210
Class/Rev 0x04010005 [Multimedia Device][Audio][]
Wired to HAL vector 44
Vendor 0x10de [NVIDIA][NVIDIA Corporation]
Device 0x0201 [NV20DDR][GeForce3 Ti 200]
Command 0x0007, Status 0x02b0
Class/Rev 0x030000a3 [Display Controller][PC Compatible][VGA]
Wired to HAL vector 43
********************************************************************************
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7190 [82443BX/ZX][440BX/ZX AGPset Host Bridge]
Command 0x0006, Status 0x3210
Class/Rev 0x06000003 [Bridge Device][Host/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7191 [82443BX/ZX][440BX/ZX AGPset PCI-to-PCI bridge]
Command 0x0107, Status 0x0220
Class/Rev 0x06040003 [Bridge Device][PCI/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7110 [82371AB/EB/MB][PIIX4/4E/4M ISA Bridge]
Command 0x000f, Status 0x0280
Class/Rev 0x06010002 [Bridge Device][PCI/ISA][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7111 [82371AB/EB/MB][PIIX4/4E/4M IDE Controller]
Command 0x0005, Status 0x0a80
Class/Rev 0x01018001 [UNKNOWN]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7112 [82371AB/EB/MB][PIIX4/4E/4M USB Interface]
Command 0x0005, Status 0x0280
Class/Rev 0x0c030001 [Serial Bus Controller][USB (Universal Serial
Bus)][Universal Host Controller]
Wired to HAL vector 42
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7113 [82371AB/EB/MB][PIIX4/4E/4M Power Management Controller]
Command 0x0003, Status 0x0280
Class/Rev 0x06800002 [Bridge Device][Other][]
Wired to HAL vector 32
Vendor 0x1106 [VIA][VIA Technologies Inc]
Device 0x3043 [VT86C100A][Rhine 10/100 Ethernet Adapter]
Command 0x0007, Status 0x0200
Class/Rev 0x02000006 [Network Controller][Ethernet][]
Wired to HAL vector 37
Vendor 0x1073 [Yamaha][Yamaha Corporation]
Device 0x0004 [YMF724][PCI Audio Controller]
Command 0x0006, Status 0x0210
Class/Rev 0x04010005 [Multimedia Device][Audio][]
Wired to HAL vector 44
Vendor 0x10de [NVIDIA][NVIDIA Corporation]
Device 0x0201 [NV20DDR][GeForce3 Ti 200]
Command 0x0007, Status 0x02b0
Class/Rev 0x030000a3 [Display Controller][PC Compatible][VGA]
Wired to HAL vector 43
Run with new pci.c logic
========== Finding and configuring devices
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7190 [82443BX/ZX][440BX/ZX AGPset Host Bridge]
Command 0x0006, Status 0x3210
Class/Rev 0x06000003 [Bridge Device][Host/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7191 [82443BX/ZX][440BX/ZX AGPset PCI-to-PCI bridge]
Command 0x0107, Status 0x0220
Class/Rev 0x06040003 [Bridge Device][PCI/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7110 [82371AB/EB/MB][PIIX4/4E/4M ISA Bridge]
Command 0x000f, Status 0x0280
Class/Rev 0x06010002 [Bridge Device][PCI/ISA][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7111 [82371AB/EB/MB][PIIX4/4E/4M IDE Controller]
Command 0x0005, Status 0x0a80
Class/Rev 0x01018001 [UNKNOWN]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7112 [82371AB/EB/MB][PIIX4/4E/4M USB Interface]
Command 0x0005, Status 0x0280
Class/Rev 0x0c030001 [Serial Bus Controller][USB (Universal Serial
Bus)][Universal Host Controller]
Wired to HAL vector 42
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7113 [82371AB/EB/MB][PIIX4/4E/4M Power Management Controller]
Command 0x0003, Status 0x0280
Class/Rev 0x06800002 [Bridge Device][Other][]
Wired to HAL vector 32
Vendor 0x1106 [VIA][VIA Technologies Inc]
Device 0x3043 [VT86C100A][Rhine 10/100 Ethernet Adapter]
Command 0x0007, Status 0x0200
Class/Rev 0x02000006 [Network Controller][Ethernet][]
Wired to HAL vector 37
Vendor 0x1073 [Yamaha][Yamaha Corporation]
Device 0x0004 [YMF724][PCI Audio Controller]
Command 0x0006, Status 0x0210
Class/Rev 0x04010005 [Multimedia Device][Audio][]
Wired to HAL vector 44
Vendor 0x10de [NVIDIA][NVIDIA Corporation]
Device 0x0201 [NV20DDR][GeForce3 Ti 200]
Command 0x0007, Status 0x02b0
Class/Rev 0x030000a3 [Display Controller][PC Compatible][VGA]
Wired to HAL vector 43
********************************************************************************
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7190 [82443BX/ZX][440BX/ZX AGPset Host Bridge]
Command 0x0006, Status 0x3210
Class/Rev 0x06000003 [Bridge Device][Host/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7191 [82443BX/ZX][440BX/ZX AGPset PCI-to-PCI bridge]
Command 0x0107, Status 0x0220
Class/Rev 0x06040003 [Bridge Device][PCI/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7110 [82371AB/EB/MB][PIIX4/4E/4M ISA Bridge]
Command 0x000f, Status 0x0280
Class/Rev 0x06010002 [Bridge Device][PCI/ISA][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7111 [82371AB/EB/MB][PIIX4/4E/4M IDE Controller]
Command 0x0005, Status 0x0a80
Class/Rev 0x01018001 [UNKNOWN]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7112 [82371AB/EB/MB][PIIX4/4E/4M USB Interface]
Command 0x0005, Status 0x0280
Class/Rev 0x0c030001 [Serial Bus Controller][USB (Universal Serial
Bus)][Universal Host Controller]
Does not generate interrupts.
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7113 [82371AB/EB/MB][PIIX4/4E/4M Power Management Controller]
Command 0x0003, Status 0x0280
Class/Rev 0x06800002 [Bridge Device][Other][]
Wired to HAL vector 32
Vendor 0x1106 [VIA][VIA Technologies Inc]
Device 0x3043 [VT86C100A][Rhine 10/100 Ethernet Adapter]
Command 0x0007, Status 0x0200
Class/Rev 0x02000006 [Network Controller][Ethernet][]
Does not generate interrupts.
Vendor 0x1073 [Yamaha][Yamaha Corporation]
Device 0x0004 [YMF724][PCI Audio Controller]
Command 0x0006, Status 0x0210
Class/Rev 0x04010005 [Multimedia Device][Audio][]
Does not generate interrupts.
Vendor 0x10de [NVIDIA][NVIDIA Corporation]
Device 0x0201 [NV20DDR][GeForce3 Ti 200]
Command 0x0007, Status 0x02b0
Class/Rev 0x030000a3 [Display Controller][PC Compatible][VGA]
Does not generate interrupts.
********************************************************************************
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7190 [82443BX/ZX][440BX/ZX AGPset Host Bridge]
Command 0x0006, Status 0x3210
Class/Rev 0x06000003 [Bridge Device][Host/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7191 [82443BX/ZX][440BX/ZX AGPset PCI-to-PCI bridge]
Command 0x0107, Status 0x0220
Class/Rev 0x06040003 [Bridge Device][PCI/PCI][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7110 [82371AB/EB/MB][PIIX4/4E/4M ISA Bridge]
Command 0x000f, Status 0x0280
Class/Rev 0x06010002 [Bridge Device][PCI/ISA][]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7111 [82371AB/EB/MB][PIIX4/4E/4M IDE Controller]
Command 0x0005, Status 0x0a80
Class/Rev 0x01018001 [UNKNOWN]
Wired to HAL vector 32
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7112 [82371AB/EB/MB][PIIX4/4E/4M USB Interface]
Command 0x0005, Status 0x0280
Class/Rev 0x0c030001 [Serial Bus Controller][USB (Universal Serial
Bus)][Universal Host Controller]
Does not generate interrupts.
Vendor 0x8086 [Intel][Intel Corporation]
Device 0x7113 [82371AB/EB/MB][PIIX4/4E/4M Power Management Controller]
Command 0x0003, Status 0x0280
Class/Rev 0x06800002 [Bridge Device][Other][]
Wired to HAL vector 32
Vendor 0x1106 [VIA][VIA Technologies Inc]
Device 0x3043 [VT86C100A][Rhine 10/100 Ethernet Adapter]
Command 0x0007, Status 0x0200
Class/Rev 0x02000006 [Network Controller][Ethernet][]
Does not generate interrupts.
Vendor 0x1073 [Yamaha][Yamaha Corporation]
Device 0x0004 [YMF724][PCI Audio Controller]
Command 0x0006, Status 0x0210
Class/Rev 0x04010005 [Multimedia Device][Audio][]
Does not generate interrupts.
Vendor 0x10de [NVIDIA][NVIDIA Corporation]
Device 0x0201 [NV20DDR][GeForce3 Ti 200]
Command 0x0007, Status 0x02b0
Class/Rev 0x030000a3 [Display Controller][PC Compatible][VGA]
Does not generate interrupts.
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss