[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 06/24] hw/misc/mps2-fpgaio: Support SWITCH register
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH 06/24] hw/misc/mps2-fpgaio: Support SWITCH register |
Date: |
Fri, 12 Feb 2021 19:23:17 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 |
On 2/5/21 6:00 PM, Peter Maydell wrote:
> MPS3 boards have an extra SWITCH register in the FPGAIO block which
> reports the value of some switches. Implement this, governed by a
> property the board code can use to specify whether whether it exists.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> include/hw/misc/mps2-fpgaio.h | 1 +
> hw/misc/mps2-fpgaio.c | 10 ++++++++++
> 2 files changed, 11 insertions(+)
>
> diff --git a/include/hw/misc/mps2-fpgaio.h b/include/hw/misc/mps2-fpgaio.h
> index bfe73134e78..83c6e18a4ee 100644
> --- a/include/hw/misc/mps2-fpgaio.h
> +++ b/include/hw/misc/mps2-fpgaio.h
> @@ -38,6 +38,7 @@ struct MPS2FPGAIO {
> MemoryRegion iomem;
> LEDState *led[MPS2FPGAIO_MAX_LEDS];
> uint32_t num_leds;
> + bool have_switches;
>
> uint32_t led0;
> uint32_t prescale;
> diff --git a/hw/misc/mps2-fpgaio.c b/hw/misc/mps2-fpgaio.c
> index b28a1be22cc..b54657a4f07 100644
> --- a/hw/misc/mps2-fpgaio.c
> +++ b/hw/misc/mps2-fpgaio.c
> @@ -35,6 +35,7 @@ REG32(CLK100HZ, 0x14)
> REG32(COUNTER, 0x18)
> REG32(PRESCALE, 0x1c)
> REG32(PSCNTR, 0x20)
> +REG32(SWITCH, 0x28)
> REG32(MISC, 0x4c)
>
> static uint32_t counter_from_tickoff(int64_t now, int64_t tick_offset, int
> frq)
> @@ -156,7 +157,15 @@ static uint64_t mps2_fpgaio_read(void *opaque, hwaddr
> offset, unsigned size)
> resync_counter(s);
> r = s->pscntr;
> break;
> + case A_SWITCH:
> + if (!s->have_switches) {
> + goto bad_offset;
> + }
> + /* User-togglable board switches. We don't model that, so report 0.
> */
We should and probably will at some point... This is a feature
I'm thinking about and which could be implemented the same way
as the TempSensor series. My latest problem is to have QOM names
(full path) consistent. That way we can toggle a switch at
runtime via (at least) a QMP command.
Anyway to your patch (including change squashed):
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
- Re: [PATCH 04/24] hw/arm/mps2-tz: Make the OSCCLK settings be configurable per-board, (continued)
- [PATCH 08/24] hw/arm/mps2-tz: Condition IRQ splitting on number of CPUs, not board type, Peter Maydell, 2021/02/05
- [PATCH 13/24] hw/arm/mps2-tz: Move device IRQ info to data structures, Peter Maydell, 2021/02/05
- [PATCH 05/24] hw/misc/mps2-fpgaio: Make number of LEDs configurable by board, Peter Maydell, 2021/02/05
- [PATCH 06/24] hw/misc/mps2-fpgaio: Support SWITCH register, Peter Maydell, 2021/02/05
- Re: [PATCH 06/24] hw/misc/mps2-fpgaio: Support SWITCH register,
Philippe Mathieu-Daudé <=
- [PATCH 07/24] hw/arm/mps2-tz: Make FPGAIO switch and LED config per-board, Peter Maydell, 2021/02/05
- [PATCH 20/24] hw/arm/mps2-tz: Add new mps3-an524 board, Peter Maydell, 2021/02/05
- [PATCH 10/24] hw/misc/mps2-scc: Implement CFG_REG5 and CFG_REG6 for MPS3 AN524, Peter Maydell, 2021/02/05
- [PATCH 09/24] hw/arm/mps2-tz: Make number of IRQs board-specific, Peter Maydell, 2021/02/05
- [PATCH 03/24] hw/arm/mps2-tz: Correct the OSCCLK settings for mps2-an505 and mps2-an511, Peter Maydell, 2021/02/05