[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-arm] [PATCH 09/16] hw/arm/iotkit: Wire up the lin
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [Qemu-arm] [PATCH 09/16] hw/arm/iotkit: Wire up the lines for MSCs |
Date: |
Fri, 17 Aug 2018 21:39:13 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 08/09/2018 10:01 AM, Peter Maydell wrote:
> The IoTKit doesn't have any MSCs itself but it does need
> some wiring to connect the external signals from MSCs
> in the outer board model up to the registers and the
> NVIC IRQ line.
>
> We also need to expose a MemoryRegion corresponding to
> the AHB bus, so that MSCs in the outer board model can
> use that as their downstream port. (In the FPGA this is
> the "AHB Slave Expansion" ports shown in the block
> diagram in the AN505 documentation.)
>
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> include/hw/arm/iotkit.h | 8 ++++++++
> hw/arm/iotkit.c | 15 +++++++++++++++
> 2 files changed, 23 insertions(+)
>
> diff --git a/include/hw/arm/iotkit.h b/include/hw/arm/iotkit.h
> index 1ffa31d521b..5bb66b10468 100644
> --- a/include/hw/arm/iotkit.h
> +++ b/include/hw/arm/iotkit.h
> @@ -28,6 +28,9 @@
> * + QOM property "EXP_NUMIRQ" sets the number of expansion interrupts
> * + Named GPIO inputs "EXP_IRQ" 0..n are the expansion interrupts, which
> * are wired to the NVIC lines 32 .. n+32
> + * + sysbus MMIO region 0 is the "AHB Slave Expansion" which allows
> + * bus master devices in the board model to make transactions into
> + * all the devices and memory areas in the IoTKit
> * Controlling up to 4 AHB expansion PPBs which a system using the IoTKit
> * might provide:
> * + named GPIO outputs apb_ppcexp{0,1,2,3}_nonsec[0..15]
> @@ -45,6 +48,11 @@
> * Controlling each of the 16 expansion MPCs which a system using the IoTKit
> * might provide:
> * + named GPIO inputs mpcexp_status[0..15]
> + * Controlling each of the 16 expansion MSCs which a system using the IoTKit
> + * might provide:
> + * + named GPIO inputs mscexp_status[0..15]
> + * + named GPIO outputs mscexp_clear[0..15]
> + * + named GPIO outputs mscexp_ns[0..15]
> */
>
> #ifndef IOTKIT_H
> diff --git a/hw/arm/iotkit.c b/hw/arm/iotkit.c
> index 5d59ed5489f..8ae2a052517 100644
> --- a/hw/arm/iotkit.c
> +++ b/hw/arm/iotkit.c
> @@ -660,6 +660,21 @@ static void iotkit_realize(DeviceState *dev, Error
> **errp)
>
> iotkit_forward_sec_resp_cfg(s);
>
> + /* Forward the MSC related signals */
> + qdev_pass_gpios(dev_secctl, dev, "mscexp_status");
> + qdev_pass_gpios(dev_secctl, dev, "mscexp_clear");
> + qdev_pass_gpios(dev_secctl, dev, "mscexp_ns");
> + qdev_connect_gpio_out_named(dev_secctl, "msc_irq", 0,
> + qdev_get_gpio_in(DEVICE(&s->armv7m), 11));
> +
> + /*
> + * Expose our container region to the board model; this corresponds
> + * to the AHB Slave Expansion ports which allow bus master devices
> + * (eg DMA controllers) in the board model to make transactions into
> + * devices in the IoTKit.
> + */
> + sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->container);
> +
> system_clock_scale = NANOSECONDS_PER_SECOND / s->mainclk_frq;
> }
>
>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
- [Qemu-devel] [PATCH 07/16] hw/misc/tz-msc: Model TrustZone Master Security Controller, (continued)
- [Qemu-devel] [PATCH 09/16] hw/arm/iotkit: Wire up the lines for MSCs, Peter Maydell, 2018/08/09
- Re: [Qemu-devel] [Qemu-arm] [PATCH 09/16] hw/arm/iotkit: Wire up the lines for MSCs,
Philippe Mathieu-Daudé <=
- [Qemu-devel] [PATCH 11/16] hw/dma/pl080: Support all three interrupt lines, Peter Maydell, 2018/08/09
- [Qemu-devel] [PATCH 01/16] hw/watchdog/cmsdk_apb_watchdog: Implement CMSDK APB watchdog module, Peter Maydell, 2018/08/09
- [Qemu-devel] [PATCH 12/16] hw/dma/pl080: Don't use CPU address space for DMA accesses, Peter Maydell, 2018/08/09
- [Qemu-devel] [PATCH 08/16] hw/misc/iotkit-secctl: Wire up registers for controlling MSCs, Peter Maydell, 2018/08/09