This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question about cyg_pci_translate_interrupt


On Fri, 2004-10-08 at 23:46, David Brennan wrote:
> 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.
> 
The PC target seems to be a special case. It's HAL reads the interrupt
line register (which was written by the BIOS) to get determine the
vector. But the BIOS vector and the eCos vector are not the same which
leads to a problem when my change writes the vector back.

I just checked in a patch that makes the int line writeback conditional
with the default being to not write it back.

The idea behind the original change is that a BIOS is responsible for
setting the interrupt line register and RedBoot is the only BIOS in
most cases. Some applications rely on this behavior. Indeed, eCos
itself relies on it for PC targets.

--Mark



-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]