From: Scott Wood <scottwood@freescale.com>
To: Alexander Graf <agraf@suse.de>
Cc: "qemu-ppc@nongnu.org List" <qemu-ppc@nongnu.org>,
qemu-devel qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH 02/19] mpic: Unify numbering scheme
Date: Mon, 10 Dec 2012 17:34:19 -0600 [thread overview]
Message-ID: <1355182459.5334.17@snotra> (raw)
In-Reply-To: <1354974282-1915-3-git-send-email-agraf@suse.de> (from agraf@suse.de on Sat Dec 8 07:44:25 2012)
On 12/08/2012 07:44:25 AM, Alexander Graf wrote:
> MPIC interrupt numbers in Linux (device tree) and in QEMU are
> different,
> because QEMU takes the sparseness of the IRQ number space into
> account.
>
> Remove that cleverness and instead assume a flat number space. This
> makes
> the code easier to understand, because we are actually aligned with
> Linux
> on the view of our worlds.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
> hw/openpic.c | 287
> ++++++++------------------------------------------------
> hw/ppc/e500.c | 4 +-
> 2 files changed, 43 insertions(+), 248 deletions(-)
Thanks!
This also helps accommodate Linux's (and probably other OSes') MPIC
driver, which on boot will initialize all vectors, whether the actual
interrupt is valid or not. Currently QEMU rejects those accesses as
illegal MMIO; we only survive it now because we don't yet have support
for
injecting a machine check on e500.
> diff --git a/hw/openpic.c b/hw/openpic.c
> index b30c853..0d858cc 100644
> --- a/hw/openpic.c
> +++ b/hw/openpic.c
> @@ -47,7 +47,7 @@
> #endif
>
> #define MAX_CPU 15
> -#define MAX_IRQ 128
> +#define MAX_IRQ 256
> #define MAX_TMR 4
> #define VECTOR_BITS 8
> #define MAX_IPI 4
> @@ -82,32 +82,25 @@ enum {
> #define MPIC_MAX_CPU 1
> #define MPIC_MAX_EXT 12
> #define MPIC_MAX_INT 64
> -#define MPIC_MAX_MSG 4
> -#define MPIC_MAX_MSI 8
> -#define MPIC_MAX_TMR MAX_TMR
> -#define MPIC_MAX_IPI MAX_IPI
> -#define MPIC_MAX_IRQ (MPIC_MAX_EXT + MPIC_MAX_INT + MPIC_MAX_TMR
> + MPIC_MAX_MSG + MPIC_MAX_MSI + (MPIC_MAX_IPI * MPIC_MAX_CPU))
> +#define MPIC_MAX_IRQ MAX_IRQ
>
> /* Interrupt definitions */
> -#define MPIC_EXT_IRQ 0
> -#define MPIC_INT_IRQ (MPIC_EXT_IRQ + MPIC_MAX_EXT)
> -#define MPIC_TMR_IRQ (MPIC_INT_IRQ + MPIC_MAX_INT)
> -#define MPIC_MSG_IRQ (MPIC_TMR_IRQ + MPIC_MAX_TMR)
> -#define MPIC_MSI_IRQ (MPIC_MSG_IRQ + MPIC_MAX_MSG)
> -#define MPIC_IPI_IRQ (MPIC_MSI_IRQ + MPIC_MAX_MSI)
> +/* IRQs, accessible through the IRQ region */
> +#define MPIC_EXT_IRQ 0x00
> +#define MPIC_INT_IRQ 0x10
> +#define MPIC_MSG_IRQ 0xb0
> +#define MPIC_MSI_IRQ 0xe0
Where are MPIC_EXT/INT/MSG/MSI_IRQ used now? Note that these are
specific to Freescale's MPIC.
> +/* These are available through separate regions, but
> + for simplicity's sake mapped into the same number space */
> +#define MPIC_TMR_IRQ 0xf3
> +#define MPIC_IPI_IRQ 0xfb
Please don't do this, or at least choose different numbers. 0xf3 is a
valid MSI on p4080 (not to mention T4240 which goes beyond 256).
Again, what uses these defines? Is it something later in the series?
-Scott
next prev parent reply other threads:[~2012-12-11 0:04 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-08 13:44 [Qemu-devel] [PATCH 00/19] OpenPIC refactoring and MSI support Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 01/19] openpic: Remove unused code Alexander Graf
2012-12-08 15:12 ` Andreas Färber
2012-12-08 15:14 ` Alexander Graf
2012-12-08 17:06 ` Hervé Poussineau
2012-12-08 13:44 ` [Qemu-devel] [PATCH 02/19] mpic: Unify numbering scheme Alexander Graf
2012-12-10 23:34 ` Scott Wood [this message]
2012-12-10 23:40 ` [Qemu-devel] [Qemu-ppc] " Scott Wood
2012-12-11 8:14 ` Alexander Graf
2012-12-11 17:39 ` Scott Wood
2012-12-08 13:44 ` [Qemu-devel] [PATCH 03/19] openpic: update to proper memory api Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 04/19] openpic: combine mpic and openpic src handlers Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 05/19] openpic: Convert subregions to memory api Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 06/19] openpic: combine mpic and openpic irq raise functions Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 07/19] openpic: merge mpic and openpic timer handling Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 08/19] openpic: combine openpic and mpic reset functions Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 09/19] openpic: unify memory api subregions Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 10/19] openpic: remove unused type variable Alexander Graf
2012-12-10 23:42 ` [Qemu-devel] [Qemu-ppc] " Scott Wood
2012-12-11 8:17 ` Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 11/19] openpic: convert simple reg operations to builtin bitops Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 12/19] openpic: rename openpic_t to OpenPICState Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 13/19] openpic: remove irq_out Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 14/19] openpic: convert to qdev Alexander Graf
2012-12-10 23:47 ` Scott Wood
2012-12-11 8:25 ` Alexander Graf
2012-12-11 17:47 ` Scott Wood
2012-12-12 0:56 ` Alexander Graf
2012-12-12 1:38 ` Scott Wood
2012-12-12 10:37 ` Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 15/19] openpic: make brr1 model specific Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 16/19] openpic: add Shared MSI support Alexander Graf
2012-12-11 0:36 ` [Qemu-devel] [Qemu-ppc] " Scott Wood
2012-12-11 8:10 ` Alexander Graf
2012-12-11 17:35 ` Scott Wood
2012-12-12 0:53 ` Alexander Graf
2012-12-12 1:42 ` Scott Wood
2012-12-12 11:12 ` Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 17/19] PPC: e500: Add " Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 18/19] PPC: e500: Declare pci bridge as bridge Alexander Graf
2012-12-08 13:44 ` [Qemu-devel] [PATCH 19/19] MSI-X: Fix endianness Alexander Graf
2012-12-08 22:41 ` Michael S. Tsirkin
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=1355182459.5334.17@snotra \
--to=scottwood@freescale.com \
--cc=agraf@suse.de \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).