All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	patches@linaro.org, "Will Deacon" <will.deacon@arm.com>,
	qemu-devel@nongnu.org, "Paul Brook" <paul@codesourcery.com>,
	"Andreas Färber" <afaerber@suse.de>,
	"Aurelien Jarno" <aurelien@aurel32.net>
Subject: Re: [Qemu-devel] [PATCH v2 07/11] versatile_pci: Implement the correct PCI IRQ mapping
Date: Tue, 26 Mar 2013 10:54:59 +0000	[thread overview]
Message-ID: <201303261054.59928.arnd@arndb.de> (raw)
In-Reply-To: <1364293331-8722-8-git-send-email-peter.maydell@linaro.org>

On Tuesday 26 March 2013, Peter Maydell wrote:
> 
> Implement the correct IRQ mapping for the Versatile PCI controller; it
> differs between realview and versatile boards, but the previous QEMU
> implementation was correct only for the first PCI card on a versatile
> board, since we weren't swizzling IRQs based on the slot number.
> 
> Since this change would otherwise break any uses of PCI on Linux kernels
> which have an equivalent bug (since they have effectively only been
> tested against QEMU, not real hardware), we implement a mechanism
> for automatically detecting those broken kernels and switching back
> to the old mapping. This works by looking at the values the kernel
> writes to the PCI_INTERRUPT_LINE register in the config space, which
> is effectively the interrupt number the kernel expects the device
> to be using. If this doesn't match reality we use the broken mapping.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Yes, very good.  We will probably introduce sparse irq support on
versatile in the near future, and then the value we write into the
PCI_INTERRUPT_LINE field will become arbitrary from qemu's point
of view, but I will make sure that we fix the interrupt mapping
in the kernel at the same time so we always fall into the
"s->broken_irq_mapping = false;" case.

We also need to find a way to make the new kernel work with
an old qemu, and I think we can do that by using the versatile-dt
board type with a PCI device node that sets all four lines to
27, while using the actual interrupt lines for the default
versatile device tree.

	Arnd

  reply	other threads:[~2013-03-26 10:56 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-26 10:22 [Qemu-devel] [PATCH v2 00/11] Fix versatile_pci (now without breaking linux) Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 01/11] versatile_pci: Fix hardcoded tabs Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 02/11] versatile_pci: Expose PCI I/O region on Versatile PB Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 03/11] versatile_pci: Update to realize and instance init functions Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 04/11] versatile_pci: Change to subclassing TYPE_PCI_HOST_BRIDGE Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 05/11] versatile_pci: Use separate PCI I/O space rather than system I/O space Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 06/11] versatile_pci: Put the host bridge PCI device at slot 29 Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 07/11] versatile_pci: Implement the correct PCI IRQ mapping Peter Maydell
2013-03-26 10:54   ` Arnd Bergmann [this message]
2013-03-26 11:00     ` Peter Maydell
2013-03-26 11:08       ` Arnd Bergmann
2013-03-26 11:17         ` Peter Maydell
2013-03-26 21:12           ` Michael S. Tsirkin
2013-03-28 10:28             ` Peter Maydell
2013-04-04 11:05               ` Peter Maydell
2013-04-04 10:58                 ` Michael S. Tsirkin
2013-04-04 12:16                   ` Peter Maydell
2013-05-14 11:45         ` Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 08/11] versatile_pci: Implement the PCI controller's control registers Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 09/11] arm/realview: Fix mapping of PCI regions Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 10/11] versatile_pci: Expose PCI memory space to system Peter Maydell
2013-03-26 10:22 ` [Qemu-devel] [PATCH v2 11/11] hw/versatile_pci: Drop unnecessary vpb_pci_config_addr() Peter Maydell
2013-03-28 13:20 ` [Qemu-devel] [PATCH v2 00/11] Fix versatile_pci (now without breaking linux) Paul Brook
2013-03-28 13:23   ` Peter Maydell

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=201303261054.59928.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=afaerber@suse.de \
    --cc=aurelien@aurel32.net \
    --cc=mst@redhat.com \
    --cc=patches@linaro.org \
    --cc=paul@codesourcery.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=will.deacon@arm.com \
    /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.