[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [Qemu-devel] [PATCH 03/14] hw/timer/pl031: Allow use as a
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-arm] [Qemu-devel] [PATCH 03/14] hw/timer/pl031: Allow use as an embedded-struct device |
Date: |
Mon, 18 Feb 2019 22:54:46 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0 |
On 2/14/19 1:50 PM, Peter Maydell wrote:
> Create a new include file for the pl031's device struct,
> type macros, etc, so that it can be instantiated using
> the "embedded struct" coding style.
>
> Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> include/hw/timer/pl031.h | 44 ++++++++++++++++++++++++++++++++++++++++
> hw/timer/pl031.c | 25 +----------------------
> MAINTAINERS | 1 +
> 3 files changed, 46 insertions(+), 24 deletions(-)
> create mode 100644 include/hw/timer/pl031.h
>
> diff --git a/include/hw/timer/pl031.h b/include/hw/timer/pl031.h
> new file mode 100644
> index 00000000000..99416d8ba52
> --- /dev/null
> +++ b/include/hw/timer/pl031.h
> @@ -0,0 +1,44 @@
> +/*
> + * ARM AMBA PrimeCell PL031 RTC
> + *
> + * Copyright (c) 2007 CodeSourcery
> + *
> + * This file is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + *
> + * Contributions after 2012-01-13 are licensed under the terms of the
> + * GNU GPL, version 2 or (at your option) any later version.
> + */
> +
> +#ifndef HW_TIMER_PL031
> +#define HW_TIMER_PL031
> +
> +#include "hw/sysbus.h"
> +
> +#define TYPE_PL031 "pl031"
> +#define PL031(obj) OBJECT_CHECK(PL031State, (obj), TYPE_PL031)
> +
> +typedef struct PL031State {
> + SysBusDevice parent_obj;
> +
> + MemoryRegion iomem;
> + QEMUTimer *timer;
> + qemu_irq irq;
> +
> + /*
> + * Needed to preserve the tick_count across migration, even if the
> + * absolute value of the rtc_clock is different on the source and
> + * destination.
> + */
> + uint32_t tick_offset_vmstate;
> + uint32_t tick_offset;
> +
> + uint32_t mr;
> + uint32_t lr;
> + uint32_t cr;
> + uint32_t im;
> + uint32_t is;
> +} PL031State;
> +
> +#endif
> diff --git a/hw/timer/pl031.c b/hw/timer/pl031.c
> index d3aacce80da..f774dcd5223 100644
> --- a/hw/timer/pl031.c
> +++ b/hw/timer/pl031.c
> @@ -12,6 +12,7 @@
> */
>
> #include "qemu/osdep.h"
> +#include "hw/timer/pl031.h"
> #include "hw/sysbus.h"
> #include "qemu/timer.h"
> #include "sysemu/sysemu.h"
> @@ -36,30 +37,6 @@ do { printf("pl031: " fmt , ## __VA_ARGS__); } while (0)
> #define RTC_MIS 0x18 /* Masked interrupt status register */
> #define RTC_ICR 0x1c /* Interrupt clear register */
>
> -#define TYPE_PL031 "pl031"
> -#define PL031(obj) OBJECT_CHECK(PL031State, (obj), TYPE_PL031)
> -
> -typedef struct PL031State {
> - SysBusDevice parent_obj;
> -
> - MemoryRegion iomem;
> - QEMUTimer *timer;
> - qemu_irq irq;
> -
> - /* Needed to preserve the tick_count across migration, even if the
> - * absolute value of the rtc_clock is different on the source and
> - * destination.
> - */
> - uint32_t tick_offset_vmstate;
> - uint32_t tick_offset;
> -
> - uint32_t mr;
> - uint32_t lr;
> - uint32_t cr;
> - uint32_t im;
> - uint32_t is;
> -} PL031State;
> -
> static const unsigned char pl031_id[] = {
> 0x31, 0x10, 0x14, 0x00, /* Device ID */
> 0x0d, 0xf0, 0x05, 0xb1 /* Cell ID */
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 9a76845581b..85d4b4c9f7c 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -493,6 +493,7 @@ F: hw/sd/pl181.c
> F: hw/ssi/pl022.c
> F: include/hw/ssi/pl022.h
> F: hw/timer/pl031.c
> +F: include/hw/timer/pl031.h
> F: include/hw/arm/primecell.h
> F: hw/timer/cmsdk-apb-timer.c
> F: include/hw/timer/cmsdk-apb-timer.h
>
- Re: [Qemu-arm] [Qemu-devel] [PATCH 07/14] hw/char/pl011: Use '0x' prefix when logging hex numbers, (continued)
- [Qemu-arm] [PATCH 01/14] hw/arm/armsse: Fix miswiring of expansion IRQs, Peter Maydell, 2019/02/14
- [Qemu-arm] [PATCH 06/14] hw/char/pl011: Support all interrupt lines, Peter Maydell, 2019/02/14
- [Qemu-arm] [PATCH 05/14] hw/char/pl011: Allow use as an embedded-struct device, Peter Maydell, 2019/02/14
- [Qemu-arm] [PATCH 03/14] hw/timer/pl031: Allow use as an embedded-struct device, Peter Maydell, 2019/02/14
- [Qemu-arm] [PATCH 08/14] hw/arm/armsse: Document SRAM_ADDR_WIDTH property in header comment, Peter Maydell, 2019/02/14