Commit-ID: be778308e879d3529e92fb4fecebde48fcafc6a5 Gitweb: http://git.kernel.org/tip/be778308e879d3529e92fb4fecebde48fcafc6a5 Author: Pekka Enberg <penberg@xxxxxxxxxx> AuthorDate: Mon, 28 Nov 2011 21:02:19 +0200 Committer: Pekka Enberg <penberg@xxxxxxxxxx> CommitDate: Mon, 28 Nov 2011 21:02:19 +0200 kvm tools, rtc: Nonvolatile BIOS memory support This adds a ->cmos_data array to 'struct rtc_device' that is used to emulate nonvolatile BIOS memory and the RTC registers. Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- tools/kvm/hw/rtc.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/tools/kvm/hw/rtc.c b/tools/kvm/hw/rtc.c index 0dc6223..6d4a05a 100644 --- a/tools/kvm/hw/rtc.c +++ b/tools/kvm/hw/rtc.c @@ -26,6 +26,7 @@ struct rtc_device { u8 cmos_idx; + u8 cmos_data[128]; }; static struct rtc_device rtc; @@ -66,6 +67,9 @@ static bool cmos_ram_data_in(struct ioport *ioport, struct kvm *kvm, u16 port, v case RTC_YEAR: ioport__write8(data, bin2bcd(tm->tm_year)); break; + default: + ioport__write8(data, rtc.cmos_data[rtc.cmos_idx]); + break; } return true; @@ -73,6 +77,16 @@ static bool cmos_ram_data_in(struct ioport *ioport, struct kvm *kvm, u16 port, v static bool cmos_ram_data_out(struct ioport *ioport, struct kvm *kvm, u16 port, void *data, int size) { + switch (rtc.cmos_idx) { + case RTC_REG_C: + case RTC_REG_D: + /* Read-only */ + break; + default: + rtc.cmos_data[rtc.cmos_idx] = ioport__read8(data); + break; + } + return true; } -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html