From: Daniel Hellstrom <daniel@gaisler.com>
To: sparclinux@vger.kernel.org
Subject: Re: [PATCH] sparc32,leon: need VIRQ:IRQ 1:1, don't mask/ack IRQ Controller
Date: Wed, 30 Mar 2011 10:00:53 +0000 [thread overview]
Message-ID: <4D92FF55.3030007@gaisler.com> (raw)
In-Reply-To: <1300290864-20678-1-git-send-email-daniel@gaisler.com>
David Miller wrote:
>From: Daniel Hellstrom <daniel@gaisler.com>
>Date: Wed, 16 Mar 2011 16:54:24 +0100
>
>
>
>>The AMBA Plug&Play information supports only 1 IRQ per AMBA device,
>>a device node in linux is an AMBA core which consists of 3 devices
>>(AHB Master, AHB Slave and APB Slave in any combination). The IRQ
>>information is really the first IRQ of a device, the Plug&Play does
>>not tell how many IRQs are actually present on a device so the
>>interrupt property of a device can impossibly tell how many IRQs
>>each device has, it must be up to the driver to probe the hardware
>>in a device-specific way simply know how many IRQs are present.
>>
>>Using Virtual IRQs does not work for such devices, because VIRQ+1
>>is not REAL_IRQ+1. Thus, the LEON architecture needs real IRQs or
>>map virtual IRQs 1:1 to real IRQs.
>>
>>This patch changes the VIRQ allocation to try the real IRQ if not
>>already taken.
>>
>>LEON IRQ Controller is edge triggered, not masking or acking is
>>needed in the normal case, handle_simple_irq handler can be used
>>for that.
>>
>>Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
>>
>>
>
>As I stated in another email I am absolutely and completely against
>this change.
>
>Just because you only store one interrupt in the firmware device node,
>it does not mean that you cannot store multiple interrupts in the
>internal device node structure we build. And then have the drivers
>use that.
>
>
Yes, I agree with you that this is the best solution. However, the
hardware simply does not support that. That would require the bootloader
to have one driver per core and that the bootloader must be modified
each time a user of LEON or gaisler adds a new core.
I have made another patch that creates all 0..15 IRQs on startup instead
in leon_kernel.c. It will ensure linearity within that range, and
patching of irq_32.c is not needed. Perhaps that is more acceptable?
Regards,
Daniel
next prev parent reply other threads:[~2011-03-30 10:00 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-16 15:54 [PATCH] sparc32,leon: need VIRQ:IRQ 1:1, don't mask/ack IRQ Controller Daniel Hellstrom
2011-03-30 9:23 ` [PATCH] sparc32,leon: need VIRQ:IRQ 1:1, don't mask/ack IRQ David Miller
2011-03-30 10:00 ` Daniel Hellstrom [this message]
2011-03-30 10:34 ` David Miller
2011-03-30 12:41 ` [PATCH] sparc32,leon: need VIRQ:IRQ 1:1, don't mask/ack IRQ Controller Daniel Hellstrom
2011-03-30 22:41 ` [PATCH] sparc32,leon: need VIRQ:IRQ 1:1, don't mask/ack IRQ David Miller
2011-03-31 15:13 ` [PATCH] sparc32,leon: need VIRQ:IRQ 1:1, don't mask/ack IRQ Controller Daniel Hellstrom
2011-03-31 23:57 ` [PATCH] sparc32,leon: need VIRQ:IRQ 1:1, don't mask/ack IRQ David Miller
2011-04-01 8:17 ` [PATCH] sparc32,leon: need VIRQ:IRQ 1:1, don't mask/ack IRQ Controller Daniel Hellstrom
2011-04-11 15:30 ` Daniel Hellstrom
2011-04-11 19:59 ` [PATCH] sparc32,leon: need VIRQ:IRQ 1:1, don't mask/ack IRQ David Miller
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=4D92FF55.3030007@gaisler.com \
--to=daniel@gaisler.com \
--cc=sparclinux@vger.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.