[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-arm] [PATCH 00/16] arm: Implement MPS2 watchdogs
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [Qemu-arm] [PATCH 00/16] arm: Implement MPS2 watchdogs and DMA |
Date: |
Fri, 17 Aug 2018 22:29:14 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 08/16/2018 03:02 PM, Peter Maydell wrote:
> Ping for code review, please?
I let patch #7 for someone else (or later) and few comments before
adding R-b for the rest.
>
> (It's only been a week so this is a little bit eager, but
> I have some more MPS patches which wire up the PL022 SPI
> controllers, which I'm holding off on posting until this
> and the preceding FPGAIO set get reviewed and committed, so
> as not to have too many MPS patches in flight at once.)
>
> thanks
> -- PMM
>
> On 9 August 2018 at 14:00, Peter Maydell <address@hidden> wrote:
>> This patchset adds some more missing devices to the MPS2 AN505
>> board model:
>>
>> Patches 1-3 implement and wire up the CMSDK APB watchdog devices.
>>
>> Patch 4 adds a CMSDK timer device that had been forgotten.
>>
>> Ppatches 5-6 implement and wire up the "system control element",
>> which is some simple control/ID registers in the IoTKit
>>
>> Patches 7-16 are the meat of the patchset, and add support
>> for the DMA controllers and their associated Master Security
>> Controllers. A TrustZone MSC sits in front of a device which
>> can be a bus master (such as a DMA controller) and allows secure
>> software to configure it to either pass through or reject transactions
>> made by that bus master. Rejected transactions may be configured to
>> either be aborted, or to behave as RAZ/WI. An interrupt can be
>> signalled for a rejected transaction. The AN505 has four
>> PL081 DMA controllers, each with its own MSC.
>>
>> Patches 10-15 are various minor cleanups and bugfixes in
>> the PL081 model that are needed for its use in the AN505.
>> In particular the PL081 was previously entirely broken as
>> it would hw_error() as soon as the guest enabled the DMA
>> engine. I assume this was either accidentally left-in debug code,
>> or a deliberate choice to guard a never-tested implementation
>> so as to be able to identify when we had guest code to test it
>> with. (Linux for the realview/versatile boards never tries to
>> use the PL08x there for DMA.)
>>
>> This patchset is sufficient for the "DMA" test in the AN505
>> self-test binary to pass. (I suspect it is not giving the
>> PL081 or MSC a very thorough workout, though.)
>>
>> Based-on: <address@hidden>
>> ("[PATCH 0/5] mps2: Implement FPGAIO counters and dual-timer")
>>
>> thanks
>> -- PMM
>>
>> Peter Maydell (16):
>> hw/watchdog/cmsdk_apb_watchdog: Implement CMSDK APB watchdog module
>> nvic: Expose NMI line
>> hw/arm/iotkit: Wire up the watchdogs
>> hw/arm/iotkit: Wire up the S32KTIMER
>> hw/misc/iotkit-sysctl: Implement IoTKit system control element
>> hw/misc/iotkit: Wire up the system control element
>> hw/misc/tz-msc: Model TrustZone Master Security Controller
>> hw/misc/iotkit-secctl: Wire up registers for controlling MSCs
>> hw/arm/iotkit: Wire up the lines for MSCs
>> hw/dma/pl080: Allow use as embedded-struct device
>> hw/dma/pl080: Support all three interrupt lines
>> hw/dma/pl080: Don't use CPU address space for DMA accesses
>> hw/dma/pl080: Provide device reset function
>> hw/dma/pl080: Correct bug in register address decode logic
>> hw/dma/pl080: Remove hw_error() if DMA is enabled
>> hw/arm/mps2-tz: Create PL081s and MSCs
>>
>> Makefile.objs | 1 +
>> hw/misc/Makefile.objs | 2 +
>> hw/watchdog/Makefile.objs | 1 +
>> include/hw/arm/iotkit.h | 20 +-
>> include/hw/dma/pl080.h | 71 +++++
>> include/hw/misc/iotkit-secctl.h | 14 +
>> include/hw/misc/iotkit-sysctl.h | 50 ++++
>> include/hw/misc/tz-msc.h | 79 ++++++
>> include/hw/watchdog/cmsdk-apb-watchdog.h | 59 ++++
>> hw/arm/armv7m.c | 1 +
>> hw/arm/iotkit.c | 99 ++++++-
>> hw/arm/mps2-tz.c | 101 ++++++-
>> hw/arm/realview.c | 8 +-
>> hw/arm/versatilepb.c | 9 +-
>> hw/dma/pl080.c | 113 ++++----
>> hw/intc/armv7m_nvic.c | 19 ++
>> hw/misc/iotkit-secctl.c | 73 ++++-
>> hw/misc/iotkit-sysctl.c | 324 ++++++++++++++++++++++
>> hw/misc/tz-msc.c | 308 +++++++++++++++++++++
>> hw/watchdog/cmsdk-apb-watchdog.c | 326 +++++++++++++++++++++++
>> MAINTAINERS | 7 +
>> default-configs/arm-softmmu.mak | 3 +
>> hw/intc/trace-events | 1 +
>> hw/misc/trace-events | 16 ++
>> hw/watchdog/trace-events | 6 +
>> 25 files changed, 1632 insertions(+), 79 deletions(-)
>> create mode 100644 include/hw/dma/pl080.h
>> create mode 100644 include/hw/misc/iotkit-sysctl.h
>> create mode 100644 include/hw/misc/tz-msc.h
>> create mode 100644 include/hw/watchdog/cmsdk-apb-watchdog.h
>> create mode 100644 hw/misc/iotkit-sysctl.c
>> create mode 100644 hw/misc/tz-msc.c
>> create mode 100644 hw/watchdog/cmsdk-apb-watchdog.c
>> create mode 100644 hw/watchdog/trace-events
>>
>> --
>> 2.17.1
>
- [Qemu-devel] [PATCH 12/16] hw/dma/pl080: Don't use CPU address space for DMA accesses, (continued)
- [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
- [Qemu-devel] [PATCH 14/16] hw/dma/pl080: Correct bug in register address decode logic, Peter Maydell, 2018/08/09
- [Qemu-devel] [PATCH 16/16] hw/arm/mps2-tz: Create PL081s and MSCs, Peter Maydell, 2018/08/09
- Re: [Qemu-devel] [Qemu-arm] [PATCH 00/16] arm: Implement MPS2 watchdogs and DMA, Peter Maydell, 2018/08/16
- Re: [Qemu-devel] [Qemu-arm] [PATCH 00/16] arm: Implement MPS2 watchdogs and DMA,
Philippe Mathieu-Daudé <=