Message ID | 20190916154847.28936-5-philmd@redhat.com |
---|---|
State | New |
Headers | show |
Series | hw: Split RTC devices from hw/timer/ to hw/rtc/ | expand |
On Mon, Sep 16, 2019 at 9:26 AM Philippe Mathieu-Daudé <philmd@redhat.com> wrote: > > The M48T59 is a Real Time Clock, not a timer. > Move it under the hw/rtc/ subdirectory. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > MAINTAINERS | 4 +- > hw/ppc/ppc405_boards.c | 2 +- > hw/ppc/prep.c | 2 +- > hw/rtc/Kconfig | 3 ++ > hw/rtc/Makefile.objs | 4 ++ > hw/{timer => rtc}/m48t59-internal.h | 0 > hw/{timer => rtc}/m48t59-isa.c | 4 +- > hw/{timer => rtc}/m48t59.c | 2 +- > hw/sparc/sun4m.c | 2 +- > hw/sparc64/sun4u.c | 2 +- > hw/timer/Kconfig | 3 -- > hw/timer/Makefile.objs | 4 -- > include/hw/rtc/m48t59.h | 57 +++++++++++++++++++++++++++++ > 13 files changed, 73 insertions(+), 16 deletions(-) > rename hw/{timer => rtc}/m48t59-internal.h (100%) > rename hw/{timer => rtc}/m48t59-isa.c (98%) > rename hw/{timer => rtc}/m48t59.c (99%) > create mode 100644 include/hw/rtc/m48t59.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index 481f2318cb..679b026fe0 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1064,9 +1064,9 @@ F: hw/pci-host/prep.[hc] > F: hw/isa/i82378.c > F: hw/isa/pc87312.c > F: hw/dma/i82374.c > -F: hw/timer/m48t59-isa.c > +F: hw/rtc/m48t59-isa.c > F: include/hw/isa/pc87312.h > -F: include/hw/timer/m48t59.h > +F: include/hw/rtc/m48t59.h > F: pc-bios/ppc_rom.bin > > sPAPR > diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c > index 388cae0b43..1f721feed6 100644 > --- a/hw/ppc/ppc405_boards.c > +++ b/hw/ppc/ppc405_boards.c > @@ -29,7 +29,7 @@ > #include "cpu.h" > #include "hw/ppc/ppc.h" > #include "ppc405.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "hw/block/flash.h" > #include "sysemu/sysemu.h" > #include "sysemu/qtest.h" > diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c > index 3a51536e1a..862345c2ac 100644 > --- a/hw/ppc/prep.c > +++ b/hw/ppc/prep.c > @@ -25,7 +25,7 @@ > > #include "qemu/osdep.h" > #include "cpu.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "hw/char/serial.h" > #include "hw/block/fdc.h" > #include "net/net.h" > diff --git a/hw/rtc/Kconfig b/hw/rtc/Kconfig > index 7ffd702268..159c233517 100644 > --- a/hw/rtc/Kconfig > +++ b/hw/rtc/Kconfig > @@ -1,3 +1,6 @@ > +config M48T59 > + bool > + > config PL031 > bool > > diff --git a/hw/rtc/Makefile.objs b/hw/rtc/Makefile.objs > index 3cac0d5a63..c87f81405e 100644 > --- a/hw/rtc/Makefile.objs > +++ b/hw/rtc/Makefile.objs > @@ -1,2 +1,6 @@ > +common-obj-$(CONFIG_M48T59) += m48t59.o > +ifeq ($(CONFIG_ISA_BUS),y) > +common-obj-$(CONFIG_M48T59) += m48t59-isa.o > +endif > common-obj-$(CONFIG_PL031) += pl031.o > obj-$(CONFIG_MC146818RTC) += mc146818rtc.o > diff --git a/hw/timer/m48t59-internal.h b/hw/rtc/m48t59-internal.h > similarity index 100% > rename from hw/timer/m48t59-internal.h > rename to hw/rtc/m48t59-internal.h > diff --git a/hw/timer/m48t59-isa.c b/hw/rtc/m48t59-isa.c > similarity index 98% > rename from hw/timer/m48t59-isa.c > rename to hw/rtc/m48t59-isa.c > index 5e5432abfd..7fde854c0f 100644 > --- a/hw/timer/m48t59-isa.c > +++ b/hw/rtc/m48t59-isa.c > @@ -1,5 +1,5 @@ > /* > - * QEMU M48T59 and M48T08 NVRAM emulation (ISA bus interface > + * QEMU M48T59 and M48T08 NVRAM emulation (ISA bus interface) > * > * Copyright (c) 2003-2005, 2007 Jocelyn Mayer > * Copyright (c) 2013 Hervé Poussineau > @@ -26,7 +26,7 @@ > #include "qemu/osdep.h" > #include "hw/isa/isa.h" > #include "hw/qdev-properties.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "m48t59-internal.h" > #include "qemu/module.h" > > diff --git a/hw/timer/m48t59.c b/hw/rtc/m48t59.c > similarity index 99% > rename from hw/timer/m48t59.c > rename to hw/rtc/m48t59.c > index a9fc2f981a..fc592b9fb1 100644 > --- a/hw/timer/m48t59.c > +++ b/hw/rtc/m48t59.c > @@ -27,7 +27,7 @@ > #include "qemu-common.h" > #include "hw/irq.h" > #include "hw/qdev-properties.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "qemu/timer.h" > #include "sysemu/runstate.h" > #include "sysemu/sysemu.h" > diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c > index 6c5a17a020..2aaa5bf1ae 100644 > --- a/hw/sparc/sun4m.c > +++ b/hw/sparc/sun4m.c > @@ -31,7 +31,7 @@ > #include "qemu/error-report.h" > #include "qemu/timer.h" > #include "hw/sparc/sun4m_iommu.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "migration/vmstate.h" > #include "hw/sparc/sparc32_dma.h" > #include "hw/block/fdc.h" > diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c > index 1ded2a4c9a..955082773b 100644 > --- a/hw/sparc64/sun4u.c > +++ b/hw/sparc64/sun4u.c > @@ -36,7 +36,7 @@ > #include "hw/pci-host/sabre.h" > #include "hw/char/serial.h" > #include "hw/char/parallel.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "migration/vmstate.h" > #include "hw/input/i8042.h" > #include "hw/block/fdc.h" > diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig > index af415c8ef8..a57e9b59fc 100644 > --- a/hw/timer/Kconfig > +++ b/hw/timer/Kconfig > @@ -24,9 +24,6 @@ config M41T80 > bool > depends on I2C > > -config M48T59 > - bool > - > config TWL92230 > bool > depends on I2C > diff --git a/hw/timer/Makefile.objs b/hw/timer/Makefile.objs > index b0159189cf..fe2d1fbc40 100644 > --- a/hw/timer/Makefile.objs > +++ b/hw/timer/Makefile.objs > @@ -7,10 +7,6 @@ common-obj-$(CONFIG_DS1338) += ds1338.o > common-obj-$(CONFIG_HPET) += hpet.o > common-obj-$(CONFIG_I8254) += i8254_common.o i8254.o > common-obj-$(CONFIG_M41T80) += m41t80.o > -common-obj-$(CONFIG_M48T59) += m48t59.o > -ifeq ($(CONFIG_ISA_BUS),y) > -common-obj-$(CONFIG_M48T59) += m48t59-isa.o > -endif > common-obj-$(CONFIG_PUV3) += puv3_ost.o > common-obj-$(CONFIG_TWL92230) += twl92230.o > common-obj-$(CONFIG_XILINX) += xilinx_timer.o > diff --git a/include/hw/rtc/m48t59.h b/include/hw/rtc/m48t59.h > new file mode 100644 > index 0000000000..e7ea4e8761 > --- /dev/null > +++ b/include/hw/rtc/m48t59.h > @@ -0,0 +1,57 @@ > +/* > + * QEMU M48T59 and M48T08 NVRAM emulation > + * > + * Copyright (c) 2003-2005, 2007 Jocelyn Mayer > + * Copyright (c) 2013 Hervé Poussineau > + * > + * Permission is hereby granted, free of charge, to any person obtaining a copy > + * of this software and associated documentation files (the "Software"), to deal > + * in the Software without restriction, including without limitation the rights > + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > + * copies of the Software, and to permit persons to whom the Software is > + * furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > + * THE SOFTWARE. > + */ > + > +#ifndef HW_RTC_M48T59_H > +#define HW_RTC_M48T59_H > + > +#include "exec/hwaddr.h" > +#include "qom/object.h" > + > +#define TYPE_NVRAM "nvram" > + > +#define NVRAM_CLASS(klass) \ > + OBJECT_CLASS_CHECK(NvramClass, (klass), TYPE_NVRAM) > +#define NVRAM_GET_CLASS(obj) \ > + OBJECT_GET_CLASS(NvramClass, (obj), TYPE_NVRAM) > +#define NVRAM(obj) \ > + INTERFACE_CHECK(Nvram, (obj), TYPE_NVRAM) > + > +typedef struct Nvram Nvram; > + > +typedef struct NvramClass { > + InterfaceClass parent; > + > + uint32_t (*read)(Nvram *obj, uint32_t addr); > + void (*write)(Nvram *obj, uint32_t addr, uint32_t val); > + void (*toggle_lock)(Nvram *obj, int lock); > +} NvramClass; > + > +Nvram *m48t59_init_isa(ISABus *bus, uint32_t io_base, uint16_t size, > + int base_year, int type); > +Nvram *m48t59_init(qemu_irq IRQ, hwaddr mem_base, > + uint32_t io_base, uint16_t size, int base_year, > + int type); > + > +#endif /* HW_M48T59_H */ > -- > 2.20.1 > >
On Mon, Sep 16, 2019 at 05:48:38PM +0200, Philippe Mathieu-Daudé wrote: > The M48T59 is a Real Time Clock, not a timer. > Move it under the hw/rtc/ subdirectory. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > MAINTAINERS | 4 +- > hw/ppc/ppc405_boards.c | 2 +- > hw/ppc/prep.c | 2 +- > hw/rtc/Kconfig | 3 ++ > hw/rtc/Makefile.objs | 4 ++ > hw/{timer => rtc}/m48t59-internal.h | 0 > hw/{timer => rtc}/m48t59-isa.c | 4 +- > hw/{timer => rtc}/m48t59.c | 2 +- > hw/sparc/sun4m.c | 2 +- > hw/sparc64/sun4u.c | 2 +- > hw/timer/Kconfig | 3 -- > hw/timer/Makefile.objs | 4 -- > include/hw/rtc/m48t59.h | 57 +++++++++++++++++++++++++++++ Uh.. this file seems to be coming out of nowhere, which doesn't seem right for a code motion. > 13 files changed, 73 insertions(+), 16 deletions(-) > rename hw/{timer => rtc}/m48t59-internal.h (100%) > rename hw/{timer => rtc}/m48t59-isa.c (98%) > rename hw/{timer => rtc}/m48t59.c (99%) > create mode 100644 include/hw/rtc/m48t59.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index 481f2318cb..679b026fe0 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1064,9 +1064,9 @@ F: hw/pci-host/prep.[hc] > F: hw/isa/i82378.c > F: hw/isa/pc87312.c > F: hw/dma/i82374.c > -F: hw/timer/m48t59-isa.c > +F: hw/rtc/m48t59-isa.c > F: include/hw/isa/pc87312.h > -F: include/hw/timer/m48t59.h > +F: include/hw/rtc/m48t59.h > F: pc-bios/ppc_rom.bin > > sPAPR > diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c > index 388cae0b43..1f721feed6 100644 > --- a/hw/ppc/ppc405_boards.c > +++ b/hw/ppc/ppc405_boards.c > @@ -29,7 +29,7 @@ > #include "cpu.h" > #include "hw/ppc/ppc.h" > #include "ppc405.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "hw/block/flash.h" > #include "sysemu/sysemu.h" > #include "sysemu/qtest.h" > diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c > index 3a51536e1a..862345c2ac 100644 > --- a/hw/ppc/prep.c > +++ b/hw/ppc/prep.c > @@ -25,7 +25,7 @@ > > #include "qemu/osdep.h" > #include "cpu.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "hw/char/serial.h" > #include "hw/block/fdc.h" > #include "net/net.h" > diff --git a/hw/rtc/Kconfig b/hw/rtc/Kconfig > index 7ffd702268..159c233517 100644 > --- a/hw/rtc/Kconfig > +++ b/hw/rtc/Kconfig > @@ -1,3 +1,6 @@ > +config M48T59 > + bool > + > config PL031 > bool > > diff --git a/hw/rtc/Makefile.objs b/hw/rtc/Makefile.objs > index 3cac0d5a63..c87f81405e 100644 > --- a/hw/rtc/Makefile.objs > +++ b/hw/rtc/Makefile.objs > @@ -1,2 +1,6 @@ > +common-obj-$(CONFIG_M48T59) += m48t59.o > +ifeq ($(CONFIG_ISA_BUS),y) > +common-obj-$(CONFIG_M48T59) += m48t59-isa.o > +endif > common-obj-$(CONFIG_PL031) += pl031.o > obj-$(CONFIG_MC146818RTC) += mc146818rtc.o > diff --git a/hw/timer/m48t59-internal.h b/hw/rtc/m48t59-internal.h > similarity index 100% > rename from hw/timer/m48t59-internal.h > rename to hw/rtc/m48t59-internal.h > diff --git a/hw/timer/m48t59-isa.c b/hw/rtc/m48t59-isa.c > similarity index 98% > rename from hw/timer/m48t59-isa.c > rename to hw/rtc/m48t59-isa.c > index 5e5432abfd..7fde854c0f 100644 > --- a/hw/timer/m48t59-isa.c > +++ b/hw/rtc/m48t59-isa.c > @@ -1,5 +1,5 @@ > /* > - * QEMU M48T59 and M48T08 NVRAM emulation (ISA bus interface > + * QEMU M48T59 and M48T08 NVRAM emulation (ISA bus interface) > * > * Copyright (c) 2003-2005, 2007 Jocelyn Mayer > * Copyright (c) 2013 Hervé Poussineau > @@ -26,7 +26,7 @@ > #include "qemu/osdep.h" > #include "hw/isa/isa.h" > #include "hw/qdev-properties.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "m48t59-internal.h" > #include "qemu/module.h" > > diff --git a/hw/timer/m48t59.c b/hw/rtc/m48t59.c > similarity index 99% > rename from hw/timer/m48t59.c > rename to hw/rtc/m48t59.c > index a9fc2f981a..fc592b9fb1 100644 > --- a/hw/timer/m48t59.c > +++ b/hw/rtc/m48t59.c > @@ -27,7 +27,7 @@ > #include "qemu-common.h" > #include "hw/irq.h" > #include "hw/qdev-properties.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "qemu/timer.h" > #include "sysemu/runstate.h" > #include "sysemu/sysemu.h" > diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c > index 6c5a17a020..2aaa5bf1ae 100644 > --- a/hw/sparc/sun4m.c > +++ b/hw/sparc/sun4m.c > @@ -31,7 +31,7 @@ > #include "qemu/error-report.h" > #include "qemu/timer.h" > #include "hw/sparc/sun4m_iommu.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "migration/vmstate.h" > #include "hw/sparc/sparc32_dma.h" > #include "hw/block/fdc.h" > diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c > index 1ded2a4c9a..955082773b 100644 > --- a/hw/sparc64/sun4u.c > +++ b/hw/sparc64/sun4u.c > @@ -36,7 +36,7 @@ > #include "hw/pci-host/sabre.h" > #include "hw/char/serial.h" > #include "hw/char/parallel.h" > -#include "hw/timer/m48t59.h" > +#include "hw/rtc/m48t59.h" > #include "migration/vmstate.h" > #include "hw/input/i8042.h" > #include "hw/block/fdc.h" > diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig > index af415c8ef8..a57e9b59fc 100644 > --- a/hw/timer/Kconfig > +++ b/hw/timer/Kconfig > @@ -24,9 +24,6 @@ config M41T80 > bool > depends on I2C > > -config M48T59 > - bool > - > config TWL92230 > bool > depends on I2C > diff --git a/hw/timer/Makefile.objs b/hw/timer/Makefile.objs > index b0159189cf..fe2d1fbc40 100644 > --- a/hw/timer/Makefile.objs > +++ b/hw/timer/Makefile.objs > @@ -7,10 +7,6 @@ common-obj-$(CONFIG_DS1338) += ds1338.o > common-obj-$(CONFIG_HPET) += hpet.o > common-obj-$(CONFIG_I8254) += i8254_common.o i8254.o > common-obj-$(CONFIG_M41T80) += m41t80.o > -common-obj-$(CONFIG_M48T59) += m48t59.o > -ifeq ($(CONFIG_ISA_BUS),y) > -common-obj-$(CONFIG_M48T59) += m48t59-isa.o > -endif > common-obj-$(CONFIG_PUV3) += puv3_ost.o > common-obj-$(CONFIG_TWL92230) += twl92230.o > common-obj-$(CONFIG_XILINX) += xilinx_timer.o > diff --git a/include/hw/rtc/m48t59.h b/include/hw/rtc/m48t59.h > new file mode 100644 > index 0000000000..e7ea4e8761 > --- /dev/null > +++ b/include/hw/rtc/m48t59.h > @@ -0,0 +1,57 @@ > +/* > + * QEMU M48T59 and M48T08 NVRAM emulation > + * > + * Copyright (c) 2003-2005, 2007 Jocelyn Mayer > + * Copyright (c) 2013 Hervé Poussineau > + * > + * Permission is hereby granted, free of charge, to any person obtaining a copy > + * of this software and associated documentation files (the "Software"), to deal > + * in the Software without restriction, including without limitation the rights > + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > + * copies of the Software, and to permit persons to whom the Software is > + * furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > + * THE SOFTWARE. > + */ > + > +#ifndef HW_RTC_M48T59_H > +#define HW_RTC_M48T59_H > + > +#include "exec/hwaddr.h" > +#include "qom/object.h" > + > +#define TYPE_NVRAM "nvram" > + > +#define NVRAM_CLASS(klass) \ > + OBJECT_CLASS_CHECK(NvramClass, (klass), TYPE_NVRAM) > +#define NVRAM_GET_CLASS(obj) \ > + OBJECT_GET_CLASS(NvramClass, (obj), TYPE_NVRAM) > +#define NVRAM(obj) \ > + INTERFACE_CHECK(Nvram, (obj), TYPE_NVRAM) > + > +typedef struct Nvram Nvram; > + > +typedef struct NvramClass { > + InterfaceClass parent; > + > + uint32_t (*read)(Nvram *obj, uint32_t addr); > + void (*write)(Nvram *obj, uint32_t addr, uint32_t val); > + void (*toggle_lock)(Nvram *obj, int lock); > +} NvramClass; > + > +Nvram *m48t59_init_isa(ISABus *bus, uint32_t io_base, uint16_t size, > + int base_year, int type); > +Nvram *m48t59_init(qemu_irq IRQ, hwaddr mem_base, > + uint32_t io_base, uint16_t size, int base_year, > + int type); > + > +#endif /* HW_M48T59_H */
On 9/17/19 4:25 AM, David Gibson wrote: > On Mon, Sep 16, 2019 at 05:48:38PM +0200, Philippe Mathieu-Daudé wrote: >> The M48T59 is a Real Time Clock, not a timer. >> Move it under the hw/rtc/ subdirectory. >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >> --- >> MAINTAINERS | 4 +- >> hw/ppc/ppc405_boards.c | 2 +- >> hw/ppc/prep.c | 2 +- >> hw/rtc/Kconfig | 3 ++ >> hw/rtc/Makefile.objs | 4 ++ >> hw/{timer => rtc}/m48t59-internal.h | 0 >> hw/{timer => rtc}/m48t59-isa.c | 4 +- >> hw/{timer => rtc}/m48t59.c | 2 +- >> hw/sparc/sun4m.c | 2 +- >> hw/sparc64/sun4u.c | 2 +- >> hw/timer/Kconfig | 3 -- >> hw/timer/Makefile.objs | 4 -- >> include/hw/rtc/m48t59.h | 57 +++++++++++++++++++++++++++++ > > Uh.. this file seems to be coming out of nowhere, which doesn't seem > right for a code motion. Good catch! > >> 13 files changed, 73 insertions(+), 16 deletions(-) >> rename hw/{timer => rtc}/m48t59-internal.h (100%) >> rename hw/{timer => rtc}/m48t59-isa.c (98%) >> rename hw/{timer => rtc}/m48t59.c (99%) >> create mode 100644 include/hw/rtc/m48t59.h >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 481f2318cb..679b026fe0 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -1064,9 +1064,9 @@ F: hw/pci-host/prep.[hc] >> F: hw/isa/i82378.c >> F: hw/isa/pc87312.c >> F: hw/dma/i82374.c >> -F: hw/timer/m48t59-isa.c >> +F: hw/rtc/m48t59-isa.c >> F: include/hw/isa/pc87312.h >> -F: include/hw/timer/m48t59.h >> +F: include/hw/rtc/m48t59.h [...] Not sure how I ended not removing include/hw/timer/m48t59.h, since I used 'git mv' in all the series. I might have missed a conflict when switching between branches... Ah I now remember, I had to rebase after Markus big header cleanup, this is probably when I messed with this one :)
diff --git a/MAINTAINERS b/MAINTAINERS index 481f2318cb..679b026fe0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1064,9 +1064,9 @@ F: hw/pci-host/prep.[hc] F: hw/isa/i82378.c F: hw/isa/pc87312.c F: hw/dma/i82374.c -F: hw/timer/m48t59-isa.c +F: hw/rtc/m48t59-isa.c F: include/hw/isa/pc87312.h -F: include/hw/timer/m48t59.h +F: include/hw/rtc/m48t59.h F: pc-bios/ppc_rom.bin sPAPR diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c index 388cae0b43..1f721feed6 100644 --- a/hw/ppc/ppc405_boards.c +++ b/hw/ppc/ppc405_boards.c @@ -29,7 +29,7 @@ #include "cpu.h" #include "hw/ppc/ppc.h" #include "ppc405.h" -#include "hw/timer/m48t59.h" +#include "hw/rtc/m48t59.h" #include "hw/block/flash.h" #include "sysemu/sysemu.h" #include "sysemu/qtest.h" diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index 3a51536e1a..862345c2ac 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -25,7 +25,7 @@ #include "qemu/osdep.h" #include "cpu.h" -#include "hw/timer/m48t59.h" +#include "hw/rtc/m48t59.h" #include "hw/char/serial.h" #include "hw/block/fdc.h" #include "net/net.h" diff --git a/hw/rtc/Kconfig b/hw/rtc/Kconfig index 7ffd702268..159c233517 100644 --- a/hw/rtc/Kconfig +++ b/hw/rtc/Kconfig @@ -1,3 +1,6 @@ +config M48T59 + bool + config PL031 bool diff --git a/hw/rtc/Makefile.objs b/hw/rtc/Makefile.objs index 3cac0d5a63..c87f81405e 100644 --- a/hw/rtc/Makefile.objs +++ b/hw/rtc/Makefile.objs @@ -1,2 +1,6 @@ +common-obj-$(CONFIG_M48T59) += m48t59.o +ifeq ($(CONFIG_ISA_BUS),y) +common-obj-$(CONFIG_M48T59) += m48t59-isa.o +endif common-obj-$(CONFIG_PL031) += pl031.o obj-$(CONFIG_MC146818RTC) += mc146818rtc.o diff --git a/hw/timer/m48t59-internal.h b/hw/rtc/m48t59-internal.h similarity index 100% rename from hw/timer/m48t59-internal.h rename to hw/rtc/m48t59-internal.h diff --git a/hw/timer/m48t59-isa.c b/hw/rtc/m48t59-isa.c similarity index 98% rename from hw/timer/m48t59-isa.c rename to hw/rtc/m48t59-isa.c index 5e5432abfd..7fde854c0f 100644 --- a/hw/timer/m48t59-isa.c +++ b/hw/rtc/m48t59-isa.c @@ -1,5 +1,5 @@ /* - * QEMU M48T59 and M48T08 NVRAM emulation (ISA bus interface + * QEMU M48T59 and M48T08 NVRAM emulation (ISA bus interface) * * Copyright (c) 2003-2005, 2007 Jocelyn Mayer * Copyright (c) 2013 Hervé Poussineau @@ -26,7 +26,7 @@ #include "qemu/osdep.h" #include "hw/isa/isa.h" #include "hw/qdev-properties.h" -#include "hw/timer/m48t59.h" +#include "hw/rtc/m48t59.h" #include "m48t59-internal.h" #include "qemu/module.h" diff --git a/hw/timer/m48t59.c b/hw/rtc/m48t59.c similarity index 99% rename from hw/timer/m48t59.c rename to hw/rtc/m48t59.c index a9fc2f981a..fc592b9fb1 100644 --- a/hw/timer/m48t59.c +++ b/hw/rtc/m48t59.c @@ -27,7 +27,7 @@ #include "qemu-common.h" #include "hw/irq.h" #include "hw/qdev-properties.h" -#include "hw/timer/m48t59.h" +#include "hw/rtc/m48t59.h" #include "qemu/timer.h" #include "sysemu/runstate.h" #include "sysemu/sysemu.h" diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c index 6c5a17a020..2aaa5bf1ae 100644 --- a/hw/sparc/sun4m.c +++ b/hw/sparc/sun4m.c @@ -31,7 +31,7 @@ #include "qemu/error-report.h" #include "qemu/timer.h" #include "hw/sparc/sun4m_iommu.h" -#include "hw/timer/m48t59.h" +#include "hw/rtc/m48t59.h" #include "migration/vmstate.h" #include "hw/sparc/sparc32_dma.h" #include "hw/block/fdc.h" diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index 1ded2a4c9a..955082773b 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -36,7 +36,7 @@ #include "hw/pci-host/sabre.h" #include "hw/char/serial.h" #include "hw/char/parallel.h" -#include "hw/timer/m48t59.h" +#include "hw/rtc/m48t59.h" #include "migration/vmstate.h" #include "hw/input/i8042.h" #include "hw/block/fdc.h" diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig index af415c8ef8..a57e9b59fc 100644 --- a/hw/timer/Kconfig +++ b/hw/timer/Kconfig @@ -24,9 +24,6 @@ config M41T80 bool depends on I2C -config M48T59 - bool - config TWL92230 bool depends on I2C diff --git a/hw/timer/Makefile.objs b/hw/timer/Makefile.objs index b0159189cf..fe2d1fbc40 100644 --- a/hw/timer/Makefile.objs +++ b/hw/timer/Makefile.objs @@ -7,10 +7,6 @@ common-obj-$(CONFIG_DS1338) += ds1338.o common-obj-$(CONFIG_HPET) += hpet.o common-obj-$(CONFIG_I8254) += i8254_common.o i8254.o common-obj-$(CONFIG_M41T80) += m41t80.o -common-obj-$(CONFIG_M48T59) += m48t59.o -ifeq ($(CONFIG_ISA_BUS),y) -common-obj-$(CONFIG_M48T59) += m48t59-isa.o -endif common-obj-$(CONFIG_PUV3) += puv3_ost.o common-obj-$(CONFIG_TWL92230) += twl92230.o common-obj-$(CONFIG_XILINX) += xilinx_timer.o diff --git a/include/hw/rtc/m48t59.h b/include/hw/rtc/m48t59.h new file mode 100644 index 0000000000..e7ea4e8761 --- /dev/null +++ b/include/hw/rtc/m48t59.h @@ -0,0 +1,57 @@ +/* + * QEMU M48T59 and M48T08 NVRAM emulation + * + * Copyright (c) 2003-2005, 2007 Jocelyn Mayer + * Copyright (c) 2013 Hervé Poussineau + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef HW_RTC_M48T59_H +#define HW_RTC_M48T59_H + +#include "exec/hwaddr.h" +#include "qom/object.h" + +#define TYPE_NVRAM "nvram" + +#define NVRAM_CLASS(klass) \ + OBJECT_CLASS_CHECK(NvramClass, (klass), TYPE_NVRAM) +#define NVRAM_GET_CLASS(obj) \ + OBJECT_GET_CLASS(NvramClass, (obj), TYPE_NVRAM) +#define NVRAM(obj) \ + INTERFACE_CHECK(Nvram, (obj), TYPE_NVRAM) + +typedef struct Nvram Nvram; + +typedef struct NvramClass { + InterfaceClass parent; + + uint32_t (*read)(Nvram *obj, uint32_t addr); + void (*write)(Nvram *obj, uint32_t addr, uint32_t val); + void (*toggle_lock)(Nvram *obj, int lock); +} NvramClass; + +Nvram *m48t59_init_isa(ISABus *bus, uint32_t io_base, uint16_t size, + int base_year, int type); +Nvram *m48t59_init(qemu_irq IRQ, hwaddr mem_base, + uint32_t io_base, uint16_t size, int base_year, + int type); + +#endif /* HW_M48T59_H */
The M48T59 is a Real Time Clock, not a timer. Move it under the hw/rtc/ subdirectory. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- MAINTAINERS | 4 +- hw/ppc/ppc405_boards.c | 2 +- hw/ppc/prep.c | 2 +- hw/rtc/Kconfig | 3 ++ hw/rtc/Makefile.objs | 4 ++ hw/{timer => rtc}/m48t59-internal.h | 0 hw/{timer => rtc}/m48t59-isa.c | 4 +- hw/{timer => rtc}/m48t59.c | 2 +- hw/sparc/sun4m.c | 2 +- hw/sparc64/sun4u.c | 2 +- hw/timer/Kconfig | 3 -- hw/timer/Makefile.objs | 4 -- include/hw/rtc/m48t59.h | 57 +++++++++++++++++++++++++++++ 13 files changed, 73 insertions(+), 16 deletions(-) rename hw/{timer => rtc}/m48t59-internal.h (100%) rename hw/{timer => rtc}/m48t59-isa.c (98%) rename hw/{timer => rtc}/m48t59.c (99%) create mode 100644 include/hw/rtc/m48t59.h