From patchwork Sat Jan 4 01:58:43 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Crosthwaite X-Patchwork-Id: 306762 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 9412E2C00A8 for ; Sat, 4 Jan 2014 12:59:48 +1100 (EST) Received: from localhost ([::1]:52842 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VzGWd-00063F-ML for incoming@patchwork.ozlabs.org; Fri, 03 Jan 2014 20:59:43 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44493) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VzGWJ-00062z-7Y for qemu-devel@nongnu.org; Fri, 03 Jan 2014 20:59:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VzGWD-0000Ym-2W for qemu-devel@nongnu.org; Fri, 03 Jan 2014 20:59:23 -0500 Received: from mail-pd0-f173.google.com ([209.85.192.173]:50378) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VzGWC-0000Ye-Rf for qemu-devel@nongnu.org; Fri, 03 Jan 2014 20:59:16 -0500 Received: by mail-pd0-f173.google.com with SMTP id p10so15945971pdj.4 for ; Fri, 03 Jan 2014 17:59:15 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=BXrvE/0DdpoyvbEmr3q9BV9Mdvi9y5EFaRFBgd37DfU=; b=EE6/2pjXW0cgSq0RUuUkjYfZ7nj3c9Ox7EhmXBLPH6g9xxV3C8g5045tNhSWJkBo58 hRzH3F4bTtBpZ26rauL64JER+DHSFfdufKXnR18A2WujlmLyg81Di6IHmSqtSaj7NfzK Tz4kQLkYbei1DSOd/fcz6Q/k5BtQd3ws8lCzHZFD0aiicjAaVlnuXid+QS+w8gYq7QKw kQP8NAjfy8YswNZhmi/Fxj/FkkUpDwrxAscxJ/35JJbScMutDqN/H16l4hiEyoJrGTp8 uAHlARUeU7ImtXTfvPc6E+5x4srNckzi8hciKilNk6XBjIihX3fdLT4ZqAgXY4XPiO8O 7bAQ== X-Gm-Message-State: ALoCoQnBL+LqrFPVzS6o7jShEVrcm7TCjvE37sE0vahDyLi1ScLmo0kWoxfeP8lmQDyrlOFqB3K0 X-Received: by 10.68.164.4 with SMTP id ym4mr53227416pbb.53.1388800755664; Fri, 03 Jan 2014 17:59:15 -0800 (PST) Received: from localhost ([149.199.62.254]) by mx.google.com with ESMTPSA id xs1sm146578430pac.7.2014.01.03.17.59.14 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 03 Jan 2014 17:59:14 -0800 (PST) From: Peter Crosthwaite To: qemu-devel@nongnu.org Date: Fri, 3 Jan 2014 17:58:43 -0800 Message-Id: <55649779a68ee3ff54b24c339b6fdbdccd1f0ed7.1388800598.git.peter.crosthwaite@xilinx.com> X-Mailer: git-send-email 1.8.5.2 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.192.173 Cc: b.galvani@gmail.com, peter.maydell@linaro.org Subject: [Qemu-devel] [PATCH target-arm v2 1/1] arm/xilinx_zynq: Always instantiate the GEMs 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 Don't conditionalise GEM instantiation on networking attachments. The device should always be present even if not attached to a network. This allows for probing of the device by expectant guests (such as OS's). This is needed because sysbus (or AXI in Xilinx's real hw case) is not self identifying so the guest has no dynamic way of detecting device absence. Also allows for testing of the GEM in loopback mode with -net none. Signed-off-by: Peter Crosthwaite Reviewed-by: Peter Maydell --- changed since v1 (PMM review): use nd->used rather than nb_nics checks. Ditch the two iteration loop completely. hw/arm/xilinx_zynq.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 17251c7..98e0958 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -49,9 +49,11 @@ static void gem_init(NICInfo *nd, uint32_t base, qemu_irq irq) DeviceState *dev; SysBusDevice *s; - qemu_check_nic_model(nd, "cadence_gem"); dev = qdev_create(NULL, "cadence_gem"); - qdev_set_nic_properties(dev, nd); + if (nd->used) { + qemu_check_nic_model(nd, "cadence_gem"); + qdev_set_nic_properties(dev, nd); + } qdev_init_nofail(dev); s = SYS_BUS_DEVICE(dev); sysbus_mmio_map(s, 0, base); @@ -113,7 +115,6 @@ static void zynq_init(QEMUMachineInitArgs *args) DeviceState *dev; SysBusDevice *busdev; qemu_irq pic[64]; - NICInfo *nd; Error *err = NULL; int n; @@ -190,14 +191,8 @@ static void zynq_init(QEMUMachineInitArgs *args) sysbus_create_varargs("cadence_ttc", 0xF8002000, pic[69-IRQ_OFFSET], pic[70-IRQ_OFFSET], pic[71-IRQ_OFFSET], NULL); - for (n = 0; n < nb_nics; n++) { - nd = &nd_table[n]; - if (n == 0) { - gem_init(nd, 0xE000B000, pic[54-IRQ_OFFSET]); - } else if (n == 1) { - gem_init(nd, 0xE000C000, pic[77-IRQ_OFFSET]); - } - } + gem_init(&nd_table[0], 0xE000B000, pic[54-IRQ_OFFSET]); + gem_init(&nd_table[1], 0xE000C000, pic[77-IRQ_OFFSET]); dev = qdev_create(NULL, "generic-sdhci"); qdev_init_nofail(dev);