From: "Michael S. Tsirkin" <mst@redhat.com>
To: Wen Congyang <wency@cn.fujitsu.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
Isaku Yamahata <yamahata@valinux.co.jp>,
Avi Kivity <avi@redhat.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] pci: add standard bridge device
Date: Wed, 7 Sep 2011 14:52:23 +0300 [thread overview]
Message-ID: <20110907115223.GD9337@redhat.com> (raw)
In-Reply-To: <4E66F56D.9070709@cn.fujitsu.com>
On Wed, Sep 07, 2011 at 12:39:09PM +0800, Wen Congyang wrote:
> At 09/06/2011 03:45 PM, Avi Kivity Write:
> > On 09/06/2011 06:06 AM, Wen Congyang wrote:
> >> > Use the uio driver -
> >> > http://docs.blackfin.uclinux.org/kernel/generated/uio-howto/. You
> >> just
> >> > mmap() the BAR from userspace and play with it.
> >>
> >> When I try to bind ivshmem to uio_pci_generic, I get the following
> >> messages:
> >> uio_pci_generic 0000:01:01.0: No IRQ assigned to device: no support
> >> for interrupts?
> >>
> >
> > No idea what this means.
>
> PCI 3.0 6.2.4
> For x86 based PCs, the values in this register correspond to IRQ numbers (0-15) of the standard dual
> 8259 configuration. The value 255 is defined as meaning "unknown" or "no connection" to the interrupt
> controller. Values between 15 and 254 are reserved.
>
> The register is interrupt line.
>
> I read the config of this device, the interrupt line is 0. It means that it uses the IRQ0.
>
> The following is the uio_pci_generic's code:
> static int __devinit probe(struct pci_dev *pdev,
> const struct pci_device_id *id)
> {
> struct uio_pci_generic_dev *gdev;
> int err;
>
> err = pci_enable_device(pdev);
> if (err) {
> dev_err(&pdev->dev, "%s: pci_enable_device failed: %d\n",
> __func__, err);
> return err;
> }
>
> if (!pdev->irq) {
> dev_warn(&pdev->dev, "No IRQ assigned to device: "
> "no support for interrupts?\n");
> pci_disable_device(pdev);
> return -ENODEV;
> }
> ...
> }
>
> This function will be called when we write 'domain:bus:slot.function' to /sys/bus/pci/drivers/uio_pci_generic/bind.
> pdev->irq is 0, it means the device uses IRQ0. But we refuse it. I do not why.
>
> To Michael S. Tsirkin
> This code is writen by you. Do you know why you check whether pdev->irq is 0?
>
> Thanks
> Wen Congyang
>
> >
Well I see this in linux:
/*
* Read interrupt line and base address registers.
* The architecture-dependent code can tweak these, of course.
*/
static void pci_read_irq(struct pci_dev *dev)
{
unsigned char irq;
pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &irq);
dev->pin = irq;
if (irq)
pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
dev->irq = irq;
}
Thus a device without an interrupt pin will get irq set to 0,
and this seems the right way to detect such devices.
I don't think PCI devices really use IRQ0 in practice,
its probably used for PC things. More likely the system is
misconfigured. Try lspci -vv to see what went wrong.
--
MST
next prev parent reply other threads:[~2011-09-07 11:51 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-04 9:43 [Qemu-devel] [PATCH] pci: add standard bridge device Michael S. Tsirkin
2011-07-05 13:29 ` Isaku Yamahata
2011-07-05 13:43 ` Michael S. Tsirkin
2011-08-17 8:37 ` Wen Congyang
2011-08-18 3:22 ` Wen Congyang
2011-08-18 15:15 ` Avi Kivity
2011-08-19 5:12 ` Wen Congyang
2011-08-19 15:26 ` Avi Kivity
2011-08-22 3:13 ` Wen Congyang
2011-08-22 6:23 ` Avi Kivity
2011-09-02 1:32 ` Wen Congyang
2011-09-02 2:56 ` Wen Congyang
2011-09-04 8:25 ` Avi Kivity
2011-09-06 3:06 ` Wen Congyang
2011-09-06 7:45 ` Avi Kivity
2011-09-07 4:39 ` Wen Congyang
2011-09-07 11:52 ` Michael S. Tsirkin [this message]
2011-09-08 6:15 ` Wen Congyang
2011-09-08 7:26 ` Wen Congyang
2011-09-08 9:43 ` Gerd Hoffmann
2011-09-08 9:58 ` Wen Congyang
2011-09-08 10:42 ` Michael S. Tsirkin
2011-09-08 11:03 ` Wen Congyang
2011-09-08 11:13 ` Michael S. Tsirkin
2011-09-09 6:43 ` Wen Congyang
2011-09-09 7:12 ` Michael S. Tsirkin
2011-09-09 7:24 ` Wen Congyang
2011-09-09 7:34 ` Michael S. Tsirkin
2011-09-09 7:35 ` Wen Congyang
2011-08-26 9:43 ` Michael S. Tsirkin
2011-08-28 7:50 ` Avi Kivity
2011-08-28 11:41 ` Michael S. Tsirkin
2011-08-28 13:10 ` Avi Kivity
2011-08-28 13:42 ` Michael S. Tsirkin
2011-08-28 13:53 ` Avi Kivity
2011-09-04 12:30 ` Michael S. Tsirkin
2011-09-04 12:40 ` Avi Kivity
2011-09-04 13:01 ` Michael S. Tsirkin
2011-09-04 13:05 ` Avi Kivity
2011-09-04 13:09 ` Avi Kivity
2011-09-04 13:41 ` Michael S. Tsirkin
2011-09-04 13:55 ` Avi Kivity
2011-09-04 14:21 ` Michael S. Tsirkin
2011-09-04 14:36 ` Avi Kivity
2011-09-04 14:54 ` Michael S. Tsirkin
2011-09-04 15:14 ` Avi Kivity
2011-09-04 15:24 ` Michael S. Tsirkin
2011-09-04 15:37 ` Avi Kivity
2011-09-04 15:45 ` Michael S. Tsirkin
2011-09-04 15:46 ` Avi Kivity
2011-09-04 16:19 ` Michael S. Tsirkin
2011-09-04 16:22 ` Avi Kivity
2011-09-04 17:03 ` Michael S. Tsirkin
2011-09-05 5:36 ` Avi Kivity
2011-09-04 15:26 ` Michael S. Tsirkin
2011-09-04 15:42 ` Avi Kivity
2011-09-04 15:46 ` Michael S. Tsirkin
2011-09-04 15:49 ` Avi Kivity
2011-09-04 16:20 ` Michael S. Tsirkin
2011-08-26 9:57 ` Michael S. Tsirkin
2011-09-04 17:11 ` Michael S. Tsirkin
2011-09-05 8:17 ` Markus Armbruster
2011-09-05 9:38 ` Michael S. Tsirkin
2011-09-05 9:53 ` Gerd Hoffmann
2011-09-05 11:40 ` Michael S. Tsirkin
2011-09-06 9:18 ` Markus Armbruster
[not found] ` <4E801927.8020708@cn.fujitsu.com>
[not found] ` <20110926070824.GB5860@redhat.com>
[not found] ` <4EAF4AFD.6040102@cn.fujitsu.com>
[not found] ` <20111101084439.GA11958@redhat.com>
2011-11-01 8:49 ` Wen Congyang
2011-11-01 11:48 ` Michael S. Tsirkin
2011-11-02 1:00 ` Wen Congyang
2011-11-02 2:15 ` Isaku Yamahata
2011-11-02 2:38 ` Wen Congyang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110907115223.GD9337@redhat.com \
--to=mst@redhat.com \
--cc=avi@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=wency@cn.fujitsu.com \
--cc=yamahata@valinux.co.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.