From: Peter Maydell <peter.maydell@linaro.org>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
Cc: Damien Hedde <damien.hedde@greensocs.com>,
Luc Michel <luc@lmichel.fr>, David Hildenbrand <david@redhat.com>,
Alistair Francis <alistair@alistair23.me>,
QEMU Developers <qemu-devel@nongnu.org>,
Peter Xu <peterx@redhat.com>,
Subbaraya Sundeep <sundeep.lkml@gmail.com>,
qemu-arm <qemu-arm@nongnu.org>, Joel Stanley <joel@jms.id.au>,
Alexandre Iooss <erdnaxe@crans.org>
Subject: Re: [PATCH for-6.2 01/25] arm: Move M-profile RAS register block into its own device
Date: Mon, 16 Aug 2021 10:16:54 +0100 [thread overview]
Message-ID: <CAFEAcA_EXxMPQjbA+rHwTPfZko_pcmw_Hi6yOXW+mXWAAkcs1g@mail.gmail.com> (raw)
In-Reply-To: <3fc10091-832a-e87c-9866-323534f6dc9e@amsat.org>
On Sun, 15 Aug 2021 at 18:30, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>
> +Peter/David
>
> On 8/12/21 11:33 AM, Peter Maydell wrote:
> > Currently we implement the RAS register block within the NVIC device.
> > It isn't really very tightly coupled with the NVIC proper, so instead
> > move it out into a sysbus device of its own and have the top level
> > ARMv7M container create it and map it into memory at the right
> > address.
> >
> > Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> > ---
> > include/hw/arm/armv7m.h | 2 +
> > include/hw/intc/armv7m_nvic.h | 1 -
> > include/hw/misc/armv7m_ras.h | 37 ++++++++++++++
> > hw/arm/armv7m.c | 12 +++++
> > hw/intc/armv7m_nvic.c | 56 ---------------------
> > hw/misc/armv7m_ras.c | 93 +++++++++++++++++++++++++++++++++++
> > MAINTAINERS | 2 +
> > hw/misc/meson.build | 2 +
> > 8 files changed, 148 insertions(+), 57 deletions(-)
> > create mode 100644 include/hw/misc/armv7m_ras.h
> > create mode 100644 hw/misc/armv7m_ras.c
>
> > diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c
> > index 9ce5c30cd5c..8964730d153 100644
> > --- a/hw/arm/armv7m.c
> > +++ b/hw/arm/armv7m.c
> > @@ -231,6 +231,18 @@ static void armv7m_realize(DeviceState *dev, Error **errp)
> > memory_region_add_subregion(&s->container, 0xe0000000,
> > sysbus_mmio_get_region(sbd, 0));
> >
> > + /* If the CPU has RAS support, create the RAS register block */
> > + if (cpu_isar_feature(aa32_ras, s->cpu)) {
> > + object_initialize_child(OBJECT(dev), "armv7m-ras",
> > + &s->ras, TYPE_ARMV7M_RAS);
> > + sbd = SYS_BUS_DEVICE(&s->ras);
> > + if (!sysbus_realize(sbd, errp)) {
> > + return;
> > + }
> > + memory_region_add_subregion_overlap(&s->container, 0xe0005000,
> > + sysbus_mmio_get_region(sbd, 0), 1);
>
> Just curious, is the overlap really needed?
Yes, because this block is currently in the middle of the
PPB-area region provided by the NVIC, and needs to take priority
over it. Once the refactoring is complete, the background-region
will also be created in this armv7m realize function, but the
RAS block still needs to go above it.
> I see the NVIC default
> region is 1 MiB wide. Aren't smaller regions returned first when
> multiple regions have same priority?
As David says, if you don't specify the priority then it's
pot-luck which one you see. Having overlaps and not setting
priorities is a QEMU bug. (We used to have some code to print
a warning about unintentionally overlapping regions, but it was
always disabled with #if 0 and we eventually deleted it in commit
b61359781958. IIRC the reason we never enabled either a warning
or an assertion was because for the PC machine's PCI devices
in particular we thought it might be possible for the guest to
map PCI devices at a silly address and generate overlaps, but
I may well have the details wrong as it was years back.)
-- PMM
next prev parent reply other threads:[~2021-08-16 9:18 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-12 9:33 [PATCH for-6.2 00/25] arm: Get rid of system_clock_scale global Peter Maydell
2021-08-12 9:33 ` [PATCH for-6.2 01/25] arm: Move M-profile RAS register block into its own device Peter Maydell
2021-08-12 11:08 ` Alexandre IOOSS
2021-08-12 11:09 ` Peter Maydell
2021-08-13 0:59 ` Alistair Francis
2021-08-15 17:30 ` Philippe Mathieu-Daudé
2021-08-16 7:28 ` David Hildenbrand
2021-08-16 9:16 ` Peter Maydell [this message]
2021-08-17 8:25 ` Luc Michel
2021-08-17 10:10 ` Damien Hedde
2021-08-12 9:33 ` [PATCH for-6.2 02/25] arm: Move systick device creation from NVIC to ARMv7M object Peter Maydell
2021-08-13 1:23 ` Alistair Francis
2021-08-17 9:24 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 03/25] arm: Move system PPB container handling to armv7m Peter Maydell
2021-08-12 11:56 ` Alexandre IOOSS
2021-08-17 9:25 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 04/25] hw/timer/armv7m_systick: Add usual QEMU interface comment Peter Maydell
2021-08-13 1:26 ` Alistair Francis
2021-08-17 9:29 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 05/25] hw/timer/armv7m_systick: Add input clocks Peter Maydell
2021-08-13 1:27 ` Alistair Francis
2021-08-17 9:32 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 06/25] hw/arm/armv7m: Create " Peter Maydell
2021-08-13 1:28 ` Alistair Francis
2021-08-17 9:34 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 07/25] armsse: Wire up systick cpuclk clock Peter Maydell
2021-08-13 1:29 ` Alistair Francis
2021-08-17 9:36 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 08/25] hw/arm/mps2.c: Connect up armv7m clocks Peter Maydell
2021-08-17 9:39 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 09/25] clock: Provide builtin multiplier/divider Peter Maydell
2021-08-12 12:08 ` Alexandre IOOSS
2021-08-12 12:22 ` Peter Maydell
2021-08-13 1:33 ` Alistair Francis
2021-08-15 16:32 ` Philippe Mathieu-Daudé
2021-08-16 9:05 ` Peter Maydell
2021-08-16 9:32 ` Philippe Mathieu-Daudé
2021-08-16 9:36 ` Peter Maydell
2021-08-16 9:58 ` Philippe Mathieu-Daudé
2021-08-15 21:27 ` Luc Michel
2021-08-17 9:59 ` Damien Hedde
2021-08-17 10:46 ` Peter Maydell
2021-08-17 14:58 ` Damien Hedde
2021-08-12 9:33 ` [PATCH for-6.2 10/25] hw/arm: Don't allocate separate MemoryRegions in stm32 SoC realize Peter Maydell
2021-08-12 12:13 ` Alexandre IOOSS
2021-08-12 12:27 ` Peter Maydell
2021-08-15 16:37 ` Philippe Mathieu-Daudé
2021-08-13 1:34 ` Alistair Francis
2021-08-17 9:41 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 11/25] hw/arm/stm32f100: Wire up sysclk and refclk Peter Maydell
2021-08-13 1:36 ` Alistair Francis
2021-08-14 9:01 ` Alexandre IOOSS
2021-08-17 9:45 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 12/25] hw/arm/stm32f205: " Peter Maydell
2021-08-13 1:38 ` Alistair Francis
2021-08-14 9:02 ` Alexandre IOOSS
2021-08-17 9:47 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 13/25] hw/arm/stm32f405: " Peter Maydell
2021-08-13 1:37 ` Alistair Francis
2021-08-14 9:03 ` Alexandre IOOSS
2021-08-17 9:47 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 14/25] hw/arm/stm32vldiscovery: Delete trailing blank line Peter Maydell
2021-08-12 12:27 ` Alexandre IOOSS
2021-08-13 1:39 ` Alistair Francis
2021-08-17 9:48 ` Luc Michel
2021-08-12 9:33 ` [PATCH for-6.2 15/25] hw/arm/nrf51: Wire up sysclk Peter Maydell
2021-08-14 9:06 ` Alexandre IOOSS
2021-08-12 9:33 ` [PATCH for-6.2 16/25] hw/arm/stellaris: split stellaris_sys_init() Peter Maydell
2021-08-14 9:10 ` Alexandre IOOSS
2021-08-12 9:33 ` [PATCH for-6.2 17/25] hw/arm/stellaris: Wire sysclk up to armv7m Peter Maydell
2021-08-14 9:12 ` Alexandre IOOSS
2021-08-12 9:33 ` [PATCH for-6.2 18/25] hw/arm/msf2_soc: Don't allocate separate MemoryRegions Peter Maydell
2021-08-14 9:13 ` Alexandre IOOSS
2021-08-12 9:33 ` [PATCH for-6.2 19/25] hw/arm/msf2: Use Clock input to MSF2_SOC instead of m3clk property Peter Maydell
2021-08-14 9:20 ` Alexandre IOOSS
2021-08-14 10:11 ` Peter Maydell
2021-08-14 10:47 ` Alexandre IOOSS
2021-08-12 9:33 ` [PATCH for-6.2 20/25] hw/arm/msf2-soc: Wire up refclk Peter Maydell
2021-08-17 15:05 ` Damien Hedde
2021-08-12 9:33 ` [PATCH for-6.2 21/25] hw/timer/armv7m_systick: Use clock inputs instead of system_clock_scale Peter Maydell
2021-08-17 15:55 ` Damien Hedde
2021-08-17 15:59 ` Peter Maydell
2021-08-17 16:14 ` Damien Hedde
2021-08-12 9:33 ` [PATCH for-6.2 22/25] hw/arm/stellaris: Fix code style issues in GPTM code Peter Maydell
2021-08-14 9:26 ` Alexandre IOOSS
2021-08-12 9:33 ` [PATCH for-6.2 23/25] hw/arm/stellaris: Split stellaris-gptm into its own file Peter Maydell
2021-08-17 15:59 ` Damien Hedde
2021-08-12 9:33 ` [PATCH for-6.2 24/25] hw/timer/stellaris-gptm: Use Clock input instead of system_clock_scale Peter Maydell
2021-08-18 12:03 ` Damien Hedde
2021-08-12 9:33 ` [PATCH for-6.2 25/25] arm: Remove system_clock_scale global Peter Maydell
2021-08-13 5:08 ` Alistair Francis
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_EXxMPQjbA+rHwTPfZko_pcmw_Hi6yOXW+mXWAAkcs1g@mail.gmail.com \
--to=peter.maydell@linaro.org \
--cc=alistair@alistair23.me \
--cc=damien.hedde@greensocs.com \
--cc=david@redhat.com \
--cc=erdnaxe@crans.org \
--cc=f4bug@amsat.org \
--cc=joel@jms.id.au \
--cc=luc@lmichel.fr \
--cc=peterx@redhat.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=sundeep.lkml@gmail.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 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).