From: Thierry Reding <thierry.reding@avionic-design.de>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Thomas Gleixner <tglx@linutronix.de>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: x86 and I/O APIC IRQ domains
Date: Wed, 1 Aug 2012 16:39:47 +0200 [thread overview]
Message-ID: <20120801143947.GA15501@avionic-0098.adnet.avionic-design.de> (raw)
In-Reply-To: <20120801135839.GA19957@avionic-0098.adnet.avionic-design.de>
[-- Attachment #1: Type: text/plain, Size: 1930 bytes --]
On Wed, Aug 01, 2012 at 03:58:39PM +0200, Thierry Reding wrote:
> Hi,
>
> I've been working on an x86 platform and want to use DT. However I've
> hit a snag when trying to instantiate the I/O APIC. I've been trying to
> follow what the CE4100 does and most things seem to work fine but when
> I add the DT node for the I/O APIC things start to fail. I've been able
> to trace the issue to x86_add_irq_domains(), which in turn calls
> ioapic_add_ofnode() from which irq_domain_add_legacy() is called.
>
> The platform that I use hits the WARN_ON(!irq_data || irq_data->domain).
> Looking further this seems to be caused by all irq_get_irq_data(irq)
> returning NULL for irq >= 16. That in turn I think is due to
> init_ISA_irqs() setting up only the first NR_IRQS_LEGACY interrupts.
> However the call to irq_domain_add_legacy() wants 32 interrupts.
So it turns out that this is not due to init_ISA_irqs(). However,
increasing NR_IRQS_LEGACY to 32 allows the code to get past that.
> This was introduced by commit b4e5185 "irq_domain/x86: Convert x86
> (embedded) to use common irq_domain)". I wonder what I'm doing wrong. I
> don't get how this is made to work on CE4100.
>
> Later the code crashes, but I can't exactly pinpoint the location
> because the oops doesn't fit on the screen. I don't have a serial port
> that I can use instead, so is there anything else I can do to obtain a
> complete backtrace?
This crash is in irq_domain_add_legacy() which tries to call the IRQ
domain's .map() function, which isn't implemented for the I/O APIC.
Adding an empty function allows the system to boot without any
noticeable errors.
I need to read up on the whole I/O APIC stuff because this is not really
a fix and I don't know any better. Also, the CE4100 should exhibit the
same issue after the above-mentioned commit. Can somebody more
knowledgeable shed some light on this?
Thierry
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2012-08-01 14:39 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-01 13:58 x86 and I/O APIC IRQ domains Thierry Reding
2012-08-01 14:39 ` Thierry Reding [this message]
2012-08-01 14:45 ` Sebastian Andrzej Siewior
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=20120801143947.GA15501@avionic-0098.adnet.avionic-design.de \
--to=thierry.reding@avionic-design.de \
--cc=bigeasy@linutronix.de \
--cc=grant.likely@secretlab.ca \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.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 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.