From patchwork Wed Feb 22 07:18:52 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jordan.l.justen@intel.com X-Patchwork-Id: 142420 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id F05DBB6FAA for ; Wed, 22 Feb 2012 19:22:29 +1100 (EST) Received: from localhost ([::1]:48308 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S07Sy-0000Gj-Nf for incoming@patchwork.ozlabs.org; Wed, 22 Feb 2012 03:22:24 -0500 Received: from eggs.gnu.org ([140.186.70.92]:49438) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S06U9-0006nV-Ax for qemu-devel@nongnu.org; Wed, 22 Feb 2012 02:19:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S06U3-0007q5-Gd for qemu-devel@nongnu.org; Wed, 22 Feb 2012 02:19:33 -0500 Received: from mga14.intel.com ([143.182.124.37]:51996) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S06U3-0007n5-BN for qemu-devel@nongnu.org; Wed, 22 Feb 2012 02:19:27 -0500 Received: from azsmga002.ch.intel.com ([10.2.17.35]) by azsmga102.ch.intel.com with ESMTP; 21 Feb 2012 23:19:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.71,315,1320652800"; d="scan'208";a="68967766" Received: from unknown (HELO jljusten-laptop.amr.corp.intel.com) ([10.255.15.109]) by AZSMGA002.ch.intel.com with ESMTP; 21 Feb 2012 23:19:26 -0800 From: Jordan Justen To: qemu-devel@nongnu.org Date: Tue, 21 Feb 2012 23:18:52 -0800 Message-Id: <1329895136-20494-6-git-send-email-jordan.l.justen@intel.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1329895136-20494-1-git-send-email-jordan.l.justen@intel.com> References: <1329895136-20494-1-git-send-email-jordan.l.justen@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 143.182.124.37 Cc: Jordan Justen Subject: [Qemu-devel] [PATCH v11 5/9] hw/pc_sysfw: enable pc-sysfw as a qdev X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Setup a pc-sysfw device type. It contains a single property of 'rom_only' which is defaulted to enabled. Signed-off-by: Jordan Justen --- hw/pc_sysfw.c | 37 +++++++++++++++++++++++++++++++++++++ 1 files changed, 37 insertions(+), 0 deletions(-) diff --git a/hw/pc_sysfw.c b/hw/pc_sysfw.c index b0bb7b8..ae5c4b1 100644 --- a/hw/pc_sysfw.c +++ b/hw/pc_sysfw.c @@ -23,12 +23,19 @@ * THE SOFTWARE. */ +#include "sysbus.h" +#include "hw.h" #include "pc.h" #include "loader.h" #include "sysemu.h" #define BIOS_FILENAME "bios.bin" +typedef struct PcSysFwDevice { + SysBusDevice busdev; + uint8_t rom_only; +} PcSysFwDevice; + static void pc_system_rom_init(MemoryRegion *rom_memory) { char *filename; @@ -86,7 +93,37 @@ static void pc_system_rom_init(MemoryRegion *rom_memory) void pc_system_firmware_init(MemoryRegion *rom_memory) { + PcSysFwDevice *sysfw_dev; + + sysfw_dev = (PcSysFwDevice*) qdev_create(NULL, "pc-sysfw"); + pc_system_rom_init(rom_memory); } +static Property pcsysfw_properties[] = { + DEFINE_PROP_UINT8("rom_only", PcSysFwDevice, rom_only, 1), + DEFINE_PROP_END_OF_LIST(), +}; + +static void pcsysfw_class_init (ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS (klass); + + dc->desc = "PC System Firmware"; + dc->props = pcsysfw_properties; +} + +static TypeInfo pcsysfw_info = { + .name = "pc-sysfw", + .parent = TYPE_SYS_BUS_DEVICE, + .instance_size = sizeof (PcSysFwDevice), + .class_init = pcsysfw_class_init, +}; + +static void pcsysfw_register (void) +{ + type_register_static (&pcsysfw_info); +} + +type_init (pcsysfw_register);