From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214413951150.65567459936676; Mon, 16 Oct 2017 21:26:53 -0700 (PDT) Received: from localhost ([::1]:36359 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JSs-0003Q1-57 for importer@patchew.org; Tue, 17 Oct 2017 00:26:50 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50278) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOP-0008GK-Mq for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOO-0006rc-JS for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:13 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:50585) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JON-0006pq-S0; Tue, 17 Oct 2017 00:22:12 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTq0F49z9sRn; Tue, 17 Oct 2017 15:22:06 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214127; bh=4JkddysFpsun7SlYfRDY+mcFgJS9va3wQmoYxIoTpKs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ROrtoBz9Qh3b3l+aZo9oBkUMkWXBN4r5iieZSPLt6+mkwYAZnzBXUhyiKQQpuM35a w7AzM+j7iahGJzEAxLZ6C1i9gW6qeUuPPn4KkCQlUhzf+9YLlgPY6GshJZd7WSo9MX yIvb637r+3SszTtyCJXrRqBBoCz3CRNk6xWAWleA= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:19 +1100 Message-Id: <20171017042152.29443-2-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 01/34] macio: add missing registers to VMStateDescription X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, Mark Cave-Ayland , qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Mark Cave-Ayland Commit 4f7265f "ppc/ide/macio: Add missing registers" added two extra macio registers but forgot to add them to the corresponding VMStateDescription. The version number is bumped accordingly, although this will have little effect given that the Mac machines are practically unmigratable. Signed-off-by: Mark Cave-Ayland Acked-by: John Snow Signed-off-by: David Gibson --- hw/ide/macio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/ide/macio.c b/hw/ide/macio.c index ce194c6cec..2e043ef1ea 100644 --- a/hw/ide/macio.c +++ b/hw/ide/macio.c @@ -353,12 +353,14 @@ static const MemoryRegionOps pmac_ide_ops =3D { =20 static const VMStateDescription vmstate_pmac =3D { .name =3D "ide", - .version_id =3D 4, + .version_id =3D 5, .minimum_version_id =3D 0, .fields =3D (VMStateField[]) { VMSTATE_IDE_BUS(bus, MACIOIDEState), VMSTATE_IDE_DRIVES(bus.ifs, MACIOIDEState), VMSTATE_BOOL(dma_active, MACIOIDEState), + VMSTATE_UINT32(timing_reg, MACIOIDEState), + VMSTATE_UINT32(irq_reg, MACIOIDEState), VMSTATE_END_OF_LIST() } }; --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214261591282.63814526650856; Mon, 16 Oct 2017 21:24:21 -0700 (PDT) Received: from localhost ([::1]:36345 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JQI-0001AC-9J for importer@patchew.org; Tue, 17 Oct 2017 00:24:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50274) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOP-0008GJ-HD for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOO-0006rU-Io for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:13 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:40373) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JON-0006pr-Rs; Tue, 17 Oct 2017 00:22:12 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTp5sXFz9sPk; Tue, 17 Oct 2017 15:22:06 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214126; bh=EnLk2jKAWSKDJ3IlL43VtnPT/AKGvMDT5ls87o732AY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GbJdRwZ1d2JaMUH/aHjmMu7TRp+RXCk8piSzXY/TsQYraT+teyRMCQBXhKb9aXSV1 ZXbUgmJOLR4LwPHfn2+JEnmpaOZOydpptgD/NkSNlKC7YiaSOvMrGYeL4vJxA3KLob IgiGT9Bq77xrhNYWAusEjUcyDpdd3QbbN3/JPYz4= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:20 +1100 Message-Id: <20171017042152.29443-3-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 02/34] hw/ppc: use 0 instead of fdt_path_offset(fdt, "/") X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Greg Kurz The offset of the root node is guaranteed to be 0. This doesn't fix anything, it's just trivial cleanup of the two remaining places where this was done under hw/ppc. Signed-off-by: Greg Kurz Reviewed-by: C=C3=A9dric Le Goater Reviewed-by: Daniel Henrique Barboza Signed-off-by: David Gibson --- hw/ppc/pnv.c | 3 +-- hw/ppc/spapr.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index d46d91c76f..84b2389ea6 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -92,8 +92,7 @@ static int get_cpus_node(void *fdt) int cpus_offset =3D fdt_path_offset(fdt, "/cpus"); =20 if (cpus_offset < 0) { - cpus_offset =3D fdt_add_subnode(fdt, fdt_path_offset(fdt, "/"), - "cpus"); + cpus_offset =3D fdt_add_subnode(fdt, 0, "cpus"); if (cpus_offset) { _FDT((fdt_setprop_cell(fdt, cpus_offset, "#address-cells", 0x1= ))); _FDT((fdt_setprop_cell(fdt, cpus_offset, "#size-cells", 0x0))); diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index ff87f155d5..352ff3d614 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -353,8 +353,7 @@ static int spapr_fixup_cpu_dt(void *fdt, sPAPRMachineSt= ate *spapr) =20 cpus_offset =3D fdt_path_offset(fdt, "/cpus"); if (cpus_offset < 0) { - cpus_offset =3D fdt_add_subnode(fdt, fdt_path_offset(fdt, "/"), - "cpus"); + cpus_offset =3D fdt_add_subnode(fdt, 0, "cpus"); if (cpus_offset < 0) { return cpus_offset; } --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214264776707.3956173443961; Mon, 16 Oct 2017 21:24:24 -0700 (PDT) Received: from localhost ([::1]:36346 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JQQ-0001Gf-Rk for importer@patchew.org; Tue, 17 Oct 2017 00:24:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50284) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOQ-0008GL-2E for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOO-0006rj-Jq for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:14 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:34619) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JON-0006ps-Rb; Tue, 17 Oct 2017 00:22:12 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTq2N2sz9t0F; Tue, 17 Oct 2017 15:22:06 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214127; bh=0TnMUz1fmMIHc+EueyI7BJpFexl5au1yvszYqbugvao=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EiPHVJXynyPR1WhZxEznDOL5pwjBgNtfNvdfNUSSkuUrEIMxpnkuCQoCBIltPQFRV EWGDA1sRhdlqlEjZzQ1A4S/iRWadwx4QYrbXvrhGzROfOHs5eguT69H57pZvjUG7r2 oAXTnB2MmanjPGv2Bfw5QIw7rAQS2nXkIOEhqXU4= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:21 +1100 Message-Id: <20171017042152.29443-4-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 03/34] target/ppc: Remove unused PPC 460 and 460F definitions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, Thomas Huth , ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Thomas Huth We don't have any 460 or 460F CPUs in QEMU, so the init functions are just dead code. Let's simply remove them (translate_init.c is already big enough without them). Signed-off-by: Thomas Huth Signed-off-by: David Gibson --- target/ppc/translate_init.c | 217 ----------------------------------------= ---- 1 file changed, 217 deletions(-) diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c index c6399a3a0d..0d6379fcc5 100644 --- a/target/ppc/translate_init.c +++ b/target/ppc/translate_init.c @@ -4176,223 +4176,6 @@ POWERPC_FAMILY(440x5wDFPU)(ObjectClass *oc, void *d= ata) POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK; } =20 -static void init_proc_460 (CPUPPCState *env) -{ - /* Time base */ - gen_tbl(env); - gen_spr_BookE(env, 0x000000000000FFFFULL); - gen_spr_440(env); - gen_spr_usprgh(env); - /* Processor identification */ - spr_register(env, SPR_BOOKE_PIR, "PIR", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_pir, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_BOOKE_IAC3, "IAC3", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_BOOKE_IAC4, "IAC4", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_BOOKE_DVC1, "DVC1", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_BOOKE_DVC2, "DVC2", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_BOOKE_MCSR, "MCSR", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - spr_register(env, SPR_BOOKE_MCSRR0, "MCSRR0", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - spr_register(env, SPR_BOOKE_MCSRR1, "MCSRR1", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_440_CCR1, "CCR1", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_DCRIPR, "SPR_DCRIPR", - &spr_read_generic, &spr_write_generic, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* Memory management */ -#if !defined(CONFIG_USER_ONLY) - env->nb_tlb =3D 64; - env->nb_ways =3D 1; - env->id_tlbs =3D 0; - env->tlb_type =3D TLB_EMB; -#endif - init_excp_BookE(env); - env->dcache_line_size =3D 32; - env->icache_line_size =3D 32; - /* XXX: TODO: allocate internal IRQ controller */ - - SET_FIT_PERIOD(12, 16, 20, 24); - SET_WDT_PERIOD(20, 24, 28, 32); -} - -POWERPC_FAMILY(460)(ObjectClass *oc, void *data) -{ - DeviceClass *dc =3D DEVICE_CLASS(oc); - PowerPCCPUClass *pcc =3D POWERPC_CPU_CLASS(oc); - - dc->desc =3D "PowerPC 460 (guessed)"; - pcc->init_proc =3D init_proc_460; - pcc->check_pow =3D check_pow_nocheck; - pcc->insns_flags =3D PPC_INSNS_BASE | PPC_STRING | - PPC_DCR | PPC_DCRX | PPC_DCRUX | - PPC_WRTEE | PPC_MFAPIDI | PPC_MFTB | - PPC_CACHE | PPC_CACHE_ICBI | - PPC_CACHE_DCBZ | PPC_CACHE_DCBA | - PPC_MEM_TLBSYNC | PPC_TLBIVA | - PPC_BOOKE | PPC_4xx_COMMON | PPC_405_MAC | - PPC_440_SPEC; - pcc->msr_mask =3D (1ull << MSR_POW) | - (1ull << MSR_CE) | - (1ull << MSR_EE) | - (1ull << MSR_PR) | - (1ull << MSR_FP) | - (1ull << MSR_ME) | - (1ull << MSR_FE0) | - (1ull << MSR_DWE) | - (1ull << MSR_DE) | - (1ull << MSR_FE1) | - (1ull << MSR_IR) | - (1ull << MSR_DR); - pcc->mmu_model =3D POWERPC_MMU_BOOKE; - pcc->excp_model =3D POWERPC_EXCP_BOOKE; - pcc->bus_model =3D PPC_FLAGS_INPUT_BookE; - pcc->bfd_mach =3D bfd_mach_ppc_403; - pcc->flags =3D POWERPC_FLAG_CE | POWERPC_FLAG_DWE | - POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK; -} - -static void init_proc_460F(CPUPPCState *env) -{ - /* Time base */ - gen_tbl(env); - gen_spr_BookE(env, 0x000000000000FFFFULL); - gen_spr_440(env); - gen_spr_usprgh(env); - /* Processor identification */ - spr_register(env, SPR_BOOKE_PIR, "PIR", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_pir, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_BOOKE_IAC3, "IAC3", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_BOOKE_IAC4, "IAC4", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_BOOKE_DVC1, "DVC1", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_BOOKE_DVC2, "DVC2", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_BOOKE_MCSR, "MCSR", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - spr_register(env, SPR_BOOKE_MCSRR0, "MCSRR0", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - spr_register(env, SPR_BOOKE_MCSRR1, "MCSRR1", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_440_CCR1, "CCR1", - SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* XXX : not implemented */ - spr_register(env, SPR_DCRIPR, "SPR_DCRIPR", - &spr_read_generic, &spr_write_generic, - &spr_read_generic, &spr_write_generic, - 0x00000000); - /* Memory management */ -#if !defined(CONFIG_USER_ONLY) - env->nb_tlb =3D 64; - env->nb_ways =3D 1; - env->id_tlbs =3D 0; - env->tlb_type =3D TLB_EMB; -#endif - init_excp_BookE(env); - env->dcache_line_size =3D 32; - env->icache_line_size =3D 32; - /* XXX: TODO: allocate internal IRQ controller */ - - SET_FIT_PERIOD(12, 16, 20, 24); - SET_WDT_PERIOD(20, 24, 28, 32); -} - -POWERPC_FAMILY(460F)(ObjectClass *oc, void *data) -{ - DeviceClass *dc =3D DEVICE_CLASS(oc); - PowerPCCPUClass *pcc =3D POWERPC_CPU_CLASS(oc); - - dc->desc =3D "PowerPC 460F (guessed)"; - pcc->init_proc =3D init_proc_460F; - pcc->check_pow =3D check_pow_nocheck; - pcc->insns_flags =3D PPC_INSNS_BASE | PPC_STRING | - PPC_FLOAT | PPC_FLOAT_FRES | PPC_FLOAT_FSEL | - PPC_FLOAT_FSQRT | PPC_FLOAT_FRSQRTE | - PPC_FLOAT_STFIWX | PPC_MFTB | - PPC_DCR | PPC_DCRX | PPC_DCRUX | - PPC_WRTEE | PPC_MFAPIDI | - PPC_CACHE | PPC_CACHE_ICBI | - PPC_CACHE_DCBZ | PPC_CACHE_DCBA | - PPC_MEM_TLBSYNC | PPC_TLBIVA | - PPC_BOOKE | PPC_4xx_COMMON | PPC_405_MAC | - PPC_440_SPEC; - pcc->msr_mask =3D (1ull << MSR_POW) | - (1ull << MSR_CE) | - (1ull << MSR_EE) | - (1ull << MSR_PR) | - (1ull << MSR_FP) | - (1ull << MSR_ME) | - (1ull << MSR_FE0) | - (1ull << MSR_DWE) | - (1ull << MSR_DE) | - (1ull << MSR_FE1) | - (1ull << MSR_IR) | - (1ull << MSR_DR); - pcc->mmu_model =3D POWERPC_MMU_BOOKE; - pcc->excp_model =3D POWERPC_EXCP_BOOKE; - pcc->bus_model =3D PPC_FLAGS_INPUT_BookE; - pcc->bfd_mach =3D bfd_mach_ppc_403; - pcc->flags =3D POWERPC_FLAG_CE | POWERPC_FLAG_DWE | - POWERPC_FLAG_DE | POWERPC_FLAG_BUS_CLK; -} - static void init_proc_MPC5xx(CPUPPCState *env) { /* Time base */ --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214278767148.5930530076896; Mon, 16 Oct 2017 21:24:38 -0700 (PDT) Received: from localhost ([::1]:36347 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JQf-0001Tr-2V for importer@patchew.org; Tue, 17 Oct 2017 00:24:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50349) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOS-0008HI-SN for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOO-0006rh-Jv for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:16 -0400 Received: from ozlabs.org ([103.22.144.67]:41203) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JON-0006pt-Rh; Tue, 17 Oct 2017 00:22:12 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTq1M66z9sRm; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214127; bh=Yh/KtC5tAx0B3enNVNJ4qsy8lNjlZw4fAz9uH5InfkU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UOV6nGv4AxGk5/gqAMYCVoRQguKEw4xzaMtVdCjKAglgnunJl+LMMUdsKGW4i2wH+ r2px7LVFlMxxkpqHuV4VS6HoQuTZwvCKWkFqbff4+kkHuKMCEq6lKr59MKjrC7W3CQ 1VEIY2Itxy7QsXNauKRqy16RbCtZoXU1NJrjUmOo= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:22 +1100 Message-Id: <20171017042152.29443-5-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 04/34] spapr: fix OF word name in comment X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Greg Kurz Signed-off-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 352ff3d614..b284e0b9d4 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2334,7 +2334,8 @@ static void ppc_spapr_init(MachineState *machine) /* Set up Interrupt Controller before we create the VCPUs */ xics_system_init(machine, XICS_IRQS_SPAPR, &error_fatal); =20 - /* Set up containers for ibm,client-set-architecture negotiated option= s */ + /* Set up containers for ibm,client-architecture-support negotiated op= tions + */ spapr->ov5 =3D spapr_ovec_new(); spapr->ov5_cas =3D spapr_ovec_new(); =20 --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214278769707.176855197973; Mon, 16 Oct 2017 21:24:38 -0700 (PDT) Received: from localhost ([::1]:36348 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JQf-0001UM-Dx for importer@patchew.org; Tue, 17 Oct 2017 00:24:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50378) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOT-0008Hp-It for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOR-0006vE-VS for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:17 -0400 Received: from ozlabs.org ([103.22.144.67]:48819) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOR-0006sA-Kz; Tue, 17 Oct 2017 00:22:15 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTq6GCCz9t2S; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214127; bh=VJHQGGV+s9rKGLqFQr4nMXYKsCXLbcOLLVooI6aPgK4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B87ZS/RvKcDnvA773kDRBh1pXQEv3aBkWUDT0hs8OTsbHWcWGX+i6haftHyEtn346 o/cCJ6/jEc2dwUSaznN2fuflNrbsPcQnJIEnOXjSkXyjJh+ZYy5qMmPVR55o+DI+6L jC1MChtcL+IBosMi3UhIHHGum2ZZn/mr/EDSSig8= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:23 +1100 Message-Id: <20171017042152.29443-6-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 05/34] spapr: sanity check size of the CAS buffer X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Greg Kurz The CAS buffer is provided by SLOF. A broken SLOF could pass a silly size: either smaller than the diff header, in which case the current code will try to allocate 16 Exabytes of memory and g_malloc0() will abort, or bigger than the maximum memory provisioned for SLOF (ie, 40 Megabytes), which doesn't make sense. Both cases indicate that SLOF has a bug. Let's print out an explicit error message and exit since rebooting as we do with other errors would only result in a reset loop. Signed-off-by: Greg Kurz [dwg: Fix format specifier that broke 32-bit builds] Signed-off-by: David Gibson --- hw/ppc/spapr.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index b284e0b9d4..079e493ef4 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -819,6 +819,13 @@ int spapr_h_cas_compose_response(sPAPRMachineState *sp= apr, return 1; } =20 + if (size < sizeof(hdr) || size > FW_MAX_SIZE) { + error_report("SLOF provided an unexpected CAS buffer size " + TARGET_FMT_lu " (min: %zu, max: %u)", + size, sizeof(hdr), FW_MAX_SIZE); + exit(EXIT_FAILURE); + } + size -=3D sizeof(hdr); =20 /* Create skeleton */ --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214897111643.2268701570433; Mon, 16 Oct 2017 21:34:57 -0700 (PDT) Received: from localhost ([::1]:36397 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jae-0001xO-Bw for importer@patchew.org; Tue, 17 Oct 2017 00:34:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50408) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOU-0008J8-Ba for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOT-0006wf-5y for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:18 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:54607) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOS-0006s2-Rb; Tue, 17 Oct 2017 00:22:17 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTq3LPpz9sRq; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214127; bh=G4RVCbI3bIGw8JnrXZgS6AG3fQS7hhhdGzIwbRY7/wY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JWvDcmo3ix08VyqzqMJsx+QZw2iVCcKSZIJPGayDEdqrV2+lsHX46a2HnQbBMjfql kmYC9vUp3xlxHBVxwziGDJgmvshfhl7rj8TM3LPlWnGKxi3H8bGl5i70wiSbZYhLTs tJQXiZy2CssPdboLhFpzLj+jg1UyOxtTW7Qv0cQo= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:24 +1100 Message-Id: <20171017042152.29443-7-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 06/34] target/ppc: Add POWER9 DD2.0 model information X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" At the moment the only POWER9 model which is listed in qemu is v1.0 (aka "DD1"). This is a very early (read, buggy) version which will never be released to the public - it was included in qemu only for the convenience of those doing bringup on the early silicon. For bonus points, we actually had its PVR incorrect in the table (0x004e0000 instead of 0x004e0100). We also never actually implemented the differences in behaviour (read, bugs) that marked DD1 in qemu. Now that we know the PVR for the substantially better v2.0 (DD2) chip, include it and make it the default POWER9 in qemu. For the time being we leave the DD1 definition in place for the poor souls (read, me) who still need to work with DD1 hardware. Signed-off-by: David Gibson --- hw/ppc/spapr_cpu_core.c | 1 + target/ppc/cpu-models.c | 6 ++++-- target/ppc/cpu-models.h | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 3e20b1d886..37beb56e8b 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -296,6 +296,7 @@ static const char *spapr_core_models[] =3D { =20 /* POWER9 */ "power9_v1.0", + "power9_v2.0", }; =20 static Property spapr_cpu_core_properties[] =3D { diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c index 9d45702843..6c9bfde2d2 100644 --- a/target/ppc/cpu-models.c +++ b/target/ppc/cpu-models.c @@ -756,8 +756,10 @@ POWERPC_DEF("970_v2.2", CPU_POWERPC_970_v22, 970, "PowerPC 970 v2.2") =20 - POWERPC_DEF("power9_v1.0", CPU_POWERPC_POWER9_BASE, POWER= 9, + POWERPC_DEF("power9_v1.0", CPU_POWERPC_POWER9_DD1, POWER= 9, "POWER9 v1.0") + POWERPC_DEF("power9_v2.0", CPU_POWERPC_POWER9_DD20, POWER= 9, + "POWER9 v2.0") =20 POWERPC_DEF("970fx_v1.0", CPU_POWERPC_970FX_v10, 970, "PowerPC 970FX v1.0 (G5)") @@ -945,7 +947,7 @@ PowerPCCPUAlias ppc_cpu_aliases[] =3D { { "power8e", "power8e_v2.1" }, { "power8", "power8_v2.0" }, { "power8nvl", "power8nvl_v1.0" }, - { "power9", "power9_v1.0" }, + { "power9", "power9_v2.0" }, { "970", "970_v2.2" }, { "970fx", "970fx_v3.1" }, { "970mp", "970mp_v1.1" }, diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h index 25ef372d4c..efdb2fa53c 100644 --- a/target/ppc/cpu-models.h +++ b/target/ppc/cpu-models.h @@ -372,6 +372,7 @@ enum { CPU_POWERPC_POWER8NVL_v10 =3D 0x004C0100, CPU_POWERPC_POWER9_BASE =3D 0x004E0000, CPU_POWERPC_POWER9_DD1 =3D 0x004E0100, + CPU_POWERPC_POWER9_DD20 =3D 0x004E1200, CPU_POWERPC_970_v22 =3D 0x00390202, CPU_POWERPC_970FX_v10 =3D 0x00391100, CPU_POWERPC_970FX_v20 =3D 0x003C0200, --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214432850901.88665056342; Mon, 16 Oct 2017 21:27:12 -0700 (PDT) Received: from localhost ([::1]:36361 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JTE-0003ix-3g for importer@patchew.org; Tue, 17 Oct 2017 00:27:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50376) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOT-0008Hm-Hg for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOR-0006ux-TO for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:17 -0400 Received: from ozlabs.org ([103.22.144.67]:44921) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOR-0006s3-I1; Tue, 17 Oct 2017 00:22:15 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTq4X1Qz9t1G; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214127; bh=yhE1kdaeu9f+yl7beBwUtP9oGgtlYCnj1LA0I7XcROs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PcnaY9VzFp2bPFN9U3nUdTC4Xn19OL+LvVkEdR+DT1T9jPYU+lL35Dkj0CBifCwt5 OXJoe2pOs1DbhzYl+izKUaa9DlKobc+KfFNGs7/xcmE5cVa7mHVW7zVYx6RNnAv4qV l4rc1SEPn7RYVYFF3DYvkSCas16oEbCSFUiSTFbU= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:25 +1100 Message-Id: <20171017042152.29443-8-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 07/34] target/ppc: Fix carry flag setting for shift algebraic instructions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, Sandipan Das , qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Sandipan Das For POWER ISA v3.0, the XER bit CA32 needs to be set by the shift right algebraic instructions whenever the CA bit is to be set. This change affects the following instructions: * Shift Right Algebraic Word (sraw[.]) * Shift Right Algebraic Word Immediate (srawi[.]) * Shift Right Algebraic Doubleword (srad[.]) * Shift Right Algebraic Doubleword Immediate (sradi[.]) Signed-off-by: Sandipan Das Reviewed-by: Richard Henderson Signed-off-by: David Gibson --- target/ppc/int_helper.c | 16 ++++++++-------- target/ppc/translate.c | 12 ++++++++++++ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c index da4e1a62c9..1c013a0ee3 100644 --- a/target/ppc/int_helper.c +++ b/target/ppc/int_helper.c @@ -219,17 +219,17 @@ target_ulong helper_sraw(CPUPPCState *env, target_ulo= ng value, shift &=3D 0x1f; ret =3D (int32_t)value >> shift; if (likely(ret >=3D 0 || (value & ((1 << shift) - 1)) =3D=3D 0= )) { - env->ca =3D 0; + env->ca32 =3D env->ca =3D 0; } else { - env->ca =3D 1; + env->ca32 =3D env->ca =3D 1; } } else { ret =3D (int32_t)value; - env->ca =3D 0; + env->ca32 =3D env->ca =3D 0; } } else { ret =3D (int32_t)value >> 31; - env->ca =3D (ret !=3D 0); + env->ca32 =3D env->ca =3D (ret !=3D 0); } return (target_long)ret; } @@ -245,17 +245,17 @@ target_ulong helper_srad(CPUPPCState *env, target_ulo= ng value, shift &=3D 0x3f; ret =3D (int64_t)value >> shift; if (likely(ret >=3D 0 || (value & ((1ULL << shift) - 1)) =3D= =3D 0)) { - env->ca =3D 0; + env->ca32 =3D env->ca =3D 0; } else { - env->ca =3D 1; + env->ca32 =3D env->ca =3D 1; } } else { ret =3D (int64_t)value; - env->ca =3D 0; + env->ca32 =3D env->ca =3D 0; } } else { ret =3D (int64_t)value >> 63; - env->ca =3D (ret !=3D 0); + env->ca32 =3D env->ca =3D (ret !=3D 0); } return ret; } diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 606b605ba0..a81ff69d75 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -2181,6 +2181,9 @@ static void gen_srawi(DisasContext *ctx) if (sh =3D=3D 0) { tcg_gen_ext32s_tl(dst, src); tcg_gen_movi_tl(cpu_ca, 0); + if (is_isa300(ctx)) { + tcg_gen_movi_tl(cpu_ca32, 0); + } } else { TCGv t0; tcg_gen_ext32s_tl(dst, src); @@ -2190,6 +2193,9 @@ static void gen_srawi(DisasContext *ctx) tcg_gen_and_tl(cpu_ca, cpu_ca, t0); tcg_temp_free(t0); tcg_gen_setcondi_tl(TCG_COND_NE, cpu_ca, cpu_ca, 0); + if (is_isa300(ctx)) { + tcg_gen_mov_tl(cpu_ca32, cpu_ca); + } tcg_gen_sari_tl(dst, dst, sh); } if (unlikely(Rc(ctx->opcode) !=3D 0)) { @@ -2259,6 +2265,9 @@ static inline void gen_sradi(DisasContext *ctx, int n) if (sh =3D=3D 0) { tcg_gen_mov_tl(dst, src); tcg_gen_movi_tl(cpu_ca, 0); + if (is_isa300(ctx)) { + tcg_gen_movi_tl(cpu_ca32, 0); + } } else { TCGv t0; tcg_gen_andi_tl(cpu_ca, src, (1ULL << sh) - 1); @@ -2267,6 +2276,9 @@ static inline void gen_sradi(DisasContext *ctx, int n) tcg_gen_and_tl(cpu_ca, cpu_ca, t0); tcg_temp_free(t0); tcg_gen_setcondi_tl(TCG_COND_NE, cpu_ca, cpu_ca, 0); + if (is_isa300(ctx)) { + tcg_gen_mov_tl(cpu_ca32, cpu_ca); + } tcg_gen_sari_tl(dst, src, sh); } if (unlikely(Rc(ctx->opcode) !=3D 0)) { --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 150821459174335.940567609113145; Mon, 16 Oct 2017 21:29:51 -0700 (PDT) Received: from localhost ([::1]:36371 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JVh-0005va-RO for importer@patchew.org; Tue, 17 Oct 2017 00:29:45 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50391) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOT-0008IC-S2 for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOS-0006vc-AY for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:17 -0400 Received: from ozlabs.org ([103.22.144.67]:45247) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOR-0006s5-Va; Tue, 17 Oct 2017 00:22:16 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTq5Vmkz9t2Q; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214127; bh=GBRH10Lmv89cs6cKDkcHX0K1PgNr+h3t9RmcrjhG3xo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oFDTb4oOJMGWErkl/p7ECkhX0tKSfuGZv9hSjYBoDkcfsLl9b29QnB4sjtSdtBIMk tixpztb4wFpsR7srO3yam8BOEThTmquKBppcKoYZWKV4Lh6IVbG9Vhy3wef61sscO1 01c60n1T84D6nczG+GnqsvhJvIakaRGunyLGPrI4= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:26 +1100 Message-Id: <20171017042152.29443-9-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 08/34] hw/ppc/spapr.c: abort unplug_request if previous unplug isn't done X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, Daniel Henrique Barboza , David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza LMB removal is completed only when the spapr_lmb_release callback is called after all DRCs of the dimm are detached. During this time, it is possible that a unplug request for the same dimm arrives, trying to detach DRCs that were detached by the guest in the first unplug_request. BQL doesn't help in this case - the lock will prevent any concurrent removal from happening until the end of spapr_memory_unplug_request only. What happens is that the second unplug_request ends up calling spapr_drc_detach in a DRC that were detached already, causing an assert error in spapr_drc_detach (e.g https://bugs.launchpad.net/qemu/+bug/1718118). spapr_lmb_release uses a structure called sPAPRDIMMState, stored in the spapr->pending_dimm_unplugs QTAIL, to track how many LMB DRCs are left to be detached by the guest. When there are no more DRCs left, this structure is deleted and the pc-dimm unplug handler is called to finish the process. This patch reuses the sPAPRDIMMState to allow unplug_request to know if there is an ongoing unplug process for a given dimm, aborting the unplug request in this case, by doing the following changes: - in spapr_lmb_release callback, move the dimm state removal to the end, after pc-dimm unplug handler. With this change we can check for the existence of the dimm state to see if the unplug process is done. - use spapr_pending_dimm_unplugs_find in spapr_memory_unplug_request to check if the dimm state exists. If positive, there is an unplug operation already in progress for this dimm, meaning that we should abort it and warn the user about it. Fixes: https://bugs.launchpad.net/qemu/+bug/1718118 Signed-off-by: Daniel Henrique Barboza Signed-off-by: David Gibson --- hw/ppc/spapr.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 079e493ef4..147fd2cfd3 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3061,14 +3061,13 @@ void spapr_lmb_release(DeviceState *dev) return; } =20 - spapr_pending_dimm_unplugs_remove(spapr, ds); - /* * Now that all the LMBs have been removed by the guest, call the * pc-dimm unplug handler to cleanup up the pc-dimm device. */ pc_dimm_memory_unplug(dev, &spapr->hotplug_memory, mr); object_unparent(OBJECT(dev)); + spapr_pending_dimm_unplugs_remove(spapr, ds); } =20 static void spapr_memory_unplug_request(HotplugHandler *hotplug_dev, @@ -3097,6 +3096,19 @@ static void spapr_memory_unplug_request(HotplugHandl= er *hotplug_dev, goto out; } =20 + /* + * An existing pending dimm state for this DIMM means that there is an + * unplug operation in progress, waiting for the spapr_lmb_release + * callback to complete the job (BQL can't cover that far). In this ca= se, + * bail out to avoid detaching DRCs that were already released. + */ + if (spapr_pending_dimm_unplugs_find(spapr, dimm)) { + error_setg(&local_err, + "Memory unplug already in progress for device %s", + dev->id); + goto out; + } + spapr_pending_dimm_unplugs_add(spapr, nr_lmbs, dimm); =20 addr =3D addr_start; --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215116164262.2486347509024; Mon, 16 Oct 2017 21:38:36 -0700 (PDT) Received: from localhost ([::1]:36415 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JeA-0005He-CI for importer@patchew.org; Tue, 17 Oct 2017 00:38:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50566) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOZ-0008MU-0f for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOW-000720-6q for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:22 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:44211) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOV-0006vm-PI; Tue, 17 Oct 2017 00:22:20 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTt5r9bz9t32; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214130; bh=X1HrGIDz7egO5OvJpCA2bWyriMxAUnlvQPQR5nJ22Bc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jQ2LqRboXR8ouOEQjyE83j9dPdSYNtMhDvKfFSjUdmUfKvsCGGnM+shXisG7H26au jyaxCOLoI391orHRvQhWWTBpi92FhNNodLQRgPoO6GELd3U/NqbD95kAQeLeHrnH+/ GWVw7Jxv9Q2YpD1wdheB5u5RcYyHNW1wYQD1hbrY= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:27 +1100 Message-Id: <20171017042152.29443-10-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 09/34] qom: introduce type_register_static_array() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov it will help to remove code duplication of registration static types in places that have open coded loop to perform batch type registering. Signed-off-by: Igor Mammedov Reviewed-by: Eduardo Habkost Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: David Gibson Signed-off-by: David Gibson --- include/qom/object.h | 10 ++++++++++ qom/object.c | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index a707b67781..9a2369c67b 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -789,6 +789,16 @@ Type type_register_static(const TypeInfo *info); Type type_register(const TypeInfo *info); =20 /** + * type_register_static_array: + * @infos: The array of the new type #TypeInfo structures. + * @nr_infos: number of entries in @infos + * + * @infos and all of the strings it points to should exist for the life ti= me + * that the type is registered. + */ +void type_register_static_array(const TypeInfo *infos, int nr_infos); + +/** * object_class_dynamic_cast_assert: * @klass: The #ObjectClass to attempt to cast. * @typename: The QOM typename of the class to cast to. diff --git a/qom/object.c b/qom/object.c index 6a7bd9257b..c58c52d518 100644 --- a/qom/object.c +++ b/qom/object.c @@ -151,6 +151,15 @@ TypeImpl *type_register_static(const TypeInfo *info) return type_register(info); } =20 +void type_register_static_array(const TypeInfo *infos, int nr_infos) +{ + int i; + + for (i =3D 0; i < nr_infos; i++) { + type_register_static(&infos[i]); + } +} + static TypeImpl *type_get_by_name(const char *name) { if (name =3D=3D NULL) { --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214575853175.7041804034826; Mon, 16 Oct 2017 21:29:35 -0700 (PDT) Received: from localhost ([::1]:36370 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JVX-0005lE-4O for importer@patchew.org; Tue, 17 Oct 2017 00:29:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50387) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOT-0008I6-Pd for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOS-0006vo-D3 for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:17 -0400 Received: from ozlabs.org ([103.22.144.67]:44847) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOS-0006sB-1t; Tue, 17 Oct 2017 00:22:16 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTr0KLNz9t3Z; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214128; bh=OFgYO16KM3+q+Z1ELAG0MKeVzr/JIumrvaUCpjVR2D4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ewCtsxZyAFmKkHEMeH3ZX0I8m5uYPOO8nDPB1+5Ld57oP3VLqL4BgYvlaAqnUzwmi UXtbQGAY0KTm3X0k19EJcO/HQ4QNJ8W/Ax2hhyNeVGCrlEopZ8ERhsQLq9jf7zM1XA m9U3g/SAN2PyBFR9FOrZmVuSjIYSS9A0xhkNP9Nk= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:28 +1100 Message-Id: <20171017042152.29443-11-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 10/34] qom: add helper macro DEFINE_TYPES() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_6 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov DEFINE_TYPES() will help to simplify following routine patterns: static void foo_register_types(void) { type_register_static(&foo1_type_info); type_register_static(&foo2_type_info); ... } type_init(foo_register_types) or static void foo_register_types(void) { int i; for (i =3D 0; i < ARRAY_SIZE(type_infos); i++) { type_register_static(&type_infos[i]); } } type_init(foo_register_types) with a single line DEFINE_TYPES(type_infos) where types have static definition which could be consolidated in a single array of TypeInfo structures. It saves us ~6-10LOC per use case and would help to replace imperative foo_register_types() there with declarative style of type registration. Signed-off-by: Igor Mammedov Reviewed-by: Eduardo Habkost Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: David Gibson Signed-off-by: David Gibson --- include/qom/object.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index 9a2369c67b..dc73d59660 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -79,6 +79,28 @@ typedef struct InterfaceInfo InterfaceInfo; * #TypeInfo describes information about the type including what it inheri= ts * from, the instance and class size, and constructor/destructor hooks. * + * Alternatively several static types could be registered using helper mac= ro + * DEFINE_TYPES() + * + * + * + * static const TypeInfo device_types_info[] =3D { + * { + * .name =3D TYPE_MY_DEVICE_A, + * .parent =3D TYPE_DEVICE, + * .instance_size =3D sizeof(MyDeviceA), + * }, + * { + * .name =3D TYPE_MY_DEVICE_B, + * .parent =3D TYPE_DEVICE, + * .instance_size =3D sizeof(MyDeviceB), + * }, + * }; + * + * DEFINE_TYPES(device_types_info) + * + * + * * Every type has an #ObjectClass associated with it. #ObjectClass deriva= tives * are instantiated dynamically but there is only ever one instance for any * given type. The #ObjectClass typically holds a table of function point= ers @@ -799,6 +821,20 @@ Type type_register(const TypeInfo *info); void type_register_static_array(const TypeInfo *infos, int nr_infos); =20 /** + * DEFINE_TYPES: + * @type_array: The array containing #TypeInfo structures to register + * + * @type_array should be static constant that exists for the life time + * that the type is registered. + */ +#define DEFINE_TYPES(type_array) = \ +static void do_qemu_init_ ## type_array(void) = \ +{ = \ + type_register_static_array(type_array, ARRAY_SIZE(type_array)); = \ +} = \ +type_init(do_qemu_init_ ## type_array) + +/** * object_class_dynamic_cast_assert: * @klass: The #ObjectClass to attempt to cast. * @typename: The QOM typename of the class to cast to. --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214741784504.4804021795675; Mon, 16 Oct 2017 21:32:21 -0700 (PDT) Received: from localhost ([::1]:36389 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JYD-0008Gc-2M for importer@patchew.org; Tue, 17 Oct 2017 00:32:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50488) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOW-0008LK-3s for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOU-0006ys-U2 for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:20 -0400 Received: from ozlabs.org ([103.22.144.67]:37441) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOU-0006vj-JY; Tue, 17 Oct 2017 00:22:18 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTt3z8nz9t39; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214130; bh=efZLSTzgNKr03DmS9bEGbDBocUJiXZIcEZ9f35IQX5E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KVEBvMLHOn1sLqmgWgZ+DHd/KdsJ7TivTMBbWUAbR/A1opF1H0fcL0ljrLA8CrM27 BdC6op+vXDkUBjmbfRj9hnj+GyzaSkHAoeBiCwmZOwbV9uKA0xWLciKQtFcTlll3qf CCrzUETeVI1rWan20pAMYWpuC0PPSrX48RZg+i5g= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:29 +1100 Message-Id: <20171017042152.29443-12-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 11/34] ppc: mpc8544ds/e500plat: use generic cpu_model parsing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_6 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/e500.c | 8 +------- hw/ppc/e500plat.c | 1 + hw/ppc/mpc8544ds.c | 2 ++ 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index db0e49ab8f..9178e70132 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -803,11 +803,6 @@ void ppce500_init(MachineState *machine, PPCE500Params= *params) SysBusDevice *s; PPCE500CCSRState *ccsr; =20 - /* Setup CPUs */ - if (machine->cpu_model =3D=3D NULL) { - machine->cpu_model =3D "e500v2_v30"; - } - irqs =3D g_malloc0(smp_cpus * sizeof(qemu_irq *)); irqs[0] =3D g_malloc0(smp_cpus * sizeof(qemu_irq) * OPENPIC_OUTPUT_NB); for (i =3D 0; i < smp_cpus; i++) { @@ -815,8 +810,7 @@ void ppce500_init(MachineState *machine, PPCE500Params = *params) CPUState *cs; qemu_irq *input; =20 - cpu =3D POWERPC_CPU(cpu_generic_init(TYPE_POWERPC_CPU, - machine->cpu_model)); + cpu =3D POWERPC_CPU(cpu_create(machine->cpu_type)); env =3D &cpu->env; cs =3D CPU(cpu); =20 diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c index 94b454551f..e59e80fb9e 100644 --- a/hw/ppc/e500plat.c +++ b/hw/ppc/e500plat.c @@ -64,6 +64,7 @@ static void e500plat_machine_init(MachineClass *mc) mc->init =3D e500plat_init; mc->max_cpus =3D 32; mc->has_dynamic_sysbus =3D true; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("e500v2_v30"); } =20 DEFINE_MACHINE("ppce500", e500plat_machine_init) diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c index 27b8289016..1717953ec7 100644 --- a/hw/ppc/mpc8544ds.c +++ b/hw/ppc/mpc8544ds.c @@ -16,6 +16,7 @@ #include "sysemu/device_tree.h" #include "hw/ppc/openpic.h" #include "qemu/error-report.h" +#include "cpu.h" =20 static void mpc8544ds_fixup_devtree(PPCE500Params *params, void *fdt) { @@ -55,6 +56,7 @@ static void ppce500_machine_init(MachineClass *mc) mc->desc =3D "mpc8544ds"; mc->init =3D mpc8544ds_init; mc->max_cpus =3D 15; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("e500v2_v30"); } =20 DEFINE_MACHINE("mpc8544ds", ppce500_machine_init) --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 150821442667414.5848558955189; Mon, 16 Oct 2017 21:27:06 -0700 (PDT) Received: from localhost ([::1]:36360 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JT2-0003Yy-UC for importer@patchew.org; Tue, 17 Oct 2017 00:27:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50380) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOT-0008Hs-JI for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOS-0006vv-EN for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:17 -0400 Received: from ozlabs.org ([103.22.144.67]:52031) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOS-0006sD-48; Tue, 17 Oct 2017 00:22:16 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTr0x6Pz9t2l; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214128; bh=pZ5MgWhP9kf2zhILqcIZlqXEWHP097LnVzHKNoGOAjY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MIySchlrnT4fMhwggmlCZadfQ3oBIShDeRtWkDWGHE5y4x8J0bNPWKzNTKBWqRvqa yT17JKXL7b6xRMF2ziwDZSEgkiUx7nQ673Dh/afEc0SNQrbAVn+yvtgboQA1nJFpIv KlO1+HvKIEpAXGw1KHRIFb/ofzyJF5Jc2qzyD7Ho= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:30 +1100 Message-Id: <20171017042152.29443-13-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 12/34] ppc: mac_newworld: use generic cpu_model parsing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_6 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/mac_newworld.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c index 6d0ace20ca..3fa7c429d5 100644 --- a/hw/ppc/mac_newworld.c +++ b/hw/ppc/mac_newworld.c @@ -174,16 +174,8 @@ static void ppc_core99_init(MachineState *machine) linux_boot =3D (kernel_filename !=3D NULL); =20 /* init CPUs */ - if (machine->cpu_model =3D=3D NULL) { -#ifdef TARGET_PPC64 - machine->cpu_model =3D "970fx"; -#else - machine->cpu_model =3D "G4"; -#endif - } for (i =3D 0; i < smp_cpus; i++) { - cpu =3D POWERPC_CPU(cpu_generic_init(TYPE_POWERPC_CPU, - machine->cpu_model)); + cpu =3D POWERPC_CPU(cpu_create(machine->cpu_type)); env =3D &cpu->env; =20 /* Set time-base frequency to 100 Mhz */ @@ -520,6 +512,11 @@ static void core99_machine_class_init(ObjectClass *oc,= void *data) mc->max_cpus =3D MAX_CPUS; mc->default_boot_order =3D "cd"; mc->kvm_type =3D core99_kvm_type; +#ifdef TARGET_PPC64 + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("970fx_v3.1"); +#else + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("7400_v2.9"); +#endif } =20 static const TypeInfo core99_machine_info =3D { --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214733421962.7773613113607; Mon, 16 Oct 2017 21:32:13 -0700 (PDT) Received: from localhost ([::1]:36388 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JY1-000881-LE for importer@patchew.org; Tue, 17 Oct 2017 00:32:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50411) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOU-0008JE-Ej for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOT-0006wk-6J for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:18 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:59183) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOS-0006s7-Sf; Tue, 17 Oct 2017 00:22:17 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTr4lDWz9t38; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214128; bh=fINetpFNGgKJ1/cXv8G4mkP8QWK9ihVuz43VR79vH7Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dW6tWjGfYku2KStZvNs+5HDE+e832VHl7lEWhc5L66PjrW39cIedNqYl3PEQo0SYx dtJbqNuSnpyQp0Mq2dReUJSO0RXBM4Gdr+f/csXHoYEqMUXn+pE/Atuieun0z3EADL 4FhBx04oQCvP7+zQn/glFw/SxFT/kscXIcLEIFe8= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:31 +1100 Message-Id: <20171017042152.29443-14-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 13/34] ppc: mac_oldworld: use generic cpu_model parsing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/mac_oldworld.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c index bc7c8b7bd7..010ea36bf2 100644 --- a/hw/ppc/mac_oldworld.c +++ b/hw/ppc/mac_oldworld.c @@ -108,11 +108,8 @@ static void ppc_heathrow_init(MachineState *machine) linux_boot =3D (kernel_filename !=3D NULL); =20 /* init CPUs */ - if (machine->cpu_model =3D=3D NULL) - machine->cpu_model =3D "G3"; for (i =3D 0; i < smp_cpus; i++) { - cpu =3D POWERPC_CPU(cpu_generic_init(TYPE_POWERPC_CPU, - machine->cpu_model)); + cpu =3D POWERPC_CPU(cpu_create(machine->cpu_type)); env =3D &cpu->env; =20 /* Set time-base frequency to 16.6 Mhz */ @@ -385,6 +382,7 @@ static void heathrow_class_init(ObjectClass *oc, void *= data) /* TOFIX "cad" when Mac floppy is implemented */ mc->default_boot_order =3D "cd"; mc->kvm_type =3D heathrow_kvm_type; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("750_v3.1"); } =20 static const TypeInfo ppc_heathrow_machine_info =3D { --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 150821445299922.318370612112403; Mon, 16 Oct 2017 21:27:32 -0700 (PDT) Received: from localhost ([::1]:36362 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JTY-00040I-5o for importer@patchew.org; Tue, 17 Oct 2017 00:27:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50381) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOT-0008Ht-JC for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOS-0006vU-6L for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:17 -0400 Received: from ozlabs.org ([103.22.144.67]:54085) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOR-0006s8-Rh; Tue, 17 Oct 2017 00:22:16 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTq6wY7z9t16; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214127; bh=aVwquspczwuzRi1UQlogKr1WcYRbm0GC8mYE5JUhSg4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B0r1yoIswe16TiYBt29AbZmDi89ndWmGKgO90W4PWhFkk3DOWrJlh83PAQKO9btMT b9e2eEKR3+TbZXI3E9GqaCTnQz/DmwbkMV0eh4Vk9bfSPPsV/YD3YZGMC5Ybq+DjrW ASwSE/c2BKTqXBJ7z4l9Osz8rN7JtUjobIIWiYPc= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:32 +1100 Message-Id: <20171017042152.29443-15-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 14/34] ppc: bamboo: use generic cpu_model parsing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_6 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/ppc440_bamboo.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index f92d47f28d..693c215108 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -182,11 +182,7 @@ static void bamboo_init(MachineState *machine) int success; int i; =20 - /* Setup CPU. */ - if (machine->cpu_model =3D=3D NULL) { - machine->cpu_model =3D "440EP"; - } - cpu =3D POWERPC_CPU(cpu_generic_init(TYPE_POWERPC_CPU, machine->cpu_mo= del)); + cpu =3D POWERPC_CPU(cpu_create(machine->cpu_type)); env =3D &cpu->env; =20 if (env->mmu_model !=3D POWERPC_MMU_BOOKE) { @@ -297,6 +293,7 @@ static void bamboo_machine_init(MachineClass *mc) { mc->desc =3D "bamboo"; mc->init =3D bamboo_init; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("440epb"); } =20 DEFINE_MACHINE("bamboo", bamboo_machine_init) --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215265479466.6830448098473; Mon, 16 Oct 2017 21:41:05 -0700 (PDT) Received: from localhost ([::1]:36430 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jge-0007bP-NI for importer@patchew.org; Tue, 17 Oct 2017 00:41:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50617) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOZ-0008Ml-9v for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOW-00072e-FJ for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:23 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:40405) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOV-0006wC-VK; Tue, 17 Oct 2017 00:22:20 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTv0sTtz9t43; Tue, 17 Oct 2017 15:22:07 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214131; bh=1xMTs5mZ01iQJGUyeQ73QbcWJy9mb8nKVvxZ5zTL5b8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oKaOZUqofCXnFii719KX7bQ7A01I3jbjPBZ+Mo4b/t/8etazOBzn044osmodLQ134 V+R/ihgsOEI+RtSmgquHm2SSswNS1+RJo73De2xdttPZBOBgt5mk4bQUtIiF8yKpfd vH9m8YbKkhQrinGQckLQF2/+2DMGYFsqwf1Z4Hck= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:33 +1100 Message-Id: <20171017042152.29443-16-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 15/34] ppc: replace cpu_model with cpu_type on ref405ep, taihu boards X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/ppc405_uc.c | 6 ++++-- hw/ppc/ppc4xx_devs.c | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c index 8e58065f5f..205ebcea93 100644 --- a/hw/ppc/ppc405_uc.c +++ b/hw/ppc/ppc405_uc.c @@ -1629,7 +1629,8 @@ CPUPPCState *ppc405cr_init(MemoryRegion *address_spac= e_mem, qemu_irq *pic, *irqs; =20 memset(clk_setup, 0, sizeof(clk_setup)); - cpu =3D ppc4xx_init("405cr", &clk_setup[PPC405CR_CPU_CLK], + cpu =3D ppc4xx_init(POWERPC_CPU_TYPE_NAME("405crc"), + &clk_setup[PPC405CR_CPU_CLK], &clk_setup[PPC405CR_TMR_CLK], sysclk); env =3D &cpu->env; /* Memory mapped devices registers */ @@ -1981,7 +1982,8 @@ CPUPPCState *ppc405ep_init(MemoryRegion *address_spac= e_mem, =20 memset(clk_setup, 0, sizeof(clk_setup)); /* init CPUs */ - cpu =3D ppc4xx_init("405ep", &clk_setup[PPC405EP_CPU_CLK], + cpu =3D ppc4xx_init(POWERPC_CPU_TYPE_NAME("405ep"), + &clk_setup[PPC405EP_CPU_CLK], &tlb_clk_setup, sysclk); env =3D &cpu->env; clk_setup[PPC405EP_CPU_CLK].cb =3D tlb_clk_setup.cb; diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c index 6d7f7857fe..2e963894fe 100644 --- a/hw/ppc/ppc4xx_devs.c +++ b/hw/ppc/ppc4xx_devs.c @@ -48,7 +48,7 @@ static void ppc4xx_reset(void *opaque) =20 /*************************************************************************= ****/ /* Generic PowerPC 4xx processor instantiation */ -PowerPCCPU *ppc4xx_init(const char *cpu_model, +PowerPCCPU *ppc4xx_init(const char *cpu_type, clk_setup_t *cpu_clk, clk_setup_t *tb_clk, uint32_t sysclk) { @@ -56,7 +56,7 @@ PowerPCCPU *ppc4xx_init(const char *cpu_model, CPUPPCState *env; =20 /* init CPUs */ - cpu =3D POWERPC_CPU(cpu_generic_init(TYPE_POWERPC_CPU, cpu_model)); + cpu =3D POWERPC_CPU(cpu_create(cpu_type)); env =3D &cpu->env; =20 cpu_clk->cb =3D NULL; /* We don't care about CPU clock frequency chang= es */ --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214731351169.6840533534953; Mon, 16 Oct 2017 21:32:11 -0700 (PDT) Received: from localhost ([::1]:36387 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JXs-0007wN-ED for importer@patchew.org; Tue, 17 Oct 2017 00:32:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50558) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOZ-0008MT-0c for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOW-00072I-CQ for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:21 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:34313) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOV-0006x5-SN; Tue, 17 Oct 2017 00:22:20 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTv52tQz9t3r; Tue, 17 Oct 2017 15:22:08 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214131; bh=JkTHOnk+rXpmUkBBmsWAYZFoEQGOzsu5Zi2DRiFctpA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jh4M5TjP2lLVE4LPU2dNIxjigy/L0uCAebzTcCS+BHl8fW+0ZmAJoKTqAUt2PbUVv KWysYeogWcMQzEm6R7Qk6KYfupMWMRFTZiqMZQkkctT8G4Rkp67lww8uOb4N8iVpBh jiHjRv1RPcvdzsEmGUfdg3fU6/m56RQFlGkQ7dCI= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:34 +1100 Message-Id: <20171017042152.29443-17-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 16/34] ppc: virtex-ml507: replace cpu_model with cpu_type X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/virtex_ml507.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c index ed9b406fd3..5ac4f76613 100644 --- a/hw/ppc/virtex_ml507.c +++ b/hw/ppc/virtex_ml507.c @@ -89,14 +89,14 @@ static void mmubooke_create_initial_mapping(CPUPPCState= *env, =20 static PowerPCCPU *ppc440_init_xilinx(ram_addr_t *ram_size, int do_init, - const char *cpu_model, + const char *cpu_type, uint32_t sysclk) { PowerPCCPU *cpu; CPUPPCState *env; qemu_irq *irqs; =20 - cpu =3D POWERPC_CPU(cpu_generic_init(TYPE_POWERPC_CPU, cpu_model)); + cpu =3D POWERPC_CPU(cpu_create(cpu_type)); env =3D &cpu->env; =20 ppc_booke_timers_init(cpu, sysclk, 0/* no flags */); @@ -211,11 +211,7 @@ static void virtex_init(MachineState *machine) int i; =20 /* init CPUs */ - if (machine->cpu_model =3D=3D NULL) { - machine->cpu_model =3D "440-Xilinx"; - } - - cpu =3D ppc440_init_xilinx(&ram_size, 1, machine->cpu_model, 400000000= ); + cpu =3D ppc440_init_xilinx(&ram_size, 1, machine->cpu_type, 400000000); env =3D &cpu->env; =20 if (env->mmu_model !=3D POWERPC_MMU_BOOKE) { @@ -307,6 +303,7 @@ static void virtex_machine_init(MachineClass *mc) { mc->desc =3D "Xilinx Virtex ML507 reference design"; mc->init =3D virtex_init; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("440-xilinx"); } =20 DEFINE_MACHINE("virtex-ml507", virtex_machine_init) --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215375062347.6032277580895; Mon, 16 Oct 2017 21:42:55 -0700 (PDT) Received: from localhost ([::1]:36439 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JiL-0000oB-7B for importer@patchew.org; Tue, 17 Oct 2017 00:42:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50801) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOd-0008TE-QD for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOZ-00077s-0c for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:27 -0400 Received: from ozlabs.org ([103.22.144.67]:34935) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOY-00073E-Hu; Tue, 17 Oct 2017 00:22:22 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTw0hmTz9t3p; Tue, 17 Oct 2017 15:22:08 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214132; bh=IwYmR4YNPdIP7hAFzM9aUafN5vnIE7GIIXm2Hr/oa1U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MtN9S4RcIANKvaNGgqUZLAWnWd4OmPMLhONjuLczqFRbAVrK0kilFQyzPHG73OxSn 5w4QK5V6zIbANNG9ILqAJg9Nn3QO/A5zwgkRcIVZTFIiClo6/EAEqZti63/xBZe4Du JxPa6lXSi5Ko4jDuHrR4Q7p464v+Bp42JR2Wxvyc= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:35 +1100 Message-Id: <20171017042152.29443-18-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 17/34] ppc: 40p/prep: replace cpu_model with cpu_type X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/prep.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index 94138a4e8c..6f8accc397 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -517,11 +517,8 @@ static void ppc_prep_init(MachineState *machine) linux_boot =3D (kernel_filename !=3D NULL); =20 /* init CPUs */ - if (machine->cpu_model =3D=3D NULL) - machine->cpu_model =3D "602"; for (i =3D 0; i < smp_cpus; i++) { - cpu =3D POWERPC_CPU(cpu_generic_init(TYPE_POWERPC_CPU, - machine->cpu_model)); + cpu =3D POWERPC_CPU(cpu_create(machine->cpu_type)); env =3D &cpu->env; =20 if (env->flags & POWERPC_FLAG_RTC_CLK) { @@ -684,6 +681,7 @@ static void prep_machine_init(MachineClass *mc) mc->block_default_type =3D IF_IDE; mc->max_cpus =3D MAX_CPUS; mc->default_boot_order =3D "cad"; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("602"); } =20 static int prep_set_cmos_checksum(DeviceState *dev, void *opaque) @@ -718,10 +716,7 @@ static void ibm_40p_init(MachineState *machine) char boot_device; =20 /* init CPU */ - if (!machine->cpu_model) { - machine->cpu_model =3D "604"; - } - cpu =3D POWERPC_CPU(cpu_generic_init(TYPE_POWERPC_CPU, machine->cpu_mo= del)); + cpu =3D POWERPC_CPU(cpu_create(machine->cpu_type)); env =3D &cpu->env; if (PPC_INPUT(env) !=3D PPC_FLAGS_INPUT_6xx) { error_report("only 6xx bus is supported on this machine"); @@ -894,6 +889,7 @@ static void ibm_40p_machine_init(MachineClass *mc) mc->default_ram_size =3D 128 * M_BYTE; mc->block_default_type =3D IF_SCSI; mc->default_boot_order =3D "c"; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("604"); } =20 DEFINE_MACHINE("40p", ibm_40p_machine_init) --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214893855292.1967039782909; Mon, 16 Oct 2017 21:34:53 -0700 (PDT) Received: from localhost ([::1]:36396 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JaX-0001q8-0W for importer@patchew.org; Tue, 17 Oct 2017 00:34:45 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50688) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOb-0008Pa-6B for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOY-00077Y-Un for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:25 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:37085) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOY-000730-Ed; Tue, 17 Oct 2017 00:22:22 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTw06SFz9t44; Tue, 17 Oct 2017 15:22:08 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214132; bh=c/D0QXiA7cDELAz8r9+Lii9Rf8sdkju04+MbTG+O+1Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GoWF/T77eP7rS6OM8OY2MAeXSVIg4RdvvtbF6HFtZmSEv3ulzTOlMrSriCVCZ7Ypx /jXKDXaR3oN+EjWXL1EHs/AMHmSCfm5errKAJZ2Rs8QgNjOe42od4MMnTaLrbrihI6 ym6F0VeGOouLyoXKuMF1z13Yz0s5JC1CDF+fQfVM= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:36 +1100 Message-Id: <20171017042152.29443-19-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 18/34] ppc: spapr: replace ppc_cpu_parse_features() with cpu_parse_cpu_model() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov ppc_cpu_parse_features() is doing practically the same thing as generic cpu_parse_cpu_model(). So remove duplicated impl. and reuse generic one. Signed-off-by: Igor Mammedov Reviewed-by: Greg Kurz Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/ppc.c | 25 ------------------------- hw/ppc/spapr_cpu_core.c | 9 ++++----- include/hw/ppc/ppc.h | 2 -- 3 files changed, 4 insertions(+), 32 deletions(-) diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c index 05da316e0b..7ec35de5ae 100644 --- a/hw/ppc/ppc.c +++ b/hw/ppc/ppc.c @@ -1359,28 +1359,3 @@ void PPC_debug_write (void *opaque, uint32_t addr, u= int32_t val) break; } } - -void ppc_cpu_parse_features(const char *cpu_model) -{ - CPUClass *cc; - ObjectClass *oc; - const char *typename; - gchar **model_pieces; - - model_pieces =3D g_strsplit(cpu_model, ",", 2); - if (!model_pieces[0]) { - error_report("Invalid/empty CPU model name"); - exit(1); - } - - oc =3D cpu_class_by_name(TYPE_POWERPC_CPU, model_pieces[0]); - if (oc =3D=3D NULL) { - error_report("Unable to find CPU definition: %s", model_pieces[0]); - exit(1); - } - - typename =3D object_class_get_name(oc); - cc =3D CPU_CLASS(oc); - cc->parse_features(typename, model_pieces[1], &error_fatal); - g_strfreev(model_pieces); -} diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 37beb56e8b..79a9615080 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -34,6 +34,7 @@ void spapr_cpu_parse_features(sPAPRMachineState *spapr) * before passing it on to the cpu level parser. */ gchar **inpieces; + gchar *newprops; int i, j; gchar *compat_str =3D NULL; =20 @@ -58,17 +59,15 @@ void spapr_cpu_parse_features(sPAPRMachineState *spapr) =20 if (compat_str) { char *val =3D compat_str + strlen("compat=3D"); - gchar *newprops =3D g_strjoinv(",", inpieces); =20 object_property_set_str(OBJECT(spapr), val, "max-cpu-compat", &error_fatal); =20 - ppc_cpu_parse_features(newprops); - g_free(newprops); - } else { - ppc_cpu_parse_features(MACHINE(spapr)->cpu_model); } =20 + newprops =3D g_strjoinv(",", inpieces); + cpu_parse_cpu_model(TYPE_POWERPC_CPU, newprops); + g_free(newprops); g_strfreev(inpieces); } =20 diff --git a/include/hw/ppc/ppc.h b/include/hw/ppc/ppc.h index 4e7fe110d6..ff0ac306be 100644 --- a/include/hw/ppc/ppc.h +++ b/include/hw/ppc/ppc.h @@ -105,6 +105,4 @@ enum { =20 /* ppc_booke.c */ void ppc_booke_timers_init(PowerPCCPU *cpu, uint32_t freq, uint32_t flags); - -void ppc_cpu_parse_features(const char *cpu_model); #endif --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215209716999.9059391876716; Mon, 16 Oct 2017 21:40:09 -0700 (PDT) Received: from localhost ([::1]:36422 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jfc-0006cX-3G for importer@patchew.org; Tue, 17 Oct 2017 00:40:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50615) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOZ-0008Mb-6u for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOW-00072N-Av for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:23 -0400 Received: from ozlabs.org ([103.22.144.67]:47799) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOV-0006x0-Hh; Tue, 17 Oct 2017 00:22:20 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTv415hz9t42; Tue, 17 Oct 2017 15:22:08 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214131; bh=so1Ck+mMPFYb0RFPgNno7trIpwGRStXs8kHG0Xyd4Qg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IsYO0COLwuNVI2aeENhE555aM79m4AdVHe6ku6rZzYLDNEcaYWk2on6CUjS+ivVot wpWDXK5HI21ugcbENDK+6eQj5+SywNJyUWOa6QCY+TSV2Q7dkHOjEYerjqvJrIS7mp GYODmchVDRt6iEFtKP8Jvf12pnVEeuhumnGyjEMY= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:37 +1100 Message-Id: <20171017042152.29443-20-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 19/34] ppc: move '-cpu foo, compat=xxx' parsing into ppc_cpu_parse_featurestr() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov there is a dedicated callback CPUClass::parse_features which purpose is to convert -cpu features into a set of global properties AND deal with compat/legacy features that couldn't be directly translated into CPU's properties. Create ppc variant of it (ppc_cpu_parse_featurestr) and move 'compat=3Dval' handling from spapr_cpu_core.c into it. That removes a dependency of board/core code on cpu_model parsing and would let to reuse common -cpu parsing introduced by 6063d4c0 Set "max-cpu-compat" property only if it exists, in practice it should limit 'compat' hack to spapr machine and allow to avoid including machine/spapr headers in target/ppc/cpu.c Signed-off-by: Igor Mammedov Signed-off-by: David Gibson --- hw/ppc/spapr.c | 2 +- hw/ppc/spapr_cpu_core.c | 50 --------------------------------------- include/hw/ppc/spapr.h | 1 - target/ppc/cpu-qom.h | 1 + target/ppc/translate_init.c | 57 +++++++++++++++++++++++++++++++++++++++++= ++++ 5 files changed, 59 insertions(+), 52 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 147fd2cfd3..112dd91348 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2373,7 +2373,7 @@ static void ppc_spapr_init(MachineState *machine) machine->cpu_model =3D kvm_enabled() ? "host" : smc->tcg_default_c= pu; } =20 - spapr_cpu_parse_features(spapr); + cpu_parse_cpu_model(TYPE_POWERPC_CPU, machine->cpu_model); =20 spapr_set_vsmt_mode(spapr, &error_fatal); =20 diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 79a9615080..b6610dd431 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -21,56 +21,6 @@ #include "sysemu/hw_accel.h" #include "qemu/error-report.h" =20 -void spapr_cpu_parse_features(sPAPRMachineState *spapr) -{ - /* - * Backwards compatibility hack: - * - * CPUs had a "compat=3D" property which didn't make sense for - * anything except pseries. It was replaced by "max-cpu-compat" - * machine option. This supports old command lines like - * -cpu POWER8,compat=3Dpower7 - * By stripping the compat option and applying it to the machine - * before passing it on to the cpu level parser. - */ - gchar **inpieces; - gchar *newprops; - int i, j; - gchar *compat_str =3D NULL; - - inpieces =3D g_strsplit(MACHINE(spapr)->cpu_model, ",", 0); - - /* inpieces[0] is the actual model string */ - i =3D 1; - j =3D 1; - while (inpieces[i]) { - if (g_str_has_prefix(inpieces[i], "compat=3D")) { - /* in case of multiple compat=3D options */ - g_free(compat_str); - compat_str =3D inpieces[i]; - } else { - j++; - } - - i++; - /* Excise compat options from list */ - inpieces[j] =3D inpieces[i]; - } - - if (compat_str) { - char *val =3D compat_str + strlen("compat=3D"); - - object_property_set_str(OBJECT(spapr), val, "max-cpu-compat", - &error_fatal); - - } - - newprops =3D g_strjoinv(",", inpieces); - cpu_parse_cpu_model(TYPE_POWERPC_CPU, newprops); - g_free(newprops); - g_strfreev(inpieces); -} - static void spapr_cpu_reset(void *opaque) { PowerPCCPU *cpu =3D opaque; diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index c1b365f564..8ca4f9498f 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -659,7 +659,6 @@ void spapr_hotplug_req_add_by_count_indexed(sPAPRDRConn= ectorType drc_type, uint32_t count, uint32_t index= ); void spapr_hotplug_req_remove_by_count_indexed(sPAPRDRConnectorType drc_ty= pe, uint32_t count, uint32_t in= dex); -void spapr_cpu_parse_features(sPAPRMachineState *spapr); int spapr_hpt_shift_for_ramsize(uint64_t ramsize); void spapr_reallocate_hpt(sPAPRMachineState *spapr, int shift, Error **errp); diff --git a/target/ppc/cpu-qom.h b/target/ppc/cpu-qom.h index d0cf6ca2a9..429b47f959 100644 --- a/target/ppc/cpu-qom.h +++ b/target/ppc/cpu-qom.h @@ -181,6 +181,7 @@ typedef struct PowerPCCPUClass { DeviceRealize parent_realize; DeviceUnrealize parent_unrealize; void (*parent_reset)(CPUState *cpu); + void (*parent_parse_features)(const char *type, char *str, Error **err= p); =20 uint32_t pvr; bool (*pvr_match)(struct PowerPCCPUClass *pcc, uint32_t pvr); diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c index 0d6379fcc5..3d16481ca1 100644 --- a/target/ppc/translate_init.c +++ b/target/ppc/translate_init.c @@ -10097,6 +10097,61 @@ static ObjectClass *ppc_cpu_class_by_name(const ch= ar *name) return NULL; } =20 +static void ppc_cpu_parse_featurestr(const char *type, char *features, + Error **errp) +{ + Object *machine =3D qdev_get_machine(); + const PowerPCCPUClass *pcc =3D POWERPC_CPU_CLASS(object_class_by_name(= type)); + + if (!features) { + return; + } + + if (object_property_find(machine, "max-cpu-compat", NULL)) { + int i; + char **inpieces; + char *s =3D features; + Error *local_err =3D NULL; + char *compat_str =3D NULL; + + /* + * Backwards compatibility hack: + * + * CPUs had a "compat=3D" property which didn't make sense for + * anything except pseries. It was replaced by "max-cpu-compat" + * machine option. This supports old command lines like + * -cpu POWER8,compat=3Dpower7 + * By stripping the compat option and applying it to the machine + * before passing it on to the cpu level parser. + */ + inpieces =3D g_strsplit(features, ",", 0); + *s =3D '\0'; + for (i =3D 0; inpieces[i]; i++) { + if (g_str_has_prefix(inpieces[i], "compat=3D")) { + compat_str =3D inpieces[i]; + continue; + } + if ((i !=3D 0) && (s !=3D features)) { + s =3D g_stpcpy(s, ","); + } + s =3D g_stpcpy(s, inpieces[i]); + } + + if (compat_str) { + char *v =3D compat_str + strlen("compat=3D"); + object_property_set_str(machine, v, "max-cpu-compat", &local_e= rr); + } + g_strfreev(inpieces); + if (local_err) { + error_propagate(errp, local_err); + return; + } + } + + /* do property processing with generic handler */ + pcc->parent_parse_features(type, features, errp); +} + const char *ppc_cpu_lookup_alias(const char *alias) { int ai; @@ -10489,6 +10544,8 @@ static void ppc_cpu_class_init(ObjectClass *oc, voi= d *data) cc->reset =3D ppc_cpu_reset; =20 cc->class_by_name =3D ppc_cpu_class_by_name; + pcc->parent_parse_features =3D cc->parse_features; + cc->parse_features =3D ppc_cpu_parse_featurestr; cc->has_work =3D ppc_cpu_has_work; cc->do_interrupt =3D ppc_cpu_do_interrupt; cc->cpu_exec_interrupt =3D ppc_cpu_exec_interrupt; --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215241223199.5665312198446; Mon, 16 Oct 2017 21:40:41 -0700 (PDT) Received: from localhost ([::1]:36426 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JgG-0007Bf-FH for importer@patchew.org; Tue, 17 Oct 2017 00:40:40 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50597) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOZ-0008MX-0g for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOW-00072Y-EJ for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:22 -0400 Received: from ozlabs.org ([103.22.144.67]:33643) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOV-0006wH-Sb; Tue, 17 Oct 2017 00:22:20 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTv20SHz9t3h; Tue, 17 Oct 2017 15:22:08 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214131; bh=YGeTRpaXtXv82OWkVfhmt9vwuitA7E1HEXZgfRuOyC4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oZdfSKXLWdj66dAe3obYllwzVwIZC0k/y2TyZK6gpgGPyJzt0PYSyqawkbT4oS3ua JMWB18kPcb58gxlE8OfHyuF+t7RvB7drXBDSZqxhdNOD0P/gsEtDVWG/1nED+U58Mx MBeH5CSvfYZ/nmsPXI8lX9G4tgK6rbwdg+PMInM0= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:38 +1100 Message-Id: <20171017042152.29443-21-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 20/34] ppc: spapr: define core types statically X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov spapr core type definition doesn't have any fields that require it to be defined at runtime. So replace code that fills in TypeInfo at runtime with static TypeInfo array that does the same at complie time. Signed-off-by: Igor Mammedov Reviewed-by: Greg Kurz Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: David Gibson --- hw/ppc/spapr_cpu_core.c | 87 +++++++++++++------------------------= ---- include/hw/ppc/spapr_cpu_core.h | 2 + 2 files changed, 30 insertions(+), 59 deletions(-) diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index b6610dd431..550d320b5b 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -217,37 +217,6 @@ err: error_propagate(errp, local_err); } =20 -static const char *spapr_core_models[] =3D { - /* 970 */ - "970_v2.2", - - /* 970MP variants */ - "970mp_v1.0", - "970mp_v1.1", - - /* POWER5+ */ - "power5+_v2.1", - - /* POWER7 */ - "power7_v2.3", - - /* POWER7+ */ - "power7+_v2.1", - - /* POWER8 */ - "power8_v2.0", - - /* POWER8E */ - "power8e_v2.1", - - /* POWER8NVL */ - "power8nvl_v1.0", - - /* POWER9 */ - "power9_v1.0", - "power9_v2.0", -}; - static Property spapr_cpu_core_properties[] =3D { DEFINE_PROP_INT32("node-id", sPAPRCPUCore, node_id, CPU_UNSET_NUMA_NOD= E_ID), DEFINE_PROP_END_OF_LIST() @@ -265,33 +234,33 @@ void spapr_cpu_core_class_init(ObjectClass *oc, void = *data) g_assert(scc->cpu_class); } =20 -static const TypeInfo spapr_cpu_core_type_info =3D { - .name =3D TYPE_SPAPR_CPU_CORE, - .parent =3D TYPE_CPU_CORE, - .abstract =3D true, - .instance_size =3D sizeof(sPAPRCPUCore), - .class_size =3D sizeof(sPAPRCPUCoreClass), -}; - -static void spapr_cpu_core_register_types(void) -{ - int i; - - type_register_static(&spapr_cpu_core_type_info); - - for (i =3D 0; i < ARRAY_SIZE(spapr_core_models); i++) { - TypeInfo type_info =3D { - .parent =3D TYPE_SPAPR_CPU_CORE, - .instance_size =3D sizeof(sPAPRCPUCore), - .class_init =3D spapr_cpu_core_class_init, - .class_data =3D (void *) spapr_core_models[i], - }; - - type_info.name =3D g_strdup_printf("%s-" TYPE_SPAPR_CPU_CORE, - spapr_core_models[i]); - type_register(&type_info); - g_free((void *)type_info.name); +#define DEFINE_SPAPR_CPU_CORE_TYPE(cpu_model) \ + { \ + .parent =3D TYPE_SPAPR_CPU_CORE, \ + .class_data =3D (void *) cpu_model, \ + .class_init =3D spapr_cpu_core_class_init, \ + .name =3D SPAPR_CPU_CORE_TYPE_NAME(cpu_model), \ } -} =20 -type_init(spapr_cpu_core_register_types) +static const TypeInfo spapr_cpu_core_type_infos[] =3D { + { + .name =3D TYPE_SPAPR_CPU_CORE, + .parent =3D TYPE_CPU_CORE, + .abstract =3D true, + .instance_size =3D sizeof(sPAPRCPUCore), + .class_size =3D sizeof(sPAPRCPUCoreClass), + }, + DEFINE_SPAPR_CPU_CORE_TYPE("970_v2.2"), + DEFINE_SPAPR_CPU_CORE_TYPE("970mp_v1.0"), + DEFINE_SPAPR_CPU_CORE_TYPE("970mp_v1.1"), + DEFINE_SPAPR_CPU_CORE_TYPE("power5+_v2.1"), + DEFINE_SPAPR_CPU_CORE_TYPE("power7_v2.3"), + DEFINE_SPAPR_CPU_CORE_TYPE("power7+_v2.1"), + DEFINE_SPAPR_CPU_CORE_TYPE("power8_v2.0"), + DEFINE_SPAPR_CPU_CORE_TYPE("power8e_v2.1"), + DEFINE_SPAPR_CPU_CORE_TYPE("power8nvl_v1.0"), + DEFINE_SPAPR_CPU_CORE_TYPE("power9_v1.0"), + DEFINE_SPAPR_CPU_CORE_TYPE("power9_v2.0"), +}; + +DEFINE_TYPES(spapr_cpu_core_type_infos) diff --git a/include/hw/ppc/spapr_cpu_core.h b/include/hw/ppc/spapr_cpu_cor= e.h index 93051e9ecf..66dcf52587 100644 --- a/include/hw/ppc/spapr_cpu_core.h +++ b/include/hw/ppc/spapr_cpu_core.h @@ -21,6 +21,8 @@ #define SPAPR_CPU_CORE_GET_CLASS(obj) \ OBJECT_GET_CLASS(sPAPRCPUCoreClass, (obj), TYPE_SPAPR_CPU_CORE) =20 +#define SPAPR_CPU_CORE_TYPE_NAME(model) model "-" TYPE_SPAPR_CPU_CORE + typedef struct sPAPRCPUCore { /*< private >*/ CPUCore parent_obj; --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214908551785.3376836343243; Mon, 16 Oct 2017 21:35:08 -0700 (PDT) Received: from localhost ([::1]:36398 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jao-000295-Lb for importer@patchew.org; Tue, 17 Oct 2017 00:35:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50613) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOZ-0008MZ-4p for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOW-000732-LR for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:23 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:37227) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOW-0006wJ-4Z; Tue, 17 Oct 2017 00:22:20 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTv33W7z9t3x; Tue, 17 Oct 2017 15:22:10 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214131; bh=108rx0dFaMmTJaBnfQHymcoSn+N73siHzpERzPmotCM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rfs1K1GA/+jrTKl4HlO2T/WQgiXRIoDDOtpb0DxMFJhiKS4yVRiQsSTsKiadFyBev joo0Ij2d6Htq7c3zDdEsPL1SBa+3kZ6r9MXSpfL5gZ5iPc6OzLfEQNhQcpf77ywGKF hHm+LrZXEAYDI+y8YhCmEZvl8u0syiNPOT9gIQ2E= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:39 +1100 Message-Id: <20171017042152.29443-22-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 21/34] ppc: spapr: use cpu type name directly X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov replace sPAPRCPUCoreClass::cpu_class with cpu type name since it were needed just to get that at points it were accessed. Signed-off-by: Igor Mammedov Reviewed-by: Greg Kurz Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/spapr.c | 6 ++---- hw/ppc/spapr_cpu_core.c | 14 ++++++-------- include/hw/ppc/spapr_cpu_core.h | 2 +- target/ppc/kvm.c | 2 +- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 112dd91348..2c32f33314 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3161,8 +3161,7 @@ void spapr_core_release(DeviceState *dev) if (smc->pre_2_10_has_unused_icps) { sPAPRCPUCore *sc =3D SPAPR_CPU_CORE(OBJECT(dev)); sPAPRCPUCoreClass *scc =3D SPAPR_CPU_CORE_GET_CLASS(OBJECT(cc)); - const char *typename =3D object_class_get_name(scc->cpu_class); - size_t size =3D object_type_get_instance_size(typename); + size_t size =3D object_type_get_instance_size(scc->cpu_type); int i; =20 for (i =3D 0; i < cc->nr_threads; i++) { @@ -3258,8 +3257,7 @@ static void spapr_core_plug(HotplugHandler *hotplug_d= ev, DeviceState *dev, =20 if (smc->pre_2_10_has_unused_icps) { sPAPRCPUCoreClass *scc =3D SPAPR_CPU_CORE_GET_CLASS(OBJECT(cc)); - const char *typename =3D object_class_get_name(scc->cpu_class); - size_t size =3D object_type_get_instance_size(typename); + size_t size =3D object_type_get_instance_size(scc->cpu_type); int i; =20 for (i =3D 0; i < cc->nr_threads; i++) { diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 550d320b5b..9810697221 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -90,8 +90,7 @@ static void spapr_cpu_core_unrealizefn(DeviceState *dev, = Error **errp) { sPAPRCPUCore *sc =3D SPAPR_CPU_CORE(OBJECT(dev)); sPAPRCPUCoreClass *scc =3D SPAPR_CPU_CORE_GET_CLASS(OBJECT(dev)); - const char *typename =3D object_class_get_name(scc->cpu_class); - size_t size =3D object_type_get_instance_size(typename); + size_t size =3D object_type_get_instance_size(scc->cpu_type); CPUCore *cc =3D CPU_CORE(dev); int i; =20 @@ -152,8 +151,7 @@ static void spapr_cpu_core_realize(DeviceState *dev, Er= ror **errp) sPAPRCPUCore *sc =3D SPAPR_CPU_CORE(OBJECT(dev)); sPAPRCPUCoreClass *scc =3D SPAPR_CPU_CORE_GET_CLASS(OBJECT(dev)); CPUCore *cc =3D CPU_CORE(OBJECT(dev)); - const char *typename =3D object_class_get_name(scc->cpu_class); - size_t size =3D object_type_get_instance_size(typename); + size_t size; Error *local_err =3D NULL; void *obj; int i, j; @@ -164,6 +162,7 @@ static void spapr_cpu_core_realize(DeviceState *dev, Er= ror **errp) return; } =20 + size =3D object_type_get_instance_size(scc->cpu_type); sc->threads =3D g_malloc0(size * cc->nr_threads); for (i =3D 0; i < cc->nr_threads; i++) { char id[32]; @@ -172,7 +171,7 @@ static void spapr_cpu_core_realize(DeviceState *dev, Er= ror **errp) =20 obj =3D sc->threads + i * size; =20 - object_initialize(obj, size, typename); + object_initialize(obj, size, scc->cpu_type); cs =3D CPU(obj); cpu =3D POWERPC_CPU(cs); cs->cpu_index =3D cc->core_id + i; @@ -230,14 +229,13 @@ void spapr_cpu_core_class_init(ObjectClass *oc, void = *data) dc->realize =3D spapr_cpu_core_realize; dc->unrealize =3D spapr_cpu_core_unrealizefn; dc->props =3D spapr_cpu_core_properties; - scc->cpu_class =3D cpu_class_by_name(TYPE_POWERPC_CPU, data); - g_assert(scc->cpu_class); + scc->cpu_type =3D data; } =20 #define DEFINE_SPAPR_CPU_CORE_TYPE(cpu_model) \ { \ .parent =3D TYPE_SPAPR_CPU_CORE, \ - .class_data =3D (void *) cpu_model, \ + .class_data =3D (void *) POWERPC_CPU_TYPE_NAME(cpu_model), \ .class_init =3D spapr_cpu_core_class_init, \ .name =3D SPAPR_CPU_CORE_TYPE_NAME(cpu_model), \ } diff --git a/include/hw/ppc/spapr_cpu_core.h b/include/hw/ppc/spapr_cpu_cor= e.h index 66dcf52587..264ce68785 100644 --- a/include/hw/ppc/spapr_cpu_core.h +++ b/include/hw/ppc/spapr_cpu_core.h @@ -34,7 +34,7 @@ typedef struct sPAPRCPUCore { =20 typedef struct sPAPRCPUCoreClass { DeviceClass parent_class; - ObjectClass *cpu_class; + const char *cpu_type; } sPAPRCPUCoreClass; =20 char *spapr_get_cpu_core_type(const char *model); diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index 171d3d8040..c2152ed52c 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -2514,7 +2514,7 @@ static int kvm_ppc_register_host_cpu_type(void) type_info.instance_size =3D sizeof(sPAPRCPUCore); type_info.instance_init =3D NULL; type_info.class_init =3D spapr_cpu_core_class_init; - type_info.class_data =3D (void *) "host"; + type_info.class_data =3D (void *) POWERPC_CPU_TYPE_NAME("host"); type_register(&type_info); g_free((void *)type_info.name); #endif --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214744676567.1813395287015; Mon, 16 Oct 2017 21:32:24 -0700 (PDT) Received: from localhost ([::1]:36390 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JYF-0008In-Ti for importer@patchew.org; Tue, 17 Oct 2017 00:32:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50595) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOZ-0008MW-0h for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOW-00072k-FU for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:22 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:44049) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOW-0006vz-19; Tue, 17 Oct 2017 00:22:20 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTt6t2zz9t2c; Tue, 17 Oct 2017 15:22:10 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214130; bh=SKNLLg1sb+CEpHzP05W2puSZSY28Ac9SKzN57mQVOS0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GVQpyTGrvpmc4/FfnwDIZFYBm1IG/43NP4pTRF2isW+JqfIrHTKRIDkCpqfmpIfEI qUHgz4bhH7xaGuoTk3MhHIubSNgAeqSNEwFGrqW7FFhvnvRNMqH1JG8MAfPhUv4yxk 8rWsnTvXzM+mRsJ5ZuHw4Wp2TszRFLnEv2FEDvm8= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:40 +1100 Message-Id: <20171017042152.29443-23-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 22/34] ppc: spapr: register 'host' core type along with the rest of core types X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov consolidate 'host' core type registration by moving it from KVM specific code into spapr_cpu_core.c, similar like it's done in x86 target. Signed-off-by: Igor Mammedov Reviewed-by: Greg Kurz Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/spapr_cpu_core.c | 5 ++++- include/hw/ppc/spapr_cpu_core.h | 1 - target/ppc/kvm.c | 11 ----------- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 9810697221..7dbf9c31c5 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -221,7 +221,7 @@ static Property spapr_cpu_core_properties[] =3D { DEFINE_PROP_END_OF_LIST() }; =20 -void spapr_cpu_core_class_init(ObjectClass *oc, void *data) +static void spapr_cpu_core_class_init(ObjectClass *oc, void *data) { DeviceClass *dc =3D DEVICE_CLASS(oc); sPAPRCPUCoreClass *scc =3D SPAPR_CPU_CORE_CLASS(oc); @@ -259,6 +259,9 @@ static const TypeInfo spapr_cpu_core_type_infos[] =3D { DEFINE_SPAPR_CPU_CORE_TYPE("power8nvl_v1.0"), DEFINE_SPAPR_CPU_CORE_TYPE("power9_v1.0"), DEFINE_SPAPR_CPU_CORE_TYPE("power9_v2.0"), +#ifdef CONFIG_KVM + DEFINE_SPAPR_CPU_CORE_TYPE("host"), +#endif }; =20 DEFINE_TYPES(spapr_cpu_core_type_infos) diff --git a/include/hw/ppc/spapr_cpu_core.h b/include/hw/ppc/spapr_cpu_cor= e.h index 264ce68785..42765de392 100644 --- a/include/hw/ppc/spapr_cpu_core.h +++ b/include/hw/ppc/spapr_cpu_core.h @@ -38,5 +38,4 @@ typedef struct sPAPRCPUCoreClass { } sPAPRCPUCoreClass; =20 char *spapr_get_cpu_core_type(const char *model); -void spapr_cpu_core_class_init(ObjectClass *oc, void *data); #endif diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index c2152ed52c..cb5777afa0 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -2508,17 +2508,6 @@ static int kvm_ppc_register_host_cpu_type(void) oc =3D object_class_by_name(type_info.name); g_assert(oc); =20 -#if defined(TARGET_PPC64) - type_info.name =3D g_strdup_printf("%s-"TYPE_SPAPR_CPU_CORE, "host"); - type_info.parent =3D TYPE_SPAPR_CPU_CORE, - type_info.instance_size =3D sizeof(sPAPRCPUCore); - type_info.instance_init =3D NULL; - type_info.class_init =3D spapr_cpu_core_class_init; - type_info.class_data =3D (void *) POWERPC_CPU_TYPE_NAME("host"); - type_register(&type_info); - g_free((void *)type_info.name); -#endif - /* * Update generic CPU family class alias (e.g. on a POWER8NVL host, * we want "POWER8" to be a "family" alias that points to the current --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215065525111.84552926919275; Mon, 16 Oct 2017 21:37:45 -0700 (PDT) Received: from localhost ([::1]:36414 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JdQ-0004ZG-Mq for importer@patchew.org; Tue, 17 Oct 2017 00:37:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50599) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOZ-0008MY-0r for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOX-00074o-Jy for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:22 -0400 Received: from ozlabs.org ([103.22.144.67]:47327) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOX-000702-6a; Tue, 17 Oct 2017 00:22:21 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTv6Rw7z9t3k; Tue, 17 Oct 2017 15:22:10 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214131; bh=awtwEz+9MNCJTEgHw4uNLFG7zJ5eMsRm2Vx3WZ0IARw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dlXdbnklQZLryPd3t8ctlt+C0pgv9LyOqBkh9SGtm/oo4dMTHgZec6q5wQtgAjPd3 8wNX4wheajgmBfTS7iQxf43V+8rcM3CDafrCKzgODCzlNj4g2yh1PicQWHvTHGVkta sVJ5tC1FUBiOAXTw/vXSSDRcwE5vtoIOlZuUhwao= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:41 +1100 Message-Id: <20171017042152.29443-24-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 23/34] ppc: spapr: use cpu model names as tcg defaults instead of aliases X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Signed-off-by: Igor Mammedov Acked-by: David Gibson Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 2c32f33314..f7c5df3832 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3622,7 +3622,7 @@ static void spapr_machine_class_init(ObjectClass *oc,= void *data) hc->unplug_request =3D spapr_machine_device_unplug_request; =20 smc->dr_lmb_enabled =3D true; - smc->tcg_default_cpu =3D "POWER8"; + smc->tcg_default_cpu =3D "power8_v2.0"; mc->has_hotpluggable_cpus =3D true; smc->resize_hpt_default =3D SPAPR_RESIZE_HPT_ENABLED; fwc->get_dev_path =3D spapr_get_fw_dev_path; @@ -3868,7 +3868,7 @@ static void spapr_machine_2_7_class_options(MachineCl= ass *mc) sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); =20 spapr_machine_2_8_class_options(mc); - smc->tcg_default_cpu =3D "POWER7"; + smc->tcg_default_cpu =3D "power7_v2.3"; SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_7); smc->phb_placement =3D phb_placement_2_7; } --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215044709233.441135719748; Mon, 16 Oct 2017 21:37:24 -0700 (PDT) Received: from localhost ([::1]:36412 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jd3-00049f-PF for importer@patchew.org; Tue, 17 Oct 2017 00:37:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50699) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOb-0008Q5-Fm for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOZ-000787-5O for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:25 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:57025) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOY-00073T-Mw; Tue, 17 Oct 2017 00:22:22 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTw4kwKz9t41; Tue, 17 Oct 2017 15:22:10 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214132; bh=XsKqrO5LaObaFhzOSNaAR8Nx/2XqnDQ461C6S0lmpyU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jF3+xKWXxGXKMlKsxMmQyYshpwYrZnUhgDOW+rMwG2Hk7RPaH7Rf2ubhoGKeLkD5j Fwzbk0SmzeX4YM8KPd6OXW2uLsySGqOwNC8cdxm6mFqc4ZpBUMnWzA3y+z28Vs26/x a6sLZYsqgcG9vV4hNELeTRF8erLQsSrJVpCzKfuo= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:42 +1100 Message-Id: <20171017042152.29443-25-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 24/34] ppc: move ppc_cpu_lookup_alias() before its first user X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov next commit will drop ppc_cpu_lookup_alias() declaration from header and make it static which will break its last user ppc_cpu_class_by_name() since ppc_cpu_class_by_name() defined before ppc_cpu_lookup_alias(). To avoid this move ppc_cpu_lookup_alias() right before ppc_cpu_class_by_name(). Signed-off-by: Igor Mammedov Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: David Gibson --- target/ppc/translate_init.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c index 3d16481ca1..17ac95b732 100644 --- a/target/ppc/translate_init.c +++ b/target/ppc/translate_init.c @@ -10060,6 +10060,19 @@ PowerPCCPUClass *ppc_cpu_class_by_pvr_mask(uint32_= t pvr) return pcc; } =20 +const char *ppc_cpu_lookup_alias(const char *alias) +{ + int ai; + + for (ai =3D 0; ppc_cpu_aliases[ai].alias !=3D NULL; ai++) { + if (strcmp(ppc_cpu_aliases[ai].alias, alias) =3D=3D 0) { + return ppc_cpu_aliases[ai].model; + } + } + + return NULL; +} + static ObjectClass *ppc_cpu_class_by_name(const char *name) { char *cpu_model, *typename; @@ -10152,19 +10165,6 @@ static void ppc_cpu_parse_featurestr(const char *t= ype, char *features, pcc->parent_parse_features(type, features, errp); } =20 -const char *ppc_cpu_lookup_alias(const char *alias) -{ - int ai; - - for (ai =3D 0; ppc_cpu_aliases[ai].alias !=3D NULL; ai++) { - if (strcmp(ppc_cpu_aliases[ai].alias, alias) =3D=3D 0) { - return ppc_cpu_aliases[ai].model; - } - } - - return NULL; -} - PowerPCCPUClass *ppc_cpu_get_family_class(PowerPCCPUClass *pcc) { ObjectClass *oc =3D OBJECT_CLASS(pcc); --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215688754900.3568850629163; Mon, 16 Oct 2017 21:48:08 -0700 (PDT) Received: from localhost ([::1]:36475 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JnO-0005ap-Mu for importer@patchew.org; Tue, 17 Oct 2017 00:48:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50821) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOe-0008Tx-5R for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOa-0007BT-P8 for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:28 -0400 Received: from ozlabs.org ([103.22.144.67]:44849) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOY-00073M-KR; Tue, 17 Oct 2017 00:22:24 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTw31pKz9t4r; Tue, 17 Oct 2017 15:22:11 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214132; bh=Z7f4IQhp7JtJT8JBlnvc8855ph1RQJlJbIki8LvKr1E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BUvhE2iYB22zGZb51PTOmOIqHpaiqEdfCqyHK2CsGMeW7adD1dK3jF9147kD7fHNA eSGpxODUm/YirpaArTHe91pTWPhPXkzSHCY2VYfgTVRGDXizIoj5xdK8NXqyNA0FaP A+JtTCVvL8OS6CPKOQqrhNxyvlUlsxdsdzwuvVGg= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:43 +1100 Message-Id: <20171017042152.29443-26-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 25/34] ppc: spapr: use generic cpu_model parsing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov use generic cpu_model parsing introduced by (6063d4c0f vl.c: convert cpu_model to cpu type and set of global propertie= s before machine_init()) it allows to: * replace sPAPRMachineClass::tcg_default_cpu with MachineClass::default_cpu_type * drop cpu_parse_cpu_model() from hw/ppc/spapr.c and reuse one in vl.c * simplify spapr_get_cpu_core_type() by removing not needed anymore recurrsion since alias look up happens earlier at vl.c and spapr_get_cpu_core_type() works only with resulted from that cpu type. * spapr no more needs to parse/depend on being phased out MachineState::cpu_model, all tha parsing done by generic code and target specific callback. Signed-off-by: Igor Mammedov [dwg: Correct minor compile error] Signed-off-by: David Gibson --- hw/ppc/spapr.c | 16 ++++------------ hw/ppc/spapr_cpu_core.c | 30 ++++++++++-------------------- include/hw/ppc/spapr.h | 1 - include/hw/ppc/spapr_cpu_core.h | 2 +- target/ppc/cpu.h | 1 - target/ppc/kvm.c | 11 ++++++++--- target/ppc/translate_init.c | 2 +- 7 files changed, 24 insertions(+), 39 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index f7c5df3832..d682f013d4 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2129,7 +2129,7 @@ static void spapr_init_cpus(sPAPRMachineState *spapr) { MachineState *machine =3D MACHINE(spapr); MachineClass *mc =3D MACHINE_GET_CLASS(machine); - char *type =3D spapr_get_cpu_core_type(machine->cpu_model); + const char *type =3D spapr_get_cpu_core_type(machine->cpu_type); int smt =3D kvmppc_smt_threads(); const CPUArchIdList *possible_cpus; int boot_cores_nr =3D smp_cpus / smp_threads; @@ -2184,7 +2184,6 @@ static void spapr_init_cpus(sPAPRMachineState *spapr) object_property_set_bool(core, true, "realized", &error_fatal); } } - g_free(type); } =20 static void spapr_set_vsmt_mode(sPAPRMachineState *spapr, Error **errp) @@ -2369,12 +2368,6 @@ static void ppc_spapr_init(MachineState *machine) } =20 /* init CPUs */ - if (machine->cpu_model =3D=3D NULL) { - machine->cpu_model =3D kvm_enabled() ? "host" : smc->tcg_default_c= pu; - } - - cpu_parse_cpu_model(TYPE_POWERPC_CPU, machine->cpu_model); - spapr_set_vsmt_mode(spapr, &error_fatal); =20 spapr_init_cpus(spapr); @@ -3277,7 +3270,7 @@ static void spapr_core_pre_plug(HotplugHandler *hotpl= ug_dev, DeviceState *dev, MachineClass *mc =3D MACHINE_GET_CLASS(hotplug_dev); Error *local_err =3D NULL; CPUCore *cc =3D CPU_CORE(dev); - char *base_core_type =3D spapr_get_cpu_core_type(machine->cpu_model); + const char *base_core_type =3D spapr_get_cpu_core_type(machine->cpu_ty= pe); const char *type =3D object_get_typename(OBJECT(dev)); CPUArchId *core_slot; int index; @@ -3323,7 +3316,6 @@ static void spapr_core_pre_plug(HotplugHandler *hotpl= ug_dev, DeviceState *dev, numa_cpu_pre_plug(core_slot, dev, &local_err); =20 out: - g_free(base_core_type); error_propagate(errp, local_err); } =20 @@ -3622,7 +3614,7 @@ static void spapr_machine_class_init(ObjectClass *oc,= void *data) hc->unplug_request =3D spapr_machine_device_unplug_request; =20 smc->dr_lmb_enabled =3D true; - smc->tcg_default_cpu =3D "power8_v2.0"; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power8_v2.0"); mc->has_hotpluggable_cpus =3D true; smc->resize_hpt_default =3D SPAPR_RESIZE_HPT_ENABLED; fwc->get_dev_path =3D spapr_get_fw_dev_path; @@ -3868,7 +3860,7 @@ static void spapr_machine_2_7_class_options(MachineCl= ass *mc) sPAPRMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); =20 spapr_machine_2_8_class_options(mc); - smc->tcg_default_cpu =3D "power7_v2.3"; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power7_v2.3"); SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_7); smc->phb_placement =3D phb_placement_2_7; } diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 7dbf9c31c5..195762d8d2 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -61,29 +61,19 @@ static void spapr_cpu_init(sPAPRMachineState *spapr, Po= werPCCPU *cpu, * Return the sPAPR CPU core type for @model which essentially is the CPU * model specified with -cpu cmdline option. */ -char *spapr_get_cpu_core_type(const char *model) +const char *spapr_get_cpu_core_type(const char *cpu_type) { - char *core_type; - gchar **model_pieces =3D g_strsplit(model, ",", 2); - gchar *cpu_model =3D g_ascii_strdown(model_pieces[0], -1); - g_strfreev(model_pieces); - - core_type =3D g_strdup_printf("%s-" TYPE_SPAPR_CPU_CORE, cpu_model); - - /* Check whether it exists or whether we have to look up an alias name= */ - if (!object_class_by_name(core_type)) { - const char *realmodel; - - g_free(core_type); - core_type =3D NULL; - realmodel =3D ppc_cpu_lookup_alias(cpu_model); - if (realmodel) { - core_type =3D spapr_get_cpu_core_type(realmodel); - } + int len =3D strlen(cpu_type) - strlen(POWERPC_CPU_TYPE_SUFFIX); + char *core_type =3D g_strdup_printf(SPAPR_CPU_CORE_TYPE_NAME("%.*s"), + len, cpu_type); + ObjectClass *oc =3D object_class_by_name(core_type); + + g_free(core_type); + if (!oc) { + return NULL; } - g_free(cpu_model); =20 - return core_type; + return object_class_get_name(oc); } =20 static void spapr_cpu_core_unrealizefn(DeviceState *dev, Error **errp) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 8ca4f9498f..9d21ca9bde 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -60,7 +60,6 @@ struct sPAPRMachineClass { /*< public >*/ bool dr_lmb_enabled; /* enable dynamic-reconfig/hotplug of LMBs = */ bool use_ohci_by_default; /* use USB-OHCI instead of XHCI */ - const char *tcg_default_cpu; /* which (TCG) CPU to simulate by default= */ bool pre_2_10_has_unused_icps; void (*phb_placement)(sPAPRMachineState *spapr, uint32_t index, uint64_t *buid, hwaddr *pio,=20 diff --git a/include/hw/ppc/spapr_cpu_core.h b/include/hw/ppc/spapr_cpu_cor= e.h index 42765de392..f2d48d6a67 100644 --- a/include/hw/ppc/spapr_cpu_core.h +++ b/include/hw/ppc/spapr_cpu_core.h @@ -37,5 +37,5 @@ typedef struct sPAPRCPUCoreClass { const char *cpu_type; } sPAPRCPUCoreClass; =20 -char *spapr_get_cpu_core_type(const char *model); +const char *spapr_get_cpu_core_type(const char *cpu_type); #endif diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 64aef17f6f..989761b795 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -1278,7 +1278,6 @@ extern const struct VMStateDescription vmstate_ppc_cp= u; =20 /*************************************************************************= ****/ void ppc_translate_init(void); -const char *ppc_cpu_lookup_alias(const char *alias); /* you can call this signal handler from your SIGBUS and SIGSEGV signal handlers to inform the virtual CPU of exceptions. non zero is returned if the signal was handled by the virtual CPU. */ diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index cb5777afa0..9d57debf0e 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -123,7 +123,7 @@ static bool kvmppc_is_pr(KVMState *ks) return kvm_vm_check_extension(ks, KVM_CAP_PPC_GET_PVINFO) !=3D 0; } =20 -static int kvm_ppc_register_host_cpu_type(void); +static int kvm_ppc_register_host_cpu_type(MachineState *ms); =20 int kvm_arch_init(MachineState *ms, KVMState *s) { @@ -163,7 +163,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) "VM to stall at times!\n"); } =20 - kvm_ppc_register_host_cpu_type(); + kvm_ppc_register_host_cpu_type(ms); =20 return 0; } @@ -2487,12 +2487,13 @@ PowerPCCPUClass *kvm_ppc_get_host_cpu_class(void) return pvr_pcc; } =20 -static int kvm_ppc_register_host_cpu_type(void) +static int kvm_ppc_register_host_cpu_type(MachineState *ms) { TypeInfo type_info =3D { .name =3D TYPE_HOST_POWERPC_CPU, .class_init =3D kvmppc_host_cpu_class_init, }; + MachineClass *mc =3D MACHINE_GET_CLASS(ms); PowerPCCPUClass *pvr_pcc; ObjectClass *oc; DeviceClass *dc; @@ -2504,6 +2505,10 @@ static int kvm_ppc_register_host_cpu_type(void) } type_info.parent =3D object_class_get_name(OBJECT_CLASS(pvr_pcc)); type_register(&type_info); + if (object_dynamic_cast(OBJECT(ms), TYPE_SPAPR_MACHINE)) { + /* override TCG default cpu type with 'host' cpu model */ + mc->default_cpu_type =3D TYPE_HOST_POWERPC_CPU; + } =20 oc =3D object_class_by_name(type_info.name); g_assert(oc); diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c index 17ac95b732..7b9bf6a773 100644 --- a/target/ppc/translate_init.c +++ b/target/ppc/translate_init.c @@ -10060,7 +10060,7 @@ PowerPCCPUClass *ppc_cpu_class_by_pvr_mask(uint32_t= pvr) return pcc; } =20 -const char *ppc_cpu_lookup_alias(const char *alias) +static const char *ppc_cpu_lookup_alias(const char *alias) { int ai; =20 --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215229760414.105888722931; Mon, 16 Oct 2017 21:40:29 -0700 (PDT) Received: from localhost ([::1]:36423 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jfx-0006so-5V for importer@patchew.org; Tue, 17 Oct 2017 00:40:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50838) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOe-0008Ui-M9 for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOb-0007D2-TU for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:28 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:53357) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOb-00079X-Ho; Tue, 17 Oct 2017 00:22:25 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTy3sgRz9t66; Tue, 17 Oct 2017 15:22:11 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214134; bh=SCGOUgEN29TTcwcqaNtQ/caQ5SdH94lOkpkBfrhaPM8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JgRMK8hknoEkqEnuCKg9+jpBbQTc2xHAdOzpmHyk+wJYAbSEbSrvjGyaMsP1abrJ4 /McIcX5KO5/qEGk/5HzQuZ6pY4PU5ZqcCzfRg6AexC8IFtRzgdgJIG4Yp9m4t1M0k7 7ct5vXPbsjKo1TWe5Uy2gwjcNO4oXyiK5IHpBuUk= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:44 +1100 Message-Id: <20171017042152.29443-27-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 26/34] ppc: pnv: use generic cpu_model parsing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov use common cpu_model prasing in vl.c and set default cpu_model using generic MachineClass::default_cpu_type. Beside of switching to generic infrastructure it solves several issues. * ppc_cpu_class_by_name() is used to deal with lower/upper case and alias translations into actual cpu type, which fixes '-M powernv -cpu power8' and '-M powernv -cpu power9_v1.0' usecases which error out with: 'invalid CPU model 'FOO' for powernv machine' * allows to switch to lower-case typenames in pnv chip/core name (by convention typnames should be lower-case) * replace aliased names /power8, power9, .../ with exact cpu model names (i.e. typenames should be stable but aliases might decide to point to other cpu model withi family or changed by kvm). It will also help to simplify pnv_chip/core code and get rid of dependency on cpu_model parsing. Signed-off-by: Igor Mammedov Reviewed-by: C=C3=A9dric Le Goater [dwg: Updated to make DD2.0 as default POWER9 chip] Signed-off-by: David Gibson --- hw/ppc/pnv.c | 22 ++++++++++------------ hw/ppc/pnv_core.c | 2 +- include/hw/ppc/pnv.h | 8 ++++---- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 84b2389ea6..a2cb4a40ff 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -606,16 +606,13 @@ static void ppc_powernv_init(MachineState *machine) } } =20 - /* We need some cpu model to instantiate the PnvChip class */ - if (machine->cpu_model =3D=3D NULL) { - machine->cpu_model =3D "POWER8"; - } - /* Create the processor chips */ - chip_typename =3D g_strdup_printf(TYPE_PNV_CHIP "-%s", machine->cpu_mo= del); + i =3D strlen(machine->cpu_type) - strlen(POWERPC_CPU_TYPE_SUFFIX); + chip_typename =3D g_strdup_printf(TYPE_PNV_CHIP "-%.*s", + i, machine->cpu_type); if (!object_class_by_name(chip_typename)) { - error_report("invalid CPU model '%s' for %s machine", - machine->cpu_model, MACHINE_GET_CLASS(machine)->name); + error_report("invalid CPU model '%.*s' for %s machine", + i, machine->cpu_type, MACHINE_GET_CLASS(machine)->nam= e); exit(1); } =20 @@ -715,7 +712,7 @@ static void pnv_chip_power8e_class_init(ObjectClass *kl= ass, void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); PnvChipClass *k =3D PNV_CHIP_CLASS(klass); =20 - k->cpu_model =3D "POWER8E"; + k->cpu_model =3D "power8e_v2.1"; k->chip_type =3D PNV_CHIP_POWER8E; k->chip_cfam_id =3D 0x221ef04980000000ull; /* P8 Murano DD2.1 */ k->cores_mask =3D POWER8E_CORE_MASK; @@ -737,7 +734,7 @@ static void pnv_chip_power8_class_init(ObjectClass *kla= ss, void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); PnvChipClass *k =3D PNV_CHIP_CLASS(klass); =20 - k->cpu_model =3D "POWER8"; + k->cpu_model =3D "power8_v2.0"; k->chip_type =3D PNV_CHIP_POWER8; k->chip_cfam_id =3D 0x220ea04980000000ull; /* P8 Venice DD2.0 */ k->cores_mask =3D POWER8_CORE_MASK; @@ -759,7 +756,7 @@ static void pnv_chip_power8nvl_class_init(ObjectClass *= klass, void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); PnvChipClass *k =3D PNV_CHIP_CLASS(klass); =20 - k->cpu_model =3D "POWER8NVL"; + k->cpu_model =3D "power8nvl_v1.0"; k->chip_type =3D PNV_CHIP_POWER8NVL; k->chip_cfam_id =3D 0x120d304980000000ull; /* P8 Naples DD1.0 */ k->cores_mask =3D POWER8_CORE_MASK; @@ -781,7 +778,7 @@ static void pnv_chip_power9_class_init(ObjectClass *kla= ss, void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); PnvChipClass *k =3D PNV_CHIP_CLASS(klass); =20 - k->cpu_model =3D "POWER9"; + k->cpu_model =3D "power9_v2.0"; k->chip_type =3D PNV_CHIP_POWER9; k->chip_cfam_id =3D 0x100d104980000000ull; /* P9 Nimbus DD1.0 */ k->cores_mask =3D POWER9_CORE_MASK; @@ -1132,6 +1129,7 @@ static void powernv_machine_class_init(ObjectClass *o= c, void *data) mc->init =3D ppc_powernv_init; mc->reset =3D ppc_powernv_reset; mc->max_cpus =3D MAX_CPUS; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power8_v2.0"); mc->block_default_type =3D IF_IDE; /* Pnv provides a AHCI device for * storage */ mc->no_parallel =3D 1; diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index 67264830db..91f02cb324 100644 --- a/hw/ppc/pnv_core.c +++ b/hw/ppc/pnv_core.c @@ -227,7 +227,7 @@ static const TypeInfo pnv_core_info =3D { }; =20 static const char *pnv_core_models[] =3D { - "POWER8E", "POWER8", "POWER8NVL", "POWER9" + "power8e_v2.1", "power8_v2.0", "power8nvl_v1.0", "power9_v2.0" }; =20 static void pnv_core_register_types(void) diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h index 9c5437dabc..d80fa44bf0 100644 --- a/include/hw/ppc/pnv.h +++ b/include/hw/ppc/pnv.h @@ -80,19 +80,19 @@ typedef struct PnvChipClass { uint32_t (*core_pir)(PnvChip *chip, uint32_t core_id); } PnvChipClass; =20 -#define TYPE_PNV_CHIP_POWER8E TYPE_PNV_CHIP "-POWER8E" +#define TYPE_PNV_CHIP_POWER8E TYPE_PNV_CHIP "-power8e_v2.1" #define PNV_CHIP_POWER8E(obj) \ OBJECT_CHECK(PnvChip, (obj), TYPE_PNV_CHIP_POWER8E) =20 -#define TYPE_PNV_CHIP_POWER8 TYPE_PNV_CHIP "-POWER8" +#define TYPE_PNV_CHIP_POWER8 TYPE_PNV_CHIP "-power8_v2.0" #define PNV_CHIP_POWER8(obj) \ OBJECT_CHECK(PnvChip, (obj), TYPE_PNV_CHIP_POWER8) =20 -#define TYPE_PNV_CHIP_POWER8NVL TYPE_PNV_CHIP "-POWER8NVL" +#define TYPE_PNV_CHIP_POWER8NVL TYPE_PNV_CHIP "-power8nvl_v1.0" #define PNV_CHIP_POWER8NVL(obj) \ OBJECT_CHECK(PnvChip, (obj), TYPE_PNV_CHIP_POWER8NVL) =20 -#define TYPE_PNV_CHIP_POWER9 TYPE_PNV_CHIP "-POWER9" +#define TYPE_PNV_CHIP_POWER9 TYPE_PNV_CHIP "-power9_v2.0" #define PNV_CHIP_POWER9(obj) \ OBJECT_CHECK(PnvChip, (obj), TYPE_PNV_CHIP_POWER9) =20 --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215065298556.8284528916383; Mon, 16 Oct 2017 21:37:45 -0700 (PDT) Received: from localhost ([::1]:36413 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JdO-0004Wf-Fj for importer@patchew.org; Tue, 17 Oct 2017 00:37:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50764) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOc-0008Ri-SM for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOa-0007AS-3H for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:26 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:44345) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOY-00073P-LP; Tue, 17 Oct 2017 00:22:23 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTw3gq4z9t4b; Tue, 17 Oct 2017 15:22:11 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214132; bh=g3T3+Okd/d7SvN84ilvhjobwU2d3ZCotLjR+fXPhADQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E6yu0Nuu8goBCRm4YSQcwt+Mcd6eg6Cbt4FgpHWyrXodWq96qIoUoPMUt0g3fDaA9 4Y1xFM1PzJ04dZ5n5xjmXvvYteKDSKrjNK14hivdX7ORFSFqTympPeYJjqe79luC89 6fQsUwj9LLWJGv7zeiqgUEs1YRRzGIsxq3PXFaBw= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:45 +1100 Message-Id: <20171017042152.29443-28-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 27/34] ppc: pnv: normalize core/chip type names X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov typically for cpus/core type names following convention is used new_type_prefix-superclass_typename make PNV core/chip to follow common convention. Signed-off-by: Igor Mammedov Reviewed-by: C=C3=A9dric Le Goater Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/pnv.c | 2 +- hw/ppc/pnv_core.c | 2 +- include/hw/ppc/pnv.h | 11 +++++++---- include/hw/ppc/pnv_core.h | 2 ++ 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index a2cb4a40ff..1e78b685a3 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -608,7 +608,7 @@ static void ppc_powernv_init(MachineState *machine) =20 /* Create the processor chips */ i =3D strlen(machine->cpu_type) - strlen(POWERPC_CPU_TYPE_SUFFIX); - chip_typename =3D g_strdup_printf(TYPE_PNV_CHIP "-%.*s", + chip_typename =3D g_strdup_printf(PNV_CHIP_TYPE_NAME("%.*s"), i, machine->cpu_type); if (!object_class_by_name(chip_typename)) { error_report("invalid CPU model '%.*s' for %s machine", diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index 91f02cb324..85b39a5b5e 100644 --- a/hw/ppc/pnv_core.c +++ b/hw/ppc/pnv_core.c @@ -252,5 +252,5 @@ type_init(pnv_core_register_types) =20 char *pnv_core_typename(const char *model) { - return g_strdup_printf(TYPE_PNV_CORE "-%s", model); + return g_strdup_printf(PNV_CORE_TYPE_NAME("%s"), model); } diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h index d80fa44bf0..f1bfa6c499 100644 --- a/include/hw/ppc/pnv.h +++ b/include/hw/ppc/pnv.h @@ -80,19 +80,22 @@ typedef struct PnvChipClass { uint32_t (*core_pir)(PnvChip *chip, uint32_t core_id); } PnvChipClass; =20 -#define TYPE_PNV_CHIP_POWER8E TYPE_PNV_CHIP "-power8e_v2.1" +#define PNV_CHIP_TYPE_SUFFIX "-" TYPE_PNV_CHIP +#define PNV_CHIP_TYPE_NAME(cpu_model) cpu_model PNV_CHIP_TYPE_SUFFIX + +#define TYPE_PNV_CHIP_POWER8E PNV_CHIP_TYPE_NAME("power8e_v2.1") #define PNV_CHIP_POWER8E(obj) \ OBJECT_CHECK(PnvChip, (obj), TYPE_PNV_CHIP_POWER8E) =20 -#define TYPE_PNV_CHIP_POWER8 TYPE_PNV_CHIP "-power8_v2.0" +#define TYPE_PNV_CHIP_POWER8 PNV_CHIP_TYPE_NAME("power8_v2.0") #define PNV_CHIP_POWER8(obj) \ OBJECT_CHECK(PnvChip, (obj), TYPE_PNV_CHIP_POWER8) =20 -#define TYPE_PNV_CHIP_POWER8NVL TYPE_PNV_CHIP "-power8nvl_v1.0" +#define TYPE_PNV_CHIP_POWER8NVL PNV_CHIP_TYPE_NAME("power8nvl_v1.0") #define PNV_CHIP_POWER8NVL(obj) \ OBJECT_CHECK(PnvChip, (obj), TYPE_PNV_CHIP_POWER8NVL) =20 -#define TYPE_PNV_CHIP_POWER9 TYPE_PNV_CHIP "-power9_v2.0" +#define TYPE_PNV_CHIP_POWER9 PNV_CHIP_TYPE_NAME("power9_v2.0") #define PNV_CHIP_POWER9(obj) \ OBJECT_CHECK(PnvChip, (obj), TYPE_PNV_CHIP_POWER9) =20 diff --git a/include/hw/ppc/pnv_core.h b/include/hw/ppc/pnv_core.h index 2955a41c90..3360c4b12d 100644 --- a/include/hw/ppc/pnv_core.h +++ b/include/hw/ppc/pnv_core.h @@ -45,6 +45,8 @@ typedef struct PnvCoreClass { ObjectClass *cpu_oc; } PnvCoreClass; =20 +#define PNV_CORE_TYPE_SUFFIX "-" TYPE_PNV_CORE +#define PNV_CORE_TYPE_NAME(cpu_model) cpu_model PNV_CORE_TYPE_SUFFIX extern char *pnv_core_typename(const char *model); =20 #endif /* _PPC_PNV_CORE_H */ --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215409877762.7944556988638; Mon, 16 Oct 2017 21:43:29 -0700 (PDT) Received: from localhost ([::1]:36445 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jix-0001N7-4C for importer@patchew.org; Tue, 17 Oct 2017 00:43:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50767) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOc-0008Rj-Te for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOY-00077J-Lm for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:26 -0400 Received: from ozlabs.org ([103.22.144.67]:55931) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOY-00073H-9l; Tue, 17 Oct 2017 00:22:22 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTw20f9z9t3l; Tue, 17 Oct 2017 15:22:11 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214132; bh=QLiyl/0BNgXK1ceu/KCX69cat+nq4diV9fayOiV7wnc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Zd9wIDSZjEtXDDKHQ87QpjZmEiC3i4f9GhYxPlQYmeBMyqgthdM7MJg5SyemsbzNr TuekfIkaDMhET5JeYRn6ugB9Ys97gs4yYV4prxJGz1qsNHzZBSjuxpflikWHW+2ZEL s50nFFURefTySIIOaYjVA54uiYgn1OiBgq3vK4/o= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:46 +1100 Message-Id: <20171017042152.29443-29-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 28/34] ppc: pnv: drop PnvCoreClass::cpu_oc field X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov deduce cpu type directly from core type instead of maintaining type mapping in PnvCoreClass::cpu_oc and doing extra cpu_model parsing in pnv_core_class_init() Signed-off-by: Igor Mammedov Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: David Gibson --- hw/ppc/pnv_core.c | 18 ++++++++++++------ include/hw/ppc/pnv_core.h | 1 - 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index 85b39a5b5e..135d3fa29f 100644 --- a/hw/ppc/pnv_core.c +++ b/hw/ppc/pnv_core.c @@ -27,6 +27,16 @@ #include "hw/ppc/pnv_xscom.h" #include "hw/ppc/xics.h" =20 +static const char *pnv_core_cpu_typename(PnvCore *pc) +{ + const char *core_type =3D object_class_get_name(object_get_class(OBJEC= T(pc))); + int len =3D strlen(core_type) - strlen(PNV_CORE_TYPE_SUFFIX); + char *s =3D g_strdup_printf(POWERPC_CPU_TYPE_NAME("%.*s"), len, core_t= ype); + const char *cpu_type =3D object_class_get_name(object_class_by_name(s)= ); + g_free(s); + return cpu_type; +} + static void powernv_cpu_reset(void *opaque) { PowerPCCPU *cpu =3D opaque; @@ -148,8 +158,7 @@ static void pnv_core_realize(DeviceState *dev, Error **= errp) { PnvCore *pc =3D PNV_CORE(OBJECT(dev)); CPUCore *cc =3D CPU_CORE(OBJECT(dev)); - PnvCoreClass *pcc =3D PNV_CORE_GET_CLASS(OBJECT(dev)); - const char *typename =3D object_class_get_name(pcc->cpu_oc); + const char *typename =3D pnv_core_cpu_typename(pc); size_t size =3D object_type_get_instance_size(typename); Error *local_err =3D NULL; void *obj; @@ -211,11 +220,9 @@ static Property pnv_core_properties[] =3D { static void pnv_core_class_init(ObjectClass *oc, void *data) { DeviceClass *dc =3D DEVICE_CLASS(oc); - PnvCoreClass *pcc =3D PNV_CORE_CLASS(oc); =20 dc->realize =3D pnv_core_realize; dc->props =3D pnv_core_properties; - pcc->cpu_oc =3D cpu_class_by_name(TYPE_POWERPC_CPU, data); } =20 static const TypeInfo pnv_core_info =3D { @@ -223,6 +230,7 @@ static const TypeInfo pnv_core_info =3D { .parent =3D TYPE_CPU_CORE, .instance_size =3D sizeof(PnvCore), .class_size =3D sizeof(PnvCoreClass), + .class_init =3D pnv_core_class_init, .abstract =3D true, }; =20 @@ -239,8 +247,6 @@ static void pnv_core_register_types(void) TypeInfo ti =3D { .parent =3D TYPE_PNV_CORE, .instance_size =3D sizeof(PnvCore), - .class_init =3D pnv_core_class_init, - .class_data =3D (void *) pnv_core_models[i], }; ti.name =3D pnv_core_typename(pnv_core_models[i]); type_register(&ti); diff --git a/include/hw/ppc/pnv_core.h b/include/hw/ppc/pnv_core.h index 3360c4b12d..a336a1f18a 100644 --- a/include/hw/ppc/pnv_core.h +++ b/include/hw/ppc/pnv_core.h @@ -42,7 +42,6 @@ typedef struct PnvCore { =20 typedef struct PnvCoreClass { DeviceClass parent_class; - ObjectClass *cpu_oc; } PnvCoreClass; =20 #define PNV_CORE_TYPE_SUFFIX "-" TYPE_PNV_CORE --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215549744397.48241268348715; Mon, 16 Oct 2017 21:45:49 -0700 (PDT) Received: from localhost ([::1]:36463 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jl4-0003Rq-7B for importer@patchew.org; Tue, 17 Oct 2017 00:45:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50826) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOe-0008U3-5b for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOb-0007Co-Pc for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:28 -0400 Received: from ozlabs.org ([103.22.144.67]:52765) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOb-00079P-Bj; Tue, 17 Oct 2017 00:22:25 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTy0s9Hz9t6K; Tue, 17 Oct 2017 15:22:11 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214134; bh=4Lhm7YWj30R2S0jojQcw3nPESTBiDdsjGn44ukHIVuE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p2qRyZnIk8026ORFLTsyEDijON38ccmAjE3bZNgpgcJibMVI0C4Zf+50rbtc8KFrg ClK65YZhzr57YLZG/zUY63udVA5L+wdlWJiqrhuMEAO7q+PBY1a+51q7w560iZ0CtL aqHkHbypo3tbUVyax1p+aUi5H0sHf5GCvii9iC3Q= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:47 +1100 Message-Id: <20171017042152.29443-30-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 29/34] ppc: pnv: define core types statically X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov pnv core type definition doesn't have any fields that require it to be defined at runtime. So replace code that fills in TypeInfo at runtime with static TypeInfo array that does the same at complie time. Signed-off-by: Igor Mammedov Reviewed-by: C=C3=A9dric Le Goater Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/pnv_core.c | 48 ++++++++++++++++++++---------------------------- 1 file changed, 20 insertions(+), 28 deletions(-) diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index 135d3fa29f..350394fdb5 100644 --- a/hw/ppc/pnv_core.c +++ b/hw/ppc/pnv_core.c @@ -225,38 +225,30 @@ static void pnv_core_class_init(ObjectClass *oc, void= *data) dc->props =3D pnv_core_properties; } =20 -static const TypeInfo pnv_core_info =3D { - .name =3D TYPE_PNV_CORE, - .parent =3D TYPE_CPU_CORE, - .instance_size =3D sizeof(PnvCore), - .class_size =3D sizeof(PnvCoreClass), - .class_init =3D pnv_core_class_init, - .abstract =3D true, -}; - -static const char *pnv_core_models[] =3D { - "power8e_v2.1", "power8_v2.0", "power8nvl_v1.0", "power9_v2.0" -}; - -static void pnv_core_register_types(void) -{ - int i ; - - type_register_static(&pnv_core_info); - for (i =3D 0; i < ARRAY_SIZE(pnv_core_models); ++i) { - TypeInfo ti =3D { - .parent =3D TYPE_PNV_CORE, - .instance_size =3D sizeof(PnvCore), - }; - ti.name =3D pnv_core_typename(pnv_core_models[i]); - type_register(&ti); - g_free((void *)ti.name); +#define DEFINE_PNV_CORE_TYPE(cpu_model) \ + { \ + .parent =3D TYPE_PNV_CORE, \ + .name =3D PNV_CORE_TYPE_NAME(cpu_model), \ } -} =20 -type_init(pnv_core_register_types) +static const TypeInfo pnv_core_infos[] =3D { + { + .name =3D TYPE_PNV_CORE, + .parent =3D TYPE_CPU_CORE, + .instance_size =3D sizeof(PnvCore), + .class_size =3D sizeof(PnvCoreClass), + .class_init =3D pnv_core_class_init, + .abstract =3D true, + }, + DEFINE_PNV_CORE_TYPE("power8e_v2.1"), + DEFINE_PNV_CORE_TYPE("power8_v2.0"), + DEFINE_PNV_CORE_TYPE("power8nvl_v1.0"), + DEFINE_PNV_CORE_TYPE("power9_v2.0"), +}; =20 char *pnv_core_typename(const char *model) { return g_strdup_printf(PNV_CORE_TYPE_NAME("%s"), model); } + +DEFINE_TYPES(pnv_core_infos) --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215470158942.0688513633072; Mon, 16 Oct 2017 21:44:30 -0700 (PDT) Received: from localhost ([::1]:36450 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jju-0002FO-Ar for importer@patchew.org; Tue, 17 Oct 2017 00:44:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50824) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOe-0008Tz-62 for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOb-0007C2-82 for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:28 -0400 Received: from ozlabs.org ([103.22.144.67]:36949) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOa-00078i-RH; Tue, 17 Oct 2017 00:22:25 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTx5qRvz9t69; Tue, 17 Oct 2017 15:22:11 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214133; bh=YJD8DeYGPc94KMbZyKHDZJ64uwwjBbYRMkF9bVv4Nm4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FyZuJbOpd8mhRJQJJ9mypw3DXadq5288viaIz+bJ9jViMkWslJcOZdp7pClfdvd+X HFaEd73vzKs+phMYaUe9xMftSaAhSELV29JmlPuQtpaFctP34DgQvvIZkEuNy/KT10 5SdE6j03XgFL4RSwQz2iZhCtSNWO9aom9UgIPybg= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:48 +1100 Message-Id: <20171017042152.29443-31-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 30/34] ppc: pnv: drop PnvChipClass::cpu_model field X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov deduce core type directly from chip type instead of maintaining type mapping in PnvChipClass::cpu_model. Signed-off-by: Igor Mammedov Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: David Gibson --- hw/ppc/pnv.c | 25 +++++++++++++------------ hw/ppc/pnv_core.c | 5 ----- include/hw/ppc/pnv.h | 1 - include/hw/ppc/pnv_core.h | 1 - 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 1e78b685a3..80c7f62bbc 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -55,6 +55,16 @@ #define KERNEL_LOAD_ADDR 0x20000000 #define INITRD_LOAD_ADDR 0x40000000 =20 +static const char *pnv_chip_core_typename(const PnvChip *o) +{ + const char *chip_type =3D object_class_get_name(object_get_class(OBJEC= T(o))); + int len =3D strlen(chip_type) - strlen(PNV_CHIP_TYPE_SUFFIX); + char *s =3D g_strdup_printf(PNV_CORE_TYPE_NAME("%.*s"), len, chip_type= ); + const char *core_type =3D object_class_get_name(object_class_by_name(s= )); + g_free(s); + return core_type; +} + /* * On Power Systems E880 (POWER8), the max cpus (threads) should be : * 4 * 4 sockets * 12 cores * 8 threads =3D 1536 @@ -269,8 +279,7 @@ static int pnv_chip_lpc_offset(PnvChip *chip, void *fdt) =20 static void powernv_populate_chip(PnvChip *chip, void *fdt) { - PnvChipClass *pcc =3D PNV_CHIP_GET_CLASS(chip); - char *typename =3D pnv_core_typename(pcc->cpu_model); + const char *typename =3D pnv_chip_core_typename(chip); size_t typesize =3D object_type_get_instance_size(typename); int i; =20 @@ -300,7 +309,6 @@ static void powernv_populate_chip(PnvChip *chip, void *= fdt) powernv_populate_memory_node(fdt, chip->chip_id, chip->ram_start, chip->ram_size); } - g_free(typename); } =20 static void powernv_populate_rtc(ISADevice *d, void *fdt, int lpc_off) @@ -712,7 +720,6 @@ static void pnv_chip_power8e_class_init(ObjectClass *kl= ass, void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); PnvChipClass *k =3D PNV_CHIP_CLASS(klass); =20 - k->cpu_model =3D "power8e_v2.1"; k->chip_type =3D PNV_CHIP_POWER8E; k->chip_cfam_id =3D 0x221ef04980000000ull; /* P8 Murano DD2.1 */ k->cores_mask =3D POWER8E_CORE_MASK; @@ -734,7 +741,6 @@ static void pnv_chip_power8_class_init(ObjectClass *kla= ss, void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); PnvChipClass *k =3D PNV_CHIP_CLASS(klass); =20 - k->cpu_model =3D "power8_v2.0"; k->chip_type =3D PNV_CHIP_POWER8; k->chip_cfam_id =3D 0x220ea04980000000ull; /* P8 Venice DD2.0 */ k->cores_mask =3D POWER8_CORE_MASK; @@ -756,7 +762,6 @@ static void pnv_chip_power8nvl_class_init(ObjectClass *= klass, void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); PnvChipClass *k =3D PNV_CHIP_CLASS(klass); =20 - k->cpu_model =3D "power8nvl_v1.0"; k->chip_type =3D PNV_CHIP_POWER8NVL; k->chip_cfam_id =3D 0x120d304980000000ull; /* P8 Naples DD1.0 */ k->cores_mask =3D POWER8_CORE_MASK; @@ -778,7 +783,6 @@ static void pnv_chip_power9_class_init(ObjectClass *kla= ss, void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); PnvChipClass *k =3D PNV_CHIP_CLASS(klass); =20 - k->cpu_model =3D "power9_v2.0"; k->chip_type =3D PNV_CHIP_POWER9; k->chip_cfam_id =3D 0x100d104980000000ull; /* P9 Nimbus DD1.0 */ k->cores_mask =3D POWER9_CORE_MASK; @@ -853,7 +857,7 @@ static void pnv_chip_init(Object *obj) static void pnv_chip_icp_realize(PnvChip *chip, Error **errp) { PnvChipClass *pcc =3D PNV_CHIP_GET_CLASS(chip); - char *typename =3D pnv_core_typename(pcc->cpu_model); + const char *typename =3D pnv_chip_core_typename(chip); size_t typesize =3D object_type_get_instance_size(typename); int i, j; char *name; @@ -878,8 +882,6 @@ static void pnv_chip_icp_realize(PnvChip *chip, Error *= *errp) memory_region_add_subregion(&chip->icp_mmio, pir << 12, &icp->= mmio); } } - - g_free(typename); } =20 static void pnv_chip_realize(DeviceState *dev, Error **errp) @@ -887,7 +889,7 @@ static void pnv_chip_realize(DeviceState *dev, Error **= errp) PnvChip *chip =3D PNV_CHIP(dev); Error *error =3D NULL; PnvChipClass *pcc =3D PNV_CHIP_GET_CLASS(chip); - char *typename =3D pnv_core_typename(pcc->cpu_model); + const char *typename =3D pnv_chip_core_typename(chip); size_t typesize =3D object_type_get_instance_size(typename); int i, core_hwid; =20 @@ -946,7 +948,6 @@ static void pnv_chip_realize(DeviceState *dev, Error **= errp) &PNV_CORE(pnv_core)->xscom_regs); i++; } - g_free(typename); =20 /* Create LPC controller */ object_property_set_bool(OBJECT(&chip->lpc), true, "realized", diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index 350394fdb5..82ff440b33 100644 --- a/hw/ppc/pnv_core.c +++ b/hw/ppc/pnv_core.c @@ -246,9 +246,4 @@ static const TypeInfo pnv_core_infos[] =3D { DEFINE_PNV_CORE_TYPE("power9_v2.0"), }; =20 -char *pnv_core_typename(const char *model) -{ - return g_strdup_printf(PNV_CORE_TYPE_NAME("%s"), model); -} - DEFINE_TYPES(pnv_core_infos) diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h index f1bfa6c499..59524cd42b 100644 --- a/include/hw/ppc/pnv.h +++ b/include/hw/ppc/pnv.h @@ -69,7 +69,6 @@ typedef struct PnvChipClass { SysBusDeviceClass parent_class; =20 /*< public >*/ - const char *cpu_model; PnvChipType chip_type; uint64_t chip_cfam_id; uint64_t cores_mask; diff --git a/include/hw/ppc/pnv_core.h b/include/hw/ppc/pnv_core.h index a336a1f18a..e337af7a3a 100644 --- a/include/hw/ppc/pnv_core.h +++ b/include/hw/ppc/pnv_core.h @@ -46,6 +46,5 @@ typedef struct PnvCoreClass { =20 #define PNV_CORE_TYPE_SUFFIX "-" TYPE_PNV_CORE #define PNV_CORE_TYPE_NAME(cpu_model) cpu_model PNV_CORE_TYPE_SUFFIX -extern char *pnv_core_typename(const char *model); =20 #endif /* _PPC_PNV_CORE_H */ --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 150821537629184.4131058286232; Mon, 16 Oct 2017 21:42:56 -0700 (PDT) Received: from localhost ([::1]:36442 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JiN-0000qI-SM for importer@patchew.org; Tue, 17 Oct 2017 00:42:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50839) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOe-0008Um-Nj for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOb-0007Cv-St for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:28 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:40009) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOb-00079Q-Ht; Tue, 17 Oct 2017 00:22:25 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTy1WQCz9t5Q; Tue, 17 Oct 2017 15:22:11 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214134; bh=utJ4RwyMFt4wUYi0C1kIGtUBAJuLxWT69jCF4fpkAHU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OA2tntNMTEbDdMSCVVo6pNWC3/DkTWDUeh0F7GYxqd1GMA5u5vnlaqHwrSTeovMW7 ZQQQJRo8uxK2CIe1J0Y1v3DlKNBE37RHH1QdbHMswpEF43ZycXSiPfxnsvumdOZ8vK hu9r1sEadj4TWgXsThc6Zdcb4xkXvLMepuWF0BY0= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:49 +1100 Message-Id: <20171017042152.29443-32-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 31/34] ppc: pnv: consolidate type definitions and batch register them X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Igor Mammedov Use a new DEFINE_TYPES() helper to simplify type registration Signed-off-by: Igor Mammedov Reviewed-by: C=C3=A9dric Le Goater Acked-by: David Gibson Signed-off-by: David Gibson --- hw/ppc/pnv.c | 92 ++++++++++++++++++++++----------------------------------= ---- 1 file changed, 34 insertions(+), 58 deletions(-) diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 80c7f62bbc..c35c439d81 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -729,13 +729,6 @@ static void pnv_chip_power8e_class_init(ObjectClass *k= lass, void *data) dc->desc =3D "PowerNV Chip POWER8E"; } =20 -static const TypeInfo pnv_chip_power8e_info =3D { - .name =3D TYPE_PNV_CHIP_POWER8E, - .parent =3D TYPE_PNV_CHIP, - .instance_size =3D sizeof(PnvChip), - .class_init =3D pnv_chip_power8e_class_init, -}; - static void pnv_chip_power8_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); @@ -750,13 +743,6 @@ static void pnv_chip_power8_class_init(ObjectClass *kl= ass, void *data) dc->desc =3D "PowerNV Chip POWER8"; } =20 -static const TypeInfo pnv_chip_power8_info =3D { - .name =3D TYPE_PNV_CHIP_POWER8, - .parent =3D TYPE_PNV_CHIP, - .instance_size =3D sizeof(PnvChip), - .class_init =3D pnv_chip_power8_class_init, -}; - static void pnv_chip_power8nvl_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); @@ -771,13 +757,6 @@ static void pnv_chip_power8nvl_class_init(ObjectClass = *klass, void *data) dc->desc =3D "PowerNV Chip POWER8NVL"; } =20 -static const TypeInfo pnv_chip_power8nvl_info =3D { - .name =3D TYPE_PNV_CHIP_POWER8NVL, - .parent =3D TYPE_PNV_CHIP, - .instance_size =3D sizeof(PnvChip), - .class_init =3D pnv_chip_power8nvl_class_init, -}; - static void pnv_chip_power9_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); @@ -792,13 +771,6 @@ static void pnv_chip_power9_class_init(ObjectClass *kl= ass, void *data) dc->desc =3D "PowerNV Chip POWER9"; } =20 -static const TypeInfo pnv_chip_power9_info =3D { - .name =3D TYPE_PNV_CHIP_POWER9, - .parent =3D TYPE_PNV_CHIP, - .instance_size =3D sizeof(PnvChip), - .class_init =3D pnv_chip_power9_class_init, -}; - static void pnv_chip_core_sanitize(PnvChip *chip, Error **errp) { PnvChipClass *pcc =3D PNV_CHIP_GET_CLASS(chip); @@ -1000,15 +972,6 @@ static void pnv_chip_class_init(ObjectClass *klass, v= oid *data) dc->desc =3D "PowerNV Chip"; } =20 -static const TypeInfo pnv_chip_info =3D { - .name =3D TYPE_PNV_CHIP, - .parent =3D TYPE_SYS_BUS_DEVICE, - .class_init =3D pnv_chip_class_init, - .instance_init =3D pnv_chip_init, - .class_size =3D sizeof(PnvChipClass), - .abstract =3D true, -}; - static ICSState *pnv_ics_get(XICSFabric *xi, int irq) { PnvMachineState *pnv =3D POWERNV_MACHINE(xi); @@ -1144,27 +1107,40 @@ static void powernv_machine_class_init(ObjectClass = *oc, void *data) powernv_machine_class_props_init(oc); } =20 -static const TypeInfo powernv_machine_info =3D { - .name =3D TYPE_POWERNV_MACHINE, - .parent =3D TYPE_MACHINE, - .instance_size =3D sizeof(PnvMachineState), - .instance_init =3D powernv_machine_initfn, - .class_init =3D powernv_machine_class_init, - .interfaces =3D (InterfaceInfo[]) { - { TYPE_XICS_FABRIC }, - { TYPE_INTERRUPT_STATS_PROVIDER }, - { }, +#define DEFINE_PNV_CHIP_TYPE(type, class_initfn) \ + { \ + .name =3D type, \ + .class_init =3D class_initfn, \ + .parent =3D TYPE_PNV_CHIP, \ + } + +static const TypeInfo types[] =3D { + { + .name =3D TYPE_POWERNV_MACHINE, + .parent =3D TYPE_MACHINE, + .instance_size =3D sizeof(PnvMachineState), + .instance_init =3D powernv_machine_initfn, + .class_init =3D powernv_machine_class_init, + .interfaces =3D (InterfaceInfo[]) { + { TYPE_XICS_FABRIC }, + { TYPE_INTERRUPT_STATS_PROVIDER }, + { }, + }, }, + { + .name =3D TYPE_PNV_CHIP, + .parent =3D TYPE_SYS_BUS_DEVICE, + .class_init =3D pnv_chip_class_init, + .instance_init =3D pnv_chip_init, + .instance_size =3D sizeof(PnvChip), + .class_size =3D sizeof(PnvChipClass), + .abstract =3D true, + }, + DEFINE_PNV_CHIP_TYPE(TYPE_PNV_CHIP_POWER9, pnv_chip_power9_class_init), + DEFINE_PNV_CHIP_TYPE(TYPE_PNV_CHIP_POWER8, pnv_chip_power8_class_init), + DEFINE_PNV_CHIP_TYPE(TYPE_PNV_CHIP_POWER8E, pnv_chip_power8e_class_ini= t), + DEFINE_PNV_CHIP_TYPE(TYPE_PNV_CHIP_POWER8NVL, + pnv_chip_power8nvl_class_init), }; =20 -static void powernv_machine_register_types(void) -{ - type_register_static(&powernv_machine_info); - type_register_static(&pnv_chip_info); - type_register_static(&pnv_chip_power8e_info); - type_register_static(&pnv_chip_power8_info); - type_register_static(&pnv_chip_power8nvl_info); - type_register_static(&pnv_chip_power9_info); -} - -type_init(powernv_machine_register_types) +DEFINE_TYPES(types) --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508215549923227.4600419981441; Mon, 16 Oct 2017 21:45:49 -0700 (PDT) Received: from localhost ([::1]:36457 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jl0-0003Md-9P for importer@patchew.org; Tue, 17 Oct 2017 00:45:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50825) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOe-0008U2-5Z for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOa-0007BN-Oz for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:28 -0400 Received: from ozlabs.org ([103.22.144.67]:60637) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOZ-00075c-Qg; Tue, 17 Oct 2017 00:22:24 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTx4Nmrz9t6N; Tue, 17 Oct 2017 15:22:11 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214133; bh=HKMTd9XzhzKLrkasEGX7eT2eJ0xRrRPMPyi2Y38BC7w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jDO1QHxFgugIoYhwlmHKA+xenWS/Xt0Wa3Asdw/oc+eEdxIVKMsfG4lM1ufkSLBQ2 wHE05h+U5lGQ2Jngoev/pB57zqLfguutCfxtYucuS1V97wVeBaospfYXOmWtGAErgK qQNOxnWr0Pv5SJgynY9+h/m+W1ywZ0MVtLoNOsLo= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:50 +1100 Message-Id: <20171017042152.29443-33-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 32/34] spapr: Correct RAM size calculation for HPT resizing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" In order to prevent the guest from forcing the allocation of large amounts of qemu memory (or host kernel memory, in the case of KVM HV), we limit the size of Hashed Page Table (HPT) it is allowed to allocated, based on its RAM size. However, the current calculation is not correct: it only adds up the size of plugged memory, ignoring the base memory size. This patch corrects it. While we're there, use get_plugged_memory_size() instead of directly calling pc_existing_dimms_capacity(). The only difference is that it will abort on failure, which is right: a failure here indicates something wrong within qemu. Signed-off-by: David Gibson Reviewed-by: Greg Kurz Reviewed-by: Laurent Vivier --- hw/ppc/spapr_hcall.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index 8d72bb7c1c..0d59d1534d 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -472,7 +472,7 @@ static target_ulong h_resize_hpt_prepare(PowerPCCPU *cp= u, target_ulong flags =3D args[0]; int shift =3D args[1]; sPAPRPendingHPT *pending =3D spapr->pending_hpt; - uint64_t current_ram_size =3D MACHINE(spapr)->ram_size; + uint64_t current_ram_size; int rc; =20 if (spapr->resize_hpt =3D=3D SPAPR_RESIZE_HPT_DISABLED) { @@ -494,7 +494,7 @@ static target_ulong h_resize_hpt_prepare(PowerPCCPU *cp= u, return H_PARAMETER; } =20 - current_ram_size =3D pc_existing_dimms_capacity(&error_fatal); + current_ram_size =3D MACHINE(spapr)->ram_size + get_plugged_memory_siz= e(); =20 /* We only allow the guest to allocate an HPT one order above what * we'd normally give them (to stop a small guest claiming a huge --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 150821570442444.04244713260664; Mon, 16 Oct 2017 21:48:24 -0700 (PDT) Received: from localhost ([::1]:36478 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jne-0005o6-Na for importer@patchew.org; Tue, 17 Oct 2017 00:48:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50834) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOe-0008UF-8z for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOb-0007CO-Gz for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:28 -0400 Received: from ozlabs.org ([103.22.144.67]:57877) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOb-00078z-0F; Tue, 17 Oct 2017 00:22:25 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTy01q2z9t5g; Tue, 17 Oct 2017 15:22:12 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214134; bh=9CgB19qQ87W5huJcnCBys6xaFpbuPSgbTveGxB9gnsE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nItptZDcVol1Tf4PH3L54SAzdDZi7fPRu85c3Ek8LH5FKKkHajDhK2w7IHhJIUDIJ Fxb/YJCBHeUgoE7TCNePKNywKvVzSqSpL6NEH8C7YGDQ2Ecs633+H4aAieGbDdnLDT B6kAd7i9Urq6LKuM4gXhMA+XS7nolhq7633nVdAE= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:51 +1100 Message-Id: <20171017042152.29443-34-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 103.22.144.67 Subject: [Qemu-devel] [PULL 33/34] spapr_pci: fail gracefully with non-pseries machine types X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Greg Kurz QEMU currently crashes when the user tries to add an spapr-pci-host-bridge on a non-pseries machine: $ qemu-system-ppc64 -M ppce500 -device spapr-pci-host-bridge,index=3D1 hw/ppc/spapr_pci.c:1535:spapr_phb_realize: Object 0x1003dacae60 is not an instance of type spapr-machine Aborted (core dumped) The same thing happens with the deprecated but still available child type spapr-pci-vfio-host-bridge. Fix both by checking the machine type with object_dynamic_cast(). Reviewed-by: Daniel Henrique Barboza Signed-off-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr_pci.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index 5049ced4e8..5a3122a9f9 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -1507,7 +1507,12 @@ static void spapr_pci_unplug_request(HotplugHandler = *plug_handler, =20 static void spapr_phb_realize(DeviceState *dev, Error **errp) { - sPAPRMachineState *spapr =3D SPAPR_MACHINE(qdev_get_machine()); + /* We don't use SPAPR_MACHINE() in order to exit gracefully if the user + * tries to add a sPAPR PHB to a non-pseries machine. + */ + sPAPRMachineState *spapr =3D + (sPAPRMachineState *) object_dynamic_cast(qdev_get_machine(), + TYPE_SPAPR_MACHINE); SysBusDevice *s =3D SYS_BUS_DEVICE(dev); sPAPRPHBState *sphb =3D SPAPR_PCI_HOST_BRIDGE(s); PCIHostState *phb =3D PCI_HOST_BRIDGE(s); @@ -1519,6 +1524,11 @@ static void spapr_phb_realize(DeviceState *dev, Erro= r **errp) const unsigned windows_supported =3D sphb->ddw_enabled ? SPAPR_PCI_DMA_MAX_WINDOWS : 1; =20 + if (!spapr) { + error_setg(errp, TYPE_SPAPR_PCI_HOST_BRIDGE " needs a pseries mach= ine"); + return; + } + if (sphb->index !=3D (uint32_t)-1) { sPAPRMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); Error *local_err =3D NULL; --=20 2.13.6 From nobody Sun Apr 28 23:57:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508214912555217.08202925570743; Mon, 16 Oct 2017 21:35:12 -0700 (PDT) Received: from localhost ([::1]:36399 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4Jau-0002C5-Si for importer@patchew.org; Tue, 17 Oct 2017 00:35:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50678) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4JOa-0008Ox-Ub for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4JOZ-000786-5J for qemu-devel@nongnu.org; Tue, 17 Oct 2017 00:22:24 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:55671) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e4JOY-00073i-Ng; Tue, 17 Oct 2017 00:22:23 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 3yGMTx0MmWz9t4X; Tue, 17 Oct 2017 15:22:12 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1508214133; bh=F64WrDRVgSI0P4TkSqIT/eg8RTFGnBQov3blMXLgPlY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vep8EB/0chbAwjjsU5OoY1DJksQHfTsO+pnPgfjeCAg18Dc0j2vsHuDH8TXJ1EXdB eR+Hq7C5+Xm3g014P2agBY9oEXzNo18t1LKlsmm76VW+VAHELg9CmgYtqC5ABf3Rrp 94Hmjef0FrHOXt+OikOQ+fSJmrWkQfVqABZ2XEo4= From: David Gibson To: peter.maydell@linaro.org Date: Tue, 17 Oct 2017 15:21:52 +1100 Message-Id: <20171017042152.29443-35-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171017042152.29443-1-david@gibson.dropbear.id.au> References: <20171017042152.29443-1-david@gibson.dropbear.id.au> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 Subject: [Qemu-devel] [PULL 34/34] spapr_cpu_core: rewrite machine type sanity check X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: agraf@suse.de, ehabkost@redhat.com, qemu-devel@nongnu.org, groug@kaod.org, qemu-ppc@nongnu.org, imammedo@redhat.com, David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Greg Kurz This makes the code easier to understand and it is consistent with what we already do for PHBs. Signed-off-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr_cpu_core.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 195762d8d2..3a4c174012 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -137,7 +137,12 @@ error: =20 static void spapr_cpu_core_realize(DeviceState *dev, Error **errp) { - sPAPRMachineState *spapr; + /* We don't use SPAPR_MACHINE() in order to exit gracefully if the user + * tries to add a sPAPR CPU core to a non-pseries machine. + */ + sPAPRMachineState *spapr =3D + (sPAPRMachineState *) object_dynamic_cast(qdev_get_machine(), + TYPE_SPAPR_MACHINE); sPAPRCPUCore *sc =3D SPAPR_CPU_CORE(OBJECT(dev)); sPAPRCPUCoreClass *scc =3D SPAPR_CPU_CORE_GET_CLASS(OBJECT(dev)); CPUCore *cc =3D CPU_CORE(OBJECT(dev)); @@ -146,9 +151,8 @@ static void spapr_cpu_core_realize(DeviceState *dev, Er= ror **errp) void *obj; int i, j; =20 - spapr =3D (sPAPRMachineState *) qdev_get_machine(); - if (!object_dynamic_cast((Object *) spapr, TYPE_SPAPR_MACHINE)) { - error_setg(errp, "spapr-cpu-core needs a pseries machine"); + if (!spapr) { + error_setg(errp, TYPE_SPAPR_CPU_CORE " needs a pseries machine"); return; } =20 --=20 2.13.6