[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 08/13] hw/arm/mps3r: Initial skeleton for mps3-an536 board
From: |
Peter Maydell |
Subject: |
Re: [PATCH 08/13] hw/arm/mps3r: Initial skeleton for mps3-an536 board |
Date: |
Tue, 6 Feb 2024 20:57:14 +0000 |
On Tue, 6 Feb 2024 at 19:21, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> Hi Peter,
>
> On 6/2/24 14:29, Peter Maydell wrote:
> > The AN536 is another FPGA image for the MPS3 development board. Unlike
> > the existing FPGA images we already model, this board uses a Cortex-R
> > family CPU, and it does not use any equivalent to the M-profile
> > "Subsystem for Embedded" SoC-equivalent that we model in hw/arm/armsse.c.
> > It's therefore more convenient for us to model it as a completely
> > separate C file.
> >
> > This commit adds the basic skeleton of the board model, and the
> > code to create all the RAM and ROM. We assume that we're probably
> > going to want to add more images in future, so use the same
> > base class/subclass setup that mps2-tz.c uses, even though at
> > the moment there's only a single subclass.
> >
> > Following commits will add the CPUs and the peripherals.
> >
> > Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> > ---
> > MAINTAINERS | 3 +-
> > configs/devices/arm-softmmu/default.mak | 1 +
> > hw/arm/mps3r.c | 239 ++++++++++++++++++++++++
> > hw/arm/Kconfig | 5 +
> > hw/arm/meson.build | 1 +
> > 5 files changed, 248 insertions(+), 1 deletion(-)
> > create mode 100644 hw/arm/mps3r.c
>
>
> > +static MemoryRegion *mr_for_raminfo(MPS3RMachineState *mms,
> > + const RAMInfo *raminfo)
> > +{
> > + /* Return an initialized MemoryRegion for the RAMInfo. */
> > + MemoryRegion *ram;
> > +
> > + if (raminfo->mrindex < 0) {
> > + /* Means this RAMInfo is for QEMU's "system memory" */
> > + MachineState *machine = MACHINE(mms);
> > + assert(!(raminfo->flags & IS_ROM));
> > + return machine->ram;
> > + }
> > +
> > + assert(raminfo->mrindex < MPS3R_RAM_MAX);
> > + ram = &mms->ram[raminfo->mrindex];
> > +
> > + memory_region_init_ram(ram, NULL, raminfo->name,
>
> You are not using the parent=mms, is that deliberate?
> (as in: easier to migrate eventually?)
No, I didn't have a particular reason for not setting the parent;
I just copied this bit of code from mps2-tz.c, which also doesn't
set the parent pointer...
-- PMM
- [PATCH 11/13] hw/arm/mps3r: Add GPIO, watchdog, dual-timer, I2C devices, (continued)
- [PATCH 11/13] hw/arm/mps3r: Add GPIO, watchdog, dual-timer, I2C devices, Peter Maydell, 2024/02/06
- [PATCH 13/13] docs: Add documentation for the mps3-an536 board, Peter Maydell, 2024/02/06
- [PATCH 10/13] hw/arm/mps3r: Add UARTs, Peter Maydell, 2024/02/06
- [PATCH 09/13] hw/arm/mps3r: Add CPUs, GIC, and per-CPU RAM, Peter Maydell, 2024/02/06
- [PATCH 08/13] hw/arm/mps3r: Initial skeleton for mps3-an536 board, Peter Maydell, 2024/02/06