From: Peter Maydell <peter.maydell@linaro.org>
To: Mark Langsdorf <mark.langsdorf@calxeda.com>
Cc: qemu-devel@nongnu.org, paul@codesourcery.com
Subject: Re: [Qemu-devel] [PATCH 4/9] arm: add dummy gic security registers
Date: Tue, 20 Dec 2011 19:58:41 +0000 [thread overview]
Message-ID: <CAFEAcA-49Lz3+Uu54w6z8mMSubixJrxEjbTA-nMs5Fa-1Adywg@mail.gmail.com> (raw)
In-Reply-To: <4EF0DDEB.40302@calxeda.com>
On 20 December 2011 19:11, Mark Langsdorf <mark.langsdorf@calxeda.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Signed-off-by: Mark Langsdorf <mark.langsdorf@calxeda.com>
> ---
> hw/arm_gic.c | 10 ++++++++--
> 1 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/hw/arm_gic.c b/hw/arm_gic.c
> index 9b52119..5974c2f 100644
> --- a/hw/arm_gic.c
> +++ b/hw/arm_gic.c
> @@ -274,7 +274,7 @@ static uint32_t gic_dist_readb(void *opaque,
> target_phys_addr_t offset)
>
> cpu = gic_get_current_cpu();
> cm = 1 << cpu;
> - if (offset < 0x100) {
> + if (offset < 0x80) {
> #ifndef NVIC
> if (offset == 0)
> return s->enabled;
> @@ -284,6 +284,9 @@ static uint32_t gic_dist_readb(void *opaque,
> target_phys_addr_t offset)
> return 0;
> #endif
> goto bad_reg;
> + } else if (offset < 0x100) {
> + /* Interrupt Security */
> + return 0;
This won't actually break anything, but really the handling of 0x80..0xff
would be inside the first if() clause, because of the way we piggyback
the v7M NVIC off these functions. (We should clean that up, really).
Anyway, the v7M NVIC doesn't own 0x0..0xff, which is what the first
if () clause is marking off. Ditto in the write function.
It would also be nice to have the comment explicitly say that these
registers are defined to RAZ/WI in GIC implementations that don't
implement the security extensions.
(Strictly speaking, in the 11MPcore GIC these locations are reserved
and probably don't RAZ/WI, but I don't think we need to worry about
that wrinkle now.)
> } else if (offset < 0x200) {
> /* Interrupt Set/Clear Enable. */
> if (offset < 0x180)
> @@ -404,7 +407,7 @@ static void gic_dist_writeb(void *opaque,
> target_phys_addr_t offset,
> int cpu;
>
> cpu = gic_get_current_cpu();
> - if (offset < 0x100) {
> + if (offset < 0x80) {
> #ifdef NVIC
> goto bad_reg;
> #else
> @@ -417,6 +420,9 @@ static void gic_dist_writeb(void *opaque,
> target_phys_addr_t offset,
> goto bad_reg;
> }
> #endif
> + } else if (offset < 0x100) {
> + /* Interrupt Security Registers */
> + /* ignore */
> } else if (offset < 0x180) {
> /* Interrupt Set Enable. */
> irq = (offset - 0x100) * 8 + GIC_BASE_IRQ;
> --
> 1.7.5.4
>
-- PMM
next prev parent reply other threads:[~2011-12-20 19:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-20 19:11 [Qemu-devel] [PATCH 4/9] arm: add dummy gic security registers Mark Langsdorf
2011-12-20 19:58 ` Peter Maydell [this message]
2011-12-20 21:06 ` Mark Langsdorf
2011-12-20 21:27 ` 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=CAFEAcA-49Lz3+Uu54w6z8mMSubixJrxEjbTA-nMs5Fa-1Adywg@mail.gmail.com \
--to=peter.maydell@linaro.org \
--cc=mark.langsdorf@calxeda.com \
--cc=paul@codesourcery.com \
--cc=qemu-devel@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).