From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KNSkl-0007Vu-66 for qemu-devel@nongnu.org; Mon, 28 Jul 2008 09:27:07 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KNSke-0007Tz-69 for qemu-devel@nongnu.org; Mon, 28 Jul 2008 09:27:04 -0400 Received: from [199.232.76.173] (port=38726 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KNSkd-0007Tt-So for qemu-devel@nongnu.org; Mon, 28 Jul 2008 09:26:59 -0400 Received: from mx1.redhat.com ([66.187.233.31]:52518) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KNSkc-0001lx-J4 for qemu-devel@nongnu.org; Mon, 28 Jul 2008 09:26:59 -0400 Message-ID: <488DC8B8.3060500@redhat.com> Date: Mon, 28 Jul 2008 15:25:12 +0200 From: Chris Lalancette MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010401070506060500010609" Subject: [Qemu-devel] [PATCH 1/3]: vmware backdoor interface fix Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: gleb@qumranet.com This is a multi-part message in MIME format. --------------010401070506060500010609 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit VMWare backdoor interface should work with IN/OUT port ops, but currently only IN is supported. BOCHS bios uses OUT to query UUID. The patch adds OUT support. Signed-off-by: Chris Lalancette Cc: Gleb Natapov Cc: Anthony Liguori --------------010401070506060500010609 Content-Type: text/x-patch; name="qemu-dmi-uuid-1.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="qemu-dmi-uuid-1.patch" diff -urp qemu.orig/hw/vmport.c qemu.patch1/hw/vmport.c --- qemu.orig/hw/vmport.c 2008-07-28 14:14:32.000000000 +0200 +++ qemu.patch1/hw/vmport.c 2008-07-28 14:16:54.000000000 +0200 @@ -72,6 +72,13 @@ static uint32_t vmport_ioport_read(void return s->func[command](s->opaque[command], addr); } +static void vmport_ioport_write(void *opaque, uint32_t addr, uint32_t val) +{ + CPUState *env = cpu_single_env; + + env->regs[R_EAX] = vmport_ioport_read(opaque, addr); +} + static uint32_t vmport_cmd_get_version(void *opaque, uint32_t addr) { CPUState *env = cpu_single_env; @@ -89,6 +96,7 @@ static uint32_t vmport_cmd_ram_size(void void vmport_init(void) { register_ioport_read(0x5658, 1, 4, vmport_ioport_read, &port_state); + register_ioport_write(0x5658, 1, 4, vmport_ioport_write, &port_state); /* Register some generic port commands */ vmport_register(VMPORT_CMD_GETVERSION, vmport_cmd_get_version, NULL); --------------010401070506060500010609--