[tip:tools/kvm] kvm tools, rtc: Nonvolatile BIOS memory support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux