diff options
| author | Philippe Mathieu-Daudé | 2019-10-04 01:03:56 +0200 |
|---|---|---|
| committer | Laurent Vivier | 2019-10-24 20:23:15 +0200 |
| commit | 2811ac30596644c1bfc3eee4e2ebffd2a107c3e4 (patch) | |
| tree | 7a4d1da706036cb03f4d18e46618a7f2ac1a314e /hw/timer/sun4v-rtc.c | |
| parent | hw: Move M41T80 device from hw/timer/ to hw/rtc/ subdirectory (diff) | |
| download | qemu-2811ac30596644c1bfc3eee4e2ebffd2a107c3e4.tar.gz qemu-2811ac30596644c1bfc3eee4e2ebffd2a107c3e4.tar.xz qemu-2811ac30596644c1bfc3eee4e2ebffd2a107c3e4.zip | |
hw: Move sun4v hypervisor RTC from hw/timer/ to hw/rtc/ subdirectory
Move RTC devices under the hw/rtc/ subdirectory.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Artyom Tarasenko <atar4qemu@gmail.com>
Message-Id: <20191003230404.19384-7-philmd@redhat.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'hw/timer/sun4v-rtc.c')
| -rw-r--r-- | hw/timer/sun4v-rtc.c | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/hw/timer/sun4v-rtc.c b/hw/timer/sun4v-rtc.c deleted file mode 100644 index 54272a822f..0000000000 --- a/hw/timer/sun4v-rtc.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - * QEMU sun4v Real Time Clock device - * - * The sun4v_rtc device (sun4v tod clock) - * - * Copyright (c) 2016 Artyom Tarasenko - * - * This code is licensed under the GNU GPL v3 or (at your option) any later - * version. - */ - -#include "qemu/osdep.h" -#include "hw/sysbus.h" -#include "qemu/module.h" -#include "qemu/timer.h" -#include "hw/timer/sun4v-rtc.h" -#include "trace.h" - - -#define TYPE_SUN4V_RTC "sun4v_rtc" -#define SUN4V_RTC(obj) OBJECT_CHECK(Sun4vRtc, (obj), TYPE_SUN4V_RTC) - -typedef struct Sun4vRtc { - SysBusDevice parent_obj; - - MemoryRegion iomem; -} Sun4vRtc; - -static uint64_t sun4v_rtc_read(void *opaque, hwaddr addr, - unsigned size) -{ - uint64_t val = get_clock_realtime() / NANOSECONDS_PER_SECOND; - if (!(addr & 4ULL)) { - /* accessing the high 32 bits */ - val >>= 32; - } - trace_sun4v_rtc_read(addr, val); - return val; -} - -static void sun4v_rtc_write(void *opaque, hwaddr addr, - uint64_t val, unsigned size) -{ - trace_sun4v_rtc_write(addr, val); -} - -static const MemoryRegionOps sun4v_rtc_ops = { - .read = sun4v_rtc_read, - .write = sun4v_rtc_write, - .endianness = DEVICE_NATIVE_ENDIAN, -}; - -void sun4v_rtc_init(hwaddr addr) -{ - DeviceState *dev; - SysBusDevice *s; - - dev = qdev_create(NULL, TYPE_SUN4V_RTC); - s = SYS_BUS_DEVICE(dev); - - qdev_init_nofail(dev); - - sysbus_mmio_map(s, 0, addr); -} - -static void sun4v_rtc_realize(DeviceState *dev, Error **errp) -{ - SysBusDevice *sbd = SYS_BUS_DEVICE(dev); - Sun4vRtc *s = SUN4V_RTC(dev); - - memory_region_init_io(&s->iomem, OBJECT(s), &sun4v_rtc_ops, s, - "sun4v-rtc", 0x08ULL); - sysbus_init_mmio(sbd, &s->iomem); -} - -static void sun4v_rtc_class_init(ObjectClass *klass, void *data) -{ - DeviceClass *dc = DEVICE_CLASS(klass); - - dc->realize = sun4v_rtc_realize; -} - -static const TypeInfo sun4v_rtc_info = { - .name = TYPE_SUN4V_RTC, - .parent = TYPE_SYS_BUS_DEVICE, - .instance_size = sizeof(Sun4vRtc), - .class_init = sun4v_rtc_class_init, -}; - -static void sun4v_rtc_register_types(void) -{ - type_register_static(&sun4v_rtc_info); -} - -type_init(sun4v_rtc_register_types) |
