From patchwork Thu Apr 17 23:58:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 882103 Delivered-To: patch@linaro.org Received: by 2002:a5d:474d:0:b0:38f:210b:807b with SMTP id o13csp573373wrs; Thu, 17 Apr 2025 17:01:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXBiqVW+QlPfVm/Fk3dJEgnPDj8CXooDjJho/7o+cHu34YqMy8r5yzg48kxoVTeoG3RgmOOBA==@linaro.org X-Google-Smtp-Source: AGHT+IEsQMjo38cF/q8P4ar5FdvAUv0nmUzkIBTfW7YqfYJ1CUS77DuCZShGbS6/AVBCo6nhxvo5 X-Received: by 2002:a05:6102:53ce:b0:4c3:858:f07c with SMTP id ada2fe7eead31-4cb8014582amr797037137.14.1744934470867; Thu, 17 Apr 2025 17:01:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1744934470; cv=none; d=google.com; s=arc-20240605; b=G7xgDOXBlkxkJVINvn5GesjdFIg18qFmX12i/ibDQNsDGJ6zZcHuM7M9Gd+QOqdIFQ NM68YcbexZc+KONBU9G9bdDX2xMQarpvD50c/D+bv4FR7mzRP6LFcgP4mKomgSOXwxvY hVtNAWo5DrFOBF5vNmJ/EuUVnOgpBDOngOztPBL+9DDjjYcLk9dGVAVFyVsOpu945Abm pge9Mi34WXtSCFF3Z5HJI8bDV+3Ep8hmXsnmdJ7mrYNgSZGZZBkKJ0kbF4ZiLlwPnQAp uix7Vl2ZwuU8V/BdroBiZPAYvM//+sWap11xjKVQ81XG20lSqbrJf/yS7e7Q2rohoRec y23w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=BisZb8cnL3Qhu4Zao2XQnv9XLrWqIWO9ZQzoyvXQRoc=; fh=85A14eJQxmox6rRllN7x+op8M8OdlWn4Uar9szblyk8=; b=DUjYak7/r/ltunuhh+GojsMSgWzgfUk1s5ORwP/05jjyzlHZdVcnDOxA9v2eOWRvPA kRG206QnQic9OpZlf1UO9/bT1sgSzVOgNE6Vqlf4eobVPcV7hJXC7uhr6jGf2RhqnP19 69hGnrnHb30GHN45KgyIpb+gx77Popkjyol0q4sHH19pQf82sFVyA35x5FRyFVTrFasV oel6TegeBFG+9csMT3IFdObRCyrxXTgPd+da34eXPcYc0A9QCOhL7pO5B3bSRKJIvolp AR6UqVBPGeiKOukjSz1LlmsPaCQLt7g3Cs1+mTz/zmQtf/TKw1keFUOT77tLRQR/4cKo WzaQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=lH7Hs1+F; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ada2fe7eead31-4cb7dec2aebsi416443137.315.2025.04.17.17.01.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 17 Apr 2025 17:01:10 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=lH7Hs1+F; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u5Z85-00073d-57; Thu, 17 Apr 2025 19:58:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u5Z83-0006zn-T6 for qemu-devel@nongnu.org; Thu, 17 Apr 2025 19:58:47 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u5Z82-0003uI-27 for qemu-devel@nongnu.org; Thu, 17 Apr 2025 19:58:47 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-43d07ca6a80so6976875e9.1 for ; Thu, 17 Apr 2025 16:58:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744934324; x=1745539124; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BisZb8cnL3Qhu4Zao2XQnv9XLrWqIWO9ZQzoyvXQRoc=; b=lH7Hs1+FoFYAUi8RHv3bSg/9yng2VfplsQQ2jPxN2rRVm83H6sbMY6cogNXrV0VLxY Ad6NB6vTc4zBH/D9GMdus7048UGjG4NExofgjknZmiC43Sj4ikZ/z5Il5J9RdZuzUL2g T+mzpBaLrBCOn+OYd1oUszIZ67ssdw4ng/AN7Whr5BmUxY6+8d2z2HjB8AwVeTdJroGu 1RJzhpuZN7W7DQI8w7EJHin3OiNgNLk8eQm8t32IsVHWVpsRJA9wUapOIH/wnYoZWIv2 yhhjmwg1gYiXbmHDPf5cpQ9Bm3Lwk79WYCfd9AX43y2kEGXun6nnm7feBC4Ct9LLb2N7 Nnqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744934324; x=1745539124; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BisZb8cnL3Qhu4Zao2XQnv9XLrWqIWO9ZQzoyvXQRoc=; b=Bbks1+hwOnt/OYXs5go4FZea9eRSpAN3cKCztAI6V/R9zJ6Klrm35UJKsQTWMtZJkW uYcAJKxbGyyuhCNwI7vfEuX/ufOeQBkCLO+YDGTb8LE05o4SdgeJ8XcH3vio+G33M/IN CIO+NK/wn5jBAFPw1cE/w0SzSP01XDp0laoy3wbFaDmva6lymhvYcdjWGeOk/M2E9ZeF 92tPyQ8dPbou+5+ng5ANaCvFiOyv4pW4Ewa3YLeLi4jwlr/owpuu0Zi/NOxNtIDkb3H0 rNp1LPEznJFPEo1yBHmkWk57t4vgj3+DX8vBojVdjKUaHM6p/I6rDDoZZvvKKWYI3dhD p6Sw== X-Gm-Message-State: AOJu0YyaEoMk+4cKqln/wdggYvZqkVU5jgXRutxqy0gB+zEOowB3J4VC hJJCjGBFOYSTHmMBD+dsxIgKauVzfSjkOPp9IUCQ+fRB6gmoaa9VYIy9Gz5FGMxFGQA5s2EJokr g X-Gm-Gg: ASbGncuCVBDyZgJUMIQti3rhes7IunGS/x7ehiaSOMB2K9yNvaMSgkRzGms8+HkgTgC pF+3aOw3/uCcLAS3iB3wXe4Zzxcsjo3ZyLC0fAuAGnQKZ1E+gln+/yWAnJ1GV9cs9Se6WzW4xvJ CEOoagavvTrN/SfqqLMCIsfqMNuEntvJjoU26Shbi6cUfkRdkd578/nvzqY3xJEHr6zlZljCR3/ L76W+dhkY6sQmotSErTRs1Ja8zWhoPqxOXZaX08caKnXmG2zbBDDjry4NmO7k9tOjRLJffMxUTV TlD8NMNoYXRLkSc0ngshOmHuTec1/BwaTXCTwP+C/riUO6rgPj5s6nE2ut5ze5UWPLRdeYe+ZAv 8rm+nO7/Z/9iHLTsL/sFz X-Received: by 2002:a05:600c:1e10:b0:43c:f513:9591 with SMTP id 5b1f17b1804b1-4406ab95a4bmr6529345e9.14.1744934324153; Thu, 17 Apr 2025 16:58:44 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4406d5d712esm910885e9.36.2025.04.17.16.58.42 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 17 Apr 2025 16:58:42 -0700 (PDT) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Andrey Smirnov , Antony Pavlov , Zhao Liu , Beniamino Galvani , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Eduardo Habkost , Niek Linnenbank , qemu-arm@nongnu.org, Jean-Christophe Dubois , Felipe Balbi , Bernhard Beschow , Strahinja Jankovic , Jan Kiszka , Alistair Francis , Pierrick Bouvier , Subbaraya Sundeep , Alexandre Iooss , Peter Maydell , Marcel Apfelbaum , Yanan Wang Subject: [PATCH 05/11] hw/arm/imx: Define machines as generic QOM types Date: Fri, 18 Apr 2025 01:58:08 +0200 Message-ID: <20250417235814.98677-6-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250417235814.98677-1-philmd@linaro.org> References: <20250417235814.98677-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=philmd@linaro.org; helo=mail-wm1-x32a.google.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_XBL=0.375, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+patch=linaro.org@nongnu.org While DEFINE_MACHINE() is a succinct macro, it doesn't allow registering QOM interfaces to the defined machine. Convert to the generic DEFINE_TYPES() in preparation to register interfaces. Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/imx25_pdk.c | 14 ++++++++++++-- hw/arm/imx8mp-evk.c | 15 +++++++++++++-- hw/arm/mcimx6ul-evk.c | 15 +++++++++++++-- hw/arm/mcimx7d-sabre.c | 15 +++++++++++++-- hw/arm/sabrelite.c | 14 ++++++++++++-- 5 files changed, 63 insertions(+), 10 deletions(-) diff --git a/hw/arm/imx25_pdk.c b/hw/arm/imx25_pdk.c index e95ea5e4e18..a90def7f1a2 100644 --- a/hw/arm/imx25_pdk.c +++ b/hw/arm/imx25_pdk.c @@ -141,8 +141,10 @@ static void imx25_pdk_init(MachineState *machine) } } -static void imx25_pdk_machine_init(MachineClass *mc) +static void imx25_pdk_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "ARM i.MX25 PDK board (ARM926)"; mc->init = imx25_pdk_init; mc->ignore_memory_transaction_failures = true; @@ -150,4 +152,12 @@ static void imx25_pdk_machine_init(MachineClass *mc) mc->auto_create_sdcard = true; } -DEFINE_MACHINE("imx25-pdk", imx25_pdk_machine_init) +static const TypeInfo imx25_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("imx25-pdk"), + .parent = TYPE_MACHINE, + .class_init = imx25_pdk_machine_class_init, + }, +}; + +DEFINE_TYPES(imx25_machine_types) diff --git a/hw/arm/imx8mp-evk.c b/hw/arm/imx8mp-evk.c index 967258e6484..c7d87d99230 100644 --- a/hw/arm/imx8mp-evk.c +++ b/hw/arm/imx8mp-evk.c @@ -64,11 +64,22 @@ static void imx8mp_evk_init(MachineState *machine) } } -static void imx8mp_evk_machine_init(MachineClass *mc) +static void imx8mp_evk_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "NXP i.MX 8M Plus EVK Board"; mc->init = imx8mp_evk_init; mc->max_cpus = FSL_IMX8MP_NUM_CPUS; mc->default_ram_id = "imx8mp-evk.ram"; } -DEFINE_MACHINE("imx8mp-evk", imx8mp_evk_machine_init) + +static const TypeInfo imx8_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("imx8mp-evk"), + .parent = TYPE_MACHINE, + .class_init = imx8mp_evk_machine_class_init, + }, +}; + +DEFINE_TYPES(imx8_machine_types) diff --git a/hw/arm/mcimx6ul-evk.c b/hw/arm/mcimx6ul-evk.c index 86982cb0772..d947836d2be 100644 --- a/hw/arm/mcimx6ul-evk.c +++ b/hw/arm/mcimx6ul-evk.c @@ -68,12 +68,23 @@ static void mcimx6ul_evk_init(MachineState *machine) } } -static void mcimx6ul_evk_machine_init(MachineClass *mc) +static void mcimx6ul_evk_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "Freescale i.MX6UL Evaluation Kit (Cortex-A7)"; mc->init = mcimx6ul_evk_init; mc->max_cpus = FSL_IMX6UL_NUM_CPUS; mc->default_ram_id = "mcimx6ul-evk.ram"; mc->auto_create_sdcard = true; } -DEFINE_MACHINE("mcimx6ul-evk", mcimx6ul_evk_machine_init) + +static const TypeInfo imx6_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("mcimx6ul-evk"), + .parent = TYPE_MACHINE, + .class_init = mcimx6ul_evk_machine_class_init, + }, +}; + +DEFINE_TYPES(imx6_machine_types) diff --git a/hw/arm/mcimx7d-sabre.c b/hw/arm/mcimx7d-sabre.c index 33119610113..f5dc9c211dd 100644 --- a/hw/arm/mcimx7d-sabre.c +++ b/hw/arm/mcimx7d-sabre.c @@ -68,12 +68,23 @@ static void mcimx7d_sabre_init(MachineState *machine) } } -static void mcimx7d_sabre_machine_init(MachineClass *mc) +static void mcimx7d_sabre_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "Freescale i.MX7 DUAL SABRE (Cortex-A7)"; mc->init = mcimx7d_sabre_init; mc->max_cpus = FSL_IMX7_NUM_CPUS; mc->default_ram_id = "mcimx7d-sabre.ram"; mc->auto_create_sdcard = true; } -DEFINE_MACHINE("mcimx7d-sabre", mcimx7d_sabre_machine_init) + +static const TypeInfo imx7_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("mcimx7d-sabre"), + .parent = TYPE_MACHINE, + .class_init = mcimx7d_sabre_machine_class_init, + }, +}; + +DEFINE_TYPES(imx7_machine_types) diff --git a/hw/arm/sabrelite.c b/hw/arm/sabrelite.c index df60d47c6fd..ea59ba301e7 100644 --- a/hw/arm/sabrelite.c +++ b/hw/arm/sabrelite.c @@ -103,8 +103,10 @@ static void sabrelite_init(MachineState *machine) } } -static void sabrelite_machine_init(MachineClass *mc) +static void sabrelite_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "Freescale i.MX6 Quad SABRE Lite Board (Cortex-A9)"; mc->init = sabrelite_init; mc->max_cpus = FSL_IMX6_NUM_CPUS; @@ -113,4 +115,12 @@ static void sabrelite_machine_init(MachineClass *mc) mc->auto_create_sdcard = true; } -DEFINE_MACHINE("sabrelite", sabrelite_machine_init) +static const TypeInfo sabrelite_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("sabrelite"), + .parent = TYPE_MACHINE, + .class_init = sabrelite_machine_class_init, + }, +}; + +DEFINE_TYPES(sabrelite_machine_types)