From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MM1Y3-0007ww-W3 for qemu-devel@nongnu.org; Wed, 01 Jul 2009 11:16:36 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MM1Xz-0007vm-Fp for qemu-devel@nongnu.org; Wed, 01 Jul 2009 11:16:35 -0400 Received: from [199.232.76.173] (port=59741 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MM1Xz-0007vj-8I for qemu-devel@nongnu.org; Wed, 01 Jul 2009 11:16:31 -0400 Received: from relay3.sgi.com ([192.48.156.57]:56551 helo=relay.sgi.com) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MM1Xy-0005z0-ID for qemu-devel@nongnu.org; Wed, 01 Jul 2009 11:16:30 -0400 Message-ID: <4A4B7DC7.9020906@sgi.com> Date: Wed, 01 Jul 2009 17:16:23 +0200 From: Jes Sorensen MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080502060505020702050000" Subject: [Qemu-devel] [PATCH] Seabios: seperate qemu_cfg from smbios List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: kevin@koconnor.net Cc: qemu-devel This is a multi-part message in MIME format. --------------080502060505020702050000 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, I am trying to seperate the QEMU_CFG code from smbios.c in Seabios, in order to add the remaining QEMU_CFG stuff. This patch seems to boot fine for me, there should be no changes to the actual code. If you're happy with this, I will start moving over the other bits. Cheers, Jes --------------080502060505020702050000 Content-Type: text/x-patch; name="0002-seperate-qemu-cfg.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0002-seperate-qemu-cfg.patch" Move QEMU_CFG related code out of smbios.c and into seperate files. Signed-off-by: Jes Sorensen --- Makefile | 4 ++-- src/qemu-cfg.c | 29 +++++++++++++++++++++++++++++ src/qemu-cfg.h | 14 ++++++++++++++ src/smbios.c | 22 +--------------------- 4 files changed, 46 insertions(+), 23 deletions(-) Index: seabios/Makefile =================================================================== --- seabios.orig/Makefile +++ seabios/Makefile @@ -13,8 +13,8 @@ SRCBOTH=output.c util.c floppy.c ata.c m pnpbios.c pirtable.c SRC16=$(SRCBOTH) system.c disk.c apm.c pcibios.c vgahooks.c font.c SRC32=$(SRCBOTH) post.c shadow.c memmap.c coreboot.c boot.c \ - acpi.c smm.c mptable.c smbios.c pciinit.c optionroms.c mtrr.c \ - lzmadecode.c + acpi.c smm.c mptable.c qemu-cfg.c smbios.c pciinit.c optionroms.c \ + mtrr.c lzmadecode.c cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc \ /dev/null 2>&1`"; then echo "$(2)"; else echo "$(3)"; fi ;) Index: seabios/src/qemu-cfg.c =================================================================== --- /dev/null +++ seabios/src/qemu-cfg.c @@ -0,0 +1,29 @@ +// qemu-cfg.c: QEMU_CFG related code +// +// Copyright (C) 2009 Jes Sorensen, SGI +// Copyright (C) 2008 Kevin O'Connor +// Copyright (C) 2006 Fabrice Bellard +// +// This file may be distributed under the terms of the GNU LGPLv3 license. + +#include "types.h" +#include "ioport.h" +#include "qemu-cfg.h" + +void +qemu_cfg_read(u8 *buf, u16 f, int len) +{ + outw(f, PORT_QEMU_CFG_CTL); + while (len--) + *(buf++) = inb(PORT_QEMU_CFG_DATA); +} + +int +qemu_cfg_port_probe() +{ + u8 sig[4] = "QEMU"; + u8 buf[4]; + qemu_cfg_read(buf, QEMU_CFG_SIGNATURE, 4); + return *(u32*)buf == *(u32*)sig; +} + Index: seabios/src/qemu-cfg.h =================================================================== --- /dev/null +++ seabios/src/qemu-cfg.h @@ -0,0 +1,14 @@ +// qemu-cfg.h: QEMU_CFG related definitions +// +// Copyright (C) 2009 Jes Sorensen, SGI +// Copyright (C) 2008 Kevin O'Connor +// Copyright (C) 2006 Fabrice Bellard +// +// This file may be distributed under the terms of the GNU LGPLv3 license. + +#define QEMU_CFG_SIGNATURE 0x00 +#define QEMU_CFG_ID 0x01 +#define QEMU_CFG_UUID 0x02 + +void qemu_cfg_read(u8 *buf, u16 f, int len); +int qemu_cfg_port_probe(); Index: seabios/src/smbios.c =================================================================== --- seabios.orig/src/smbios.c +++ seabios/src/smbios.c @@ -8,33 +8,13 @@ #include "util.h" // dprintf #include "memmap.h" // bios_table_cur_addr #include "biosvar.h" // GET_EBDA +#include "qemu-cfg.h" // QEMU_CFG_UUID /**************************************************************** * UUID probe ****************************************************************/ -#define QEMU_CFG_SIGNATURE 0x00 -#define QEMU_CFG_ID 0x01 -#define QEMU_CFG_UUID 0x02 - -static void -qemu_cfg_read(u8 *buf, u16 f, int len) -{ - outw(f, PORT_QEMU_CFG_CTL); - while (len--) - *(buf++) = inb(PORT_QEMU_CFG_DATA); -} - -static int -qemu_cfg_port_probe() -{ - u8 sig[4] = "QEMU"; - u8 buf[4]; - qemu_cfg_read(buf, QEMU_CFG_SIGNATURE, 4); - return *(u32*)buf == *(u32*)sig; -} - static void uuid_probe(u8 *bios_uuid) { --------------080502060505020702050000--