From patchwork Sat Feb 8 16:56:33 2020 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: 11371707 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D6E1514E3 for ; Sat, 8 Feb 2020 16:59:53 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id ADA612082E for ; Sat, 8 Feb 2020 16:59:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="R9HSU8Cs" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ADA612082E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43344 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TSS-0002f6-RF for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 11:59:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53730) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TPm-0005X6-NN for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TPj-0001dR-Cb for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:06 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:40980) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TPj-0001dC-5g; Sat, 08 Feb 2020 11:57:03 -0500 Received: by mail-wr1-x444.google.com with SMTP id c9so2479904wrw.8; Sat, 08 Feb 2020 08:57:03 -0800 (PST) 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=Jn2j29BiRfoRvwQ9fncbxxXvC03O2fhpTEmaOkjnTnA=; b=R9HSU8Csw0S/VWIcvMGmfnOWq1FCfKKRUvBAf5saDHKK+3Ek0UgcXnXxfFRx6DQ/W8 01ilGHFpR/pUXVc5QFgkCHRkAUmPgA+3RP3A5lqZQIf0Vvw88zCk2GIq0z/ImikWt/E4 4oZKXg6aA5zALqkODO2m6wlVIYhLq6rKsNRusfZtgyFoAtItJcG6UwFg4abG6N3PSPvP QiH8wnFIeMiacbXElLY5GUryN5OA36Ofd5T4RBHsV0O6rqJCFIDEFU2sdqTpfZ5ZjreK +qnglgUpZurvf0Df/iDiylEUAWjLbTg6aLS9rGZn1b0R5Xk+cOmluBmEVQLjAeRely73 tcPw== 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=Jn2j29BiRfoRvwQ9fncbxxXvC03O2fhpTEmaOkjnTnA=; b=JH2qlwXL0WVjU3uRt7oqZflPqvQwWUrQtmFfmGm5gZ5Mug6RZCNWzcZVDBdn2ylNOI mOcBP4Dt+2WVNdOtJt128S9gjzjTtmAuSimvitzyzVBhgGWR25sTQC+NUPGpzFu5a9UP zKZp+YOXK8/H/jWJCGyMw0S+tZy9G50SKjVHoSxWP27CzugTc1aIDz0RoKKBuD01P5Es X4d8CeqB3giWpgEyEi0gA+nw7Vb4xtnAc8FCTUlgERnPlgkCAPXfg4ulYCvZPSzpwXHM aoQPcOmymaD8qTCSUQVyRDDXiR3lO6fm83QIWv7lqdzOVa1I24zCsOpic/9Y0XQNMMvq nnOw== X-Gm-Message-State: APjAAAW5u+n3xlvVGRLyUGuBgznt3uN+SPxrH0VoX7pNGlFWlTlcZxo9 eOae3fDE4d8+25YjZ2eHFlnZu8Lp X-Google-Smtp-Source: APXvYqxlqyNvtAXP4fVMA2s1xsCpwVCA7HNkU9SGBg8kBa59hfOtUWJDYswYGtn2pNQwjSiDwoX7LQ== X-Received: by 2002:a05:6000:124b:: with SMTP id j11mr5640409wrx.285.1581181021610; Sat, 08 Feb 2020 08:57:01 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.56.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:00 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 01/13] hw/arm/raspi: Use BCM2708 machine type with pre Device Tree kernels Date: Sat, 8 Feb 2020 17:56:33 +0100 Message-Id: <20200208165645.15657-2-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Stephen Warren , =?utf-8?q?Zolt=C3=A1n_Baldaszti?= , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Alistair Francis , Igor Mammedov , Michael Chan , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Pekka Enberg , Kshitij Soni Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" When booting without device tree, the Linux kernels uses the $R1 register to determine the machine type. The list of values is registered at [1]. There are two entries for the Raspberry Pi: - https://www.arm.linux.org.uk/developer/machines/list.php?mid=3138 name: MACH_TYPE_BCM2708 value: 0xc42 (3138) status: Active, not mainlined date: 15 Oct 2010 - https://www.arm.linux.org.uk/developer/machines/list.php?mid=4828 name: MACH_TYPE_BCM2835 value: 4828 status: Active, mainlined date: 6 Dec 2013 QEMU always used the non-mainlined type MACH_TYPE_BCM2708. The value 0xc43 is registered to 'MX51_GGC' (processor i.MX51), and 0xc44 to 'Western Digital Sharespace NAS' (processor Marvell 88F5182). The Raspberry Pi foundation bootloader only sets the BCM2708 machine type, see [2] or [3]: 133 9: 134 mov r0, #0 135 ldr r1, =3138 @ BCM2708 machine id 136 ldr r2, atags @ ATAGS 137 bx r4 U-Boot only uses MACH_TYPE_BCM2708 (see [4]): 25 /* 26 * 2835 is a SKU in a series for which the 2708 is the first or primary SoC, 27 * so 2708 has historically been used rather than a dedicated 2835 ID. 28 * 29 * We don't define a machine type for bcm2709/bcm2836 since the RPi Foundation 30 * chose to use someone else's previously registered machine ID (3139, MX51_GGC) 31 * rather than obtaining a valid ID:-/ 32 * 33 * For the bcm2837, hopefully a machine type is not needed, since everything 34 * is DT. 35 */ While the definition MACH_BCM2709 with value 0xc43 was introduced in a commit described "Add 2709 platform for Raspberry Pi 2" out of the mainline Linux kernel, it does not seem used, and the platform is introduced with Device Tree support anyway (see [5] and [6]). Remove the unused values (0xc43 introduced in commit 1df7d1f9303aef "raspi: add raspberry pi 2 machine" and 0xc44 in commit bade58166f4 "raspi: Raspberry Pi 3 support"), keeping only MACH_TYPE_BCM2708. [1] https://www.arm.linux.org.uk/developer/machines/ [2] https://github.com/raspberrypi/tools/blob/920c7ed2e/armstubs/armstub7.S#L135 [3] https://github.com/raspberrypi/tools/blob/49719d554/armstubs/armstub7.S#L64 [4] https://gitlab.denx.de/u-boot/u-boot/blob/v2015.04/include/configs/rpi-common.h#L18 [5] https://github.com/raspberrypi/linux/commit/d9fac63adac#diff-6722037d79570df5b392a49e0e006573R526 [6] http://lists.infradead.org/pipermail/linux-rpi-kernel/2015-February/001268.html Cc: Zoltán Baldaszti Cc: Pekka Enberg Cc: Stephen Warren Cc: Kshitij Soni Cc: Michael Chan Cc: Andrew Baumann Reviewed-by: Alistair Francis Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Niek Linnenbank --- v3: Improved MACH_TYPE_BCM2708 comment (Zoltán) --- hw/arm/raspi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index 3996f6c63a..f2ccabc662 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -29,8 +29,8 @@ #define FIRMWARE_ADDR_3 0x80000 /* Pi 3 loads kernel.img here by default */ #define SPINTABLE_ADDR 0xd8 /* Pi 3 bootloader spintable */ -/* Table of Linux board IDs for different Pi versions */ -static const int raspi_boardid[] = {[1] = 0xc42, [2] = 0xc43, [3] = 0xc44}; +/* Registered machine type (matches RPi Foundation bootloader and U-Boot) */ +#define MACH_TYPE_BCM2708 3138 typedef struct RasPiState { BCM283XState soc; @@ -116,7 +116,7 @@ static void setup_boot(MachineState *machine, int version, size_t ram_size) static struct arm_boot_info binfo; int r; - binfo.board_id = raspi_boardid[version]; + binfo.board_id = MACH_TYPE_BCM2708; binfo.ram_size = ram_size; binfo.nb_cpus = machine->smp.cpus; From patchwork Sat Feb 8 16:56:34 2020 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: 11371699 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B85B3924 for ; Sat, 8 Feb 2020 16:58:00 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8C2FE2082E for ; Sat, 8 Feb 2020 16:58:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WS+jnCCv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8C2FE2082E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43314 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TQd-0007MY-PG for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 11:57:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53726) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TPm-0005We-8o for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TPl-0001eM-38 for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:06 -0500 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]:41485) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TPk-0001dc-Tc; Sat, 08 Feb 2020 11:57:05 -0500 Received: by mail-wr1-x432.google.com with SMTP id c9so2479961wrw.8; Sat, 08 Feb 2020 08:57:04 -0800 (PST) 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=uyF64iuYYQw6zbyIHAWavbNHZnEbok8Q/hkHcClOAlo=; b=WS+jnCCvhSX08Yh+/2ERV1butvw2ZyT88wXj7VUUHARHvX4odpwAVXj27g1Z/H7nic d354oEju46FU/95lJUdzL1qq5ryIKo8hUgBmMLsDt0EiwHbaBjEeDKOtG8Pfeoz8HjsC unioHcxZIHCVRLjvY9qtuhhq9F6dkBQTveVDcdYa1u5DuE1nbP2xiyGVOgfSCXioLnwv fQuybsW1KMv9phVHXqfFhC8haXM6Jep9tHf2AQguLw0BnU5F6gnFYSnx38FDhjjeHDCa zKpBSzFL8Zo+7Te4j6inLO8F8S7WapYBB5THlkO32AIKgVN7oVNio98LIB+HQg9KpWul sMLw== 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=uyF64iuYYQw6zbyIHAWavbNHZnEbok8Q/hkHcClOAlo=; b=QYOlFmtDSzukXwaF7AtHNXYvG5+qtIO4Sffqb+ghIjg/ObDI81S4bhi6OUq1gOJvDD wM0DZiyqgHUmZh82Lbrts8tziGKOqUNtULzJwomeCVASg5tg9Xoy08o2O9K0eiYIJE3F BwU+IbuAuPv2WUOLl2bIke0qZtJcFQlfVW2QTf3ExKhf/orXnjd3eCdeNFgeFuUPJghE 73b+4eQUh2qn44ULgIG9FfxgL+weQsIZiBLWdEjMpWZrN1GCmU1Kukbc3RCn7WEX/ppA AOMt4Rjex2tDjamQzy18OW1eB4jfMB+XE9YcPTgoNacIMCOsnSAStxG9YnnuaUKMpaMj bTDA== X-Gm-Message-State: APjAAAWBu4zoMOn85a3RinBfHAxGwwzQpYyrd1D5xj9ZRRsqAFlDhYtn m3Sit0Qr9lZKlx9oplpEpLS+sNBH X-Google-Smtp-Source: APXvYqzXh1o3LCPVfy99fV4Qy9KbhQPlyurZ4UO9D9UmgdHDpvqR0Xc6P0rpbrR4u8FROIq1TCDgOQ== X-Received: by 2002:a5d:6692:: with SMTP id l18mr5918288wru.382.1581181023754; Sat, 08 Feb 2020 08:57:03 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:03 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 02/13] hw/arm/raspi: Correct the board descriptions Date: Sat, 8 Feb 2020 17:56:34 +0100 Message-Id: <20200208165645.15657-3-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::432 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" We hardcode the board revision as 0xa21041 for the raspi2, and 0xa02082 for the raspi3: 166 static void raspi_init(MachineState *machine, int version) 167 { ... 194 int board_rev = version == 3 ? 0xa02082 : 0xa21041; These revision codes are for the 2B and 3B models, see: https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md Correct the board description. Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/raspi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index f2ccabc662..818146fdbb 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -221,7 +221,7 @@ static void raspi2_init(MachineState *machine) static void raspi2_machine_init(MachineClass *mc) { - mc->desc = "Raspberry Pi 2"; + mc->desc = "Raspberry Pi 2B"; mc->init = raspi2_init; mc->block_default_type = IF_SD; mc->no_parallel = 1; @@ -243,7 +243,7 @@ static void raspi3_init(MachineState *machine) static void raspi3_machine_init(MachineClass *mc) { - mc->desc = "Raspberry Pi 3"; + mc->desc = "Raspberry Pi 3B"; mc->init = raspi3_init; mc->block_default_type = IF_SD; mc->no_parallel = 1; From patchwork Sat Feb 8 16:56:35 2020 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: 11371719 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 75D9C921 for ; Sat, 8 Feb 2020 17:02:44 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4C3B221741 for ; Sat, 8 Feb 2020 17:02:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ijJgiTKH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4C3B221741 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43407 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TVD-0006RZ-FS for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 12:02:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53756) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TPo-0005Yq-1v for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TPm-0001fX-Vk for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:07 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:42572) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TPm-0001f3-PX; Sat, 08 Feb 2020 11:57:06 -0500 Received: by mail-wr1-x442.google.com with SMTP id k11so2466522wrd.9; Sat, 08 Feb 2020 08:57:06 -0800 (PST) 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=ARVdXcT1NUZV1xpoAwVDWgKAlJcTG5+YbJyusfS3GjE=; b=ijJgiTKHPkl0o8pwZXJeJc1kNWcCUxWxXvDUnNyveK4yvd+icdEum0EEEThDv7VJDM iNnCFW2kpLyu2Ku0M6i62CqVde6Cgtm9TtTq682nphG4PtUTfNm9wYEkTHXL2NyxCW9z 1uE2HhCCWrlE3dIgFO2q9nBfzeLq1vC46uBZM2WCXUMRnd205caOVDD1Yhng57pkijNU rYC3KhZ9QpQNTYwlWUcZXwYqznQ1KyA3nSigI7QA6iUykXgcrhsYg8IGXzST812I3N2+ JAkchoet2ynUjZSm4AeZSdQvZ2kqPKp5ipyPRoCJkSkHEWy19SL12HLrk5tn5yppVZps MP1Q== 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=ARVdXcT1NUZV1xpoAwVDWgKAlJcTG5+YbJyusfS3GjE=; b=rNiEsGccgE3RUv/07B58a3PLY5R/UERstmuHVdeWGO2m3zBUZKyMLp6Fx/i9Fi4yNg /mJLOGSNMHYaSIMtC1D5u7V7Omi5HVyrrrpSpUYwwTdrDsuZ3BdZ9dqFDclO6QR3InOu VCAr6FZaAk4UI3EPbA6E9yOq69j4nzeED36Jfj9Zx1XyX7IQB96jUe0gXE+YSL8Sp76g mvKIv003MLy6WlfKuCwAve5XQ1/IUBT2WOwTZkiG5NILxGpUqr1gsSqF+C7gEUZP8vyg KFCCg+n/HgOmHRFk6YJkO8IichWMxzI0E8wUGI1+nwvGoZW7dSyN4O5WvpmWOFcV3iiH HFeQ== X-Gm-Message-State: APjAAAX4uJwg6h+0117iiksPnyxyAtcafDCy9mS/mN+ksmXbQb4nWp75 stHkNYdeRI7YtULbOn4BeYskUP/R X-Google-Smtp-Source: APXvYqwnP/wvp6aHo+8Q37idXC6lsQN8OJb9+ce5fAUBbek4gLD7JLpGyHgR25nZ5TOGiBwF6XSTdQ== X-Received: by 2002:a5d:56ca:: with SMTP id m10mr6312639wrw.313.1581181025603; Sat, 08 Feb 2020 08:57:05 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:05 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 03/13] hw/arm/raspi: Extract the version from the board revision Date: Sat, 8 Feb 2020 17:56:35 +0100 Message-Id: <20200208165645.15657-4-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The board revision encode the board version. Add a helper to extract the version, and use it. Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/raspi.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index 818146fdbb..f285e2988f 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -16,6 +16,7 @@ #include "qapi/error.h" #include "cpu.h" #include "hw/arm/bcm2836.h" +#include "hw/registerfields.h" #include "qemu/error-report.h" #include "hw/boards.h" #include "hw/loader.h" @@ -37,6 +38,28 @@ typedef struct RasPiState { MemoryRegion ram; } RasPiState; +/* + * Board revision codes: + * www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/ + */ +FIELD(REV_CODE, REVISION, 0, 4); +FIELD(REV_CODE, TYPE, 4, 8); +FIELD(REV_CODE, PROCESSOR, 12, 4); +FIELD(REV_CODE, MANUFACTURER, 16, 4); +FIELD(REV_CODE, MEMORY_SIZE, 20, 3); +FIELD(REV_CODE, STYLE, 23, 1); + +static int board_processor_id(uint32_t board_rev) +{ + assert(FIELD_EX32(board_rev, REV_CODE, STYLE)); /* Only new style */ + return FIELD_EX32(board_rev, REV_CODE, PROCESSOR); +} + +static int board_version(uint32_t board_rev) +{ + return board_processor_id(board_rev) + 1; +} + static void write_smpboot(ARMCPU *cpu, const struct arm_boot_info *info) { static const uint32_t smpboot[] = { @@ -164,9 +187,10 @@ static void setup_boot(MachineState *machine, int version, size_t ram_size) arm_load_kernel(ARM_CPU(first_cpu), machine, &binfo); } -static void raspi_init(MachineState *machine, int version) +static void raspi_init(MachineState *machine, uint32_t board_rev) { RasPiState *s = g_new0(RasPiState, 1); + int version = board_version(board_rev); uint32_t vcram_size; DriveInfo *di; BlockBackend *blk; @@ -192,7 +216,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); - int board_rev = version == 3 ? 0xa02082 : 0xa21041; object_property_set_int(OBJECT(&s->soc), board_rev, "board-rev", &error_abort); object_property_set_bool(OBJECT(&s->soc), true, "realized", &error_abort); @@ -216,7 +239,7 @@ static void raspi_init(MachineState *machine, int version) static void raspi2_init(MachineState *machine) { - raspi_init(machine, 2); + raspi_init(machine, 0xa21041); } static void raspi2_machine_init(MachineClass *mc) @@ -238,7 +261,7 @@ DEFINE_MACHINE("raspi2", raspi2_machine_init) #ifdef TARGET_AARCH64 static void raspi3_init(MachineState *machine) { - raspi_init(machine, 3); + raspi_init(machine, 0xa02082); } static void raspi3_machine_init(MachineClass *mc) From patchwork Sat Feb 8 16:56:36 2020 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: 11371701 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B6C0B924 for ; Sat, 8 Feb 2020 16:58:22 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8DB412082E for ; Sat, 8 Feb 2020 16:58:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bVleue/e" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8DB412082E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43316 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TQz-0007ox-Nz for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 11:58:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53791) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TPq-0005e1-0F for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TPo-0001hD-Sy for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:09 -0500 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:37036) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TPo-0001gL-Mq; Sat, 08 Feb 2020 11:57:08 -0500 Received: by mail-wm1-x342.google.com with SMTP id f129so6031299wmf.2; Sat, 08 Feb 2020 08:57:08 -0800 (PST) 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=QqQIuN2OLiJlB7XbZ3pYMKM/Y6DyvpJ28zihmZMMx2E=; b=bVleue/eaJXkPO9gkwrE1uIMz0Tyvixkd0/jHPht3vKgSODnZEURqdeTVKhC8CtOOu QVnRBuT7hjEFNnui4StPFvzmpyOAgv6u89XEMJUeQKdo8oWrG6x5QrvcUvhIsUFAuOYd vMrAQ8ShgNLR672DPa9HzPEzT7+48J8DkeQqPjTrzwqODPQXw+jCfiOokGybg7N7CR26 ljtZpCZ39qAVzWl9/e2ITFcwApKHYqxAzqIkVZ8Qh/5DgfJg6DDWaUiGudGwXTEIeyg+ tQIp9K3EG8WEqJbYdSSixGFA5yLsEGVA91jTDI5fSfzW6apHLM629b2g3kC+C/2ryWDz lV4A== 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=QqQIuN2OLiJlB7XbZ3pYMKM/Y6DyvpJ28zihmZMMx2E=; b=p7QtTMWVflfeL6e8JfVBIzRkUocxcJV+tCI4doJ2/75guiWYIkrLIxvyYo8Uwjhn1Q VWng5FiA+dSiQE+dP1YDjJTFMj0axB0VBwPbBlrLOvRtyJFKs4AkRCuYM9mqQ1jpXs1F Yh+gXiJRJnmm0k7U2leAbZcwaUm26uLxH9zOwG+zU5SHVw135wSNy3i5ZWoGZeEpPyQV ZRyRp6OrU3cgod/uouEF6fX3OEwBZ5J56C13zoe2BaKh70EIVCx9XI+8z6TM8BIyyW/f Qemiu7FcdsIIb9YCYRUqtCB8V86hXwEAfvhm0KzQj2W+KF+aiTTvamjqKk2KQ1ocDtW3 conw== X-Gm-Message-State: APjAAAWtyNRLhNcDk089YjFLZCFsSVy82qjqFRnay6iB6ZqXwNzvSVNb 7KlozduZGmL/NSeOtS4G9SKamdbA X-Google-Smtp-Source: APXvYqyTgJaL/wdGXRAeG+D4A7nUE0LmTRxaYqmyoufj1aoLpSa/d4FehiDMHtIjztI2VObx5TNWkA== X-Received: by 2002:a7b:cb97:: with SMTP id m23mr4848283wmi.37.1581181027534; Sat, 08 Feb 2020 08:57:07 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:07 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 04/13] hw/arm/raspi: Extract the RAM size from the board revision Date: Sat, 8 Feb 2020 17:56:36 +0100 Message-Id: <20200208165645.15657-5-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::342 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The board revision encode the amount of RAM. Add a helper to extract the RAM size, and use it. Since the amount of RAM is fixed (it is impossible to physically modify to have more or less RAM), do not allow sizes different than the one anounced by the manufacturer. Acked-by: Igor Mammedov Signed-off-by: Philippe Mathieu-Daudé --- v3: Try to make error message clearer (Zoltan) I used the same string as "ppc/ppc405_boards: add RAM size checks" https://www.mail-archive.com/qemu-devel@nongnu.org/msg675801.html --- hw/arm/raspi.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index f285e2988f..dcd8d2d6d3 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -13,6 +13,7 @@ #include "qemu/osdep.h" #include "qemu/units.h" +#include "qemu/cutils.h" #include "qapi/error.h" #include "cpu.h" #include "hw/arm/bcm2836.h" @@ -49,6 +50,12 @@ FIELD(REV_CODE, MANUFACTURER, 16, 4); FIELD(REV_CODE, MEMORY_SIZE, 20, 3); FIELD(REV_CODE, STYLE, 23, 1); +static uint64_t board_ram_size(uint32_t board_rev) +{ + assert(FIELD_EX32(board_rev, REV_CODE, STYLE)); /* Only new style */ + return 256 * MiB << FIELD_EX32(board_rev, REV_CODE, MEMORY_SIZE); +} + static int board_processor_id(uint32_t board_rev) { assert(FIELD_EX32(board_rev, REV_CODE, STYLE)); /* Only new style */ @@ -191,15 +198,17 @@ static void raspi_init(MachineState *machine, uint32_t board_rev) { RasPiState *s = g_new0(RasPiState, 1); int version = board_version(board_rev); + uint64_t ram_size = board_ram_size(board_rev); uint32_t vcram_size; DriveInfo *di; BlockBackend *blk; BusState *bus; DeviceState *carddev; - if (machine->ram_size > 1 * GiB) { - error_report("Requested ram size is too large for this machine: " - "maximum is 1GB"); + if (machine->ram_size != ram_size) { + char *size_str = size_to_str(ram_size); + error_report("Invalid RAM size, should be %s", size_str); + g_free(size_str); exit(1); } From patchwork Sat Feb 8 16:56:37 2020 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: 11371725 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 08734921 for ; Sat, 8 Feb 2020 17:05:07 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D2DFA21741 for ; Sat, 8 Feb 2020 17:05:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HsFHKVCJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D2DFA21741 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43556 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TXV-0002gf-Uf for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 12:05:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53821) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TPr-0005iK-LY for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TPq-0001in-LR for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:11 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:45762) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TPq-0001iD-FC; Sat, 08 Feb 2020 11:57:10 -0500 Received: by mail-wr1-x442.google.com with SMTP id g3so1410632wrs.12; Sat, 08 Feb 2020 08:57:10 -0800 (PST) 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=jNoPpCE7rRcR0rvodwnfplyWOCiHGlW6dGRYxmxzFcY=; b=HsFHKVCJtW45wUmDbfZF7mdfRVwDZ18BXahh9dkXEnOZZYK3VtYEoxpgKz6qLM0qDq 6ojj/dZFn8yxq6gVDVARWe3m36nJXoJx3s436yBHMv0NhbsykPuUma09oM2Gu/wJazjR EecfibknY8R00Id4/SvXC6YKWwro4Due+736UAXcwTAQnjYhy5lKi/qlL7H56mXxJDPL 1F29Q6+XQMDOsXmvcjVvWvEUgw+W44k0nxowWal7PDlCvjlTv0VplBcTyUUKVIJYN+Cg nD7aULU38RJPw/Dib/3N3wvGdMRVdAgj51gHdzAUfPyHlI87o/nlGWF8A6MpGj2eGyF/ 3szA== 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=jNoPpCE7rRcR0rvodwnfplyWOCiHGlW6dGRYxmxzFcY=; b=mYAlTH/J27VwAKM08iYPYt/WkAKeu5HldvBhufClDo6+lGdSLRAt74VAbqndoaUIl3 BNqp87KotvU5TEj0kZzS962MIkypknwHrnYQDHiLhfwCsddXDWOpYWaXE9tGiLWnp55H ON7fzz9fIXzgvYoMC3EOHazglKe2mLhY02g5M9QifwWcZWHDYkSllBwE85+oY7lDwap4 GxLrJMFieeUNS2hHMXAE8Uwvc1RIdbUGNfMy7Y9TIrkt40Tr6R8AC/fP22usllq6pQxe AVjLRqDYj/NKoyweoYZU5O/0RoCA0cHIq1IKpwWffgy2MW2jFH7n8mlmNx3y3skD0KlR kg6Q== X-Gm-Message-State: APjAAAWZiLHMhxpSKFpqJbSwORVVOKv7tF1kWJZCJ6RY51f51mNWK870 SX6z4qmJyddZwCHfQX9qoQLZWbn2 X-Google-Smtp-Source: APXvYqzeBkOYXJcZAHKfdjCHP3z4MLbOoGM49UxOr5sfbIXcb9Fy2wKRzMr3jUw3L724g5hFUgoYcw== X-Received: by 2002:adf:a285:: with SMTP id s5mr6467894wra.118.1581181029389; Sat, 08 Feb 2020 08:57:09 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:08 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 05/13] hw/arm/raspi: Extract the processor type from the board revision Date: Sat, 8 Feb 2020 17:56:37 +0100 Message-Id: <20200208165645.15657-6-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The board revision encode the processor type. Add a helper to extract the type, and use it. Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/raspi.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index dcd8d2d6d3..7a2ca97347 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -67,6 +67,21 @@ static int board_version(uint32_t board_rev) return board_processor_id(board_rev) + 1; } +static const char *board_soc_type(uint32_t board_rev) +{ + static const char *soc_types[] = { + NULL, TYPE_BCM2836, TYPE_BCM2837, + }; + int proc_id = board_processor_id(board_rev); + + if (proc_id >= ARRAY_SIZE(soc_types) || !soc_types[proc_id]) { + error_report("Unsupported processor id '%d' (board revision: 0x%x)", + proc_id, board_rev); + exit(1); + } + return soc_types[proc_id]; +} + static void write_smpboot(ARMCPU *cpu, const struct arm_boot_info *info) { static const uint32_t smpboot[] = { @@ -213,8 +228,7 @@ static void raspi_init(MachineState *machine, uint32_t board_rev) } object_initialize_child(OBJECT(machine), "soc", &s->soc, sizeof(s->soc), - version == 3 ? TYPE_BCM2837 : TYPE_BCM2836, - &error_abort, NULL); + board_soc_type(board_rev), &error_abort, NULL); /* Allocate and map RAM */ memory_region_allocate_system_memory(&s->ram, OBJECT(machine), "ram", From patchwork Sat Feb 8 16:56:38 2020 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: 11371727 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 97A38921 for ; Sat, 8 Feb 2020 17:07:24 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6E5E620733 for ; Sat, 8 Feb 2020 17:07:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="pnUYEJaV" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6E5E620733 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43626 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TZj-0006Mg-LN for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 12:07:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53854) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TPt-0005pV-VG for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TPs-0001kd-TO for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:13 -0500 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:42575) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TPs-0001jx-NK; Sat, 08 Feb 2020 11:57:12 -0500 Received: by mail-wr1-x443.google.com with SMTP id k11so2466698wrd.9; Sat, 08 Feb 2020 08:57:12 -0800 (PST) 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=p0CIm4ZyNmzBVoqBIDDC/4y2EAVfboHjJlAZjEgSztE=; b=pnUYEJaVU8+Xl58FKRdO4JOjksL0si64wFTdea5tr+GkVN7pmE2QIAf+bV+fg+90H5 9qUKjzAQ0vJg/zb/0xCnlCUP1w3eLIsfs2P1C1EYInLLDyEX7h4Bw/h/DAQV5IFrtF9y 8Mhklh94hQCB0WljY8+pbZ5KPDDvj+mYfoYBsQoRRohJaevZ28PqerjMSgIOv46alWHQ 31HPUOz1a0f5ens1Sk4YYSf4xPPsqZekq9frznqhUijoAktGzWUo2ZZlNA3ysjhT6CoT nWHQACYQe2U5j9dR+BNqzDGl9htsun1eOr6xygkImZdA1DbCfQayKpIzNLTN92d6m0Fs BVaw== 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=p0CIm4ZyNmzBVoqBIDDC/4y2EAVfboHjJlAZjEgSztE=; b=ZBa2vcueQ5u1xZ+FKk2GkTUSxP0bmwvRGvFiQ+REuk4qP3pIe1Iq7fLiFgiVkIZ7+U Isu5DPzHJNuuupm0Fu755ySbCdhnymztdhB9/kTTf5GiN10JF/RV4fu5BNBt/pfmSEzG Cf5W5fPwBSRCggXnQDSgXzbzEGbM6pY3FCz6cZldCXrkHlRMa4NXCHB5KN05N79QdNnw 1D37KFdBuPmPDqMWIBbP918mlvK7T5DoTJ/q+C/LNvzL6fxlz+I971datzuMO3hslK3I BWeNobO0NOhXpTNEs1X06lqepPW2YkMmmsA93wJL5XSr3qVbF8gdE8uu0scCFGGoUKBn Itcg== X-Gm-Message-State: APjAAAU7wqzAsE3wKRyD0rpaPP2MuI1HVIE3TYFZvjlIip96EPzzKGZw oTAhqxO6KgFGLTL2j5ONUOVrYNV1 X-Google-Smtp-Source: APXvYqzLGb0CHBz/BoAxnqK1EKwMATPdV9oSxFoAOvAy/EA+JA3TYTZWkg8+Ud3g0yUwLClf+nme2g== X-Received: by 2002:a5d:4d12:: with SMTP id z18mr6158740wrt.139.1581181031477; Sat, 08 Feb 2020 08:57:11 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:10 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 06/13] hw/arm/raspi: Trivial code movement Date: Sat, 8 Feb 2020 17:56:38 +0100 Message-Id: <20200208165645.15657-7-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "open list:Trivial patches" , Joaquin de Andres , Alistair Francis , Michael Tokarev , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Laurent Vivier Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" There is no point in creating the SoC object before allocating the RAM. Move the call to keep all the SoC-related calls together. Signed-off-by: Philippe Mathieu-Daudé Acked-by: Igor Mammedov --- hw/arm/raspi.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index 7a2ca97347..b3e6f72b55 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -227,9 +227,6 @@ static void raspi_init(MachineState *machine, uint32_t board_rev) exit(1); } - object_initialize_child(OBJECT(machine), "soc", &s->soc, sizeof(s->soc), - board_soc_type(board_rev), &error_abort, NULL); - /* Allocate and map RAM */ memory_region_allocate_system_memory(&s->ram, OBJECT(machine), "ram", machine->ram_size); @@ -237,6 +234,8 @@ static void raspi_init(MachineState *machine, uint32_t board_rev) memory_region_add_subregion_overlap(get_system_memory(), 0, &s->ram, 0); /* Setup the SOC */ + object_initialize_child(OBJECT(machine), "soc", &s->soc, sizeof(s->soc), + board_soc_type(board_rev), &error_abort, NULL); object_property_add_const_link(OBJECT(&s->soc), "ram", OBJECT(&s->ram), &error_abort); object_property_set_int(OBJECT(&s->soc), board_rev, "board-rev", From patchwork Sat Feb 8 16:56:39 2020 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: 11371729 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8F18F921 for ; Sat, 8 Feb 2020 17:08:31 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6311B20733 for ; Sat, 8 Feb 2020 17:08:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FI1/+nQy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6311B20733 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43660 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0Tao-00088O-Kk for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 12:08:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53898) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TPz-0005zO-Uy for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TPy-0001o3-Da for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:19 -0500 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:39724) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TPy-0001lF-5s; Sat, 08 Feb 2020 11:57:18 -0500 Received: by mail-wm1-x344.google.com with SMTP id c84so6017198wme.4; Sat, 08 Feb 2020 08:57:14 -0800 (PST) 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=XKrCXiHYgBlF7Xk6qT4KBfeJlAD7eZV3fE6ujyh1Fos=; b=FI1/+nQyKlmRbUKQ+curPIFS8LWxK9K0zAEysyGfv/tVRJnCbQ6yftK7ghRXvabCE6 P0+MPVetRmr8hD0BVd0wGHN7K6n3bOWPH+gbNms+a0/6wOHvh2TL4DncuIHxcPIdVcJ0 i/KssddA2RJwkGSUicYh6F2u0bKZFb2sx4Dj9f0YGrOKQ2hexTyFAug4kOEOg9xdO58Q GuWb9Ogr7AuwKFSIrVhGZBzA5RbQQvW48LGFa0l9Hm2Oudf4ydud13LsbxQvpL76eRI5 wJUBHULjHMWo1OSmkEeei48NGi6/cg4mL4phowRB92Z53kU3/6u8uoGnPJK8hy3QaZsp 7eJw== 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=XKrCXiHYgBlF7Xk6qT4KBfeJlAD7eZV3fE6ujyh1Fos=; b=fPiznSqd0PLRIFoVxzougqgJYLWwrUHH/ChSHhBx7nbUkY0K9dnq47NiH2tc6FJfHM J/+YWXiub3TN46LNv3wuZW4ghDAQFFKUckD1DzuiNB/fthyPTvTnX3fqoxD23xfghUk7 FJxXteKHnRfVsbJhUa7NHc5Jbt8ojPuJ3v5hz+9W8NnMvWQPk6iG4UzhY71clJwa5h7+ xm9vAbxkZkfy9/kC5Dl7T5o2feV6SLYTv3zMpovaqVOpzvEv95JaTj+hBS4W38guRRER zrrDsFRidhabnAthIlgvvqBFAKLS3BpaV1fbnUvIzQrXpNqmN+6KSSGcRmuraHNQBi6l BL9w== X-Gm-Message-State: APjAAAWvredCxu2tkOAt4r/zvx3KaEljJ+B95VRMx8PI+etG3pqXCIfN qtGfTFKv38ChR4LQKwc2R+eecUTg X-Google-Smtp-Source: APXvYqyg4RIo2CXO2frR0v3N3DGavd1YSeOUJE/U2akP1HAVfRxgfK4bDH6Y8+i1RlTUTLnor8cFjA== X-Received: by 2002:a1c:7c18:: with SMTP id x24mr5367498wmc.185.1581181033301; Sat, 08 Feb 2020 08:57:13 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:12 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 07/13] hw/arm/raspi: Make machines children of abstract RaspiMachineClass Date: Sat, 8 Feb 2020 17:56:39 +0100 Message-Id: <20200208165645.15657-8-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::344 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" QOM'ify RaspiMachineState. Now machines inherit of RaspiMachineClass. Cc: Igor Mammedov Signed-off-by: Philippe Mathieu-Daudé Acked-by: Igor Mammedov --- v3: Fixed typo in description (Zoltán) --- hw/arm/raspi.c | 56 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 7 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index b3e6f72b55..62b8df3c2e 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -34,10 +34,28 @@ /* Registered machine type (matches RPi Foundation bootloader and U-Boot) */ #define MACH_TYPE_BCM2708 3138 -typedef struct RasPiState { +typedef struct RaspiMachineState { + /*< private >*/ + MachineState parent_obj; + /*< public >*/ BCM283XState soc; MemoryRegion ram; -} RasPiState; +} RaspiMachineState; + +typedef struct RaspiMachineClass { + /*< private >*/ + MachineClass parent_obj; + /*< public >*/ +} RaspiMachineClass; + +#define TYPE_RASPI_MACHINE MACHINE_TYPE_NAME("raspi-common") +#define RASPI_MACHINE(obj) \ + OBJECT_CHECK(RaspiMachineState, (obj), TYPE_RASPI_MACHINE) + +#define RASPI_MACHINE_CLASS(klass) \ + OBJECT_CLASS_CHECK(RaspiMachineClass, (klass), TYPE_RASPI_MACHINE) +#define RASPI_MACHINE_GET_CLASS(obj) \ + OBJECT_GET_CLASS(RaspiMachineClass, (obj), TYPE_RASPI_MACHINE) /* * Board revision codes: @@ -211,7 +229,7 @@ static void setup_boot(MachineState *machine, int version, size_t ram_size) static void raspi_init(MachineState *machine, uint32_t board_rev) { - RasPiState *s = g_new0(RasPiState, 1); + RaspiMachineState *s = RASPI_MACHINE(machine); int version = board_version(board_rev); uint64_t ram_size = board_ram_size(board_rev); uint32_t vcram_size; @@ -264,8 +282,10 @@ static void raspi2_init(MachineState *machine) raspi_init(machine, 0xa21041); } -static void raspi2_machine_init(MachineClass *mc) +static void raspi2_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "Raspberry Pi 2B"; mc->init = raspi2_init; mc->block_default_type = IF_SD; @@ -278,7 +298,6 @@ static void raspi2_machine_init(MachineClass *mc) mc->default_ram_size = 1 * GiB; mc->ignore_memory_transaction_failures = true; }; -DEFINE_MACHINE("raspi2", raspi2_machine_init) #ifdef TARGET_AARCH64 static void raspi3_init(MachineState *machine) @@ -286,8 +305,10 @@ static void raspi3_init(MachineState *machine) raspi_init(machine, 0xa02082); } -static void raspi3_machine_init(MachineClass *mc) +static void raspi3_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "Raspberry Pi 3B"; mc->init = raspi3_init; mc->block_default_type = IF_SD; @@ -299,5 +320,26 @@ static void raspi3_machine_init(MachineClass *mc) mc->default_cpus = BCM283X_NCPUS; mc->default_ram_size = 1 * GiB; } -DEFINE_MACHINE("raspi3", raspi3_machine_init) #endif + +static const TypeInfo raspi_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("raspi2"), + .parent = TYPE_RASPI_MACHINE, + .class_init = raspi2_machine_class_init, +#ifdef TARGET_AARCH64 + }, { + .name = MACHINE_TYPE_NAME("raspi3"), + .parent = TYPE_RASPI_MACHINE, + .class_init = raspi3_machine_class_init, +#endif + }, { + .name = TYPE_RASPI_MACHINE, + .parent = TYPE_MACHINE, + .instance_size = sizeof(RaspiMachineState), + .class_size = sizeof(RaspiMachineClass), + .abstract = true, + } +}; + +DEFINE_TYPES(raspi_machine_types) From patchwork Sat Feb 8 16:56:40 2020 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: 11371705 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A8E7392A for ; Sat, 8 Feb 2020 16:59:53 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7EBC92082E for ; Sat, 8 Feb 2020 16:59:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nc2ySjDJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7EBC92082E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43346 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TSS-0002f7-L9 for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 11:59:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53890) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TPz-0005yI-JX for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TPy-0001o9-Dt for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:19 -0500 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:54666) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TPy-0001mz-5r; Sat, 08 Feb 2020 11:57:18 -0500 Received: by mail-wm1-x341.google.com with SMTP id g1so5544203wmh.4; Sat, 08 Feb 2020 08:57:16 -0800 (PST) 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=x0O3At1xgu1nSLiUV3BtfZN0wWsQrHjMzXGKZfUYX9Q=; b=nc2ySjDJ+uA1SNTopZ4ALRt5BvecIYLNlflYDfCA+4/qWOEnAWhD5VJAqn5htRbOVN 3wxDCB+wMzip8/s/NWAIiNXoM0/fZvrMc3PhyyEOBuKK5/votB/RpOHzGtrjV1m5+IrJ C1Bml/kyK3WXEGzMJYYdi0sgUd+MPFKuHr0v18jZeWL1nA6UOPS2Q0Ge7lKIIJ/eDMK6 BIokUVGa1e9/aozlC2rJtHN0JsXuBc5dnQzJB15LuDUrXc8M0UA263ZKWKf7NgANLeRu K8UXrSROfJL6nFlUoWMj/ww/PqcUeSPlobMN6Kt5+rjN0hUkss24tWZtwiZihRgwJ6U3 fznA== 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=x0O3At1xgu1nSLiUV3BtfZN0wWsQrHjMzXGKZfUYX9Q=; b=qbRti2FLkaFbFyyosMTLTXT6lRQOHKJxXSrUy4UATI49v/o0GibIwn6tC881q/qcgy nGC8OIgH2IIEjfJQpghd/QRGun59tLaioYUuZRffL0wv2AfJuKyoGNOZ615wtej73Qzt gnFFWVcWvNY5p98NlYw+arYZgzu0GjwP6VdIs9Js1oXK0BDmXOiwcIxFOi5cE4U9DvP6 goRED9pJd2fEy+PKAm7H5HrPywyIhfR4KOSTLuseS6FfXBYRO2cIsnUxGDhOJX4Mo2dp 8w3GcEKL/sA1xNuygvESD7rA7cTmM2s2VCYeJXytoUOl3WT9UOWSQsZVlVixxu+jCpjV nwcg== X-Gm-Message-State: APjAAAWRoPDfRgkd86Qjnf5zU7SQBii0OnwBEPqcPZ4PlnAV3pRl7Xe2 e7TS3zYaAb/UbUOq81HG0PGn7RRF X-Google-Smtp-Source: APXvYqz7Q1lUNVPuHRq8rwE4mIN7o95ee0ZlVKqRtwyS5U8yJePJEjyMahC2HcawRiqcYJMFUF5CCw== X-Received: by 2002:a7b:cb46:: with SMTP id v6mr5374564wmj.117.1581181035247; Sat, 08 Feb 2020 08:57:15 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:14 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 08/13] hw/arm/raspi: Make board_rev a field of RaspiMachineClass Date: Sat, 8 Feb 2020 17:56:40 +0100 Message-Id: <20200208165645.15657-9-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::341 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" We want to have a common class_init(). The only value that matters (and changes) is the board revision. Pass the board_rev as class_data to class_init(). Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/raspi.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index 62b8df3c2e..fbfcd29732 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -46,6 +46,7 @@ typedef struct RaspiMachineClass { /*< private >*/ MachineClass parent_obj; /*< public >*/ + uint32_t board_rev; } RaspiMachineClass; #define TYPE_RASPI_MACHINE MACHINE_TYPE_NAME("raspi-common") @@ -227,9 +228,11 @@ static void setup_boot(MachineState *machine, int version, size_t ram_size) arm_load_kernel(ARM_CPU(first_cpu), machine, &binfo); } -static void raspi_init(MachineState *machine, uint32_t board_rev) +static void raspi_init(MachineState *machine) { + RaspiMachineClass *mc = RASPI_MACHINE_GET_CLASS(machine); RaspiMachineState *s = RASPI_MACHINE(machine); + uint32_t board_rev = mc->board_rev; int version = board_version(board_rev); uint64_t ram_size = board_ram_size(board_rev); uint32_t vcram_size; @@ -279,13 +282,16 @@ static void raspi_init(MachineState *machine, uint32_t board_rev) static void raspi2_init(MachineState *machine) { - raspi_init(machine, 0xa21041); + raspi_init(machine); } static void raspi2_machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc = MACHINE_CLASS(oc); + RaspiMachineClass *rmc = RASPI_MACHINE_CLASS(oc); + uint32_t board_rev = (uint32_t)(uintptr_t)data; + rmc->board_rev = board_rev; mc->desc = "Raspberry Pi 2B"; mc->init = raspi2_init; mc->block_default_type = IF_SD; @@ -302,13 +308,16 @@ static void raspi2_machine_class_init(ObjectClass *oc, void *data) #ifdef TARGET_AARCH64 static void raspi3_init(MachineState *machine) { - raspi_init(machine, 0xa02082); + raspi_init(machine); } static void raspi3_machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc = MACHINE_CLASS(oc); + RaspiMachineClass *rmc = RASPI_MACHINE_CLASS(oc); + uint32_t board_rev = (uint32_t)(uintptr_t)data; + rmc->board_rev = board_rev; mc->desc = "Raspberry Pi 3B"; mc->init = raspi3_init; mc->block_default_type = IF_SD; @@ -327,11 +336,13 @@ static const TypeInfo raspi_machine_types[] = { .name = MACHINE_TYPE_NAME("raspi2"), .parent = TYPE_RASPI_MACHINE, .class_init = raspi2_machine_class_init, + .class_data = (void *)0xa21041, #ifdef TARGET_AARCH64 }, { .name = MACHINE_TYPE_NAME("raspi3"), .parent = TYPE_RASPI_MACHINE, .class_init = raspi3_machine_class_init, + .class_data = (void *)0xa02082, #endif }, { .name = TYPE_RASPI_MACHINE, From patchwork Sat Feb 8 16:56:41 2020 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: 11371703 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5BD8B924 for ; Sat, 8 Feb 2020 16:58:42 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 331CC2082E for ; Sat, 8 Feb 2020 16:58:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RrCdzZKg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 331CC2082E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43320 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TRJ-00006a-Ck for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 11:58:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53899) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TPz-0005zQ-Ud for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TPy-0001oN-NE for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:19 -0500 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:45764) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TPy-0001nh-HK; Sat, 08 Feb 2020 11:57:18 -0500 Received: by mail-wr1-x441.google.com with SMTP id g3so1410838wrs.12; Sat, 08 Feb 2020 08:57:18 -0800 (PST) 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=PQ9RCvZi2otUw1qqPfGvj8l91J+geLVqZwXKPaCPo0s=; b=RrCdzZKgivqN4loroP0+cRbq4EF4GhRSz9wlioUwMOOSwq6XSv5UiRkIajIUvmmVNL KO3nuaNJguzSguZBboF5p3EJezjoNoTbeFcQmfWZLfs0klS1iCxbalp4W4tYNg+X5Lk5 WOqN9zvi27SjAoo/Gq0hjtxJVmvvh6CVEBvxY73wCT4TV2Be1jExfwafhmdpkcQMq7li OOtR/cSSD0QupAMyQUBeF0R2LPn/sMzd+yEcm8cGF9O9ckQ+qKQAMhDl6fiorrpHg6tj zskUu9QXFnTnyavp+MWLFuRRdEOtaeWIxkfl1bHFbAp8PHXYPoK5gUWA1OySI60WM8PW cQ3g== 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=PQ9RCvZi2otUw1qqPfGvj8l91J+geLVqZwXKPaCPo0s=; b=TY37oLExDmXw6w5KtV1XzeUFww1x/f+1c0NRgh3cz7NmAO7p5gtYei0u2UCLOTULc/ 9AULgLzukli/bvVCWG4t9ATBAqkQZmJRUt5ZvIaxBAE5e2gJbf0aD5G7YP52PgdoB9XS d5uLCxG0kgoiqcAuyZo4pp1UCSApBQf814MGA7WORl6HDGEuXEZ81HYxGDqtx5fvjrRw ybhbgu8dHl8yzYZFWKUE/iTPTI6Mw2dOJ+LZEcMYZ5E+LahOS9KDkaZDwd9l98GnsEfc Ha8ZuTJ4MvbKV73GUWvu+fp8W6I1ATPJx8kxdQJ+bNHAUt7nIjnksvPMbdpN7YieMr6Y 9+pw== X-Gm-Message-State: APjAAAWmI6uJ6P1manhZ7LFjyN221bFpAc4YDX5vvr91eXoZ9DOcW8QN cfu//Zlnx1yHqLtpqEVVOCb2iWcY X-Google-Smtp-Source: APXvYqyKlXtuXAwDGb6exyGIf/dF/fcd8I7KUjuzu+55+nSUxtnnA1rNOZjb8roUdwJLQ+SW6NDVhA== X-Received: by 2002:adf:b352:: with SMTP id k18mr6003393wrd.242.1581181037383; Sat, 08 Feb 2020 08:57:17 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:16 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 09/13] hw/arm/raspi: Let class_init() directly call raspi_machine_init() Date: Sat, 8 Feb 2020 17:56:41 +0100 Message-Id: <20200208165645.15657-10-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" raspi_machine_init() access to board_rev via RaspiMachineClass. raspi2_init() and raspi3_init() do nothing. Call raspi_machine_init directly. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Igor Mammedov --- Squash with previous? --- hw/arm/raspi.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index fbfcd29732..1628b0dda7 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -228,7 +228,7 @@ static void setup_boot(MachineState *machine, int version, size_t ram_size) arm_load_kernel(ARM_CPU(first_cpu), machine, &binfo); } -static void raspi_init(MachineState *machine) +static void raspi_machine_init(MachineState *machine) { RaspiMachineClass *mc = RASPI_MACHINE_GET_CLASS(machine); RaspiMachineState *s = RASPI_MACHINE(machine); @@ -280,11 +280,6 @@ static void raspi_init(MachineState *machine) setup_boot(machine, version, machine->ram_size - vcram_size); } -static void raspi2_init(MachineState *machine) -{ - raspi_init(machine); -} - static void raspi2_machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc = MACHINE_CLASS(oc); @@ -293,7 +288,7 @@ static void raspi2_machine_class_init(ObjectClass *oc, void *data) rmc->board_rev = board_rev; mc->desc = "Raspberry Pi 2B"; - mc->init = raspi2_init; + mc->init = raspi_machine_init; mc->block_default_type = IF_SD; mc->no_parallel = 1; mc->no_floppy = 1; @@ -306,11 +301,6 @@ static void raspi2_machine_class_init(ObjectClass *oc, void *data) }; #ifdef TARGET_AARCH64 -static void raspi3_init(MachineState *machine) -{ - raspi_init(machine); -} - static void raspi3_machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc = MACHINE_CLASS(oc); @@ -319,7 +309,7 @@ static void raspi3_machine_class_init(ObjectClass *oc, void *data) rmc->board_rev = board_rev; mc->desc = "Raspberry Pi 3B"; - mc->init = raspi3_init; + mc->init = raspi_machine_init; mc->block_default_type = IF_SD; mc->no_parallel = 1; mc->no_floppy = 1; From patchwork Sat Feb 8 16:56:42 2020 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: 11371709 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id ACECF921 for ; Sat, 8 Feb 2020 17:00:28 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 83B9F2082E for ; Sat, 8 Feb 2020 17:00:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VZk8ndr9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 83B9F2082E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43356 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TT1-0003Xp-KJ for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 12:00:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53949) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TQ1-00064x-QN for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TQ0-0001pw-Hj for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:21 -0500 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:42576) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TQ0-0001pK-B0; Sat, 08 Feb 2020 11:57:20 -0500 Received: by mail-wr1-x441.google.com with SMTP id k11so2466913wrd.9; Sat, 08 Feb 2020 08:57:20 -0800 (PST) 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=I1ANtru2D3HkYCis4oA6m7f9tmoOY3ITOVs2JLAacGI=; b=VZk8ndr9V+wlgKGno4YlyVHLYbXW72LQtDapq/FsBaTeEB4SPSw+/mqKGs1CSgS2/K Py/aY80pR7H8mz+aScCydnvg+9VLZpMnCHTZ0aJD7kNGIj5ZVxiJcT3vQCWxoV3RPqE6 RNhXnoIhd4eNn8/koSSRHGCDg9KJ2C3Fex7iVm3c5Qk9zu6qSufYCnPy7kCJVPhCHAd5 iViKiEhZkeTl5j82tlzMmjCSoAUZXYq9XUN9azo9pJ4n1xwv2N4cFx9iuQzL/1JZHV78 Amy4YRDSfvOMCwhUUzhHiGWntqUvYBvaUPPRvg6v6gy2ZDHxO6guIKTskO0Yqbdap+ah xupA== 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=I1ANtru2D3HkYCis4oA6m7f9tmoOY3ITOVs2JLAacGI=; b=lEm64eXsp3uHXsZOCHvz8GIHCRzvAA3FeMJal1mJY9JmglP46GkxNv5H042SJWbIH5 zMi2if6M3BgGigm3GQK3VbIsNnJJbqa9CD//juZQFLFgGoGBjlPpRRH3TpQOMs9Sm5s1 BJMIfma0nv72dFr9b9gPb4dKojzEdAU3rhWFGuyq/4etBNjJweSWwGDeH239l8N5JKT9 NAYEMNpr7bCmnNxYQGDccBbPFomVbAVYyizla33DCkd1tUjvJ4QPluvt8C+CEkk0NWPR 03VJ4g/IBrjjACeHp4IXGyj3DjRuYwRsTgTtDZ1BdkGrCl2EjVo0btgBmAT9WejAElQx cxmw== X-Gm-Message-State: APjAAAVgyVsvJIqQ7TSgXLTAECdCDK6/xZkCWrlltDoUMuVcbCVutIa2 qgvBZ0dagJkxwz08fGC4OtyBEXO4 X-Google-Smtp-Source: APXvYqx8r2YV16w7KdnS3+pL0IrepzcAahqFoavg3BNxk0Ea2Oj0CNjJNfpuLrYLSdvA6id4/AfBDQ== X-Received: by 2002:adf:ea4a:: with SMTP id j10mr5927231wrn.119.1581181039263; Sat, 08 Feb 2020 08:57:19 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:18 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 10/13] hw/arm/raspi: Set default RAM size to size encoded in board revision Date: Sat, 8 Feb 2020 17:56:42 +0100 Message-Id: <20200208165645.15657-11-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" We added a helper to extract the RAM size from the board revision, and made board_rev a field of RaspiMachineClass. The class_init() can now use the helper to extract from the board revision the board-specific amount of RAM. Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/raspi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index 1628b0dda7..f0dcffbc2e 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -296,7 +296,7 @@ static void raspi2_machine_class_init(ObjectClass *oc, void *data) mc->max_cpus = BCM283X_NCPUS; mc->min_cpus = BCM283X_NCPUS; mc->default_cpus = BCM283X_NCPUS; - mc->default_ram_size = 1 * GiB; + mc->default_ram_size = board_ram_size(board_rev); mc->ignore_memory_transaction_failures = true; }; @@ -317,7 +317,7 @@ static void raspi3_machine_class_init(ObjectClass *oc, void *data) mc->max_cpus = BCM283X_NCPUS; mc->min_cpus = BCM283X_NCPUS; mc->default_cpus = BCM283X_NCPUS; - mc->default_ram_size = 1 * GiB; + mc->default_ram_size = board_ram_size(board_rev); } #endif From patchwork Sat Feb 8 16:56:43 2020 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: 11371715 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EF78E924 for ; Sat, 8 Feb 2020 17:01:11 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C5E5A2082E for ; Sat, 8 Feb 2020 17:01:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PoQKtWoU" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C5E5A2082E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43370 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TTi-0004UM-W8 for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 12:01:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53995) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TQ3-0006Ai-M7 for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TQ2-0001rC-L8 for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:23 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:36334) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TQ2-0001qj-ED; Sat, 08 Feb 2020 11:57:22 -0500 Received: by mail-wr1-x444.google.com with SMTP id z3so2499116wru.3; Sat, 08 Feb 2020 08:57:22 -0800 (PST) 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=tBZ23XKKuSqArucqlyayxcsuhsU98/F9gBo+Gwfs7bo=; b=PoQKtWoUv1myiD7jWyloDmog+kYtVbshUzEDQGkXkHFdwrekpbk+S8VvaFSW1GKRZn Bn8FgG7mffZLRI0vYm7l3K/yD5qr2SJfwPZFOjr6xXzE+pIdOiHTXuEBuUBlipcSJKQG THDQounAseD470THW98a7QFumEHJ2bPM4mA6LuHkb8Xt0NGBxMUWUmw2XZRpWo5Ha3BN OttN537+akQZXoYnXL/8Perl+B1mD21VnkRsksR3gLua7Jt27Tau1HVeyH847kBPcnZ5 7rPW6nMPJSNrkmhJ193JQcyH2c8ZeLZ2RLzZHyqPB0rcMXZXmm6p0mtv24+LMZl9pxJR GVJg== 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=tBZ23XKKuSqArucqlyayxcsuhsU98/F9gBo+Gwfs7bo=; b=sUosk3aiC2ghHkePwwFwb23/gpaRXgM9me9nZzbrCtIWNQndxg/3ChO1hQFP5HP1ON sBeXS4Ds6Q6w8/aFlJbfDGslTYicCYdsGGv/H3ytpCtFtnv8PZunCctdadfs7jtfXgsQ +hz0XIrsKAJQxcnyOfoJg7JXESINabmL6UQcmpKN2WioN0vkGUSLF359UsSMDtBYMZfE 0UZMZ7nBHGNX6wQD/JMdLdiLX8YbsZijfw/kNdMSCtKmsIKHxqBl/duq/UKfvsI2z3LM AUTIE8QMUShq12WiIVcz6MWV1S/ouKJm45uH/E4WY3/SRNi/FLcY3RjzNUf0vYJGQlHu TUjw== X-Gm-Message-State: APjAAAW9Jhy74175zd2/qkyey0QW7PjBGBP3FNI7DlxvsN8oCOdsKDQa 8UsWBw7obt2gv9LS/PjqEmsW+Tjx X-Google-Smtp-Source: APXvYqzKc1on8oHTGytTRUCsr/FF8hDacvDc68HQhT2CiTTWjap/DlPbj2hFJ5h+Sc1LAsDVcsnOfw== X-Received: by 2002:adf:8b59:: with SMTP id v25mr6336731wra.419.1581181041280; Sat, 08 Feb 2020 08:57:21 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:20 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 11/13] hw/arm/raspi: Extract the board model from the board revision Date: Sat, 8 Feb 2020 17:56:43 +0100 Message-Id: <20200208165645.15657-12-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The board revision encode the model type. Add a helper to extract the model, and use it. Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/raspi.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index f0dcffbc2e..0537fc0a2d 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -101,6 +101,20 @@ static const char *board_soc_type(uint32_t board_rev) return soc_types[proc_id]; } +static const char *board_type(uint32_t board_rev) +{ + static const char *types[] = { + "A", "B", "A+", "B+", "2B", "Alpha", "CM1", NULL, "3B", "Zero", + "CM3", NULL, "Zero W", "3B+", "3A+", NULL, "CM3+", "4B", + }; + assert(FIELD_EX32(board_rev, REV_CODE, STYLE)); /* Only new style */ + int bt = FIELD_EX32(board_rev, REV_CODE, TYPE); + if (bt >= ARRAY_SIZE(types) || !types[bt]) { + return "Unknown"; + } + return types[bt]; +} + static void write_smpboot(ARMCPU *cpu, const struct arm_boot_info *info) { static const uint32_t smpboot[] = { @@ -287,7 +301,7 @@ static void raspi2_machine_class_init(ObjectClass *oc, void *data) uint32_t board_rev = (uint32_t)(uintptr_t)data; rmc->board_rev = board_rev; - mc->desc = "Raspberry Pi 2B"; + mc->desc = g_strdup_printf("Raspberry Pi %s", board_type(board_rev)); mc->init = raspi_machine_init; mc->block_default_type = IF_SD; mc->no_parallel = 1; @@ -308,7 +322,7 @@ static void raspi3_machine_class_init(ObjectClass *oc, void *data) uint32_t board_rev = (uint32_t)(uintptr_t)data; rmc->board_rev = board_rev; - mc->desc = "Raspberry Pi 3B"; + mc->desc = g_strdup_printf("Raspberry Pi %s", board_type(board_rev)); mc->init = raspi_machine_init; mc->block_default_type = IF_SD; mc->no_parallel = 1; From patchwork Sat Feb 8 16:56:44 2020 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: 11371723 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6785D924 for ; Sat, 8 Feb 2020 17:03:33 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3E74021741 for ; Sat, 8 Feb 2020 17:03:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iLCCIwv6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3E74021741 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43424 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TW0-0007zD-Cg for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 12:03:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54019) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TQ5-0006Hw-NQ for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TQ4-0001s5-Jk for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:25 -0500 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:37287) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TQ4-0001rp-Ce; Sat, 08 Feb 2020 11:57:24 -0500 Received: by mail-wr1-x441.google.com with SMTP id w15so2500107wru.4; Sat, 08 Feb 2020 08:57:24 -0800 (PST) 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=+Rp+SKpFYOJ3Mi9QveQx+SuJfuhrTxn0ecf+GdPK71w=; b=iLCCIwv6c368Mp9aWasGLDkPRD6pgTk82heR7ixxQC4JHOpD6yt1eErSwTmVT7Yc0a yMjUReDK5K1JUXANiWaHxnLup2dYkgXSS7mZTOmtxLr6yLWTjI6w9PsDhooDLmOfXTCG S5sTqnqqZivgA12MZ9bCdzfO1oecdG3mU6VZP6+6FDn3LsJcFWN93m7XRCKQaiQmYhS0 Xv6O9uM3t8DYUCJyK0d+CR7MMCuThHrm0Yfb2OAa7ucsjPJ85TRb3uXyGm/28g2R0Ozn 9ANBzYaxzD6GiAIqfbmvGKvQ5RtVL6eH4DdBD79W0pxrg++jnSY68ndLTy6uas3nV72h N5qQ== 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=+Rp+SKpFYOJ3Mi9QveQx+SuJfuhrTxn0ecf+GdPK71w=; b=RSonXk8LR5cInhg+koA+8mBa0Bdh64zrEDmXaJaKBe2n5vDuFAgK6VK35ECDyfdUNI R7vEPuzSpVa8urY1bcePa342qiohqloMikuQUAS3cRc//3/5kycUDj4W46w528m5+wAj 67M/Qv+S6//XfI0IR8+FhzEp5FTGNoJXNZKtMLpNoLEmDblpEOcX0qw6FqocyyXSWa10 NtxgbIdqncX84U+gtq78Siv7Uvrwk1mcCp4PXg3k0QO9hHqFY/pRIyl5LE7qwUH/Fanw /GXP1jWz0CDVz0miJK/z6OW0jKxezN+AXrmTYP/Ah2HP43wudl2XO3y8AcBP6qCVUavD WkbQ== X-Gm-Message-State: APjAAAU/Lv1YVc4cOGbMY/VNbDJPBo44lyU1//2mPtHEY4gV/015On11 xkrp1KfoHfsO5lXiz+223myRLDnP X-Google-Smtp-Source: APXvYqxgHFRfqJI62BdiOShDDOMOg3/HR2DwyOf+kCA2iV+JNr5XnXMKIMybPc8QXQheJSgUx+PfeA== X-Received: by 2002:a5d:51ce:: with SMTP id n14mr6221682wrv.426.1581181043242; Sat, 08 Feb 2020 08:57:23 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:22 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 12/13] hw/arm/raspi: Use a unique raspi_machine_class_init() method Date: Sat, 8 Feb 2020 17:56:44 +0100 Message-Id: <20200208165645.15657-13-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" With the exception of the ignore_memory_transaction_failures flag set for the raspi2, both machine_class_init() methods are now identical. Merge them to keep a unique method. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Igor Mammedov --- hw/arm/raspi.c | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index 0537fc0a2d..bee6ca0a08 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -294,7 +294,7 @@ static void raspi_machine_init(MachineState *machine) setup_boot(machine, version, machine->ram_size - vcram_size); } -static void raspi2_machine_class_init(ObjectClass *oc, void *data) +static void raspi_machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc = MACHINE_CLASS(oc); RaspiMachineClass *rmc = RASPI_MACHINE_CLASS(oc); @@ -311,41 +311,22 @@ static void raspi2_machine_class_init(ObjectClass *oc, void *data) mc->min_cpus = BCM283X_NCPUS; mc->default_cpus = BCM283X_NCPUS; mc->default_ram_size = board_ram_size(board_rev); - mc->ignore_memory_transaction_failures = true; + if (board_version(board_rev) == 2) { + mc->ignore_memory_transaction_failures = true; + } }; -#ifdef TARGET_AARCH64 -static void raspi3_machine_class_init(ObjectClass *oc, void *data) -{ - MachineClass *mc = MACHINE_CLASS(oc); - RaspiMachineClass *rmc = RASPI_MACHINE_CLASS(oc); - uint32_t board_rev = (uint32_t)(uintptr_t)data; - - rmc->board_rev = board_rev; - mc->desc = g_strdup_printf("Raspberry Pi %s", board_type(board_rev)); - mc->init = raspi_machine_init; - mc->block_default_type = IF_SD; - mc->no_parallel = 1; - mc->no_floppy = 1; - mc->no_cdrom = 1; - mc->max_cpus = BCM283X_NCPUS; - mc->min_cpus = BCM283X_NCPUS; - mc->default_cpus = BCM283X_NCPUS; - mc->default_ram_size = board_ram_size(board_rev); -} -#endif - static const TypeInfo raspi_machine_types[] = { { .name = MACHINE_TYPE_NAME("raspi2"), .parent = TYPE_RASPI_MACHINE, - .class_init = raspi2_machine_class_init, + .class_init = raspi_machine_class_init, .class_data = (void *)0xa21041, #ifdef TARGET_AARCH64 }, { .name = MACHINE_TYPE_NAME("raspi3"), .parent = TYPE_RASPI_MACHINE, - .class_init = raspi3_machine_class_init, + .class_init = raspi_machine_class_init, .class_data = (void *)0xa02082, #endif }, { From patchwork Sat Feb 8 16:56:45 2020 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: 11371721 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 921ED921 for ; Sat, 8 Feb 2020 17:03:09 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6936321741 for ; Sat, 8 Feb 2020 17:03:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QkZQuUGJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6936321741 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amsat.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:43420 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TVc-0007GE-HZ for patchwork-qemu-devel@patchwork.kernel.org; Sat, 08 Feb 2020 12:03:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54044) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j0TQ7-0006Mi-IO for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j0TQ6-0001t5-KM for qemu-devel@nongnu.org; Sat, 08 Feb 2020 11:57:27 -0500 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:38046) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j0TQ6-0001sg-Du; Sat, 08 Feb 2020 11:57:26 -0500 Received: by mail-wr1-x443.google.com with SMTP id y17so2489181wrh.5; Sat, 08 Feb 2020 08:57:26 -0800 (PST) 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=3rBdGV77acnZuRXknbrZFUu5k1x9HktZihwAmZUV2Pk=; b=QkZQuUGJDmzyGNiVBJsQGmUxc2Tnfwxw9/o3qpL3v+pg2iMhJcYKvR6V7Eyntl80hA PfwqlJqFk8o1dhoXOpb3K1Hwxux8sJQjTCniu7vr6gGRzeXJ0ft3ZJuycnGihT0isfjU v1AvhQCRcihtDAl8lCWPMTq+4CpUiQcAYgV++ev6X7cBysKB/rC4leGtsO0jpqEWYTNm bVFBQxSGzLGERpQikgWJkRYdrMNOfSaaJuf+TYN5B3hJlCt/9hd5y4e0VUht6b5HGwNQ ofdpnyswmNRlHHh0tGakWjvxeeQo+2OuYjo+rLiVsWmlff5r90MdatBQHfNiyJJl3mR+ /O2A== 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=3rBdGV77acnZuRXknbrZFUu5k1x9HktZihwAmZUV2Pk=; b=p8SRTS5/nJyF9KRUS0dOZKDIP/MQL2+yChqsgIFANJ+KN4HFtpklGmSErX9Zmt9foR XqGwsew6DEHwQ2J6VvHQOUZIc8up8uFMZNnzDNmkoEUrHOm0/fNmuv/6ULQSQZ3TJBsW WoPyU6uDYqOHUdRNWeHv4kwbWbIrrRT488CZPxkUvHZtnLf/BScNOfDZ6j5eIFMuftHh tsWSlA+pVaWlxoFEHtCvF1QG0wl+FMANp5xgpFi36SGuWIE0+X3zZ8xDkj/c3W8QnxpR fK3BVHQaV9/PRYFGTKiwvbJ1s86JnsXQ5HBoXIB9RaplYfhloaYidkLvcP6rILVROwt3 HwUw== X-Gm-Message-State: APjAAAUuh2ssTzJvIWNWXKAgcmewNfjD1d7sDb0/O8zhzR3RrHSpndCB x4UJwX/8Thk106WFT4By1spL7Rwb X-Google-Smtp-Source: APXvYqzPJ9gFBySJMdPaTLZmTNa6+vIJDT1kRKb3tcosfDMXynjOkj3xQA+at1MpnOuLK2kw9vf2Gg== X-Received: by 2002:adf:db48:: with SMTP id f8mr5819460wrj.146.1581181045353; Sat, 08 Feb 2020 08:57:25 -0800 (PST) Received: from localhost.localdomain (78.red-88-21-202.staticip.rima-tde.net. [88.21.202.78]) by smtp.gmail.com with ESMTPSA id a5sm7872763wmb.37.2020.02.08.08.57.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Feb 2020 08:57:24 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v3 13/13] hw/arm/raspi: Extract the cores count from the board revision Date: Sat, 8 Feb 2020 17:56:45 +0100 Message-Id: <20200208165645.15657-14-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200208165645.15657-1-f4bug@amsat.org> References: <20200208165645.15657-1-f4bug@amsat.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Joaquin de Andres , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Andrew Baumann , Esteban Bosse , Niek Linnenbank , qemu-arm@nongnu.org, Igor Mammedov , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" The board revision encode the count of ARM cores. Add a helper to extract the number of cores, and use it. This will be helpful when we add the Raspi0/1 that have a single core. Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/raspi.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index bee6ca0a08..90ad9b8115 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -101,6 +101,21 @@ static const char *board_soc_type(uint32_t board_rev) return soc_types[proc_id]; } +static int cores_count(uint32_t board_rev) +{ + static const int soc_cores_count[] = { + 0, BCM283X_NCPUS, BCM283X_NCPUS, + }; + int proc_id = board_processor_id(board_rev); + + if (proc_id >= ARRAY_SIZE(soc_cores_count) || !soc_cores_count[proc_id]) { + error_report("Unsupported processor id '%d' (board revision: 0x%x)", + proc_id, board_rev); + exit(1); + } + return soc_cores_count[proc_id]; +} + static const char *board_type(uint32_t board_rev) { static const char *types[] = { @@ -307,9 +322,7 @@ static void raspi_machine_class_init(ObjectClass *oc, void *data) mc->no_parallel = 1; mc->no_floppy = 1; mc->no_cdrom = 1; - mc->max_cpus = BCM283X_NCPUS; - mc->min_cpus = BCM283X_NCPUS; - mc->default_cpus = BCM283X_NCPUS; + mc->default_cpus = mc->min_cpus = mc->max_cpus = cores_count(board_rev); mc->default_ram_size = board_ram_size(board_rev); if (board_version(board_rev) == 2) { mc->ignore_memory_transaction_failures = true;