[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] QEMU pci mach-virt: setting PCI_INTERRUPT_LINE?
From: |
Claudio Fontana |
Subject: |
Re: [Qemu-devel] QEMU pci mach-virt: setting PCI_INTERRUPT_LINE? |
Date: |
Wed, 25 Feb 2015 13:16:18 +0100 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 |
On 25.02.2015 13:08, Alexander Graf wrote:
>
>
> On 25.02.15 13:07, Claudio Fontana wrote:
>>
>>
>> On 24.02.2015 15:34, Claudio Fontana wrote:
>>> Hello,
>>>
>>> I am trying to set the pci interrupt line field in the configuration space
>>> (offset 0x3c), since it is initialized as zero.
>>>
>>> I would like to set it to the right value as read from the device tree,
>>> in order for other existing software which relies on it to be able to work
>>> unmodified..
>>>
>>> but it does not seem to work (I seem to read back zero even after setting
>>> the PCI_INTERRUPT_LINE field).
>>>
>>> I am also reading the interrupt pin, but that one instead seems to work out
>>> of the box..
>>>
>>> Thank you for any suggestion,
>>>
>>> Claudio
>>
>> By the way, I am currently just avoiding to rely on PCI_INTERRUPT_LINE for
>> AArch64,
>> but shouldn't the register be programmable?
>
> As far as I understand the register should really just be a scratch r/w
> register, yeah. Are you sure you're writing in byte granularity?
>
>
> Alex
Relatively sure, yeah.. I'll check again, but at least for x86_64 the get
function works.
It's OSv's pci-function.cc
u8 function::get_interrupt_line()
{
return pci_readb(PCI_CFG_INTERRUPT_LINE);
}
void function::set_interrupt_line(u8 irq)
{
pci_writeb(PCI_CFG_INTERRUPT_LINE, irq);
}
I'll try to debug with PCI_DEBUG and such things, see if I find out something...
Ciao,
Claudio
--
Claudio Fontana
Server Virtualization Architect
Huawei Technologies Duesseldorf GmbH
Riesstraße 25 - 80992 München
office: +49 89 158834 4135
mobile: +49 15253060158