2019-02-21 21:17:46 +03:00
|
|
|
/*
|
|
|
|
* 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.
|
|
|
|
*/
|
|
|
|
|
2019-10-04 02:03:52 +03:00
|
|
|
#ifndef HW_RTC_PL031_H
|
|
|
|
#define HW_RTC_PL031_H
|
2019-02-21 21:17:46 +03:00
|
|
|
|
|
|
|
#include "hw/sysbus.h"
|
2019-10-04 02:03:52 +03:00
|
|
|
#include "qemu/timer.h"
|
2020-09-03 23:43:22 +03:00
|
|
|
#include "qom/object.h"
|
2019-02-21 21:17:46 +03:00
|
|
|
|
|
|
|
#define TYPE_PL031 "pl031"
|
2020-09-16 21:25:19 +03:00
|
|
|
OBJECT_DECLARE_SIMPLE_TYPE(PL031State, PL031)
|
2019-02-21 21:17:46 +03:00
|
|
|
|
2020-09-03 23:43:22 +03:00
|
|
|
struct PL031State {
|
2019-02-21 21:17:46 +03:00
|
|
|
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;
|
2019-07-15 16:17:04 +03:00
|
|
|
bool tick_offset_migrated;
|
|
|
|
bool migrate_tick_offset;
|
2019-02-21 21:17:46 +03:00
|
|
|
|
|
|
|
uint32_t mr;
|
|
|
|
uint32_t lr;
|
|
|
|
uint32_t cr;
|
|
|
|
uint32_t im;
|
|
|
|
uint32_t is;
|
2020-09-03 23:43:22 +03:00
|
|
|
};
|
2019-02-21 21:17:46 +03:00
|
|
|
|
|
|
|
#endif
|