From nobody Tue Feb 10 11:12:41 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.47 as permitted sender) client-ip=209.85.128.47; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f47.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1603558917; cv=none; d=zohomail.com; s=zohoarc; b=N99mn27EH005sB/bPqswugcFDdTf2JHyTunDcngVcbd14OX6FXGHmXn4RrVrArlID9ZYCpHFyjBwanJSeci+z+Ry6/U3sQK6R7SsEWMsYz2r0y0lpBPTDgfeL2BWoKpJluddZEpHC7i6iZdjyjR5oH8IgKCokRlxgH9euWz0ra0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1603558917; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=HrxoAnGYxfMe8eF6utEpYOM4v9LoQV8M0tbNnH02kgc=; b=KhrCWazm49kyDiYeF6FQ6mCwzGcyKwOCe2VBl3zOv4w5IdoiMfOzxZ/X20ywpU0W5OyxyQpRaYUG5kAFEv03lgno5wH7JbtN18BsAnQn0FyJ+sZpovPrj93h/afB37LyY3R9Cx3YgPU0FZbhT8yApTqy0xNdV00eiBwRnJoXkyw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) by mx.zohomail.com with SMTPS id 1603558917518882.4920670735856; Sat, 24 Oct 2020 10:01:57 -0700 (PDT) Received: by mail-wm1-f47.google.com with SMTP id l15so6257342wmi.3 for ; Sat, 24 Oct 2020 10:01:55 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (237.red-88-18-140.staticip.rima-tde.net. [88.18.140.237]) by smtp.gmail.com with ESMTPSA id d20sm12841463wra.38.2020.10.24.10.01.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 24 Oct 2020 10:01:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HrxoAnGYxfMe8eF6utEpYOM4v9LoQV8M0tbNnH02kgc=; b=pG2qumaFcPgcRMjGI7ng8iRKO0J/Q9OUcVuBqPz/FABe2Xi1HBu3/LVR0FRKTHTbZw Z5XZ+/6GKznT0JCOnE9shwHK0LYkXVkfF2q1m3Ob45vf4T7JuCZw66bnSnlcap2uULsT xi49eFtbVFUghJvPbGX+HBskHrwtlVT/e7jTnyVCrZQ8kgMNeFlfxkB1e16pn2zheo0+ XCwFSGyh2cEN+AsF3wq7pr9J2cRynMrjMDJZ1TC0O6ZlNZIntwGO5SflPNRd05p3tbBJ 2OG5tMFkvi8WmbqvSDqK5FHhFMmPxtx4w1UOFBJRfD1CLHBfrNASws8D3sPlSRFIqTT0 CeMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=HrxoAnGYxfMe8eF6utEpYOM4v9LoQV8M0tbNnH02kgc=; b=R89fh45G4ccnfihJixQbbUz/Fais3bybdJDcCHJ1TL/BIYAFFHF+vqVC9D1bONUx5Y j/L9rM2AdApqZCuUa684R1DYFIvgPFPfWQoWwl2c/Oh7wuCleRgVLDFOGTTLjpn7k5WU HLMGZFbYbGpcRdFFKrt5OVLVKUTo9oUei4uVPj0aYnE65b11us6VISYATpHTkOjut94E QCvrkUBcK/sRiQ4Ny9Js5ViGbzBMQKzOepYu6NOhbIQmYCo4Jyzwe96FqWrFXeZdInEU 5dwDcAoDA42WJo4l45Sa1ffefE2SaH9G8+i6xYOzoTbowMKuS5GCAWTR1Zg4tH8sLxeh kz3Q== X-Gm-Message-State: AOAM533/u1M3/7HtqwwziLO1WJ5yGxIHhgVQ66cXnd0RGF1IAViUjrR8 n7FG2dpEf2mnIJ0MLORFcpMu2RZH/hI= X-Google-Smtp-Source: ABdhPJyUYC4hyaqDEJ0lrbr93QaI3r2fo5I75Z1Z/1o4AgX6EcAWSuRAiXpC53uG81+k+92CznjdWw== X-Received: by 2002:a7b:cc92:: with SMTP id p18mr7869466wma.116.1603558914732; Sat, 24 Oct 2020 10:01:54 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Andrew Baumann , Peter Maydell , qemu-arm@nongnu.org, Luc Michel , Luc Michel Subject: [PATCH v4 5/9] hw/arm/bcm2836: Split out common realize() code Date: Sat, 24 Oct 2020 19:01:23 +0200 Message-Id: <20201024170127.3592182-6-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201024170127.3592182-1-f4bug@amsat.org> References: <20201024170127.3592182-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) The realize() function is clearly composed of two parts, each described by a comment: void realize() { /* common peripherals from bcm2835 */ ... /* bcm2836 interrupt controller (and mailboxes, etc.) */ ... } Split the two part, so we can reuse the common part with other SoCs from this family. Reviewed-by: Luc Michel Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/arm/bcm2836.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/hw/arm/bcm2836.c b/hw/arm/bcm2836.c index fcb2c9c3e73..7d975cf2f53 100644 --- a/hw/arm/bcm2836.c +++ b/hw/arm/bcm2836.c @@ -52,7 +52,10 @@ static void bcm2836_init(Object *obj) qdev_prop_set_uint32(DEVICE(obj), "enabled-cpus", bc->core_count); } =20 - object_initialize_child(obj, "control", &s->control, TYPE_BCM2836_CONT= ROL); + if (bc->ctrl_base) { + object_initialize_child(obj, "control", &s->control, + TYPE_BCM2836_CONTROL); + } =20 object_initialize_child(obj, "peripherals", &s->peripherals, TYPE_BCM2835_PERIPHERALS); @@ -62,12 +65,11 @@ static void bcm2836_init(Object *obj) "vcram-size"); } =20 -static void bcm2836_realize(DeviceState *dev, Error **errp) +static bool bcm283x_common_realize(DeviceState *dev, Error **errp) { BCM283XState *s =3D BCM283X(dev); BCM283XClass *bc =3D BCM283X_GET_CLASS(dev); Object *obj; - int n; =20 /* common peripherals from bcm2835 */ =20 @@ -76,7 +78,7 @@ static void bcm2836_realize(DeviceState *dev, Error **err= p) object_property_add_const_link(OBJECT(&s->peripherals), "ram", obj); =20 if (!sysbus_realize(SYS_BUS_DEVICE(&s->peripherals), errp)) { - return; + return false; } =20 object_property_add_alias(OBJECT(s), "sd-bus", OBJECT(&s->peripherals), @@ -84,6 +86,18 @@ static void bcm2836_realize(DeviceState *dev, Error **er= rp) =20 sysbus_mmio_map_overlap(SYS_BUS_DEVICE(&s->peripherals), 0, bc->peri_base, 1); + return true; +} + +static void bcm2836_realize(DeviceState *dev, Error **errp) +{ + BCM283XState *s =3D BCM283X(dev); + BCM283XClass *bc =3D BCM283X_GET_CLASS(dev); + int n; + + if (!bcm283x_common_realize(dev, errp)) { + return; + } =20 /* bcm2836 interrupt controller (and mailboxes, etc.) */ if (!sysbus_realize(SYS_BUS_DEVICE(&s->control), errp)) { --=20 2.26.2