From patchwork Mon Mar 19 18:34:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 132082 Delivered-To: patch@linaro.org Received: by 10.46.84.17 with SMTP id i17csp3059170ljb; Mon, 19 Mar 2018 11:45:06 -0700 (PDT) X-Google-Smtp-Source: AG47ELv+4tSCqZKEuwDa1seWl7JwLQDYptzocED8Zn/63t+83EpZvIC/PnhJgDdV7vBVTkJ6PqNi X-Received: by 10.55.131.1 with SMTP id f1mr18498579qkd.160.1521485106098; Mon, 19 Mar 2018 11:45:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521485106; cv=none; d=google.com; s=arc-20160816; b=jCzYYaNiDKHyfqy3x9t8Wokp00cxOW92kqHub4oxa65N1GjHxBUd9ox5446c7SVJus o4LH+4qIn+UwEZsiJLehfosrANQhTedb0kNQX+per2Klv6aX+SCGIedRAKU+GXZOVE1g enHTE0LctegSeeVJRE1ecJda7P+AnhQkxt32VBjSNH1A0lleK9OE6tXRQJGQ85Oi6qrD d2yCqbuy2i5s4v8jK5FWEOLZvUvzsqN+4BIXGvMKAZho7dTH/mmjPp2vI1UrtvWWELZt R/k6BEhdMQ5alUgXyGayaahOCoZapWX8pcRTH8LuYnoxOXsFRHH7bnv3RoG8xH2zRUiE WxdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:arc-authentication-results; bh=UaH9XOtyuvaTvywKVBDShTBWqmf25C8BPIf4wkRLTsQ=; b=liPh70Az6ADdvn4TbvMFwQ8uYb8soYXK7VoprDPzINVIJDxpqUTAUfScWyPBnI5jBS ylpuJavpn3EqCWzb/lKmS38CyXB5S05SKgk5Wo2ommAW/oNY+oKcFnZEnPmqnc6d0PdB xWpD9U/tQiFCvTQwarqTu2fGatirc2qPJxnhtnWZWJd5qU8BDDhgNQfRi1H+3z211AHh WfyiDfGs7zxSoqsbl1kWgKsY1GopQEqHyV7nHxUrSVjM+AYDjlC5PV0iJN4SNiL3G3I3 Gp8J+03rLRSuUnlqcsfvRrVCz6NSv3GiuBV6U3ZOTOQ3LtwkLb92PvoPR5U0+AUgQgCi CEYw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id q189si635547qkb.310.2018.03.19.11.45.05 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 19 Mar 2018 11:45:06 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:43419 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1exzmL-0002er-FP for patch@linaro.org; Mon, 19 Mar 2018 14:45:05 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49801) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1exzc4-0002Q3-OB for qemu-devel@nongnu.org; Mon, 19 Mar 2018 14:34:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1exzc3-0007lw-MS for qemu-devel@nongnu.org; Mon, 19 Mar 2018 14:34:28 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40464) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1exzc3-0007jV-Ee for qemu-devel@nongnu.org; Mon, 19 Mar 2018 14:34:27 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1exzc2-00033u-AN for qemu-devel@nongnu.org; Mon, 19 Mar 2018 18:34:26 +0000 From: Peter Maydell To: qemu-devel@nongnu.org Date: Mon, 19 Mar 2018 18:34:14 +0000 Message-Id: <20180319183415.1976-13-peter.maydell@linaro.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180319183415.1976-1-peter.maydell@linaro.org> References: <20180319183415.1976-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PULL 12/13] hw/arm/bcm2836: Hardcode correct CPU type X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Now we have separate types for BCM2386 and BCM2387, we might as well just hard-code the CPU type they use rather than having it passed through as an object property. This then lets us put the initialization of the CPU object in init rather than realize. Note that this change means that it's no longer possible on the command line to use -cpu to ask for a different kind of CPU than the SoC supports. This was never a supported thing to do anyway; we were just not sanity-checking the command line. This does require us to only build the bcm2837 object on TARGET_AARCH64 configs, since otherwise it won't instantiate due to the missing cortex-a53 device and "make check" will fail. Signed-off-by: Peter Maydell Reviewed-by: Andrew Baumann Reviewed-by: Philippe Mathieu-Daudé Message-id: 20180313153458.26822-9-peter.maydell@linaro.org --- hw/arm/bcm2836.c | 24 +++++++++++++++--------- hw/arm/raspi.c | 2 -- 2 files changed, 15 insertions(+), 11 deletions(-) -- 2.16.2 diff --git a/hw/arm/bcm2836.c b/hw/arm/bcm2836.c index d775a33969..3e7e8ca791 100644 --- a/hw/arm/bcm2836.c +++ b/hw/arm/bcm2836.c @@ -25,23 +25,38 @@ struct BCM283XInfo { const char *name; + const char *cpu_type; int clusterid; }; static const BCM283XInfo bcm283x_socs[] = { { .name = TYPE_BCM2836, + .cpu_type = ARM_CPU_TYPE_NAME("cortex-a15"), .clusterid = 0xf, }, +#ifdef TARGET_AARCH64 { .name = TYPE_BCM2837, + .cpu_type = ARM_CPU_TYPE_NAME("cortex-a53"), .clusterid = 0x0, }, +#endif }; static void bcm2836_init(Object *obj) { BCM283XState *s = BCM283X(obj); + BCM283XClass *bc = BCM283X_GET_CLASS(obj); + const BCM283XInfo *info = bc->info; + int n; + + for (n = 0; n < BCM283X_NCPUS; n++) { + object_initialize(&s->cpus[n], sizeof(s->cpus[n]), + info->cpu_type); + object_property_add_child(obj, "cpu[*]", OBJECT(&s->cpus[n]), + &error_abort); + } object_initialize(&s->control, sizeof(s->control), TYPE_BCM2836_CONTROL); object_property_add_child(obj, "control", OBJECT(&s->control), NULL); @@ -69,14 +84,6 @@ static void bcm2836_realize(DeviceState *dev, Error **errp) /* common peripherals from bcm2835 */ - obj = OBJECT(dev); - for (n = 0; n < BCM283X_NCPUS; n++) { - object_initialize(&s->cpus[n], sizeof(s->cpus[n]), - s->cpu_type); - object_property_add_child(obj, "cpu[*]", OBJECT(&s->cpus[n]), - &error_abort); - } - obj = object_property_get_link(OBJECT(dev), "ram", &err); if (obj == NULL) { error_setg(errp, "%s: required ram link not found: %s", @@ -166,7 +173,6 @@ static void bcm2836_realize(DeviceState *dev, Error **errp) } static Property bcm2836_props[] = { - DEFINE_PROP_STRING("cpu-type", BCM283XState, cpu_type), DEFINE_PROP_UINT32("enabled-cpus", BCM283XState, enabled_cpus, BCM283X_NCPUS), DEFINE_PROP_END_OF_LIST() diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index f588720138..ae15997669 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -150,8 +150,6 @@ static void raspi_init(MachineState *machine, int version) /* Setup the SOC */ object_property_add_const_link(OBJECT(&s->soc), "ram", OBJECT(&s->ram), &error_abort); - object_property_set_str(OBJECT(&s->soc), machine->cpu_type, "cpu-type", - &error_abort); object_property_set_int(OBJECT(&s->soc), smp_cpus, "enabled-cpus", &error_abort); int board_rev = version == 3 ? 0xa02082 : 0xa21041;