From patchwork Mon Oct 17 19:19:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691042 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=fvMTg8yc; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn5P4b0Mz1ygT for ; Tue, 18 Oct 2022 06:25:29 +1100 (AEDT) Received: from localhost ([::1]:60850 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVjp-0001sJ-5p for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:25:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46720) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVew-0001qS-98; Mon, 17 Oct 2022 15:20:24 -0400 Received: from mail-oi1-x22a.google.com ([2607:f8b0:4864:20::22a]:46039) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVeu-0002iN-GI; Mon, 17 Oct 2022 15:20:22 -0400 Received: by mail-oi1-x22a.google.com with SMTP id o64so13200761oib.12; Mon, 17 Oct 2022 12:20:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5cChQCBp1ochrw9NHXghkf2Svn+NNB1/NgVtrk42ARA=; b=fvMTg8yclyd+Th+yGlWq9j+dZ0aoAs7sK1dnyXal1EWfgBG7y7+6U7onJ4JTzutvz5 ng7oDc0sQF68KuPfgEkZi6GWNopyeT34pBG4HHFY0KZubD57OkOdKfCvTilsCEqbNaBi XLeW5CcDz6kEvSxumVIIO8txZW0gUF9qgOC/Eyc6ba8Gv6RucE8ZeOT4TlDRQ2VimYco aNjAZ9FInyvzNhu2A2HPT8P7dJF9K05b0ixbYfGcNic20M6DgnVKSb0Um8T7RMl+5y6c pIxfkwDjWKncqB/UE6pny4VujbgJTBOuxBS+L9FmBGbThcTgFfSQ5yFlw4l6VWbJAn+1 pe8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5cChQCBp1ochrw9NHXghkf2Svn+NNB1/NgVtrk42ARA=; b=iyu8o4NbtYPPwJS28YJiJkgxOhTiclLjGoLU4+imFZU6cKKFdoLhkCtFggpcbZX/q1 bcGJ8p0HYT649vjFlPlVITc8J7COhXH+QOk0DZtcg3GlROAuWrnPnO+Pm0PJhLcusQCE iQIUFS58dSEWB7Drqchx53bi7oWr9DuOUknI4R53az8iNYgZEKL2QC6G37iO5eD8NWhe akojWN4kBZ9MFvb4LxllY3bVSfB6HJe5wX58bQtG84U1O5IJLciF31pVJ3un+V4Aqm0X WbPLhc9eRPMCuECslGIE+12MrScB0ncQ23ftxW18RezcTEfjsaQPu0CQO3+wK/uZzomp MECQ== X-Gm-Message-State: ACrzQf00gizVL1ovYT7JE7y/1KB2qQchrtb+LJRl+TJ6es3iTumiU61e A7VK+46+L/H3WtdFxULEHKbYDsclVtA= X-Google-Smtp-Source: AMsMyM5YTXRrwoQrG8pEpLAPucO6ES47wq86j78UdV7+c3tXlolsjVWYx5/bt7kXr5P4dv/EMCHL6w== X-Received: by 2002:a05:6808:ec8:b0:354:4ce3:9ba5 with SMTP id q8-20020a0568080ec800b003544ce39ba5mr5745070oiv.226.1666034418654; Mon, 17 Oct 2022 12:20:18 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:18 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, =?utf-8?q?C=C3=A9dric_Le_Goate?= =?utf-8?q?r?= , Greg Kurz , David Gibson , =?utf-8?q?Alex_Benn=C3=A9e?= , Daniel Henrique Barboza Subject: [PULL 01/38] MAINTAINERS: step back from PPC Date: Mon, 17 Oct 2022 16:19:32 -0300 Message-Id: <20221017192009.92404-2-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Cédric Le Goater I am not active anymore on the PPC maintainership, degrade my self as standard Reviewer. Also degrade PowerNV and XIVE status since I am not funded for this work. Signed-off-by: Cédric Le Goater Reviewed-by: Greg Kurz Reviewed-by: David Gibson Reviewed-by: Alex Bennée Message-Id: <20220929180946.848721-1-clg@kaod.org> Signed-off-by: Daniel Henrique Barboza --- MAINTAINERS | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 8ae2e43c83..d86d21ae4e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -267,8 +267,8 @@ F: hw/openrisc/ F: tests/tcg/openrisc/ PowerPC TCG CPUs -M: Cédric Le Goater M: Daniel Henrique Barboza +R: Cédric Le Goater R: David Gibson R: Greg Kurz L: qemu-ppc@nongnu.org @@ -392,8 +392,8 @@ F: target/mips/kvm* F: target/mips/sysemu/ PPC KVM CPUs -M: Cédric Le Goater M: Daniel Henrique Barboza +R: Cédric Le Goater R: David Gibson R: Greg Kurz S: Maintained @@ -1365,8 +1365,8 @@ F: include/hw/rtc/m48t59.h F: tests/avocado/ppc_prep_40p.py sPAPR (pseries) -M: Cédric Le Goater M: Daniel Henrique Barboza +R: Cédric Le Goater R: David Gibson R: Greg Kurz L: qemu-ppc@nongnu.org @@ -1387,7 +1387,7 @@ F: tests/avocado/ppc_pseries.py PowerNV (Non-Virtualized) M: Cédric Le Goater L: qemu-ppc@nongnu.org -S: Maintained +S: Odd Fixes F: docs/system/ppc/powernv.rst F: hw/ppc/pnv* F: hw/intc/pnv* @@ -2333,7 +2333,7 @@ T: git https://github.com/philmd/qemu.git fw_cfg-next XIVE M: Cédric Le Goater L: qemu-ppc@nongnu.org -S: Supported +S: Odd Fixes F: hw/*/*xive* F: include/hw/*/*xive* F: docs/*/*xive* From patchwork Mon Oct 17 19:19:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691040 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=aTN4YVNv; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn5D4T8tz1ygT for ; Tue, 18 Oct 2022 06:25:20 +1100 (AEDT) Received: from localhost ([::1]:42720 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVjh-0001t0-MQ for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:25:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46722) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVey-0001qe-Td; Mon, 17 Oct 2022 15:20:25 -0400 Received: from mail-oa1-x2a.google.com ([2001:4860:4864:20::2a]:40938) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVex-0002k2-9o; Mon, 17 Oct 2022 15:20:24 -0400 Received: by mail-oa1-x2a.google.com with SMTP id 586e51a60fabf-1364357a691so14382887fac.7; Mon, 17 Oct 2022 12:20:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ic7dM+KcZGJmcI0F6TLz1/fbPC40ME5FUv0YiqqnwPg=; b=aTN4YVNvm7UuT/kWEOFFd1W2wO9aE10H1BHvXglVP5V98CBFK5aelFZYUzkQJDSQiS aSjagJ+jfmlh4pyK+7hxEAKarLES0SF6JwGBYoKwiFEr0QhgzxqDrXb7Oc9QiMwCBypQ w0zIgg9SZKX5eC+v8b4MCQ3Lb+u1zFnR22scK0vv4GwhC97u5/OLqBU6wPHFRBY7r+7I 6vbgVObcUrMKg+ZXP1NYvnT4yo9i2k4BmNPTWrLGVp+446EAoYKzeakxtuYKKy1t8aIO YCl32uEtEfWi1Q2KTfgWRUBtRzWMk+bMz/8KLDON8FNMj77LjBzRnAqEuhp5ntci3pQx ss5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ic7dM+KcZGJmcI0F6TLz1/fbPC40ME5FUv0YiqqnwPg=; b=TfjUbWhXIA1YwZa9M5tX/t1Lt0s3+HHZbigNn3xj6rKKov1zeMYZbvatdaUyyhC7QQ Q6GowuLgMv91DkpaxQKSu4OUZebOxqtDj/23KmtBgsBBUt3v6UXbRrE7cKhZtWH122rH 7HE/HBzZyMwusoOgExaNvrP7cCBR3a+YCzM1gFGaziOzeBmIcHFbFDZZ6EmmpIt/gIDC YTWVb49U7UzLY6zPL+zmUICcJnZWGcvxvCwTNx9HFSF4jr4n/58lfeEWJfmRliPZp7Kh 7hp6JtRL2e3IG6tMB+4jYvDZVbRMuQh1XFqtGPm6Ug0iVuru22HGVQWsNRQoln93MBu7 qoSg== X-Gm-Message-State: ACrzQf0d9jd2ioEN4pXwqzw52mNaagoJi1WH2wKgUnOSzQ7h2U5HhHnm MQ8vwXx4MOBR0U/UmxLdr1rH87xTkUk= X-Google-Smtp-Source: AMsMyM6Y43f7w8MFvcHep00VW7Yf2rHjPI7/srWUao1MmlkwJghD8qBpSfn6+wW3tZ6WybtfEQ8CHg== X-Received: by 2002:a05:6870:3415:b0:133:197:3ca3 with SMTP id g21-20020a056870341500b0013301973ca3mr16471148oah.115.1666034421279; Mon, 17 Oct 2022 12:20:21 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:20 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Nicholas Piggin , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Daniel Henrique Barboza Subject: [PULL 02/38] target/ppc: restore powerpc_excp_booke doorbell interrupts Date: Mon, 17 Oct 2022 16:19:33 -0300 Message-Id: <20221017192009.92404-3-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::2a; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Nicholas Piggin This partially reverts commit 9dc20cc37db9 ("target/ppc: Simplify powerpc_excp_booke"), which removed DOORI and DOORCI interrupts. Without this patch, a -cpu e5500 -smp 2 machine booting Linux crashes with: qemu: fatal: Invalid PowerPC exception 36. Aborting Signed-off-by: Nicholas Piggin Reviewed-by: Cédric Le Goater Message-Id: <20220924114436.1422786-1-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- target/ppc/excp_helper.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index 214acf5ac4..43f2480e94 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -1247,6 +1247,12 @@ static void powerpc_excp_booke(PowerPCCPU *cpu, int excp) case POWERPC_EXCP_SPEU: /* SPE/embedded floating-point unavailable/VPU */ env->spr[SPR_BOOKE_ESR] = ESR_SPV; break; + case POWERPC_EXCP_DOORI: /* Embedded doorbell interrupt */ + break; + case POWERPC_EXCP_DOORCI: /* Embedded doorbell critical interrupt */ + srr0 = SPR_BOOKE_CSRR0; + srr1 = SPR_BOOKE_CSRR1; + break; case POWERPC_EXCP_RESET: /* System reset exception */ if (FIELD_EX64(env->msr, MSR, POW)) { cpu_abort(cs, "Trying to deliver power-saving system reset " From patchwork Mon Oct 17 19:19:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691083 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=j1FHOFGY; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnSP62dKz1ygT for ; Tue, 18 Oct 2022 06:41:57 +1100 (AEDT) Received: from localhost ([::1]:55794 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVzn-0000OB-3x for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:41:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42354) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfD-0001sx-1h; Mon, 17 Oct 2022 15:20:41 -0400 Received: from mail-oi1-x22c.google.com ([2607:f8b0:4864:20::22c]:40561) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfA-0002t1-CL; Mon, 17 Oct 2022 15:20:37 -0400 Received: by mail-oi1-x22c.google.com with SMTP id l5so13220015oif.7; Mon, 17 Oct 2022 12:20:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7F1ACrj5VK+gCC8xu2+eSyk+37NdAxYY/oB2+sgdH5I=; b=j1FHOFGY7NQPk/XRnDpqCBnfWrgU0SCfJBomsx+9T7z/RHYYcWjU8GPmvKMd5+Ka/B jxVcy7MTlw3yJKnXGOviG/YLVA3fbhtQauj9600gnB/8rmPnGJ1tD7HNcUZjABZDuJfe iE4lnMX7Pp80fd9zIaOsOwI3KRPgfoQCJsEP+R0Tb0xABiT0WrxyF1w6C5w7rwYZ8oQO pUnj01/pJSkjcsjLlnMXG14CGJJ7+TXLXurzLf+7bq6mfil0Gbq293t9i5ysSctsnvS/ uV53XQB/fAcHSNT2wuUE3JNramHMd8a9kvPmxPkDabHzWi/yIlMUr/iMVXEnSjM77m75 B8Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7F1ACrj5VK+gCC8xu2+eSyk+37NdAxYY/oB2+sgdH5I=; b=Abq8oIb+prcgbyr9BAJJ4Q9BNmVtYshVrm/8YKGq6owwC4VxW+xnYpEbbdunnSzjlQ JfY9Ry3YiAnecK7sMc0u8SSu5GLIYCpQeKRp0zYfsTbwzH4n0QLOSz/mLrf/7Br3U1CF rH2dJY/3EfgUxEozzzeH/1os+7PDWeVF61I9kAHkTORo4hpP+jpBAKaZLzTAB3CRaGDw l81YIOayS4GLsKk4acrZRSu8cubNGrv9zVG2MtDkT/IDoWDeu8d9Xki1rNJAF4oekYl9 j3mSNk7Ks4dutykLvRAKXmDu5KikRCya9IxXtYJSStN8MxqH4hyHw+aMYcf0Zw02Pqx+ Lq3w== X-Gm-Message-State: ACrzQf3bFEmzFDyoeEZ+vEiXPaAUF34fEvGJx6zN5QD6uRFOvNuspdIm Np+jmPIhwb28tZxgz6QSCjS3PND95eo= X-Google-Smtp-Source: AMsMyM54IeGSW76NaYv/KSO6rKekdAXksNN4chZEi5asQSWXfrnobvUHRRLmhG1SQrNoM7aoxNhIng== X-Received: by 2002:a05:6870:538d:b0:136:3cc4:78fa with SMTP id h13-20020a056870538d00b001363cc478famr16459810oan.278.1666034423646; Mon, 17 Oct 2022 12:20:23 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:23 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , Daniel Henrique Barboza Subject: [PULL 03/38] ppc440_bamboo: Remove unnecessary memsets Date: Mon, 17 Oct 2022 16:19:34 -0300 Message-Id: <20221017192009.92404-4-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::22c; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan In ppc4xx_sdram_init() the struct is allocated with g_new0() so no need to clear its elements. In the bamboo machine init memset can be replaced with array initialiser which is shorter. Signed-off-by: BALATON Zoltan Reviewed-by: Daniel Henrique Barboza Message-Id: <529adc7705fb3e3e777439895bdaa136bacb9403.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440_bamboo.c | 6 ++---- hw/ppc/ppc4xx_devs.c | 8 ++------ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index ea945a1c99..5ec82fa8c2 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -169,8 +169,8 @@ static void bamboo_init(MachineState *machine) MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *isa = g_new(MemoryRegion, 1); MemoryRegion *ram_memories = g_new(MemoryRegion, PPC440EP_SDRAM_NR_BANKS); - hwaddr ram_bases[PPC440EP_SDRAM_NR_BANKS]; - hwaddr ram_sizes[PPC440EP_SDRAM_NR_BANKS]; + hwaddr ram_bases[PPC440EP_SDRAM_NR_BANKS] = {0}; + hwaddr ram_sizes[PPC440EP_SDRAM_NR_BANKS] = {0}; PCIBus *pcibus; PowerPCCPU *cpu; CPUPPCState *env; @@ -205,8 +205,6 @@ static void bamboo_init(MachineState *machine) qdev_get_gpio_in(DEVICE(cpu), PPC40x_INPUT_CINT)); /* SDRAM controller */ - memset(ram_bases, 0, sizeof(ram_bases)); - memset(ram_sizes, 0, sizeof(ram_sizes)); ppc4xx_sdram_banks(machine->ram, PPC440EP_SDRAM_NR_BANKS, ram_memories, ram_bases, ram_sizes, ppc440ep_sdram_bank_sizes); /* XXX 440EP's ECC interrupts are on UIC1, but we've only created UIC0. */ diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c index ce38ae65e6..b4cd10f735 100644 --- a/hw/ppc/ppc4xx_devs.c +++ b/hw/ppc/ppc4xx_devs.c @@ -363,12 +363,8 @@ void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, sdram->irq = irq; sdram->nbanks = nbanks; sdram->ram_memories = ram_memories; - memset(sdram->ram_bases, 0, 4 * sizeof(hwaddr)); - memcpy(sdram->ram_bases, ram_bases, - nbanks * sizeof(hwaddr)); - memset(sdram->ram_sizes, 0, 4 * sizeof(hwaddr)); - memcpy(sdram->ram_sizes, ram_sizes, - nbanks * sizeof(hwaddr)); + memcpy(sdram->ram_bases, ram_bases, nbanks * sizeof(hwaddr)); + memcpy(sdram->ram_sizes, ram_sizes, nbanks * sizeof(hwaddr)); qemu_register_reset(&sdram_reset, sdram); ppc_dcr_register(env, SDRAM0_CFGADDR, sdram, &dcr_read_sdram, &dcr_write_sdram); From patchwork Mon Oct 17 19:19:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691044 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=cI2mBeHQ; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn5j1tc0z1ygT for ; Tue, 18 Oct 2022 06:25:45 +1100 (AEDT) Received: from localhost ([::1]:42772 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVk6-0001yx-Hy for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:25:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47352) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVf5-0001rz-43; Mon, 17 Oct 2022 15:20:33 -0400 Received: from mail-oa1-x33.google.com ([2001:4860:4864:20::33]:45008) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVf2-0002m4-Di; Mon, 17 Oct 2022 15:20:30 -0400 Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-132b8f6f1b2so14353945fac.11; Mon, 17 Oct 2022 12:20:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Z4z/7w0u2RzMHLlCWRbg3vhnghoeagJa/cuTWFZXPzo=; b=cI2mBeHQK/NOzH3K9JMe/qdCgLoPQnJZu2k2pzkAO3P/uL9yeWFZmeaMd6F90W1lEk itzu0bx4M+RSEnTCN3/xCOSw+Ad7nSvNhvmKbJ+WhFAvt7pwjBc0Nr9WtpvA/ACVFKNF syH8jNGrU0kJzMfFNuEmp1rwrQzP19RW7vwAIyTKN69fwbj7vaD7ctLNqzISTpU8c1lJ ssNcmDZ5UWX9jN86VTsqSgf2FfOdAcHXEG3XQB3Apmc0yPBz1NeEo9ZMSFm5HzErJvUa SJsNjb87xFD6lxDlyscDWDI8qBiKM+fyenm5pxAsaEo4LiW/n7jIMeEfy4v8J7sNSolV lBtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Z4z/7w0u2RzMHLlCWRbg3vhnghoeagJa/cuTWFZXPzo=; b=vHV+TvW2J2yVO5YFhOa+9p2SpBzA+oApsdxGmaGRbglc93cDAF/OFZXI21PhQhKdd0 0N8Km5+Zkak7n6gKFR77bTDb0VMZ06waVwZMsOKA4qiMTwXFrQ1yb3Z5vtIP3RE+PZmw /fiNxj9VeYHeTG5X1ecyg5VM1g1OcjJGmuHlnsmgz90kDZDx1qXUpHlYDb/0dlnochOz nEIdcZNMFbuTdkOh+8rqmOcn/7JRF4dm9llWcTk0KLCmo8eBKIy0UUruA4HvWD/WyRfv CmO3TuibqXuDfq+vdYDE7i39eyMOHkHJMn+nwQo0NLd/dTCR0lZ2eLgkECbA/+/zCEHE //0Q== X-Gm-Message-State: ACrzQf1AoMXwlaRgGTc5qSBHEWgjg4AV5y4ifvJ0z6qYbqihGra1RNfk UNLOJAlCAtNWT7OExdYsXw9xVSQNLUA= X-Google-Smtp-Source: AMsMyM5AA3af0bmFjx58VsbvBxQ6Z3RaP+bxM12KbFPr7YFNoxNHdUxgskjFvYvRKeBkFIrCssaDKQ== X-Received: by 2002:a05:6870:9125:b0:132:4cc:eb79 with SMTP id o37-20020a056870912500b0013204cceb79mr16858673oae.79.1666034426434; Mon, 17 Oct 2022 12:20:26 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:26 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Daniel Henrique Barboza Subject: [PULL 04/38] ppc4xx: Introduce Ppc4xxSdramBank struct Date: Mon, 17 Oct 2022 16:19:35 -0300 Message-Id: <20221017192009.92404-5-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::33; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x33.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Instead of storing sdram bank parameters in unrelated arrays put them in a struct so it's clear they belong to the same bank and simplify the state struct using this bank type. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Message-Id: <5eb82d0424c584b2b9e6f7bc51560f8189ed21bb.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440_uc.c | 49 +++++++++++++++++----------------- hw/ppc/ppc4xx_devs.c | 59 ++++++++++++++++++++--------------------- include/hw/ppc/ppc4xx.h | 8 ++++++ 3 files changed, 61 insertions(+), 55 deletions(-) diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index 53e981ddf4..db33334e29 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -16,7 +16,7 @@ #include "qemu/module.h" #include "hw/irq.h" #include "exec/memory.h" -#include "hw/ppc/ppc.h" +#include "hw/ppc/ppc4xx.h" #include "hw/qdev-properties.h" #include "hw/pci/pci.h" #include "sysemu/block-backend.h" @@ -485,11 +485,7 @@ void ppc4xx_sdr_init(CPUPPCState *env) typedef struct ppc440_sdram_t { uint32_t addr; int nbanks; - MemoryRegion containers[4]; /* used for clipping */ - MemoryRegion *ram_memories; - hwaddr ram_bases[4]; - hwaddr ram_sizes[4]; - uint32_t bcr[4]; + Ppc4xxSdramBank bank[4]; } ppc440_sdram_t; enum { @@ -570,23 +566,23 @@ static uint64_t sdram_size(uint32_t bcr) static void sdram_set_bcr(ppc440_sdram_t *sdram, int i, uint32_t bcr, int enabled) { - if (sdram->bcr[i] & 1) { + if (sdram->bank[i].bcr & 1) { /* First unmap RAM if enabled */ memory_region_del_subregion(get_system_memory(), - &sdram->containers[i]); - memory_region_del_subregion(&sdram->containers[i], - &sdram->ram_memories[i]); - object_unparent(OBJECT(&sdram->containers[i])); + &sdram->bank[i].container); + memory_region_del_subregion(&sdram->bank[i].container, + &sdram->bank[i].ram); + object_unparent(OBJECT(&sdram->bank[i].container)); } - sdram->bcr[i] = bcr & 0xffe0ffc1; + sdram->bank[i].bcr = bcr & 0xffe0ffc1; if (enabled && (bcr & 1)) { - memory_region_init(&sdram->containers[i], NULL, "sdram-containers", + memory_region_init(&sdram->bank[i].container, NULL, "sdram-container", sdram_size(bcr)); - memory_region_add_subregion(&sdram->containers[i], 0, - &sdram->ram_memories[i]); + memory_region_add_subregion(&sdram->bank[i].container, 0, + &sdram->bank[i].ram); memory_region_add_subregion(get_system_memory(), sdram_base(bcr), - &sdram->containers[i]); + &sdram->bank[i].container); } } @@ -595,9 +591,9 @@ static void sdram_map_bcr(ppc440_sdram_t *sdram) int i; for (i = 0; i < sdram->nbanks; i++) { - if (sdram->ram_sizes[i] != 0) { - sdram_set_bcr(sdram, i, sdram_bcr(sdram->ram_bases[i], - sdram->ram_sizes[i]), 1); + if (sdram->bank[i].size != 0) { + sdram_set_bcr(sdram, i, sdram_bcr(sdram->bank[i].base, + sdram->bank[i].size), 1); } else { sdram_set_bcr(sdram, i, 0, 0); } @@ -614,9 +610,9 @@ static uint32_t dcr_read_sdram(void *opaque, int dcrn) case SDRAM_R1BAS: case SDRAM_R2BAS: case SDRAM_R3BAS: - if (sdram->ram_sizes[dcrn - SDRAM_R0BAS]) { - ret = sdram_bcr(sdram->ram_bases[dcrn - SDRAM_R0BAS], - sdram->ram_sizes[dcrn - SDRAM_R0BAS]); + if (sdram->bank[dcrn - SDRAM_R0BAS].size) { + ret = sdram_bcr(sdram->bank[dcrn - SDRAM_R0BAS].base, + sdram->bank[dcrn - SDRAM_R0BAS].size); } break; case SDRAM_CONF1HB: @@ -701,12 +697,15 @@ void ppc440_sdram_init(CPUPPCState *env, int nbanks, int do_init) { ppc440_sdram_t *sdram; + int i; sdram = g_malloc0(sizeof(*sdram)); sdram->nbanks = nbanks; - sdram->ram_memories = ram_memories; - memcpy(sdram->ram_bases, ram_bases, nbanks * sizeof(hwaddr)); - memcpy(sdram->ram_sizes, ram_sizes, nbanks * sizeof(hwaddr)); + for (i = 0; i < nbanks; i++) { + sdram->bank[i].ram = ram_memories[i]; + sdram->bank[i].base = ram_bases[i]; + sdram->bank[i].size = ram_sizes[i]; + } qemu_register_reset(&sdram_reset, sdram); ppc_dcr_register(env, SDRAM0_CFGADDR, sdram, &dcr_read_sdram, &dcr_write_sdram); diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c index b4cd10f735..1226ec4aa9 100644 --- a/hw/ppc/ppc4xx_devs.c +++ b/hw/ppc/ppc4xx_devs.c @@ -42,10 +42,7 @@ typedef struct ppc4xx_sdram_t ppc4xx_sdram_t; struct ppc4xx_sdram_t { uint32_t addr; int nbanks; - MemoryRegion containers[4]; /* used for clipping */ - MemoryRegion *ram_memories; - hwaddr ram_bases[4]; - hwaddr ram_sizes[4]; + Ppc4xxSdramBank bank[4]; uint32_t besr0; uint32_t besr1; uint32_t bear; @@ -53,7 +50,6 @@ struct ppc4xx_sdram_t { uint32_t status; uint32_t rtr; uint32_t pmit; - uint32_t bcr[4]; uint32_t tr; uint32_t ecccfg; uint32_t eccesr; @@ -131,26 +127,26 @@ static target_ulong sdram_size(uint32_t bcr) static void sdram_set_bcr(ppc4xx_sdram_t *sdram, int i, uint32_t bcr, int enabled) { - if (sdram->bcr[i] & 0x00000001) { + if (sdram->bank[i].bcr & 0x00000001) { /* Unmap RAM */ - trace_ppc4xx_sdram_unmap(sdram_base(sdram->bcr[i]), - sdram_size(sdram->bcr[i])); + trace_ppc4xx_sdram_unmap(sdram_base(sdram->bank[i].bcr), + sdram_size(sdram->bank[i].bcr)); memory_region_del_subregion(get_system_memory(), - &sdram->containers[i]); - memory_region_del_subregion(&sdram->containers[i], - &sdram->ram_memories[i]); - object_unparent(OBJECT(&sdram->containers[i])); + &sdram->bank[i].container); + memory_region_del_subregion(&sdram->bank[i].container, + &sdram->bank[i].ram); + object_unparent(OBJECT(&sdram->bank[i].container)); } - sdram->bcr[i] = bcr & 0xFFDEE001; + sdram->bank[i].bcr = bcr & 0xFFDEE001; if (enabled && (bcr & 0x00000001)) { trace_ppc4xx_sdram_map(sdram_base(bcr), sdram_size(bcr)); - memory_region_init(&sdram->containers[i], NULL, "sdram-containers", + memory_region_init(&sdram->bank[i].container, NULL, "sdram-container", sdram_size(bcr)); - memory_region_add_subregion(&sdram->containers[i], 0, - &sdram->ram_memories[i]); + memory_region_add_subregion(&sdram->bank[i].container, 0, + &sdram->bank[i].ram); memory_region_add_subregion(get_system_memory(), sdram_base(bcr), - &sdram->containers[i]); + &sdram->bank[i].container); } } @@ -159,9 +155,9 @@ static void sdram_map_bcr(ppc4xx_sdram_t *sdram) int i; for (i = 0; i < sdram->nbanks; i++) { - if (sdram->ram_sizes[i] != 0) { - sdram_set_bcr(sdram, i, sdram_bcr(sdram->ram_bases[i], - sdram->ram_sizes[i]), 1); + if (sdram->bank[i].size != 0) { + sdram_set_bcr(sdram, i, sdram_bcr(sdram->bank[i].base, + sdram->bank[i].size), 1); } else { sdram_set_bcr(sdram, i, 0x00000000, 0); } @@ -173,10 +169,10 @@ static void sdram_unmap_bcr(ppc4xx_sdram_t *sdram) int i; for (i = 0; i < sdram->nbanks; i++) { - trace_ppc4xx_sdram_unmap(sdram_base(sdram->bcr[i]), - sdram_size(sdram->bcr[i])); + trace_ppc4xx_sdram_unmap(sdram_base(sdram->bank[i].bcr), + sdram_size(sdram->bank[i].bcr)); memory_region_del_subregion(get_system_memory(), - &sdram->ram_memories[i]); + &sdram->bank[i].ram); } } @@ -214,16 +210,16 @@ static uint32_t dcr_read_sdram(void *opaque, int dcrn) ret = sdram->pmit; break; case 0x40: /* SDRAM_B0CR */ - ret = sdram->bcr[0]; + ret = sdram->bank[0].bcr; break; case 0x44: /* SDRAM_B1CR */ - ret = sdram->bcr[1]; + ret = sdram->bank[1].bcr; break; case 0x48: /* SDRAM_B2CR */ - ret = sdram->bcr[2]; + ret = sdram->bank[2].bcr; break; case 0x4C: /* SDRAM_B3CR */ - ret = sdram->bcr[3]; + ret = sdram->bank[3].bcr; break; case 0x80: /* SDRAM_TR */ ret = -1; /* ? */ @@ -358,13 +354,16 @@ void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, int do_init) { ppc4xx_sdram_t *sdram; + int i; sdram = g_new0(ppc4xx_sdram_t, 1); sdram->irq = irq; sdram->nbanks = nbanks; - sdram->ram_memories = ram_memories; - memcpy(sdram->ram_bases, ram_bases, nbanks * sizeof(hwaddr)); - memcpy(sdram->ram_sizes, ram_sizes, nbanks * sizeof(hwaddr)); + for (i = 0; i < nbanks; i++) { + sdram->bank[i].ram = ram_memories[i]; + sdram->bank[i].base = ram_bases[i]; + sdram->bank[i].size = ram_sizes[i]; + } qemu_register_reset(&sdram_reset, sdram); ppc_dcr_register(env, SDRAM0_CFGADDR, sdram, &dcr_read_sdram, &dcr_write_sdram); diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h index a1781afa8e..2af0d60577 100644 --- a/include/hw/ppc/ppc4xx.h +++ b/include/hw/ppc/ppc4xx.h @@ -29,6 +29,14 @@ #include "exec/memory.h" #include "hw/sysbus.h" +typedef struct { + MemoryRegion ram; + MemoryRegion container; /* used for clipping */ + hwaddr base; + hwaddr size; + uint32_t bcr; +} Ppc4xxSdramBank; + void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, MemoryRegion ram_memories[], hwaddr ram_bases[], hwaddr ram_sizes[], From patchwork Mon Oct 17 19:19:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691048 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=YHZ/egoW; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn5s23PTz1ygT for ; Tue, 18 Oct 2022 06:25:51 +1100 (AEDT) Received: from localhost ([::1]:42794 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVkA-00024F-8G for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:25:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47354) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVf7-0001s8-72; Mon, 17 Oct 2022 15:20:34 -0400 Received: from mail-oa1-x2f.google.com ([2001:4860:4864:20::2f]:43625) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVf4-0002nP-Tt; Mon, 17 Oct 2022 15:20:32 -0400 Received: by mail-oa1-x2f.google.com with SMTP id 586e51a60fabf-1324e7a1284so14385498fac.10; Mon, 17 Oct 2022 12:20:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tO+FE161ZHrjjX3lOeKtKuS/Ie/mQPjsgJGVKPgoeB0=; b=YHZ/egoWeJpo6+jDnOzHNf1fI1s36wIPba4FGbrEO+ykhl2tCnTXnX1gEHy5hj+IRt 6rlmTHingknZgsgZjyANyl9dzXF8QGQuUVEW0TRu67xX/sx7M9+nAc3HeHmH9/jtaWB4 RL2WTF3Wd05IzVg3AugmzLiNYCPNTt3gVZVVpuj3nFdW63cFrFU4+9Kw5ZBGjuXYZ+/A JUKBhWcJsWZDTIPw1wob7MGat8xo4/NI2eHeGN1PztMk/biARhuNP86UJMdWT0avm7gU 7JupB6DDZgeLVfI9UJQTFIr1YsCG6Pe9WP3Bzcl/U2U0avZsZ876mZMnKXS+T55ngGPw l61g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tO+FE161ZHrjjX3lOeKtKuS/Ie/mQPjsgJGVKPgoeB0=; b=m+fPWUeop1cKn4J4zeSpwi4bm5x/2p7TpbHhfPUS0in6IeNO24O9z103zOrSQokV/g DOJscUv2a/dxMkabM7AVuiZFx12sLgIfFjCKCFuYd8L+ANnTb1IpD3nBOi89BT3SMau0 qiqjnkGrH6VsIvTbztqK3QI55Z4aOIA0DzzeF1SGcgM+QjHLkebaqdxPj1sSLNGeVTPJ j/S6WsApuKCqGVM21FA5u08uYfoizETL2av25EMfJPmHKt9nJqpMZga7MMcWHAx0tzBz 7JHFpavkOcJYsFIGz0U5X5+xg5QOUgeacXfi1zx/+ICuNJ4ulQIAQBKtY9ASTkVv0Cau VqfQ== X-Gm-Message-State: ACrzQf0dFSiAloPVxNqPPHN3EOS1N5sj91J/9zLhAY/aGLzdTuuj5YFi nTGk998KEdOTcCgjLPcs2T91zueJISM= X-Google-Smtp-Source: AMsMyM7uwWh53FI0Siu23Mqm+EhneazOlvStzzpZJhQLKTHTgXluv91mAwi7PBoARN/nfZrXTcvt/g== X-Received: by 2002:a05:6870:ea8f:b0:136:ddfe:bee2 with SMTP id s15-20020a056870ea8f00b00136ddfebee2mr16928611oap.151.1666034428972; Mon, 17 Oct 2022 12:20:28 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:28 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , Daniel Henrique Barboza Subject: [PULL 05/38] ppc4xx_sdram: Get rid of the init RAM hack Date: Mon, 17 Oct 2022 16:19:36 -0300 Message-Id: <20221017192009.92404-6-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::2f; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan The do_init parameter of ppc4xx_sdram_init() is used to map memory regions that is normally done by the firmware by programming the SDRAM controller. Do this from board code emulating what firmware would do when booting a kernel directly from -kernel without a firmware so we can get rid of this do_init hack. Signed-off-by: BALATON Zoltan Reviewed-by: Daniel Henrique Barboza Message-Id: Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc405.h | 1 - hw/ppc/ppc405_boards.c | 3 +-- hw/ppc/ppc405_uc.c | 4 +--- hw/ppc/ppc440_bamboo.c | 4 +++- hw/ppc/ppc4xx_devs.c | 12 +++++++----- include/hw/ppc/ppc4xx.h | 5 +++-- 6 files changed, 15 insertions(+), 14 deletions(-) diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h index 1e558c7831..756865621b 100644 --- a/hw/ppc/ppc405.h +++ b/hw/ppc/ppc405.h @@ -169,7 +169,6 @@ struct Ppc405SoCState { /* Public */ MemoryRegion ram_banks[2]; hwaddr ram_bases[2], ram_sizes[2]; - bool do_dram_init; MemoryRegion *dram_mr; hwaddr ram_size; diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c index 083f12b23e..1eaeca8806 100644 --- a/hw/ppc/ppc405_boards.c +++ b/hw/ppc/ppc405_boards.c @@ -288,8 +288,6 @@ static void ppc405_init(MachineState *machine) machine->ram_size, &error_fatal); object_property_set_link(OBJECT(&ppc405->soc), "dram", OBJECT(machine->ram), &error_abort); - object_property_set_bool(OBJECT(&ppc405->soc), "dram-init", - kernel_filename != NULL, &error_abort); object_property_set_uint(OBJECT(&ppc405->soc), "sys-clk", 33333333, &error_abort); qdev_realize(DEVICE(&ppc405->soc), NULL, &error_fatal); @@ -349,6 +347,7 @@ static void ppc405_init(MachineState *machine) /* Load ELF kernel and rootfs.cpio */ } else if (kernel_filename && !machine->firmware) { + ppc4xx_sdram_enable(&ppc405->soc.cpu.env); boot_from_kernel(machine, &ppc405->soc.cpu); } } diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c index 2ca42fdef6..1e02347e57 100644 --- a/hw/ppc/ppc405_uc.c +++ b/hw/ppc/ppc405_uc.c @@ -1081,8 +1081,7 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp) s->ram_bases[0], s->ram_sizes[0]); ppc4xx_sdram_init(env, qdev_get_gpio_in(DEVICE(&s->uic), 17), 1, - s->ram_banks, s->ram_bases, s->ram_sizes, - s->do_dram_init); + s->ram_banks, s->ram_bases, s->ram_sizes); /* External bus controller */ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->ebc), &s->cpu, errp)) { @@ -1160,7 +1159,6 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp) static Property ppc405_soc_properties[] = { DEFINE_PROP_LINK("dram", Ppc405SoCState, dram_mr, TYPE_MEMORY_REGION, MemoryRegion *), - DEFINE_PROP_BOOL("dram-init", Ppc405SoCState, do_dram_init, 0), DEFINE_PROP_UINT64("ram-size", Ppc405SoCState, ram_size, 0), DEFINE_PROP_END_OF_LIST(), }; diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index 5ec82fa8c2..409a8840da 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -211,7 +211,9 @@ static void bamboo_init(MachineState *machine) ppc4xx_sdram_init(env, qdev_get_gpio_in(uicdev, 14), PPC440EP_SDRAM_NR_BANKS, ram_memories, - ram_bases, ram_sizes, 1); + ram_bases, ram_sizes); + /* Enable SDRAM memory regions, this should be done by the firmware */ + ppc4xx_sdram_enable(env); /* PCI */ dev = sysbus_create_varargs(TYPE_PPC4xx_PCI_HOST_BRIDGE, diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c index 1226ec4aa9..3475589679 100644 --- a/hw/ppc/ppc4xx_devs.c +++ b/hw/ppc/ppc4xx_devs.c @@ -350,8 +350,7 @@ static void sdram_reset(void *opaque) void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, MemoryRegion *ram_memories, hwaddr *ram_bases, - hwaddr *ram_sizes, - int do_init) + hwaddr *ram_sizes) { ppc4xx_sdram_t *sdram; int i; @@ -369,9 +368,12 @@ void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, sdram, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM0_CFGDATA, sdram, &dcr_read_sdram, &dcr_write_sdram); - if (do_init) { - sdram_map_bcr(sdram); - } +} + +void ppc4xx_sdram_enable(CPUPPCState *env) +{ + ppc_dcr_write(env->dcr_env, SDRAM0_CFGADDR, 0x20); + ppc_dcr_write(env->dcr_env, SDRAM0_CFGDATA, 0x80000000); } /* diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h index 2af0d60577..13b3229851 100644 --- a/include/hw/ppc/ppc4xx.h +++ b/include/hw/ppc/ppc4xx.h @@ -37,6 +37,8 @@ typedef struct { uint32_t bcr; } Ppc4xxSdramBank; +void ppc4xx_sdram_enable(CPUPPCState *env); + void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, MemoryRegion ram_memories[], hwaddr ram_bases[], hwaddr ram_sizes[], @@ -45,8 +47,7 @@ void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, void ppc4xx_sdram_init (CPUPPCState *env, qemu_irq irq, int nbanks, MemoryRegion ram_memories[], hwaddr *ram_bases, - hwaddr *ram_sizes, - int do_init); + hwaddr *ram_sizes); #define TYPE_PPC4xx_PCI_HOST_BRIDGE "ppc4xx-pcihost" From patchwork Mon Oct 17 19:19:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691077 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=DdCjNmX8; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnML37j3z23kK for ; Tue, 18 Oct 2022 06:37:34 +1100 (AEDT) Received: from localhost ([::1]:40752 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVvV-0002sE-Qn for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:37:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48966) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfL-00027T-1x; Mon, 17 Oct 2022 15:20:48 -0400 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]:37467) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfI-0002u8-M9; Mon, 17 Oct 2022 15:20:46 -0400 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-12c8312131fso14405528fac.4; Mon, 17 Oct 2022 12:20:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=L+F+1JjcNb4/Wf0SU/a4zB9X6iRc6akJhwpK72igWTM=; b=DdCjNmX8ZYg2gTN5rIDRqaW2Y2HBNoRpH99qbnBEs6XFwg0nYA7R8l1rpsswJQtsor JKPho+H+MfN3WzrL1I7cMzK/LhEOxW3jpNRFEVjqOCXJezklFfBDfLZfdL3d2g2r+AAv af5T+VXVmH4uKR4mODmz207J0pn6Z6RxS4cbldMI9zdnr9UxOyCycD1A2JEa8AC39o16 XVGkoPE1u7/AtcRrVSS/8wa4TmHfN8UmDQlYqLA8vWleUcr+BnKluEa6xf9hz32na74D H7yWNN/lQaCjPtQzhByMRyw3mRs4cC4mpwRUjKYS3ZL+GeBjrWBSY+kWasit1OzVIVxS xYsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=L+F+1JjcNb4/Wf0SU/a4zB9X6iRc6akJhwpK72igWTM=; b=z9UD9vXUlaqTtSEiULJem3xtmFsiSeAO3ckr+x5h7h6uIoiJCyXvnqauJ/G0CvtXtY a19Iv1elOMS3f/pWVWztkRAGsIelePlz3RHT8nCC3vARUaE1eDB8KrX7XZkg2eBzmh6I alx3Lz/Wlaydb/MblZhHtPfOol3c7G/W1y2P7aU0j+dtZNr6lOXFkKhG431t5AcrVksd T/twrmpgwG2ErKujO7o2+WcLf3tiCEL/CI+qTBuopADUJX5jHUjfGDiYU3BrpUaUgAHS OIMwjqed/no/ts/jEE/9XWzp6T+AI0yyyHvlGk2aRD1nGlB4ul14YHS0SLn7ZVIW8SLX YAng== X-Gm-Message-State: ACrzQf0XBk9w5eEoBAdQxlzyEh1hjNT4/VMHI7vNFFcDmrWrzsfGZqfn etdUi98qUjnjJ+75hff8iwOz+AXotjU= X-Google-Smtp-Source: AMsMyM5VD65PUiRkm3gzK4aUbLrXmqvABXFm+V+N5eVGc5m6SBxJAwuIzqKn6QP3eJpNAH+S61DCXQ== X-Received: by 2002:a05:6870:7390:b0:131:de6f:b7ce with SMTP id z16-20020a056870739000b00131de6fb7cemr16341120oam.245.1666034431644; Mon, 17 Oct 2022 12:20:31 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:31 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Daniel Henrique Barboza Subject: [PULL 06/38] ppc4xx: Use Ppc4xxSdramBank in ppc4xx_sdram_banks() Date: Mon, 17 Oct 2022 16:19:37 -0300 Message-Id: <20221017192009.92404-7-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::2c; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Change ppc4xx_sdram_banks() to take one Ppc4xxSdramBank array instead of the separate arrays and adjust ppc4xx_sdram_init() and ppc440_sdram_init() accordingly as well as machines using these. Signed-off-by: BALATON Zoltan Reviewed-by: Cédric Le Goater Message-Id: Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc405.h | 4 +--- hw/ppc/ppc405_uc.c | 10 +++++----- hw/ppc/ppc440.h | 5 ++--- hw/ppc/ppc440_bamboo.c | 15 ++++++--------- hw/ppc/ppc440_uc.c | 9 ++++----- hw/ppc/ppc4xx_devs.c | 21 +++++++++------------ hw/ppc/sam460ex.c | 15 +++++---------- include/hw/ppc/ppc4xx.h | 9 +++------ 8 files changed, 35 insertions(+), 53 deletions(-) diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h index 756865621b..ca0972b88b 100644 --- a/hw/ppc/ppc405.h +++ b/hw/ppc/ppc405.h @@ -167,9 +167,7 @@ struct Ppc405SoCState { DeviceState parent_obj; /* Public */ - MemoryRegion ram_banks[2]; - hwaddr ram_bases[2], ram_sizes[2]; - + Ppc4xxSdramBank ram_banks[2]; MemoryRegion *dram_mr; hwaddr ram_size; diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c index 1e02347e57..bcbf35bc14 100644 --- a/hw/ppc/ppc405_uc.c +++ b/hw/ppc/ppc405_uc.c @@ -1074,14 +1074,14 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp) /* SDRAM controller */ /* XXX 405EP has no ECC interrupt */ - s->ram_bases[0] = 0; - s->ram_sizes[0] = s->ram_size; - memory_region_init_alias(&s->ram_banks[0], OBJECT(s), + s->ram_banks[0].base = 0; + s->ram_banks[0].size = s->ram_size; + memory_region_init_alias(&s->ram_banks[0].ram, OBJECT(s), "ppc405.sdram0", s->dram_mr, - s->ram_bases[0], s->ram_sizes[0]); + s->ram_banks[0].base, s->ram_banks[0].size); ppc4xx_sdram_init(env, qdev_get_gpio_in(DEVICE(&s->uic), 17), 1, - s->ram_banks, s->ram_bases, s->ram_sizes); + s->ram_banks); /* External bus controller */ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->ebc), &s->cpu, errp)) { diff --git a/hw/ppc/ppc440.h b/hw/ppc/ppc440.h index 7cef936125..e6c905b7d6 100644 --- a/hw/ppc/ppc440.h +++ b/hw/ppc/ppc440.h @@ -11,14 +11,13 @@ #ifndef PPC440_H #define PPC440_H -#include "hw/ppc/ppc.h" +#include "hw/ppc/ppc4xx.h" void ppc4xx_l2sram_init(CPUPPCState *env); void ppc4xx_cpr_init(CPUPPCState *env); void ppc4xx_sdr_init(CPUPPCState *env); void ppc440_sdram_init(CPUPPCState *env, int nbanks, - MemoryRegion *ram_memories, - hwaddr *ram_bases, hwaddr *ram_sizes, + Ppc4xxSdramBank *ram_banks, int do_init); void ppc4xx_ahb_init(CPUPPCState *env); void ppc4xx_dma_init(CPUPPCState *env, int dcr_base); diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index 409a8840da..edfb8c9709 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -168,9 +168,8 @@ static void bamboo_init(MachineState *machine) unsigned int pci_irq_nrs[4] = { 28, 27, 26, 25 }; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *isa = g_new(MemoryRegion, 1); - MemoryRegion *ram_memories = g_new(MemoryRegion, PPC440EP_SDRAM_NR_BANKS); - hwaddr ram_bases[PPC440EP_SDRAM_NR_BANKS] = {0}; - hwaddr ram_sizes[PPC440EP_SDRAM_NR_BANKS] = {0}; + Ppc4xxSdramBank *ram_banks = g_new0(Ppc4xxSdramBank, + PPC440EP_SDRAM_NR_BANKS); PCIBus *pcibus; PowerPCCPU *cpu; CPUPPCState *env; @@ -205,13 +204,11 @@ static void bamboo_init(MachineState *machine) qdev_get_gpio_in(DEVICE(cpu), PPC40x_INPUT_CINT)); /* SDRAM controller */ - ppc4xx_sdram_banks(machine->ram, PPC440EP_SDRAM_NR_BANKS, ram_memories, - ram_bases, ram_sizes, ppc440ep_sdram_bank_sizes); + ppc4xx_sdram_banks(machine->ram, PPC440EP_SDRAM_NR_BANKS, ram_banks, + ppc440ep_sdram_bank_sizes); /* XXX 440EP's ECC interrupts are on UIC1, but we've only created UIC0. */ - ppc4xx_sdram_init(env, - qdev_get_gpio_in(uicdev, 14), - PPC440EP_SDRAM_NR_BANKS, ram_memories, - ram_bases, ram_sizes); + ppc4xx_sdram_init(env, qdev_get_gpio_in(uicdev, 14), + PPC440EP_SDRAM_NR_BANKS, ram_banks); /* Enable SDRAM memory regions, this should be done by the firmware */ ppc4xx_sdram_enable(env); diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index db33334e29..8eae4ad9f0 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -692,8 +692,7 @@ static void sdram_reset(void *opaque) } void ppc440_sdram_init(CPUPPCState *env, int nbanks, - MemoryRegion *ram_memories, - hwaddr *ram_bases, hwaddr *ram_sizes, + Ppc4xxSdramBank *ram_banks, int do_init) { ppc440_sdram_t *sdram; @@ -702,9 +701,9 @@ void ppc440_sdram_init(CPUPPCState *env, int nbanks, sdram = g_malloc0(sizeof(*sdram)); sdram->nbanks = nbanks; for (i = 0; i < nbanks; i++) { - sdram->bank[i].ram = ram_memories[i]; - sdram->bank[i].base = ram_bases[i]; - sdram->bank[i].size = ram_sizes[i]; + sdram->bank[i].ram = ram_banks[i].ram; + sdram->bank[i].base = ram_banks[i].base; + sdram->bank[i].size = ram_banks[i].size; } qemu_register_reset(&sdram_reset, sdram); ppc_dcr_register(env, SDRAM0_CFGADDR, diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c index 3475589679..fcbda57c55 100644 --- a/hw/ppc/ppc4xx_devs.c +++ b/hw/ppc/ppc4xx_devs.c @@ -348,9 +348,7 @@ static void sdram_reset(void *opaque) } void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, - MemoryRegion *ram_memories, - hwaddr *ram_bases, - hwaddr *ram_sizes) + Ppc4xxSdramBank *ram_banks) { ppc4xx_sdram_t *sdram; int i; @@ -359,9 +357,9 @@ void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, sdram->irq = irq; sdram->nbanks = nbanks; for (i = 0; i < nbanks; i++) { - sdram->bank[i].ram = ram_memories[i]; - sdram->bank[i].base = ram_bases[i]; - sdram->bank[i].size = ram_sizes[i]; + sdram->bank[i].ram = ram_banks[i].ram; + sdram->bank[i].base = ram_banks[i].base; + sdram->bank[i].size = ram_banks[i].size; } qemu_register_reset(&sdram_reset, sdram); ppc_dcr_register(env, SDRAM0_CFGADDR, @@ -387,8 +385,7 @@ void ppc4xx_sdram_enable(CPUPPCState *env) * sizes varies by SoC. */ void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, - MemoryRegion ram_memories[], - hwaddr ram_bases[], hwaddr ram_sizes[], + Ppc4xxSdramBank ram_banks[], const ram_addr_t sdram_bank_sizes[]) { ram_addr_t size_left = memory_region_size(ram); @@ -403,13 +400,13 @@ void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, if (bank_size <= size_left) { char name[32]; - ram_bases[i] = base; - ram_sizes[i] = bank_size; + ram_banks[i].base = base; + ram_banks[i].size = bank_size; base += bank_size; size_left -= bank_size; snprintf(name, sizeof(name), "ppc4xx.sdram%d", i); - memory_region_init_alias(&ram_memories[i], NULL, name, ram, - ram_bases[i], ram_sizes[i]); + memory_region_init_alias(&ram_banks[i].ram, NULL, name, ram, + ram_banks[i].base, ram_banks[i].size); break; } } diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index 850bb3b817..f4c2a693fb 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -73,7 +73,6 @@ #define OPB_FREQ 115000000 #define EBC_FREQ 115000000 #define UART_FREQ 11059200 -#define SDRAM_NR_BANKS 4 /* The SoC could also handle 4 GiB but firmware does not work with that. */ /* Maybe it overflows a signed 32 bit number somewhere? */ @@ -274,9 +273,7 @@ static void sam460ex_init(MachineState *machine) { MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *isa = g_new(MemoryRegion, 1); - MemoryRegion *ram_memories = g_new(MemoryRegion, SDRAM_NR_BANKS); - hwaddr ram_bases[SDRAM_NR_BANKS] = {0}; - hwaddr ram_sizes[SDRAM_NR_BANKS] = {0}; + Ppc4xxSdramBank *ram_banks = g_new0(Ppc4xxSdramBank, 1); MemoryRegion *l2cache_ram = g_new(MemoryRegion, 1); DeviceState *uic[4]; int i; @@ -345,20 +342,18 @@ static void sam460ex_init(MachineState *machine) /* SDRAM controller */ /* put all RAM on first bank because board has one slot * and firmware only checks that */ - ppc4xx_sdram_banks(machine->ram, 1, ram_memories, ram_bases, ram_sizes, - ppc460ex_sdram_bank_sizes); + ppc4xx_sdram_banks(machine->ram, 1, ram_banks, ppc460ex_sdram_bank_sizes); /* FIXME: does 460EX have ECC interrupts? */ - ppc440_sdram_init(env, SDRAM_NR_BANKS, ram_memories, - ram_bases, ram_sizes, 1); + ppc440_sdram_init(env, 1, ram_banks, 1); /* IIC controllers and devices */ dev = sysbus_create_simple(TYPE_PPC4xx_I2C, 0x4ef600700, qdev_get_gpio_in(uic[0], 2)); i2c = PPC4xx_I2C(dev)->bus; /* SPD EEPROM on RAM module */ - spd_data = spd_data_generate(ram_sizes[0] < 128 * MiB ? DDR : DDR2, - ram_sizes[0]); + spd_data = spd_data_generate(ram_banks->size < 128 * MiB ? DDR : DDR2, + ram_banks->size); spd_data[20] = 4; /* SO-DIMM module */ smbus_eeprom_init_one(i2c, 0x50, spd_data); /* RTC */ diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h index 13b3229851..a7b41c7eaa 100644 --- a/include/hw/ppc/ppc4xx.h +++ b/include/hw/ppc/ppc4xx.h @@ -40,14 +40,11 @@ typedef struct { void ppc4xx_sdram_enable(CPUPPCState *env); void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, - MemoryRegion ram_memories[], - hwaddr ram_bases[], hwaddr ram_sizes[], + Ppc4xxSdramBank ram_banks[], const ram_addr_t sdram_bank_sizes[]); -void ppc4xx_sdram_init (CPUPPCState *env, qemu_irq irq, int nbanks, - MemoryRegion ram_memories[], - hwaddr *ram_bases, - hwaddr *ram_sizes); +void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, + Ppc4xxSdramBank *ram_banks); #define TYPE_PPC4xx_PCI_HOST_BRIDGE "ppc4xx-pcihost" From patchwork Mon Oct 17 19:19:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691043 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=kVPFhlaS; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn5R56ydz1ygT for ; Tue, 18 Oct 2022 06:25:31 +1100 (AEDT) Received: from localhost ([::1]:42766 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVjp-0001yv-7x for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:25:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42352) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfD-0001sw-1N; Mon, 17 Oct 2022 15:20:41 -0400 Received: from mail-oa1-x36.google.com ([2001:4860:4864:20::36]:35687) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfA-0002t0-D9; Mon, 17 Oct 2022 15:20:37 -0400 Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-134072c15c1so14423273fac.2; Mon, 17 Oct 2022 12:20:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3MaFXDtvMfgPuGxU9NkFZrLJtYKk9f94dgmXFB6QH14=; b=kVPFhlaS3INXnFPAHt5WBLo+/JMp39HAtijbUiuLdNj5d4KydI0GgFJZtcVo9Qk91N cwy+/LBJ35wG+Y9Os7x+Gqq98cOQ+6S5oUabWzGlzrF45aw7m34BEGYFJmy9eyNWYzRI h/ciTBfDeIy3aZbWxXBerLiIFxLkW1m3yANXjb+W4aKtIG/j6HyDunH41XOLByGKbuvr rVYb7g2RzJbeCQnhPrFexpH6sWuPE0/gzeLvxR4HBz22GIfmguSH3BYpQE/BRNYjjzP6 6k/UGAe8mhoQ8GxwGaEZzKy7Ak9Nz03DB6WaRL3MGV1CSD1UIw7gePuG+Jntlk+sdyGh zyTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3MaFXDtvMfgPuGxU9NkFZrLJtYKk9f94dgmXFB6QH14=; b=DWCvFNcgo2FpTwJ/IErdM6tiYHMQFXIir5JWqjimEybIEX9hdhklJ6NxqJk1B4A9Ww ngJK/ChAqbexdu/1GW9Yi8iiwZleA/+EwSPP+pxmqBL4FQMyKKOrviyOs1OozBEmcVPA n4wBx8y8F/dCUUb4joxjcV/lTkmPboNDo1lGDcIdltg48DSQ4DSgq9e99mBBoz6NzWe7 nSPj5tcu8VkLblz/6Jjgevizw6pq6nSfe9NEJBVt7wdKi9XPiSSyZ9KX4jHpWU6SeTTI 6jMZPy8XH3rSkPtTFOz4A/YkZ4kNMeKxs5Z2NSn5Vws5Nqa5M4ht5Y8mP4lBovLXo/xk W2NA== X-Gm-Message-State: ACrzQf2lukNZmtPgsYI/FCEkvifRLMEHwWrACPs/BtIAkzqwdj5GtRVT iG3a1jNL1UNk+Y3Uatb9yttTWOMnnfo= X-Google-Smtp-Source: AMsMyM7Q8fGAh2cbP8EOKqxoM9SMpCMIxh0Zb41npCo6S2ikSe92Sb197ZIgWgdONFgWhteaveSgdg== X-Received: by 2002:a05:6870:3120:b0:132:7d08:7059 with SMTP id v32-20020a056870312000b001327d087059mr6580792oaa.226.1666034434533; Mon, 17 Oct 2022 12:20:34 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:34 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Daniel Henrique Barboza Subject: [PULL 07/38] ppc440_bamboo: Add missing 4 MiB valid memory size Date: Mon, 17 Oct 2022 16:19:38 -0300 Message-Id: <20221017192009.92404-8-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::36; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x36.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Signed-off-by: BALATON Zoltan Reviewed-by: Cédric Le Goater Message-Id: <05836e38be84729c1c6b5b609e7aa2ea60435033.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440_bamboo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index edfb8c9709..7ec7c7c43d 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -51,7 +51,7 @@ #define PPC440EP_SDRAM_NR_BANKS 4 static const ram_addr_t ppc440ep_sdram_bank_sizes[] = { - 256 * MiB, 128 * MiB, 64 * MiB, 32 * MiB, 16 * MiB, 8 * MiB, 0 + 256 * MiB, 128 * MiB, 64 * MiB, 32 * MiB, 16 * MiB, 8 * MiB, 4 * MiB, 0 }; static hwaddr entry; From patchwork Mon Oct 17 19:19:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691056 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=G4apcGm2; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn7b50d6z1ygT for ; Tue, 18 Oct 2022 06:27:23 +1100 (AEDT) Received: from localhost ([::1]:59600 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVlf-0006t6-FZ for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:27:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42356) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfF-0001t4-9I; Mon, 17 Oct 2022 15:20:41 -0400 Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231]:40566) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfD-0002tO-Ce; Mon, 17 Oct 2022 15:20:41 -0400 Received: by mail-oi1-x231.google.com with SMTP id l5so13220150oif.7; Mon, 17 Oct 2022 12:20:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QTrW1fMp+tMypGOIXzhzboV+/SCCFYeb2uEWz/sl2AY=; b=G4apcGm2ZzH9Y9+MPCIlXLo50mxuoMkn8KR476LkGUbsBl8qh2SkeRN/HdI8DGkSG9 +Kgavmx1IfRTGPKlCfsOzqz6Irw5pKFL9tl/6Q6Uvl+A7v2vME50wgqcinmsOLO7C6BG CTkUfTfS/vhNXnaGisgTwHv4wsdwj7qNdbWuqucwi4OAFcYaiDTfnN6nmk8m7PLtuML8 6Ijp1EHwL1lqV9ZGn0IbNCrJoP4ZYlfjMxaWm23wfHMDfJj2OTpLJpGdJZcssafzFue0 rwHloY35QYtGTMlISJydM7H1sP2Mg/Fi3Bvi9sJLOlttqupq517T9WAe7Ki8wtiuO8D3 9lcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QTrW1fMp+tMypGOIXzhzboV+/SCCFYeb2uEWz/sl2AY=; b=1eTudq+gdho8gq4SmXMRrMJ28Ivq4F/nrdqf4ZbaN84kpLhu1x2H7fLfQvKhI1xMYF QD1E0YUsbQ5e6buXe4s1DNu51lEBoFh0u/Lvo2GKMB83h7EPcs+BMXwfU4Zu3wVWsyGD gFm9Bd1sOrZkfVgzHbI3nk+bOKyxShhEn2jAm8+IwsVYceSR3//Fuw6pKXJ3fwjEPBtd PoE8Oyxq5I2KJ7lRuK3VTEtfLsUNQ83EqV2SzIncy06kf89y1m/paMRgLrUPhihv6mpB AnFrR5Hg8YuZ7yWAx9ld4TxMkjJ96WJPvf+tC6tSXOkjUYK2XGt1XKXAo2vA5hczOUXv JPCQ== X-Gm-Message-State: ACrzQf2/iBNwqT9v/WUWSVICSR6WZiqbRg3VNTi2wWpDJPqBuFVQP7YH einTif916dlC4MwGmr6EfKJl49KhmtA= X-Google-Smtp-Source: AMsMyM7Ci7WVvgya0o/pK4yeMBVkVIw/GlA7JPqtAIFjIGtfIPxem9k/hSa+tANfGkDRWtFipOk+PA== X-Received: by 2002:a05:6808:120c:b0:351:6d17:1845 with SMTP id a12-20020a056808120c00b003516d171845mr5955253oil.254.1666034437346; Mon, 17 Oct 2022 12:20:37 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:36 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Daniel Henrique Barboza Subject: [PULL 08/38] ppc4xx_sdram: Move size check to ppc4xx_sdram_init() Date: Mon, 17 Oct 2022 16:19:39 -0300 Message-Id: <20221017192009.92404-9-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::231; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x231.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Instead of checking if memory size is valid in board code move this check to ppc4xx_sdram_init() as this is a restriction imposed by the SDRAM controller. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Message-Id: <39e5129dd095b285676a6267c5753786da1bc30d.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc405.h | 2 -- hw/ppc/ppc405_boards.c | 10 ---------- hw/ppc/ppc405_uc.c | 11 ++--------- hw/ppc/ppc440_bamboo.c | 10 +--------- hw/ppc/ppc4xx_devs.c | 14 ++++++-------- include/hw/ppc/ppc4xx.h | 2 +- 6 files changed, 10 insertions(+), 39 deletions(-) diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h index ca0972b88b..ad54dff542 100644 --- a/hw/ppc/ppc405.h +++ b/hw/ppc/ppc405.h @@ -167,9 +167,7 @@ struct Ppc405SoCState { DeviceState parent_obj; /* Public */ - Ppc4xxSdramBank ram_banks[2]; MemoryRegion *dram_mr; - hwaddr ram_size; PowerPCCPU cpu; PPCUIC uic; diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c index 1eaeca8806..824acf7a80 100644 --- a/hw/ppc/ppc405_boards.c +++ b/hw/ppc/ppc405_boards.c @@ -271,21 +271,11 @@ static void boot_from_kernel(MachineState *machine, PowerPCCPU *cpu) static void ppc405_init(MachineState *machine) { Ppc405MachineState *ppc405 = PPC405_MACHINE(machine); - MachineClass *mc = MACHINE_GET_CLASS(machine); const char *kernel_filename = machine->kernel_filename; MemoryRegion *sysmem = get_system_memory(); - if (machine->ram_size != mc->default_ram_size) { - char *sz = size_to_str(mc->default_ram_size); - error_report("Invalid RAM size, should be %s", sz); - g_free(sz); - exit(EXIT_FAILURE); - } - object_initialize_child(OBJECT(machine), "soc", &ppc405->soc, TYPE_PPC405_SOC); - object_property_set_uint(OBJECT(&ppc405->soc), "ram-size", - machine->ram_size, &error_fatal); object_property_set_link(OBJECT(&ppc405->soc), "dram", OBJECT(machine->ram), &error_abort); object_property_set_uint(OBJECT(&ppc405->soc), "sys-clk", 33333333, diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c index bcbf35bc14..e1c7188e61 100644 --- a/hw/ppc/ppc405_uc.c +++ b/hw/ppc/ppc405_uc.c @@ -1073,15 +1073,9 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp) qdev_get_gpio_in(DEVICE(&s->cpu), PPC40x_INPUT_CINT)); /* SDRAM controller */ - /* XXX 405EP has no ECC interrupt */ - s->ram_banks[0].base = 0; - s->ram_banks[0].size = s->ram_size; - memory_region_init_alias(&s->ram_banks[0].ram, OBJECT(s), - "ppc405.sdram0", s->dram_mr, - s->ram_banks[0].base, s->ram_banks[0].size); - + /* XXX 405EP has no ECC interrupt */ ppc4xx_sdram_init(env, qdev_get_gpio_in(DEVICE(&s->uic), 17), 1, - s->ram_banks); + s->dram_mr); /* External bus controller */ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->ebc), &s->cpu, errp)) { @@ -1159,7 +1153,6 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp) static Property ppc405_soc_properties[] = { DEFINE_PROP_LINK("dram", Ppc405SoCState, dram_mr, TYPE_MEMORY_REGION, MemoryRegion *), - DEFINE_PROP_UINT64("ram-size", Ppc405SoCState, ram_size, 0), DEFINE_PROP_END_OF_LIST(), }; diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index 7ec7c7c43d..91d9a4eef3 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -50,10 +50,6 @@ #define PPC440EP_SDRAM_NR_BANKS 4 -static const ram_addr_t ppc440ep_sdram_bank_sizes[] = { - 256 * MiB, 128 * MiB, 64 * MiB, 32 * MiB, 16 * MiB, 8 * MiB, 4 * MiB, 0 -}; - static hwaddr entry; static int bamboo_load_device_tree(hwaddr addr, @@ -168,8 +164,6 @@ static void bamboo_init(MachineState *machine) unsigned int pci_irq_nrs[4] = { 28, 27, 26, 25 }; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *isa = g_new(MemoryRegion, 1); - Ppc4xxSdramBank *ram_banks = g_new0(Ppc4xxSdramBank, - PPC440EP_SDRAM_NR_BANKS); PCIBus *pcibus; PowerPCCPU *cpu; CPUPPCState *env; @@ -204,11 +198,9 @@ static void bamboo_init(MachineState *machine) qdev_get_gpio_in(DEVICE(cpu), PPC40x_INPUT_CINT)); /* SDRAM controller */ - ppc4xx_sdram_banks(machine->ram, PPC440EP_SDRAM_NR_BANKS, ram_banks, - ppc440ep_sdram_bank_sizes); /* XXX 440EP's ECC interrupts are on UIC1, but we've only created UIC0. */ ppc4xx_sdram_init(env, qdev_get_gpio_in(uicdev, 14), - PPC440EP_SDRAM_NR_BANKS, ram_banks); + PPC440EP_SDRAM_NR_BANKS, machine->ram); /* Enable SDRAM memory regions, this should be done by the firmware */ ppc4xx_sdram_enable(env); diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c index fcbda57c55..2e0343970f 100644 --- a/hw/ppc/ppc4xx_devs.c +++ b/hw/ppc/ppc4xx_devs.c @@ -41,7 +41,7 @@ typedef struct ppc4xx_sdram_t ppc4xx_sdram_t; struct ppc4xx_sdram_t { uint32_t addr; - int nbanks; + int nbanks; /* Banks to use from the 4, e.g. when board has less slots */ Ppc4xxSdramBank bank[4]; uint32_t besr0; uint32_t besr1; @@ -348,19 +348,17 @@ static void sdram_reset(void *opaque) } void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, - Ppc4xxSdramBank *ram_banks) + MemoryRegion *ram) { ppc4xx_sdram_t *sdram; - int i; + const ram_addr_t valid_bank_sizes[] = { + 256 * MiB, 128 * MiB, 64 * MiB, 32 * MiB, 16 * MiB, 8 * MiB, 4 * MiB, 0 + }; sdram = g_new0(ppc4xx_sdram_t, 1); sdram->irq = irq; sdram->nbanks = nbanks; - for (i = 0; i < nbanks; i++) { - sdram->bank[i].ram = ram_banks[i].ram; - sdram->bank[i].base = ram_banks[i].base; - sdram->bank[i].size = ram_banks[i].size; - } + ppc4xx_sdram_banks(ram, sdram->nbanks, sdram->bank, valid_bank_sizes); qemu_register_reset(&sdram_reset, sdram); ppc_dcr_register(env, SDRAM0_CFGADDR, sdram, &dcr_read_sdram, &dcr_write_sdram); diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h index a7b41c7eaa..1d41db9b30 100644 --- a/include/hw/ppc/ppc4xx.h +++ b/include/hw/ppc/ppc4xx.h @@ -44,7 +44,7 @@ void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, const ram_addr_t sdram_bank_sizes[]); void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, - Ppc4xxSdramBank *ram_banks); + MemoryRegion *ram); #define TYPE_PPC4xx_PCI_HOST_BRIDGE "ppc4xx-pcihost" From patchwork Mon Oct 17 19:19:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691060 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=ZSvoS+CA; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn8F5G01z1ygT for ; Tue, 18 Oct 2022 06:27:57 +1100 (AEDT) Received: from localhost ([::1]:46980 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVmE-0007VX-Sr for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:27:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48970) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfR-0002Cf-3C; Mon, 17 Oct 2022 15:20:54 -0400 Received: from mail-ot1-x335.google.com ([2607:f8b0:4864:20::335]:43683) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfF-0002tf-Ty; Mon, 17 Oct 2022 15:20:52 -0400 Received: by mail-ot1-x335.google.com with SMTP id t4-20020a9d7f84000000b00661c3d864f9so6373198otp.10; Mon, 17 Oct 2022 12:20:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6Y9s4PicDFppFT+wo76rIaEocNi8MfrFs7Dx5uXIK0k=; b=ZSvoS+CAtdYHHE0cg7m1x8zDNA/57WbwMFmuZ9VGaL+oHvkkNb9ZHyZNN9cvb9EAUq fDmA4aGcC6cCfekvVzbZiyqj/hMnNMUlFJjuMejhw8ytfzmCkP++U3Oz11HRv7DUbrhu Ogfqd549qf3/roRyzt81hpz9OK2JDdYrxCyOORi9b2MfEejoZ78TwWZuF3tRROY74jAb uA8o5LhXcn8TKYCyA//rT8ISWRKF0qNM86aNM8rOoYCEAVeuUpGiAev1Gi5uVMaOITIT 4ojzmDUIwqOjgXO6QN5EYAOJG2dOCIGhp3iFukfUAgCdLI7sfkKhxbQHRLup1LpcIHos 0w9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6Y9s4PicDFppFT+wo76rIaEocNi8MfrFs7Dx5uXIK0k=; b=SVRzvOeldYXU6bn6bowRUaRU6QgtYczc91lDrAcjPYn50sbnUHc1Jsxihf50Q+DmMg CYjCaHpBpBIxF2o8TxCufHIZMYYJWSGQWw3B8uiunUAJ1+yaW9UhPZHalYOzsXXGAzDD yijsxyncbk6wxm0871lTE+8WPTlqFtoJzB6jX3q84p0laYhEqb+W9k2zLHGx9pPur7D1 5vKsV82YuSrv9p6FeZzjPAe22mrwx7vmkponJ2/idukWGRzAdbehKqeu2DhKnaoeRS9n B6dmkR1XP6DU3xgUTGplc3sLq9hVC5QeoVrjTMls848fXLylQBTT4PvbTYk+gfifbdON oMCQ== X-Gm-Message-State: ACrzQf3Dsb3zCG5UeZbQjGqGXMusnGEHIy30X/j/U1A+S01tI5SOt4wF 1W+jAnmGa1kasjUdGgWnXCpgLQuLOpQ= X-Google-Smtp-Source: AMsMyM4KZGjWGZ6wjUapYtKAJTSNFoZFu2uEdCTy43X+iz2EbOn5yRZSXFFjbOVIXD98NvttN8QT5A== X-Received: by 2002:a05:6830:33e1:b0:655:e771:f572 with SMTP id i1-20020a05683033e100b00655e771f572mr5887503otu.245.1666034439949; Mon, 17 Oct 2022 12:20:39 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:39 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Daniel Henrique Barboza Subject: [PULL 09/38] ppc4xx_sdram: QOM'ify Date: Mon, 17 Oct 2022 16:19:40 -0300 Message-Id: <20221017192009.92404-10-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::335; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x335.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Change the ppc4xx_sdram model to a QOM class derived from the PPC4xx-dcr-device and name it ppc4xx-sdram-ddr. This is mostly modelling the DDR SDRAM controller found in the 440EP (used on the bamboo board) but also backward compatible with the older DDR controllers on some 405 SoCs so we also use it for those now. This likely does not cause problems for guests we run as the new features are just not accessed but to model 405 SoC accurately some features may have to be disabled or the model split between 440 and older. Newer SoCs (regardless of their PPC core, e.g. 405EX) may have an updated DDR2 SDRAM controller implemented by the ppc440_sdram model (only partially, enough for the 460EX on the sam460ex) that is not yet QOM'ified in this patch. That is intended to become ppc4xx-sdram-ddr2 when QOM'ified later. Signed-off-by: BALATON Zoltan Reviewed-by: Cédric Le Goater Message-Id: <8f820487fc9011343032c422ecdf3e8ee74d8c11.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc405.h | 3 +- hw/ppc/ppc405_boards.c | 2 +- hw/ppc/ppc405_uc.c | 22 +++++---- hw/ppc/ppc440_bamboo.c | 12 +++-- hw/ppc/ppc4xx_devs.c | 105 ++++++++++++++++++++++------------------ include/hw/ppc/ppc4xx.h | 31 ++++++++++-- 6 files changed, 105 insertions(+), 70 deletions(-) diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h index ad54dff542..9a4312691e 100644 --- a/hw/ppc/ppc405.h +++ b/hw/ppc/ppc405.h @@ -167,8 +167,6 @@ struct Ppc405SoCState { DeviceState parent_obj; /* Public */ - MemoryRegion *dram_mr; - PowerPCCPU cpu; PPCUIC uic; Ppc405CpcState cpc; @@ -182,6 +180,7 @@ struct Ppc405SoCState { Ppc405PobState pob; Ppc4xxPlbState plb; Ppc4xxMalState mal; + Ppc4xxSdramDdrState sdram; }; #endif /* PPC405_H */ diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c index 824acf7a80..b59393d4bd 100644 --- a/hw/ppc/ppc405_boards.c +++ b/hw/ppc/ppc405_boards.c @@ -337,7 +337,7 @@ static void ppc405_init(MachineState *machine) /* Load ELF kernel and rootfs.cpio */ } else if (kernel_filename && !machine->firmware) { - ppc4xx_sdram_enable(&ppc405->soc.cpu.env); + ppc4xx_sdram_enable(&ppc405->soc.sdram); boot_from_kernel(machine, &ppc405->soc.cpu); } } diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c index e1c7188e61..c973cfb04e 100644 --- a/hw/ppc/ppc405_uc.c +++ b/hw/ppc/ppc405_uc.c @@ -1016,6 +1016,9 @@ static void ppc405_soc_instance_init(Object *obj) object_initialize_child(obj, "plb", &s->plb, TYPE_PPC4xx_PLB); object_initialize_child(obj, "mal", &s->mal, TYPE_PPC4xx_MAL); + + object_initialize_child(obj, "sdram", &s->sdram, TYPE_PPC4xx_SDRAM_DDR); + object_property_add_alias(obj, "dram", OBJECT(&s->sdram), "dram"); } static void ppc405_reset(void *opaque) @@ -1073,9 +1076,17 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp) qdev_get_gpio_in(DEVICE(&s->cpu), PPC40x_INPUT_CINT)); /* SDRAM controller */ + /* + * We use the 440 DDR SDRAM controller which has more regs and features + * but it's compatible enough for now + */ + object_property_set_int(OBJECT(&s->sdram), "nbanks", 2, &error_abort); + if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->sdram), &s->cpu, errp)) { + return; + } /* XXX 405EP has no ECC interrupt */ - ppc4xx_sdram_init(env, qdev_get_gpio_in(DEVICE(&s->uic), 17), 1, - s->dram_mr); + sysbus_connect_irq(SYS_BUS_DEVICE(&s->sdram), 0, + qdev_get_gpio_in(DEVICE(&s->uic), 17)); /* External bus controller */ if (!ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(&s->ebc), &s->cpu, errp)) { @@ -1150,12 +1161,6 @@ static void ppc405_soc_realize(DeviceState *dev, Error **errp) /* Uses UIC IRQs 9, 15, 17 */ } -static Property ppc405_soc_properties[] = { - DEFINE_PROP_LINK("dram", Ppc405SoCState, dram_mr, TYPE_MEMORY_REGION, - MemoryRegion *), - DEFINE_PROP_END_OF_LIST(), -}; - static void ppc405_soc_class_init(ObjectClass *oc, void *data) { DeviceClass *dc = DEVICE_CLASS(oc); @@ -1163,7 +1168,6 @@ static void ppc405_soc_class_init(ObjectClass *oc, void *data) dc->realize = ppc405_soc_realize; /* Reason: only works as part of a ppc405 board/machine */ dc->user_creatable = false; - device_class_set_props(dc, ppc405_soc_properties); } static const TypeInfo ppc405_types[] = { diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index 91d9a4eef3..5c35ba6086 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -48,8 +48,6 @@ #define PPC440EP_PCI_IO 0xe8000000 #define PPC440EP_PCI_IOLEN 0x00010000 -#define PPC440EP_SDRAM_NR_BANKS 4 - static hwaddr entry; static int bamboo_load_device_tree(hwaddr addr, @@ -198,11 +196,15 @@ static void bamboo_init(MachineState *machine) qdev_get_gpio_in(DEVICE(cpu), PPC40x_INPUT_CINT)); /* SDRAM controller */ + dev = qdev_new(TYPE_PPC4xx_SDRAM_DDR); + object_property_set_link(OBJECT(dev), "dram", OBJECT(machine->ram), + &error_abort); + ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(dev), cpu, &error_fatal); + object_unref(OBJECT(dev)); /* XXX 440EP's ECC interrupts are on UIC1, but we've only created UIC0. */ - ppc4xx_sdram_init(env, qdev_get_gpio_in(uicdev, 14), - PPC440EP_SDRAM_NR_BANKS, machine->ram); + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, qdev_get_gpio_in(uicdev, 14)); /* Enable SDRAM memory regions, this should be done by the firmware */ - ppc4xx_sdram_enable(env); + ppc4xx_sdram_enable(PPC4xx_SDRAM_DDR(dev)); /* PCI */ dev = sysbus_create_varargs(TYPE_PPC4xx_PCI_HOST_BRIDGE, diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c index 2e0343970f..3d700e5c85 100644 --- a/hw/ppc/ppc4xx_devs.c +++ b/hw/ppc/ppc4xx_devs.c @@ -38,24 +38,6 @@ /*****************************************************************************/ /* SDRAM controller */ -typedef struct ppc4xx_sdram_t ppc4xx_sdram_t; -struct ppc4xx_sdram_t { - uint32_t addr; - int nbanks; /* Banks to use from the 4, e.g. when board has less slots */ - Ppc4xxSdramBank bank[4]; - uint32_t besr0; - uint32_t besr1; - uint32_t bear; - uint32_t cfg; - uint32_t status; - uint32_t rtr; - uint32_t pmit; - uint32_t tr; - uint32_t ecccfg; - uint32_t eccesr; - qemu_irq irq; -}; - enum { SDRAM0_CFGADDR = 0x010, SDRAM0_CFGDATA = 0x011, @@ -66,7 +48,7 @@ enum { * there are type inconsistencies, mixing hwaddr, target_ulong * and uint32_t */ -static uint32_t sdram_bcr(hwaddr ram_base, hwaddr ram_size) +static uint32_t sdram_ddr_bcr(hwaddr ram_base, hwaddr ram_size) { uint32_t bcr; @@ -124,7 +106,7 @@ static target_ulong sdram_size(uint32_t bcr) return size; } -static void sdram_set_bcr(ppc4xx_sdram_t *sdram, int i, +static void sdram_set_bcr(Ppc4xxSdramDdrState *sdram, int i, uint32_t bcr, int enabled) { if (sdram->bank[i].bcr & 0x00000001) { @@ -150,21 +132,21 @@ static void sdram_set_bcr(ppc4xx_sdram_t *sdram, int i, } } -static void sdram_map_bcr(ppc4xx_sdram_t *sdram) +static void sdram_map_bcr(Ppc4xxSdramDdrState *sdram) { int i; for (i = 0; i < sdram->nbanks; i++) { if (sdram->bank[i].size != 0) { - sdram_set_bcr(sdram, i, sdram_bcr(sdram->bank[i].base, - sdram->bank[i].size), 1); + sdram_set_bcr(sdram, i, sdram_ddr_bcr(sdram->bank[i].base, + sdram->bank[i].size), 1); } else { sdram_set_bcr(sdram, i, 0x00000000, 0); } } } -static void sdram_unmap_bcr(ppc4xx_sdram_t *sdram) +static void sdram_unmap_bcr(Ppc4xxSdramDdrState *sdram) { int i; @@ -176,12 +158,11 @@ static void sdram_unmap_bcr(ppc4xx_sdram_t *sdram) } } -static uint32_t dcr_read_sdram(void *opaque, int dcrn) +static uint32_t sdram_ddr_dcr_read(void *opaque, int dcrn) { - ppc4xx_sdram_t *sdram; + Ppc4xxSdramDdrState *sdram = opaque; uint32_t ret; - sdram = opaque; switch (dcrn) { case SDRAM0_CFGADDR: ret = sdram->addr; @@ -244,11 +225,10 @@ static uint32_t dcr_read_sdram(void *opaque, int dcrn) return ret; } -static void dcr_write_sdram(void *opaque, int dcrn, uint32_t val) +static void sdram_ddr_dcr_write(void *opaque, int dcrn, uint32_t val) { - ppc4xx_sdram_t *sdram; + Ppc4xxSdramDdrState *sdram = opaque; - sdram = opaque; switch (dcrn) { case SDRAM0_CFGADDR: sdram->addr = val; @@ -327,11 +307,10 @@ static void dcr_write_sdram(void *opaque, int dcrn, uint32_t val) } } -static void sdram_reset(void *opaque) +static void ppc4xx_sdram_ddr_reset(DeviceState *dev) { - ppc4xx_sdram_t *sdram; + Ppc4xxSdramDdrState *sdram = PPC4xx_SDRAM_DDR(dev); - sdram = opaque; sdram->addr = 0x00000000; sdram->bear = 0x00000000; sdram->besr0 = 0x00000000; /* No error */ @@ -347,29 +326,54 @@ static void sdram_reset(void *opaque) sdram->cfg = 0x00800000; } -void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, - MemoryRegion *ram) +static void ppc4xx_sdram_ddr_realize(DeviceState *dev, Error **errp) { - ppc4xx_sdram_t *sdram; + Ppc4xxSdramDdrState *s = PPC4xx_SDRAM_DDR(dev); + Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev); const ram_addr_t valid_bank_sizes[] = { 256 * MiB, 128 * MiB, 64 * MiB, 32 * MiB, 16 * MiB, 8 * MiB, 4 * MiB, 0 }; - sdram = g_new0(ppc4xx_sdram_t, 1); - sdram->irq = irq; - sdram->nbanks = nbanks; - ppc4xx_sdram_banks(ram, sdram->nbanks, sdram->bank, valid_bank_sizes); - qemu_register_reset(&sdram_reset, sdram); - ppc_dcr_register(env, SDRAM0_CFGADDR, - sdram, &dcr_read_sdram, &dcr_write_sdram); - ppc_dcr_register(env, SDRAM0_CFGDATA, - sdram, &dcr_read_sdram, &dcr_write_sdram); + if (s->nbanks < 1 || s->nbanks > 4) { + error_setg(errp, "Invalid number of RAM banks"); + return; + } + if (!s->dram_mr) { + error_setg(errp, "Missing dram memory region"); + return; + } + ppc4xx_sdram_banks(s->dram_mr, s->nbanks, s->bank, valid_bank_sizes); + + sysbus_init_irq(SYS_BUS_DEVICE(dev), &s->irq); + + ppc4xx_dcr_register(dcr, SDRAM0_CFGADDR, + s, &sdram_ddr_dcr_read, &sdram_ddr_dcr_write); + ppc4xx_dcr_register(dcr, SDRAM0_CFGDATA, + s, &sdram_ddr_dcr_read, &sdram_ddr_dcr_write); } -void ppc4xx_sdram_enable(CPUPPCState *env) +static Property ppc4xx_sdram_ddr_props[] = { + DEFINE_PROP_LINK("dram", Ppc4xxSdramDdrState, dram_mr, TYPE_MEMORY_REGION, + MemoryRegion *), + DEFINE_PROP_UINT32("nbanks", Ppc4xxSdramDdrState, nbanks, 4), + DEFINE_PROP_END_OF_LIST(), +}; + +static void ppc4xx_sdram_ddr_class_init(ObjectClass *oc, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(oc); + + dc->realize = ppc4xx_sdram_ddr_realize; + dc->reset = ppc4xx_sdram_ddr_reset; + /* Reason: only works as function of a ppc4xx SoC */ + dc->user_creatable = false; + device_class_set_props(dc, ppc4xx_sdram_ddr_props); +} + +void ppc4xx_sdram_enable(Ppc4xxSdramDdrState *s) { - ppc_dcr_write(env->dcr_env, SDRAM0_CFGADDR, 0x20); - ppc_dcr_write(env->dcr_env, SDRAM0_CFGDATA, 0x80000000); + sdram_ddr_dcr_write(s, SDRAM0_CFGADDR, 0x20); + sdram_ddr_dcr_write(s, SDRAM0_CFGDATA, 0x80000000); } /* @@ -959,6 +963,11 @@ static void ppc4xx_dcr_class_init(ObjectClass *oc, void *data) static const TypeInfo ppc4xx_types[] = { { + .name = TYPE_PPC4xx_SDRAM_DDR, + .parent = TYPE_PPC4xx_DCR_DEVICE, + .instance_size = sizeof(Ppc4xxSdramDdrState), + .class_init = ppc4xx_sdram_ddr_class_init, + }, { .name = TYPE_PPC4xx_MAL, .parent = TYPE_PPC4xx_DCR_DEVICE, .instance_size = sizeof(Ppc4xxMalState), diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h index 1d41db9b30..558500fb97 100644 --- a/include/hw/ppc/ppc4xx.h +++ b/include/hw/ppc/ppc4xx.h @@ -37,15 +37,10 @@ typedef struct { uint32_t bcr; } Ppc4xxSdramBank; -void ppc4xx_sdram_enable(CPUPPCState *env); - void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, Ppc4xxSdramBank ram_banks[], const ram_addr_t sdram_bank_sizes[]); -void ppc4xx_sdram_init(CPUPPCState *env, qemu_irq irq, int nbanks, - MemoryRegion *ram); - #define TYPE_PPC4xx_PCI_HOST_BRIDGE "ppc4xx-pcihost" /* @@ -115,4 +110,30 @@ struct Ppc4xxEbcState { uint32_t cfg; }; +/* SDRAM DDR controller */ +#define TYPE_PPC4xx_SDRAM_DDR "ppc4xx-sdram-ddr" +OBJECT_DECLARE_SIMPLE_TYPE(Ppc4xxSdramDdrState, PPC4xx_SDRAM_DDR); +struct Ppc4xxSdramDdrState { + Ppc4xxDcrDeviceState parent_obj; + + MemoryRegion *dram_mr; + uint32_t nbanks; /* Banks to use from 4, e.g. when board has less slots */ + Ppc4xxSdramBank bank[4]; + qemu_irq irq; + + uint32_t addr; + uint32_t besr0; + uint32_t besr1; + uint32_t bear; + uint32_t cfg; + uint32_t status; + uint32_t rtr; + uint32_t pmit; + uint32_t tr; + uint32_t ecccfg; + uint32_t eccesr; +}; + +void ppc4xx_sdram_enable(Ppc4xxSdramDdrState *s); + #endif /* PPC4XX_H */ From patchwork Mon Oct 17 19:19:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691045 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=B17mBJl5; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn5m4434z1ygT for ; Tue, 18 Oct 2022 06:25:48 +1100 (AEDT) Received: from localhost ([::1]:53444 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVk9-0002PT-Jd for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:25:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48964) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfK-00025L-CD; Mon, 17 Oct 2022 15:20:46 -0400 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]:45859) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfI-0002u7-Gw; Mon, 17 Oct 2022 15:20:46 -0400 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-132fb4fd495so14361834fac.12; Mon, 17 Oct 2022 12:20:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0ZQykwjZqwGTWxOf/YzIbRogh8MERmGIFs/3pjISJgM=; b=B17mBJl5YQ9SwiXghfxIL45MSI8gqErR1N/2cRIFSjDl24ru+2brM3vZzRQUyQesl8 vPUn2RqZlicKzqU4W/5O1BgUa7AbxaZOLpK0u5GwiWwqVLnsWXMQCt8MseCUxruXVwr1 8vkuvcl1PSN1EJ0FjblUqsaXZB46gzcRo9PaVBlQkXClQCAfCQQo/Dg6JnQgRZidqZ9F PbC5Yc53oKHYs47uh6cjoRnzXHe0hxduhWW2Yg3wJCUsbabLlhrwzacr7caBiob4jBWi 5bKS2FaOTzUy3FwbO8Sz3Ih8MNepzIkqf0odaPoBtCuwJmH5o+3b/N3mxjGJ7uUsJf9A 234w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0ZQykwjZqwGTWxOf/YzIbRogh8MERmGIFs/3pjISJgM=; b=mTFKqlBtWK4QXYraOnOrMNxMgO7W+8XeWEq2rXu9ecZ3tC+X0I2Db97R1IA33EOH+f VhbO8vARZnfRZ00DCJJKIjwVFkaX2ZVCzNMMjg15GEYl/lCwN02AjZ9ZMZ5QLkMw7xI9 yMBYU9PH3jIi5BV1eb7Ky2X2yDVJrz7ekGVR2QwvqFfspv0B8d81KbbNJjUFk84kOYqN djK8EKyxhZhPR6LMvchuacp+mE83RYBLswga4TgFa8tNOMh3w8DHt30+LqIfb5S5J36x joLofYtbdObH0yY24SmKA+nB6b4XqUILF30iDvx5dQk7QOz6YzIrj/51mkljOP7EBcCT 7xDw== X-Gm-Message-State: ACrzQf3cUsJ5W1z2EfNA4Nzl7aCQFvgTrtlq4yy+/B97KKAnVOCq+0yK gAqRgjlXE8ZvnOD229wAjmQc810uBkA= X-Google-Smtp-Source: AMsMyM6xOUkVxNzvXMy74Anisu609Z+PfH94mFT1JQpY4JdpofKtJgnH/2oWPIc0V4OD41RlApruzw== X-Received: by 2002:a05:6870:f2a6:b0:136:6442:4b52 with SMTP id u38-20020a056870f2a600b0013664424b52mr16171190oap.282.1666034442722; Mon, 17 Oct 2022 12:20:42 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:42 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Daniel Henrique Barboza Subject: [PULL 10/38] ppc4xx_sdram: Drop extra zeros for readability Date: Mon, 17 Oct 2022 16:19:41 -0300 Message-Id: <20221017192009.92404-11-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::2c; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Constants that are written zero padded for no good reason are hard to read, it's easier to see what is meant if it's just 0 or 1 instead. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Message-Id: <93974622c3d398c7d3a3488b678b74c3807849de.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc4xx_devs.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c index 3d700e5c85..02ac8ff335 100644 --- a/hw/ppc/ppc4xx_devs.c +++ b/hw/ppc/ppc4xx_devs.c @@ -54,31 +54,31 @@ static uint32_t sdram_ddr_bcr(hwaddr ram_base, hwaddr ram_size) switch (ram_size) { case 4 * MiB: - bcr = 0x00000000; + bcr = 0; break; case 8 * MiB: - bcr = 0x00020000; + bcr = 0x20000; break; case 16 * MiB: - bcr = 0x00040000; + bcr = 0x40000; break; case 32 * MiB: - bcr = 0x00060000; + bcr = 0x60000; break; case 64 * MiB: - bcr = 0x00080000; + bcr = 0x80000; break; case 128 * MiB: - bcr = 0x000A0000; + bcr = 0xA0000; break; case 256 * MiB: - bcr = 0x000C0000; + bcr = 0xC0000; break; default: qemu_log_mask(LOG_GUEST_ERROR, "%s: invalid RAM size 0x%" HWADDR_PRIx "\n", __func__, ram_size); - return 0x00000000; + return 0; } bcr |= ram_base & 0xFF800000; bcr |= 1; @@ -109,7 +109,7 @@ static target_ulong sdram_size(uint32_t bcr) static void sdram_set_bcr(Ppc4xxSdramDdrState *sdram, int i, uint32_t bcr, int enabled) { - if (sdram->bank[i].bcr & 0x00000001) { + if (sdram->bank[i].bcr & 1) { /* Unmap RAM */ trace_ppc4xx_sdram_unmap(sdram_base(sdram->bank[i].bcr), sdram_size(sdram->bank[i].bcr)); @@ -120,7 +120,7 @@ static void sdram_set_bcr(Ppc4xxSdramDdrState *sdram, int i, object_unparent(OBJECT(&sdram->bank[i].container)); } sdram->bank[i].bcr = bcr & 0xFFDEE001; - if (enabled && (bcr & 0x00000001)) { + if (enabled && (bcr & 1)) { trace_ppc4xx_sdram_map(sdram_base(bcr), sdram_size(bcr)); memory_region_init(&sdram->bank[i].container, NULL, "sdram-container", sdram_size(bcr)); @@ -141,7 +141,7 @@ static void sdram_map_bcr(Ppc4xxSdramDdrState *sdram) sdram_set_bcr(sdram, i, sdram_ddr_bcr(sdram->bank[i].base, sdram->bank[i].size), 1); } else { - sdram_set_bcr(sdram, i, 0x00000000, 0); + sdram_set_bcr(sdram, i, 0, 0); } } } @@ -218,7 +218,7 @@ static uint32_t sdram_ddr_dcr_read(void *opaque, int dcrn) break; default: /* Avoid gcc warning */ - ret = 0x00000000; + ret = 0; break; } @@ -311,18 +311,18 @@ static void ppc4xx_sdram_ddr_reset(DeviceState *dev) { Ppc4xxSdramDdrState *sdram = PPC4xx_SDRAM_DDR(dev); - sdram->addr = 0x00000000; - sdram->bear = 0x00000000; - sdram->besr0 = 0x00000000; /* No error */ - sdram->besr1 = 0x00000000; /* No error */ - sdram->cfg = 0x00000000; - sdram->ecccfg = 0x00000000; /* No ECC */ - sdram->eccesr = 0x00000000; /* No error */ + sdram->addr = 0; + sdram->bear = 0; + sdram->besr0 = 0; /* No error */ + sdram->besr1 = 0; /* No error */ + sdram->cfg = 0; + sdram->ecccfg = 0; /* No ECC */ + sdram->eccesr = 0; /* No error */ sdram->pmit = 0x07C00000; sdram->rtr = 0x05F00000; sdram->tr = 0x00854009; /* We pre-initialize RAM banks */ - sdram->status = 0x00000000; + sdram->status = 0; sdram->cfg = 0x00800000; } From patchwork Mon Oct 17 19:19:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691046 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=IqIwFzr+; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn5s2SKpz23kQ for ; Tue, 18 Oct 2022 06:25:51 +1100 (AEDT) Received: from localhost ([::1]:47978 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVkC-0002Zv-Da for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:25:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48968) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfO-00028z-M3; Mon, 17 Oct 2022 15:20:50 -0400 Received: from mail-ot1-x335.google.com ([2607:f8b0:4864:20::335]:37831) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfL-0002uR-UT; Mon, 17 Oct 2022 15:20:50 -0400 Received: by mail-ot1-x335.google.com with SMTP id r8-20020a056830120800b00661a0a236efso6371166otp.4; Mon, 17 Oct 2022 12:20:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vqrdr9BOGVpedwpdYOszalWevWwEVzPyFVb5k5s3bc8=; b=IqIwFzr+NTVSvdRaT8PnpX7xGlGr9xLy6/LlNJfVVMwrT9b4Qg8PxRbphaszSU421W /sACH5w4A1d9du0/SC7Zd4ro6dicv2QaU6MlIFOhfd8+/oVZ0Cjloen59TZykCQg2KD8 y9QWSPDzNaO0lE9ToIjzSbhY9VWpbHl+pkdHugO6JRgmiTvJcKqpGYH0y8Q4XAwze/rO UEHUbjSPup26Tx/CKmS0IUnXTvrIq88tXhQ5Fc6Ty7TGXF7xUxrM5Y12LYXJVQ+zLyVh Et3mn/6oVPTP2G/VoMoN+uwBV3xFsr2y7XbVNXk+YjmWMgx5eOhZg0sNVAy0RcngdAUj ApKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vqrdr9BOGVpedwpdYOszalWevWwEVzPyFVb5k5s3bc8=; b=tZm7Xn6nY+YQSWYLnBFw0Wvbkw4vRmUx4RS8JCC7Z53D/OdI60hQpbR498vPTlJ/Lr T3XQrsmLQWzGTaBYmny/41yYErhbhnfIk+X2zQxibLproatg5qbadOdG1HrxUROgJ6ar FnVLT0ILyaz5cdwLKCcFpMDKxH7HKkQoacsBDg/OQ8sQfP1CJD0E97c6MgGEicaAb9dT pJdY0aghk1zKLjyfBjG+mjkytrkodt9w4xVnee9BFVf8ifVqcoRBjO3AfFA32DDkJa3R dBjyLkKy9Esk/D08Md0vahtrhcgiBq+lNx0zwmSdtuvkgtp6cJDEcQ2GEv5dZZ+gDAM0 zG6Q== X-Gm-Message-State: ACrzQf3BeUVm3XwORZiNRuSIeBYe/X76KYlO7xgpYMWzG5Tne5sOTZKz fNym/vsIVfPiBMKRg5/5h0DNy/V3PnY= X-Google-Smtp-Source: AMsMyM74xFHcvt/qlj9zCblijCTOApZFE2NEF/p9Kloji1A3F3x02Vw2Y8EaKwaaUXQTqsyjQd0AyQ== X-Received: by 2002:a05:6830:698d:b0:660:d8a3:c484 with SMTP id cy13-20020a056830698d00b00660d8a3c484mr5633462otb.342.1666034445554; Mon, 17 Oct 2022 12:20:45 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:45 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Daniel Henrique Barboza Subject: [PULL 11/38] ppc440_sdram: Split off map/unmap of sdram banks for later reuse Date: Mon, 17 Oct 2022 16:19:42 -0300 Message-Id: <20221017192009.92404-12-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::335; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x335.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Message-Id: <23560b6a71682d513f3dd8e9ed3852f51d5eb309.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440_uc.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index 8eae4ad9f0..900b7ab998 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -23,6 +23,7 @@ #include "sysemu/reset.h" #include "ppc440.h" #include "qom/object.h" +#include "trace.h" /*****************************************************************************/ /* L2 Cache as SRAM */ @@ -563,26 +564,34 @@ static uint64_t sdram_size(uint32_t bcr) return size; } +static void sdram_bank_map(Ppc4xxSdramBank *bank) +{ + memory_region_init(&bank->container, NULL, "sdram-container", bank->size); + memory_region_add_subregion(&bank->container, 0, &bank->ram); + memory_region_add_subregion(get_system_memory(), bank->base, + &bank->container); +} + +static void sdram_bank_unmap(Ppc4xxSdramBank *bank) +{ + memory_region_del_subregion(get_system_memory(), &bank->container); + memory_region_del_subregion(&bank->container, &bank->ram); + object_unparent(OBJECT(&bank->container)); +} + static void sdram_set_bcr(ppc440_sdram_t *sdram, int i, uint32_t bcr, int enabled) { if (sdram->bank[i].bcr & 1) { /* First unmap RAM if enabled */ - memory_region_del_subregion(get_system_memory(), - &sdram->bank[i].container); - memory_region_del_subregion(&sdram->bank[i].container, - &sdram->bank[i].ram); - object_unparent(OBJECT(&sdram->bank[i].container)); + trace_ppc4xx_sdram_unmap(sdram_base(sdram->bank[i].bcr), + sdram_size(sdram->bank[i].bcr)); + sdram_bank_unmap(&sdram->bank[i]); } sdram->bank[i].bcr = bcr & 0xffe0ffc1; if (enabled && (bcr & 1)) { - memory_region_init(&sdram->bank[i].container, NULL, "sdram-container", - sdram_size(bcr)); - memory_region_add_subregion(&sdram->bank[i].container, 0, - &sdram->bank[i].ram); - memory_region_add_subregion(get_system_memory(), - sdram_base(bcr), - &sdram->bank[i].container); + trace_ppc4xx_sdram_map(sdram_base(bcr), sdram_size(bcr)); + sdram_bank_map(&sdram->bank[i]); } } From patchwork Mon Oct 17 19:19:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691050 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=NhR2A+7R; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn6F3HcTz23kQ for ; Tue, 18 Oct 2022 06:26:13 +1100 (AEDT) Received: from localhost ([::1]:53450 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVkY-0002VE-2U for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:26:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48972) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfR-0002Cg-46; Mon, 17 Oct 2022 15:20:54 -0400 Received: from mail-oi1-x22a.google.com ([2607:f8b0:4864:20::22a]:46039) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfP-0002iN-9m; Mon, 17 Oct 2022 15:20:52 -0400 Received: by mail-oi1-x22a.google.com with SMTP id o64so13202325oib.12; Mon, 17 Oct 2022 12:20:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=djS64W7ktw078xyD9yVn4E14AIWIPIhF33Lz7EV0UXY=; b=NhR2A+7Rx8A1M/VGXn93WEXaELXSEEJo0eLob5wj9+IyAVfN8swi0iHjdbo2EwzHgR ndpuNDA3B12UUGfdRYZ6XdwtNgTCpeK4C/Za8fM8HqXiAvVXAJJ8AaJRrugHVthfB6Rr VYeACEOhehpnkxWRH7VhhY+SI5XJJmK0UC3FTIR5UPpWRAx5OBXzBzyqGsIAuAujylRn qykCwVNMONfmbnttgavc9yu0zUT+QX//65NWybbtIwDT4qGu714XFV/s0N9Et8B8oWLl 7ibKIp33PjazqF/+2i+kKqmvu1R0e7/t9YPDahg6gFTYnEyipCxuCkjd4p/xl3T4eDpc GBdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=djS64W7ktw078xyD9yVn4E14AIWIPIhF33Lz7EV0UXY=; b=Vcmlvam3rYDf8om+/E8+gkJ7wbQ0xFtbUbwfR+Ux7BG+PSl9bv2XEKYGpxZU7kun5S FkG71QZsrm49jFezOoHj9sh5bmo9ePQ0E06FdyHrZkH+YM8IYs/TgdkJSvhmP79EApMJ nY88Q7tb994lu/6hGDT43XHQJQILfRCBduVzgxUC4ASqnOUOpnF/gIt3A2JC4DArUZaq xhI22xLI9pLxPPvSByGKalmCFdNjiuUGge31ETKHnX7Gz7QLxTUrDnKILRbm+da9Y+A3 E63OXiAi6FUCrVwWK86s9JyHYzq3IaXFdVI8jKhR7j+euxWC5QyoBCywjnJD5Nob1SDw uDsQ== X-Gm-Message-State: ACrzQf3P2hR5wqT00zwrAZb/SkottotSUvzPIqGmSim6ygKE+PELOkNV FqoPTGFBOR72gPMV2Yewf0jF0oRu/oc= X-Google-Smtp-Source: AMsMyM7/1prrQvbjDuKqFMf2bfrgAmf0e7X0PwMedEN/FMc9zKl5BQWACde6FFvv/gV5eXsBmC4wTQ== X-Received: by 2002:a05:6808:1a10:b0:354:4906:edd5 with SMTP id bk16-20020a0568081a1000b003544906edd5mr5631263oib.184.1666034447931; Mon, 17 Oct 2022 12:20:47 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:47 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , Daniel Henrique Barboza Subject: [PULL 12/38] ppc440_sdram: Implement enable bit in the DDR2 SDRAM controller Date: Mon, 17 Oct 2022 16:19:43 -0300 Message-Id: <20221017192009.92404-13-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan To allow removing the do_init hack we need to improve the DDR2 SDRAM controller model to handle the enable/disable bit that it ignored so far. Signed-off-by: BALATON Zoltan Reviewed-by: Daniel Henrique Barboza Message-Id: Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440_uc.c | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index 900b7ab998..3fbfe4ad13 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -485,6 +485,7 @@ void ppc4xx_sdr_init(CPUPPCState *env) /* SDRAM controller */ typedef struct ppc440_sdram_t { uint32_t addr; + uint32_t mcopt2; int nbanks; Ppc4xxSdramBank bank[4]; } ppc440_sdram_t; @@ -600,7 +601,7 @@ static void sdram_map_bcr(ppc440_sdram_t *sdram) int i; for (i = 0; i < sdram->nbanks; i++) { - if (sdram->bank[i].size != 0) { + if (sdram->bank[i].size) { sdram_set_bcr(sdram, i, sdram_bcr(sdram->bank[i].base, sdram->bank[i].size), 1); } else { @@ -609,6 +610,17 @@ static void sdram_map_bcr(ppc440_sdram_t *sdram) } } +static void sdram_unmap_bcr(ppc440_sdram_t *sdram) +{ + int i; + + for (i = 0; i < sdram->nbanks; i++) { + if (sdram->bank[i].size) { + sdram_set_bcr(sdram, i, sdram->bank[i].bcr & ~1, 0); + } + } +} + static uint32_t dcr_read_sdram(void *opaque, int dcrn) { ppc440_sdram_t *sdram = opaque; @@ -640,7 +652,7 @@ static uint32_t dcr_read_sdram(void *opaque, int dcrn) ret = 0x80000000; break; case 0x21: /* SDRAM_MCOPT2 */ - ret = 0x08000000; + ret = sdram->mcopt2; break; case 0x40: /* SDRAM_MB0CF */ ret = 0x00008001; @@ -662,6 +674,8 @@ static uint32_t dcr_read_sdram(void *opaque, int dcrn) return ret; } +#define SDRAM_DDR2_MCOPT2_DCEN BIT(27) + static void dcr_write_sdram(void *opaque, int dcrn, uint32_t val) { ppc440_sdram_t *sdram = opaque; @@ -684,6 +698,21 @@ static void dcr_write_sdram(void *opaque, int dcrn, uint32_t val) switch (sdram->addr) { case 0x00: /* B0CR */ break; + case 0x21: /* SDRAM_MCOPT2 */ + if (!(sdram->mcopt2 & SDRAM_DDR2_MCOPT2_DCEN) && + (val & SDRAM_DDR2_MCOPT2_DCEN)) { + trace_ppc4xx_sdram_enable("enable"); + /* validate all RAM mappings */ + sdram_map_bcr(sdram); + sdram->mcopt2 |= SDRAM_DDR2_MCOPT2_DCEN; + } else if ((sdram->mcopt2 & SDRAM_DDR2_MCOPT2_DCEN) && + !(val & SDRAM_DDR2_MCOPT2_DCEN)) { + trace_ppc4xx_sdram_enable("disable"); + /* invalidate all RAM mappings */ + sdram_unmap_bcr(sdram); + sdram->mcopt2 &= ~SDRAM_DDR2_MCOPT2_DCEN; + } + break; default: break; } @@ -698,6 +727,7 @@ static void sdram_reset(void *opaque) ppc440_sdram_t *sdram = opaque; sdram->addr = 0; + sdram->mcopt2 = SDRAM_DDR2_MCOPT2_DCEN; } void ppc440_sdram_init(CPUPPCState *env, int nbanks, From patchwork Mon Oct 17 19:19:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691088 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=NeF9RKVM; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnSW4ZqMz23kQ for ; Tue, 18 Oct 2022 06:42:03 +1100 (AEDT) Received: from localhost ([::1]:35198 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVzt-0000zl-6i for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:42:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48974) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfS-0002Dm-BT; Mon, 17 Oct 2022 15:20:54 -0400 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]:39603) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfP-0002us-Sv; Mon, 17 Oct 2022 15:20:54 -0400 Received: by mail-oi1-x229.google.com with SMTP id n130so13219316oia.6; Mon, 17 Oct 2022 12:20:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QY9Kj18IJ5rqPzyXYufSGrMcuTD+LdPJg5fj27oyf14=; b=NeF9RKVM8ltyj4WNeAnEmlwYZh7L4NxwBu84jEkiy2u+vQVeKctr0UxAi4jP1aZYli KjO64jD5tAm0rbAWzCv8jDUGqr0r7rDhojV3Zc1xAYUJK8I/NZBLi/tBYLLhXAoTnesm RDIyRfZhUn1g2qLnVnpynGabZwaxxpUVn7HwtM1kk9Nk/VhEsHpu45ILNOD14x7i6Xu3 pCZl6lcwNl6dvDFbFYy6imFVIc2RmxzPwxpZWagsFo8p0APU0xFsceSPk+jkZ76a9k52 F3jJfUDnRjL4coqQJ/0knhMIlvnGuYCDVHGHsvtelurSzvyaUjCBq/kIlWi4DpyqnUsc vRgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QY9Kj18IJ5rqPzyXYufSGrMcuTD+LdPJg5fj27oyf14=; b=v6wtQpM6XNzCTjd8v4IKv06jvKjyOIKlZZWF2gQRDE+eh+y4iovOzir6BsF24PeiEz JDJikLQtoxUBSd6hzpetHeP5yBGy+tx981j2SMcAMaDzFBFYzb1GMl06unQ5E6d2dcPn 1KQfhAQNiJtNdb3hzVzMoCLfX68qSeKYOtRACVx8XJiUXL+EdefxeYS7RgaY0eUpVxE9 u4schRyUxvptqz5YXGyXvcSMXrwCSDaCTJdyN4UwF//BFZ2W0j4MhtymvDF3TBPLML6z ZEmYymqkgot9YwPP4N0jM9338HpOEFZR0zgjWlwGM+Hu4IXAS5dlkh0SORtn4HiL85Op KstA== X-Gm-Message-State: ACrzQf011DJiDgMTOP+2kzxxM5S9Sq+qZXrI1ZisAYVAlMu8P38fyOYT 6tO0/kifnYN3C/Qz9WwLgq9Psg2mv1k= X-Google-Smtp-Source: AMsMyM6YX6ArNJ4bxYiH8g4b0/eu9CctdPybON5yp5CsAjBOebDLrs0ykM0z7LghupZ31TeRnYmXVw== X-Received: by 2002:aca:3608:0:b0:34f:bb9b:cdc9 with SMTP id d8-20020aca3608000000b0034fbb9bcdc9mr5709446oia.261.1666034450367; Mon, 17 Oct 2022 12:20:50 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:50 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , Daniel Henrique Barboza Subject: [PULL 13/38] ppc440_sdram: Get rid of the init RAM hack Date: Mon, 17 Oct 2022 16:19:44 -0300 Message-Id: <20221017192009.92404-14-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::229; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x229.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Remove the do_init parameter of ppc440_sdram_init and enable SDRAM controller from the board. Firmware does this so it may only be needed when booting with -kernel without firmware but we enable SDRAM unconditionally to preserve previous behaviour. Signed-off-by: BALATON Zoltan Reviewed-by: Daniel Henrique Barboza Message-Id: Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440.h | 3 +-- hw/ppc/ppc440_uc.c | 15 +++++++++------ hw/ppc/sam460ex.c | 4 +++- include/hw/ppc/ppc4xx.h | 2 ++ 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/hw/ppc/ppc440.h b/hw/ppc/ppc440.h index e6c905b7d6..01d76b8000 100644 --- a/hw/ppc/ppc440.h +++ b/hw/ppc/ppc440.h @@ -17,8 +17,7 @@ void ppc4xx_l2sram_init(CPUPPCState *env); void ppc4xx_cpr_init(CPUPPCState *env); void ppc4xx_sdr_init(CPUPPCState *env); void ppc440_sdram_init(CPUPPCState *env, int nbanks, - Ppc4xxSdramBank *ram_banks, - int do_init); + Ppc4xxSdramBank *ram_banks); void ppc4xx_ahb_init(CPUPPCState *env); void ppc4xx_dma_init(CPUPPCState *env, int dcr_base); void ppc460ex_pcie_init(CPUPPCState *env); diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index 3fbfe4ad13..e8bc088c8f 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -16,6 +16,7 @@ #include "qemu/module.h" #include "hw/irq.h" #include "exec/memory.h" +#include "cpu.h" #include "hw/ppc/ppc4xx.h" #include "hw/qdev-properties.h" #include "hw/pci/pci.h" @@ -727,12 +728,11 @@ static void sdram_reset(void *opaque) ppc440_sdram_t *sdram = opaque; sdram->addr = 0; - sdram->mcopt2 = SDRAM_DDR2_MCOPT2_DCEN; + sdram->mcopt2 = 0; } void ppc440_sdram_init(CPUPPCState *env, int nbanks, - Ppc4xxSdramBank *ram_banks, - int do_init) + Ppc4xxSdramBank *ram_banks) { ppc440_sdram_t *sdram; int i; @@ -749,9 +749,6 @@ void ppc440_sdram_init(CPUPPCState *env, int nbanks, sdram, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM0_CFGDATA, sdram, &dcr_read_sdram, &dcr_write_sdram); - if (do_init) { - sdram_map_bcr(sdram); - } ppc_dcr_register(env, SDRAM_R0BAS, sdram, &dcr_read_sdram, &dcr_write_sdram); @@ -773,6 +770,12 @@ void ppc440_sdram_init(CPUPPCState *env, int nbanks, sdram, &dcr_read_sdram, &dcr_write_sdram); } +void ppc440_sdram_enable(CPUPPCState *env) +{ + ppc_dcr_write(env->dcr_env, SDRAM0_CFGADDR, 0x21); + ppc_dcr_write(env->dcr_env, SDRAM0_CFGDATA, 0x08000000); +} + /*****************************************************************************/ /* PLB to AHB bridge */ enum { diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index f4c2a693fb..9c01211b20 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -345,7 +345,9 @@ static void sam460ex_init(MachineState *machine) ppc4xx_sdram_banks(machine->ram, 1, ram_banks, ppc460ex_sdram_bank_sizes); /* FIXME: does 460EX have ECC interrupts? */ - ppc440_sdram_init(env, 1, ram_banks, 1); + ppc440_sdram_init(env, 1, ram_banks); + /* Enable SDRAM memory regions as we may boot without firmware */ + ppc440_sdram_enable(env); /* IIC controllers and devices */ dev = sysbus_create_simple(TYPE_PPC4xx_I2C, 0x4ef600700, diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h index 558500fb97..78a845399e 100644 --- a/include/hw/ppc/ppc4xx.h +++ b/include/hw/ppc/ppc4xx.h @@ -37,6 +37,8 @@ typedef struct { uint32_t bcr; } Ppc4xxSdramBank; +void ppc440_sdram_enable(CPUPPCState *env); + void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, Ppc4xxSdramBank ram_banks[], const ram_addr_t sdram_bank_sizes[]); From patchwork Mon Oct 17 19:19:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691049 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=ay+SfruH; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn5v5jgwz1ygT for ; Tue, 18 Oct 2022 06:25:55 +1100 (AEDT) Received: from localhost ([::1]:47994 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVkC-0002aD-Pq for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:25:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56998) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfU-0002Gj-4s; Mon, 17 Oct 2022 15:20:58 -0400 Received: from mail-oa1-x36.google.com ([2001:4860:4864:20::36]:41704) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfS-0002vF-LE; Mon, 17 Oct 2022 15:20:55 -0400 Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-132af5e5543so14379918fac.8; Mon, 17 Oct 2022 12:20:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Sl+Xgwlf3JmcptDuQ2ViGdnZb/dhS4gihd8ni7BpFMs=; b=ay+SfruHtT6MpP+6GFilUMjjShp+1GCe0fvYUL/mQFxLkelkoR+7hydKuicYg91Ucu Cd1xzl9bL3Znr6Qdduz47VeNAeovTIUzJrKpXEbqq0Rg2Lxmk+l89oo92JLSELwjoTAN 3lydjEqeeX1T8fxwV9dGYUmsjuTECnyf4A8LuihbTtEupX8wYj6dP7+I2NRL+9F6A/p7 GTh37ud9J7RpJM8irlBKcxnJvxV6UWalSZ+qXIX7TqqmsYv31HfuWSG0ov8JeLd2g8pR lx95qMv8ZOF4qMerMk+T28fTtHPrIZjBIG5yL4fsUrQoG7RJkSN2oZi1x/UgelnQe8xt A0nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Sl+Xgwlf3JmcptDuQ2ViGdnZb/dhS4gihd8ni7BpFMs=; b=nIqJ2ryT4z1P3kNaliE87bzY8MIkM9A633aZGwC3HBYLIu1csoHjj8Dk9uxuaLEQsA 6RpYhsuIzziqeH4h08Kr0c7qfAUmy35nZjnTgsA1pZSrb0b+uFuyP5hf/tWXKwKXI1g5 dBmt7UbzoN8YQcV6/HLYMg1K2dOw35Bswedp6eWXLjFJHiL25YoAYIxrcISygcikoWfi UA4QcTDWkIGB2VmcvJgnzvHiDheXmUEpu6o6vFCoKvqeteJsY/9eop3Nk6GDdaxX+73N LvpSXT9aaCWp510MfP5lUf0nYHEUOINBr58HIag01rDoshV0wCWEEH067tcxIyh8g/i1 IaCA== X-Gm-Message-State: ACrzQf1+Z9psJW3wLtwvI2NkD3IOSXv2PzikRGSAYhjp7O55P69cVzVn zIjLnEvusVZu5bCoBGNOo5qKrwCwRdo= X-Google-Smtp-Source: AMsMyM7fc/NGuvZLp7HWwrNDUX1AVJo5bOxA+0npQL+gbd77k7LNtHtE8qZnOMxRJ6904j64owPiUg== X-Received: by 2002:a05:6870:5b9d:b0:12b:5871:22f4 with SMTP id em29-20020a0568705b9d00b0012b587122f4mr6631264oab.211.1666034453047; Mon, 17 Oct 2022 12:20:53 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:52 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Daniel Henrique Barboza Subject: [PULL 14/38] ppc440_sdram: Rename local variable for readability Date: Mon, 17 Oct 2022 16:19:45 -0300 Message-Id: <20221017192009.92404-15-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::36; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x36.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Rename local sdram variable in ppc440_sdram_init to s for readability. Signed-off-by: BALATON Zoltan Reviewed-by: Cédric Le Goater Message-Id: <7351b80fa321c32a6229e685dfdc940232f8b788.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440_uc.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index e8bc088c8f..97e6d5f5b2 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -734,40 +734,40 @@ static void sdram_reset(void *opaque) void ppc440_sdram_init(CPUPPCState *env, int nbanks, Ppc4xxSdramBank *ram_banks) { - ppc440_sdram_t *sdram; + ppc440_sdram_t *s; int i; - sdram = g_malloc0(sizeof(*sdram)); - sdram->nbanks = nbanks; + s = g_malloc0(sizeof(*s)); + s->nbanks = nbanks; for (i = 0; i < nbanks; i++) { - sdram->bank[i].ram = ram_banks[i].ram; - sdram->bank[i].base = ram_banks[i].base; - sdram->bank[i].size = ram_banks[i].size; + s->bank[i].ram = ram_banks[i].ram; + s->bank[i].base = ram_banks[i].base; + s->bank[i].size = ram_banks[i].size; } - qemu_register_reset(&sdram_reset, sdram); + qemu_register_reset(&sdram_reset, s); ppc_dcr_register(env, SDRAM0_CFGADDR, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM0_CFGDATA, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM_R0BAS, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM_R1BAS, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM_R2BAS, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM_R3BAS, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM_CONF1HB, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM_PLBADDULL, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM_CONF1LL, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM_CONFPATHB, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); ppc_dcr_register(env, SDRAM_PLBADDUHB, - sdram, &dcr_read_sdram, &dcr_write_sdram); + s, &dcr_read_sdram, &dcr_write_sdram); } void ppc440_sdram_enable(CPUPPCState *env) From patchwork Mon Oct 17 19:19:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691051 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=Vj9TZRCH; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn6H6TTPz1ygT for ; Tue, 18 Oct 2022 06:26:15 +1100 (AEDT) Received: from localhost ([::1]:56314 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVka-00030Q-I4 for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:26:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57000) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfX-0002IT-PZ; Mon, 17 Oct 2022 15:21:02 -0400 Received: from mail-oa1-x2f.google.com ([2001:4860:4864:20::2f]:46752) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfV-0002vh-AN; Mon, 17 Oct 2022 15:20:59 -0400 Received: by mail-oa1-x2f.google.com with SMTP id 586e51a60fabf-1326637be6eso14352961fac.13; Mon, 17 Oct 2022 12:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qNDTB7Q4nIjVVc69bcjY3ZYCC+sosnrGEblK6CaxzkE=; b=Vj9TZRCHck+nEYfOaRAL7+XBoHEZoqqXdx2f+vptjemEXm6w23nu2Q9JJk0t+CjYRq N7maCS+VI6KC7wGRmbiX+2h1dcA/JrEtmxGMebC7CQbRaNwckAKK6g3vPp5NpFe3Hw0U CAggV1WB0WmONys8OCTZyHET3Yfl60sZ5y2npoNnIRbu6ZJ2V5htbEr+O3KmLdYd4eq5 CeqvLSXjorylO+YOmx4vYu4fHhujCI8ekA6VQDNIiYCcB1xjAsNm/BjC/mmojA47RjWq 2+UkkMuSjibq9VrMzUDIl7B+HAbbMY3Es0lYCQ1lMmDvGmnmSG3T5qT7dQEaZNX63ld2 +y6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qNDTB7Q4nIjVVc69bcjY3ZYCC+sosnrGEblK6CaxzkE=; b=1W/PJr+VLkNkwrzW0rhmiFvsOuZKz7FCq/m1LcmTdWwIAoKG3MWborMdpxbXvsRJdL lMRe8mloF8W8dRUuJY33yNaAYc/dU/OLU9qTlpy++WPWtDUACcc/aZErEZyV4/AwEBkg /CRPphrMPHC6TBlKy/dXgGIk5JigPaEFvSYeKjYDVDNUz6thB+cXwhDY1OQ97frmYLkR SOBwf4EXU4WYo9C8Be8BnIaOlA6SlXNynRe1zquur7M6vnid38wqezNOi40p6Oadqs6h wQM+boHCaCg6flXNtM9WMMWSCWW3dDWZ/sSv1PswkAirGWq9VclsBD5YhsNhjlZvD40x z8fw== X-Gm-Message-State: ACrzQf0UILyZk3ZByXcxG4KhJapPNTrKh+jukYpqL+yrEtnVW9Y0asrY IN0f8msg9Cc8WBqNkpqrPw/dWX9q1Lc= X-Google-Smtp-Source: AMsMyM7fvuwxBaOulCgYf8n6Jg8gWYPWjxKfWm1CW3CB26YjUxnbonLayrQOEdl9u/cm/4RCKtXdkw== X-Received: by 2002:a05:6870:c147:b0:136:90c4:ee84 with SMTP id g7-20020a056870c14700b0013690c4ee84mr6528286oad.295.1666034455696; Mon, 17 Oct 2022 12:20:55 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:55 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Daniel Henrique Barboza Subject: [PULL 15/38] ppc4xx_sdram: Rename functions to prevent name clashes Date: Mon, 17 Oct 2022 16:19:46 -0300 Message-Id: <20221017192009.92404-16-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::2f; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Rename functions to avoid name clashes when moving the DDR2 controller model currently called ppc440_sdram to ppc4xx_devs. This also more clearly shows which function belongs to which model. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Message-Id: <9c09d10fbf36940ebbe30d7038d69cf3f2e58371.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc405_boards.c | 2 +- hw/ppc/ppc440_bamboo.c | 2 +- hw/ppc/ppc440_uc.c | 67 +++++++++++++++++++++-------------------- hw/ppc/ppc4xx_devs.c | 46 ++++++++++++++-------------- hw/ppc/sam460ex.c | 2 +- include/hw/ppc/ppc4xx.h | 4 +-- 6 files changed, 62 insertions(+), 61 deletions(-) diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c index b59393d4bd..4092ebc1ab 100644 --- a/hw/ppc/ppc405_boards.c +++ b/hw/ppc/ppc405_boards.c @@ -337,7 +337,7 @@ static void ppc405_init(MachineState *machine) /* Load ELF kernel and rootfs.cpio */ } else if (kernel_filename && !machine->firmware) { - ppc4xx_sdram_enable(&ppc405->soc.sdram); + ppc4xx_sdram_ddr_enable(&ppc405->soc.sdram); boot_from_kernel(machine, &ppc405->soc.cpu); } } diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index 5c35ba6086..56f47e7509 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -204,7 +204,7 @@ static void bamboo_init(MachineState *machine) /* XXX 440EP's ECC interrupts are on UIC1, but we've only created UIC0. */ sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, qdev_get_gpio_in(uicdev, 14)); /* Enable SDRAM memory regions, this should be done by the firmware */ - ppc4xx_sdram_enable(PPC4xx_SDRAM_DDR(dev)); + ppc4xx_sdram_ddr_enable(PPC4xx_SDRAM_DDR(dev)); /* PCI */ dev = sysbus_create_varargs(TYPE_PPC4xx_PCI_HOST_BRIDGE, diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index 97e6d5f5b2..edd0781eb7 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -505,7 +505,7 @@ enum { SDRAM_PLBADDUHB = 0x50, }; -static uint32_t sdram_bcr(hwaddr ram_base, hwaddr ram_size) +static uint32_t sdram_ddr2_bcr(hwaddr ram_base, hwaddr ram_size) { uint32_t bcr; @@ -550,12 +550,12 @@ static uint32_t sdram_bcr(hwaddr ram_base, hwaddr ram_size) return bcr; } -static inline hwaddr sdram_base(uint32_t bcr) +static inline hwaddr sdram_ddr2_base(uint32_t bcr) { return (bcr & 0xffe00000) << 2; } -static uint64_t sdram_size(uint32_t bcr) +static uint64_t sdram_ddr2_size(uint32_t bcr) { uint64_t size; int sh; @@ -581,48 +581,49 @@ static void sdram_bank_unmap(Ppc4xxSdramBank *bank) object_unparent(OBJECT(&bank->container)); } -static void sdram_set_bcr(ppc440_sdram_t *sdram, int i, - uint32_t bcr, int enabled) +static void sdram_ddr2_set_bcr(ppc440_sdram_t *sdram, int i, + uint32_t bcr, int enabled) { if (sdram->bank[i].bcr & 1) { /* First unmap RAM if enabled */ - trace_ppc4xx_sdram_unmap(sdram_base(sdram->bank[i].bcr), - sdram_size(sdram->bank[i].bcr)); + trace_ppc4xx_sdram_unmap(sdram_ddr2_base(sdram->bank[i].bcr), + sdram_ddr2_size(sdram->bank[i].bcr)); sdram_bank_unmap(&sdram->bank[i]); } sdram->bank[i].bcr = bcr & 0xffe0ffc1; if (enabled && (bcr & 1)) { - trace_ppc4xx_sdram_map(sdram_base(bcr), sdram_size(bcr)); + trace_ppc4xx_sdram_map(sdram_ddr2_base(bcr), sdram_ddr2_size(bcr)); sdram_bank_map(&sdram->bank[i]); } } -static void sdram_map_bcr(ppc440_sdram_t *sdram) +static void sdram_ddr2_map_bcr(ppc440_sdram_t *sdram) { int i; for (i = 0; i < sdram->nbanks; i++) { if (sdram->bank[i].size) { - sdram_set_bcr(sdram, i, sdram_bcr(sdram->bank[i].base, + sdram_ddr2_set_bcr(sdram, i, + sdram_ddr2_bcr(sdram->bank[i].base, sdram->bank[i].size), 1); } else { - sdram_set_bcr(sdram, i, 0, 0); + sdram_ddr2_set_bcr(sdram, i, 0, 0); } } } -static void sdram_unmap_bcr(ppc440_sdram_t *sdram) +static void sdram_ddr2_unmap_bcr(ppc440_sdram_t *sdram) { int i; for (i = 0; i < sdram->nbanks; i++) { if (sdram->bank[i].size) { - sdram_set_bcr(sdram, i, sdram->bank[i].bcr & ~1, 0); + sdram_ddr2_set_bcr(sdram, i, sdram->bank[i].bcr & ~1, 0); } } } -static uint32_t dcr_read_sdram(void *opaque, int dcrn) +static uint32_t sdram_ddr2_dcr_read(void *opaque, int dcrn) { ppc440_sdram_t *sdram = opaque; uint32_t ret = 0; @@ -633,8 +634,8 @@ static uint32_t dcr_read_sdram(void *opaque, int dcrn) case SDRAM_R2BAS: case SDRAM_R3BAS: if (sdram->bank[dcrn - SDRAM_R0BAS].size) { - ret = sdram_bcr(sdram->bank[dcrn - SDRAM_R0BAS].base, - sdram->bank[dcrn - SDRAM_R0BAS].size); + ret = sdram_ddr2_bcr(sdram->bank[dcrn - SDRAM_R0BAS].base, + sdram->bank[dcrn - SDRAM_R0BAS].size); } break; case SDRAM_CONF1HB: @@ -677,7 +678,7 @@ static uint32_t dcr_read_sdram(void *opaque, int dcrn) #define SDRAM_DDR2_MCOPT2_DCEN BIT(27) -static void dcr_write_sdram(void *opaque, int dcrn, uint32_t val) +static void sdram_ddr2_dcr_write(void *opaque, int dcrn, uint32_t val) { ppc440_sdram_t *sdram = opaque; @@ -704,13 +705,13 @@ static void dcr_write_sdram(void *opaque, int dcrn, uint32_t val) (val & SDRAM_DDR2_MCOPT2_DCEN)) { trace_ppc4xx_sdram_enable("enable"); /* validate all RAM mappings */ - sdram_map_bcr(sdram); + sdram_ddr2_map_bcr(sdram); sdram->mcopt2 |= SDRAM_DDR2_MCOPT2_DCEN; } else if ((sdram->mcopt2 & SDRAM_DDR2_MCOPT2_DCEN) && !(val & SDRAM_DDR2_MCOPT2_DCEN)) { trace_ppc4xx_sdram_enable("disable"); /* invalidate all RAM mappings */ - sdram_unmap_bcr(sdram); + sdram_ddr2_unmap_bcr(sdram); sdram->mcopt2 &= ~SDRAM_DDR2_MCOPT2_DCEN; } break; @@ -723,7 +724,7 @@ static void dcr_write_sdram(void *opaque, int dcrn, uint32_t val) } } -static void sdram_reset(void *opaque) +static void sdram_ddr2_reset(void *opaque) { ppc440_sdram_t *sdram = opaque; @@ -744,33 +745,33 @@ void ppc440_sdram_init(CPUPPCState *env, int nbanks, s->bank[i].base = ram_banks[i].base; s->bank[i].size = ram_banks[i].size; } - qemu_register_reset(&sdram_reset, s); + qemu_register_reset(&sdram_ddr2_reset, s); ppc_dcr_register(env, SDRAM0_CFGADDR, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); ppc_dcr_register(env, SDRAM0_CFGDATA, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); ppc_dcr_register(env, SDRAM_R0BAS, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); ppc_dcr_register(env, SDRAM_R1BAS, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); ppc_dcr_register(env, SDRAM_R2BAS, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); ppc_dcr_register(env, SDRAM_R3BAS, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); ppc_dcr_register(env, SDRAM_CONF1HB, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); ppc_dcr_register(env, SDRAM_PLBADDULL, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); ppc_dcr_register(env, SDRAM_CONF1LL, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); ppc_dcr_register(env, SDRAM_CONFPATHB, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); ppc_dcr_register(env, SDRAM_PLBADDUHB, - s, &dcr_read_sdram, &dcr_write_sdram); + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); } -void ppc440_sdram_enable(CPUPPCState *env) +void ppc4xx_sdram_ddr2_enable(CPUPPCState *env) { ppc_dcr_write(env->dcr_env, SDRAM0_CFGADDR, 0x21); ppc_dcr_write(env->dcr_env, SDRAM0_CFGDATA, 0x08000000); diff --git a/hw/ppc/ppc4xx_devs.c b/hw/ppc/ppc4xx_devs.c index 02ac8ff335..12af90f244 100644 --- a/hw/ppc/ppc4xx_devs.c +++ b/hw/ppc/ppc4xx_devs.c @@ -86,12 +86,12 @@ static uint32_t sdram_ddr_bcr(hwaddr ram_base, hwaddr ram_size) return bcr; } -static inline hwaddr sdram_base(uint32_t bcr) +static inline hwaddr sdram_ddr_base(uint32_t bcr) { return bcr & 0xFF800000; } -static target_ulong sdram_size(uint32_t bcr) +static target_ulong sdram_ddr_size(uint32_t bcr) { target_ulong size; int sh; @@ -106,13 +106,13 @@ static target_ulong sdram_size(uint32_t bcr) return size; } -static void sdram_set_bcr(Ppc4xxSdramDdrState *sdram, int i, - uint32_t bcr, int enabled) +static void sdram_ddr_set_bcr(Ppc4xxSdramDdrState *sdram, int i, + uint32_t bcr, int enabled) { if (sdram->bank[i].bcr & 1) { /* Unmap RAM */ - trace_ppc4xx_sdram_unmap(sdram_base(sdram->bank[i].bcr), - sdram_size(sdram->bank[i].bcr)); + trace_ppc4xx_sdram_unmap(sdram_ddr_base(sdram->bank[i].bcr), + sdram_ddr_size(sdram->bank[i].bcr)); memory_region_del_subregion(get_system_memory(), &sdram->bank[i].container); memory_region_del_subregion(&sdram->bank[i].container, @@ -121,38 +121,38 @@ static void sdram_set_bcr(Ppc4xxSdramDdrState *sdram, int i, } sdram->bank[i].bcr = bcr & 0xFFDEE001; if (enabled && (bcr & 1)) { - trace_ppc4xx_sdram_map(sdram_base(bcr), sdram_size(bcr)); + trace_ppc4xx_sdram_map(sdram_ddr_base(bcr), sdram_ddr_size(bcr)); memory_region_init(&sdram->bank[i].container, NULL, "sdram-container", - sdram_size(bcr)); + sdram_ddr_size(bcr)); memory_region_add_subregion(&sdram->bank[i].container, 0, &sdram->bank[i].ram); memory_region_add_subregion(get_system_memory(), - sdram_base(bcr), + sdram_ddr_base(bcr), &sdram->bank[i].container); } } -static void sdram_map_bcr(Ppc4xxSdramDdrState *sdram) +static void sdram_ddr_map_bcr(Ppc4xxSdramDdrState *sdram) { int i; for (i = 0; i < sdram->nbanks; i++) { if (sdram->bank[i].size != 0) { - sdram_set_bcr(sdram, i, sdram_ddr_bcr(sdram->bank[i].base, - sdram->bank[i].size), 1); + sdram_ddr_set_bcr(sdram, i, sdram_ddr_bcr(sdram->bank[i].base, + sdram->bank[i].size), 1); } else { - sdram_set_bcr(sdram, i, 0, 0); + sdram_ddr_set_bcr(sdram, i, 0, 0); } } } -static void sdram_unmap_bcr(Ppc4xxSdramDdrState *sdram) +static void sdram_ddr_unmap_bcr(Ppc4xxSdramDdrState *sdram) { int i; for (i = 0; i < sdram->nbanks; i++) { - trace_ppc4xx_sdram_unmap(sdram_base(sdram->bank[i].bcr), - sdram_size(sdram->bank[i].bcr)); + trace_ppc4xx_sdram_unmap(sdram_ddr_base(sdram->bank[i].bcr), + sdram_ddr_size(sdram->bank[i].bcr)); memory_region_del_subregion(get_system_memory(), &sdram->bank[i].ram); } @@ -249,12 +249,12 @@ static void sdram_ddr_dcr_write(void *opaque, int dcrn, uint32_t val) if (!(sdram->cfg & 0x80000000) && (val & 0x80000000)) { trace_ppc4xx_sdram_enable("enable"); /* validate all RAM mappings */ - sdram_map_bcr(sdram); + sdram_ddr_map_bcr(sdram); sdram->status &= ~0x80000000; } else if ((sdram->cfg & 0x80000000) && !(val & 0x80000000)) { trace_ppc4xx_sdram_enable("disable"); /* invalidate all RAM mappings */ - sdram_unmap_bcr(sdram); + sdram_ddr_unmap_bcr(sdram); sdram->status |= 0x80000000; } if (!(sdram->cfg & 0x40000000) && (val & 0x40000000)) { @@ -274,16 +274,16 @@ static void sdram_ddr_dcr_write(void *opaque, int dcrn, uint32_t val) sdram->pmit = (val & 0xF8000000) | 0x07C00000; break; case 0x40: /* SDRAM_B0CR */ - sdram_set_bcr(sdram, 0, val, sdram->cfg & 0x80000000); + sdram_ddr_set_bcr(sdram, 0, val, sdram->cfg & 0x80000000); break; case 0x44: /* SDRAM_B1CR */ - sdram_set_bcr(sdram, 1, val, sdram->cfg & 0x80000000); + sdram_ddr_set_bcr(sdram, 1, val, sdram->cfg & 0x80000000); break; case 0x48: /* SDRAM_B2CR */ - sdram_set_bcr(sdram, 2, val, sdram->cfg & 0x80000000); + sdram_ddr_set_bcr(sdram, 2, val, sdram->cfg & 0x80000000); break; case 0x4C: /* SDRAM_B3CR */ - sdram_set_bcr(sdram, 3, val, sdram->cfg & 0x80000000); + sdram_ddr_set_bcr(sdram, 3, val, sdram->cfg & 0x80000000); break; case 0x80: /* SDRAM_TR */ sdram->tr = val & 0x018FC01F; @@ -370,7 +370,7 @@ static void ppc4xx_sdram_ddr_class_init(ObjectClass *oc, void *data) device_class_set_props(dc, ppc4xx_sdram_ddr_props); } -void ppc4xx_sdram_enable(Ppc4xxSdramDdrState *s) +void ppc4xx_sdram_ddr_enable(Ppc4xxSdramDdrState *s) { sdram_ddr_dcr_write(s, SDRAM0_CFGADDR, 0x20); sdram_ddr_dcr_write(s, SDRAM0_CFGDATA, 0x80000000); diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index 9c01211b20..b318521b01 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -347,7 +347,7 @@ static void sam460ex_init(MachineState *machine) /* FIXME: does 460EX have ECC interrupts? */ ppc440_sdram_init(env, 1, ram_banks); /* Enable SDRAM memory regions as we may boot without firmware */ - ppc440_sdram_enable(env); + ppc4xx_sdram_ddr2_enable(env); /* IIC controllers and devices */ dev = sysbus_create_simple(TYPE_PPC4xx_I2C, 0x4ef600700, diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h index 78a845399e..fd0b3ca82a 100644 --- a/include/hw/ppc/ppc4xx.h +++ b/include/hw/ppc/ppc4xx.h @@ -37,7 +37,7 @@ typedef struct { uint32_t bcr; } Ppc4xxSdramBank; -void ppc440_sdram_enable(CPUPPCState *env); +void ppc4xx_sdram_ddr2_enable(CPUPPCState *env); void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, Ppc4xxSdramBank ram_banks[], @@ -136,6 +136,6 @@ struct Ppc4xxSdramDdrState { uint32_t eccesr; }; -void ppc4xx_sdram_enable(Ppc4xxSdramDdrState *s); +void ppc4xx_sdram_ddr_enable(Ppc4xxSdramDdrState *s); #endif /* PPC4XX_H */ From patchwork Mon Oct 17 19:19:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691087 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=SEfAbSqT; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnSW3Dvcz1ygT for ; Tue, 18 Oct 2022 06:42:03 +1100 (AEDT) Received: from localhost ([::1]:41506 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVzt-0001BS-2W for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:42:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57002) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfa-0002K1-2t; Mon, 17 Oct 2022 15:21:03 -0400 Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]:44694) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfY-0002vr-7C; Mon, 17 Oct 2022 15:21:01 -0400 Received: by mail-ot1-x32e.google.com with SMTP id a14-20020a9d470e000000b00661b66a5393so6363475otf.11; Mon, 17 Oct 2022 12:20:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eDEboB/CKaR5SCzmMnnn8QW/gZpMEIfNfOkYBWCdeSY=; b=SEfAbSqThGHEqgjlN22HPJZZ/8jetz2FiUwF8HJGctoU6lt2Ya9yntkJgbbGcfC435 H1Tw6THvjrLR6iHbGVySgXc0L2C2royTZyqXELxDMdN11662ASL1qScqppLq0x4ijkpW FUUMrCefuXOtT6GRLOfbY9K0mBvjsseO56WJw+djXf9Rg7SlOFZEK+HCrY51ABeIgPMW CUvHp9hhViEiR1XhqWA6zB5IK0udea5UcMpRXVvOF1EMiWJysIABuJFOM1gvm/QXdTla /XcW9cGsSUOoBIapBpoGSWGSAjBnrXj/ORms6mjk2vapsvarqDtrchzNGDpEdXYRG4Q4 7FlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eDEboB/CKaR5SCzmMnnn8QW/gZpMEIfNfOkYBWCdeSY=; b=gJjpxWvVKNJ2K8mUuaaOhBJ7dxd+uvcS3+LW4SO5j/cONlNkFp1OMFknpVtwCCuDXB bmVjXDXsuFfTpXd8sHG7jRFBKOu8Gl/q6jS6UwSQk8ZvdBqEMmKjJzJr/xXOpj3IVgeC j4v+5Y+8HNjYLJmNhut5yhjWlcIxzIflqBlB320Pg9EX9OgPepF3bcssD96fBf0IiBb5 i4Q8JqcOqsyTFs3sS8njkh51BRdh8bxrKJ9Wvl0XtJelH3b4ZX3a7mYlyHNvvTW2NEJo 0+wz6VVx2McZjyggojL8bO9vorMxRpjGhZ9N/rnGlXdF1iyS7qBM0KTDsqV7HoPL3us6 oARQ== X-Gm-Message-State: ACrzQf1KgMnFf5jbcPjmR58d9CA+6OJ2n+5itmKt0zgP2KztfYdZfDFV ZElWnuvlch7Ay6wQz8PAbvoqoHb9K50= X-Google-Smtp-Source: AMsMyM52qDIJlnwZ/s3HIImLvLJIgVbJUljn5hjNFJqpxBCnuzlHzV4Cbz3o1oXYPMWxrIeLC9sxzg== X-Received: by 2002:a9d:6e10:0:b0:661:bbbb:4a4c with SMTP id e16-20020a9d6e10000000b00661bbbb4a4cmr5831408otr.228.1666034458294; Mon, 17 Oct 2022 12:20:58 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:20:57 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Daniel Henrique Barboza Subject: [PULL 16/38] ppc440_sdram: Move RAM size check to ppc440_sdram_init Date: Mon, 17 Oct 2022 16:19:47 -0300 Message-Id: <20221017192009.92404-17-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::32e; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x32e.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Move the check for valid memory sizes from board to sdram controller init. This adds the missing valid memory sizes of 16 and 8 MiB to the DoC and the board now only checks for additional restrictions imposed by its firmware then sdram init checks for valid sizes for SoC. Signed-off-by: BALATON Zoltan Reviewed-by: Cédric Le Goater Message-Id: <41da3797392acaacc7963b79512c8af8005fa4b0.1664021647.git.balaton@eik.bme.hu> [danielhb: avoid 4*GiB size due to 32 bit build problems] Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440.h | 4 ++-- hw/ppc/ppc440_uc.c | 19 +++++++++++-------- hw/ppc/sam460ex.c | 32 +++++++++++++++++--------------- 3 files changed, 30 insertions(+), 25 deletions(-) diff --git a/hw/ppc/ppc440.h b/hw/ppc/ppc440.h index 01d76b8000..29f6f14ed7 100644 --- a/hw/ppc/ppc440.h +++ b/hw/ppc/ppc440.h @@ -11,13 +11,13 @@ #ifndef PPC440_H #define PPC440_H -#include "hw/ppc/ppc4xx.h" +#include "hw/ppc/ppc.h" void ppc4xx_l2sram_init(CPUPPCState *env); void ppc4xx_cpr_init(CPUPPCState *env); void ppc4xx_sdr_init(CPUPPCState *env); void ppc440_sdram_init(CPUPPCState *env, int nbanks, - Ppc4xxSdramBank *ram_banks); + MemoryRegion *ram); void ppc4xx_ahb_init(CPUPPCState *env); void ppc4xx_dma_init(CPUPPCState *env, int dcr_base); void ppc460ex_pcie_init(CPUPPCState *env); diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index edd0781eb7..dd873d892c 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -487,7 +487,7 @@ void ppc4xx_sdr_init(CPUPPCState *env) typedef struct ppc440_sdram_t { uint32_t addr; uint32_t mcopt2; - int nbanks; + int nbanks; /* Banks to use from the 4, e.g. when board has less slots */ Ppc4xxSdramBank bank[4]; } ppc440_sdram_t; @@ -733,18 +733,21 @@ static void sdram_ddr2_reset(void *opaque) } void ppc440_sdram_init(CPUPPCState *env, int nbanks, - Ppc4xxSdramBank *ram_banks) + MemoryRegion *ram) { ppc440_sdram_t *s; - int i; + /* + * SoC also has 4 GiB but that causes problem with 32 bit + * builds (4*GiB overflows the 32 bit ram_addr_t). + */ + const ram_addr_t valid_bank_sizes[] = { + 2 * GiB, 1 * GiB, 512 * MiB, 256 * MiB, 128 * MiB, + 64 * MiB, 32 * MiB, 16 * MiB, 8 * MiB, 0 + }; s = g_malloc0(sizeof(*s)); s->nbanks = nbanks; - for (i = 0; i < nbanks; i++) { - s->bank[i].ram = ram_banks[i].ram; - s->bank[i].base = ram_banks[i].base; - s->bank[i].size = ram_banks[i].size; - } + ppc4xx_sdram_banks(ram, s->nbanks, s->bank, valid_bank_sizes); qemu_register_reset(&sdram_ddr2_reset, s); ppc_dcr_register(env, SDRAM0_CFGADDR, s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index b318521b01..13055a8916 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -74,13 +74,6 @@ #define EBC_FREQ 115000000 #define UART_FREQ 11059200 -/* The SoC could also handle 4 GiB but firmware does not work with that. */ -/* Maybe it overflows a signed 32 bit number somewhere? */ -static const ram_addr_t ppc460ex_sdram_bank_sizes[] = { - 2 * GiB, 1 * GiB, 512 * MiB, 256 * MiB, 128 * MiB, 64 * MiB, - 32 * MiB, 0 -}; - struct boot_info { uint32_t dt_base; uint32_t dt_size; @@ -273,7 +266,6 @@ static void sam460ex_init(MachineState *machine) { MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *isa = g_new(MemoryRegion, 1); - Ppc4xxSdramBank *ram_banks = g_new0(Ppc4xxSdramBank, 1); MemoryRegion *l2cache_ram = g_new(MemoryRegion, 1); DeviceState *uic[4]; int i; @@ -340,12 +332,22 @@ static void sam460ex_init(MachineState *machine) } /* SDRAM controller */ - /* put all RAM on first bank because board has one slot - * and firmware only checks that */ - ppc4xx_sdram_banks(machine->ram, 1, ram_banks, ppc460ex_sdram_bank_sizes); - + /* The SoC could also handle 4 GiB but firmware does not work with that. */ + if (machine->ram_size > 2 * GiB) { + error_report("Memory over 2 GiB is not supported"); + exit(1); + } + /* Firmware needs at least 64 MiB */ + if (machine->ram_size < 64 * MiB) { + error_report("Memory below 64 MiB is not supported"); + exit(1); + } + /* + * Put all RAM on first bank because board has one slot + * and firmware only checks that + */ + ppc440_sdram_init(env, 1, machine->ram); /* FIXME: does 460EX have ECC interrupts? */ - ppc440_sdram_init(env, 1, ram_banks); /* Enable SDRAM memory regions as we may boot without firmware */ ppc4xx_sdram_ddr2_enable(env); @@ -354,8 +356,8 @@ static void sam460ex_init(MachineState *machine) qdev_get_gpio_in(uic[0], 2)); i2c = PPC4xx_I2C(dev)->bus; /* SPD EEPROM on RAM module */ - spd_data = spd_data_generate(ram_banks->size < 128 * MiB ? DDR : DDR2, - ram_banks->size); + spd_data = spd_data_generate(machine->ram_size < 128 * MiB ? DDR : DDR2, + machine->ram_size); spd_data[20] = 4; /* SO-DIMM module */ smbus_eeprom_init_one(i2c, 0x50, spd_data); /* RTC */ From patchwork Mon Oct 17 19:19:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691058 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=ArC0YsMz; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn861M9wz1ygT for ; Tue, 18 Oct 2022 06:27:50 +1100 (AEDT) Received: from localhost ([::1]:60446 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVm7-00082W-Mz for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:27:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36548) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfd-0002Qv-Nc; Mon, 17 Oct 2022 15:21:07 -0400 Received: from mail-oa1-x2e.google.com ([2001:4860:4864:20::2e]:34752) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfb-0002wJ-KN; Mon, 17 Oct 2022 15:21:05 -0400 Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-1321a1e94b3so14411459fac.1; Mon, 17 Oct 2022 12:21:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DPXl1Gm2g7mHh9cdSYveKslac/TylmOSXU/YJk+sAgU=; b=ArC0YsMz623Gl7vUmuHWNkh9VUz43mmqo1n4ETtwj7V59s7JgoFgepn7SPnP6u+IU4 E3AIltbz6bGk3zLMmpjiWVmjafbvDTAco2726Dj+CK+71osWUsZzT1WqWtMdU7Ylg+9j xu1MgJS25YojLZO/H6y9qAZXSyj2Uqf0FQZFq1GlyOt+AEAD8IJdQ6M9qowuntQoxdgH iBSgn9rhE/QY9EB2c+BDJUHdVfxGoJFbdwCjadJYQxI0756eZMpmMnU42QLD4NNc66Qv 9eypmt1+mpfRjoLvDBJCmM2xjM0zSB0M6nvkOxE6BAMwsP9cCLVdfeYFgjX4mAU6z2e0 thCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DPXl1Gm2g7mHh9cdSYveKslac/TylmOSXU/YJk+sAgU=; b=PVnGQR3uE8vwxYThBCgPBBSAA09T+zAxTG/X6HUnoVf3qyzbZ1K5lJnV2hdY9NmSkq LKKKusSORINDqhHzI4tkeegDeGg8aSZSHzJcm9UmNqp5mqzM5D92LDfKlE/4W1X2N0+C biaY/GEeLJPI8tyF5wrkhlTg7f8MKuo3PuQzqQ/P3rL4tQsclyxHBfdDLF1MrPAIk1OF nAQna3kHaYTQvxYkyfy8IAZeX7VAA+L74vUTSYmull1P0/JrcOvqHmnOzpdtt9qTUNae em0fx0IinjQY2QscrZr6XJJnZGdvrGbyiaH/K2uPyU+nZR7D8NyC6iwPP7SckG0AuP2H egpQ== X-Gm-Message-State: ACrzQf3mRZA3hnDwejMZFFABNk4KsWHS7IfU6IlUdZgOKv7pPEQ4Aux4 DzYnILVFMy27WkuqLgwx2ZxjU88nDME= X-Google-Smtp-Source: AMsMyM5kRUXNZOJrBerL8EQlw9EXe51u/hkZW0zuQfeAr1u/B/w0f16g8ES66nuptbx2kwe/bpz0Fw== X-Received: by 2002:a05:6870:460b:b0:133:2116:3571 with SMTP id z11-20020a056870460b00b0013321163571mr6594541oao.176.1666034461085; Mon, 17 Oct 2022 12:21:01 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.20.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:00 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Daniel Henrique Barboza Subject: [PULL 17/38] ppc440_sdram: QOM'ify Date: Mon, 17 Oct 2022 16:19:48 -0300 Message-Id: <20221017192009.92404-18-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::2e; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2e.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Change the ppc440_sdram model to a QOM class derived from the PPC4xx-dcr-device and name it ppc4xx-sdram-ddr2. This is mostly modelling the DDR2 SDRAM controller found in the 460EX (used on the sam460ex board). Newer SoCs (regardless of their PPC core, e.g. 405EX) may have this controller but we only emulate enough of it for the sam460ex u-boot firmware. Signed-off-by: BALATON Zoltan Reviewed-by: Cédric Le Goater Message-Id: <3e82ae575c7c41e464a0082d55ecb4ebcc4d4329.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440.h | 2 - hw/ppc/ppc440_uc.c | 121 ++++++++++++++++++++++++---------------- hw/ppc/sam460ex.c | 9 ++- include/hw/ppc/ppc4xx.h | 18 +++++- 4 files changed, 97 insertions(+), 53 deletions(-) diff --git a/hw/ppc/ppc440.h b/hw/ppc/ppc440.h index 29f6f14ed7..7c24db8504 100644 --- a/hw/ppc/ppc440.h +++ b/hw/ppc/ppc440.h @@ -16,8 +16,6 @@ void ppc4xx_l2sram_init(CPUPPCState *env); void ppc4xx_cpr_init(CPUPPCState *env); void ppc4xx_sdr_init(CPUPPCState *env); -void ppc440_sdram_init(CPUPPCState *env, int nbanks, - MemoryRegion *ram); void ppc4xx_ahb_init(CPUPPCState *env); void ppc4xx_dma_init(CPUPPCState *env, int dcr_base); void ppc460ex_pcie_init(CPUPPCState *env); diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index dd873d892c..55082f2b88 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -484,13 +484,6 @@ void ppc4xx_sdr_init(CPUPPCState *env) /*****************************************************************************/ /* SDRAM controller */ -typedef struct ppc440_sdram_t { - uint32_t addr; - uint32_t mcopt2; - int nbanks; /* Banks to use from the 4, e.g. when board has less slots */ - Ppc4xxSdramBank bank[4]; -} ppc440_sdram_t; - enum { SDRAM0_CFGADDR = 0x10, SDRAM0_CFGDATA, @@ -581,7 +574,7 @@ static void sdram_bank_unmap(Ppc4xxSdramBank *bank) object_unparent(OBJECT(&bank->container)); } -static void sdram_ddr2_set_bcr(ppc440_sdram_t *sdram, int i, +static void sdram_ddr2_set_bcr(Ppc4xxSdramDdr2State *sdram, int i, uint32_t bcr, int enabled) { if (sdram->bank[i].bcr & 1) { @@ -597,7 +590,7 @@ static void sdram_ddr2_set_bcr(ppc440_sdram_t *sdram, int i, } } -static void sdram_ddr2_map_bcr(ppc440_sdram_t *sdram) +static void sdram_ddr2_map_bcr(Ppc4xxSdramDdr2State *sdram) { int i; @@ -612,7 +605,7 @@ static void sdram_ddr2_map_bcr(ppc440_sdram_t *sdram) } } -static void sdram_ddr2_unmap_bcr(ppc440_sdram_t *sdram) +static void sdram_ddr2_unmap_bcr(Ppc4xxSdramDdr2State *sdram) { int i; @@ -625,7 +618,7 @@ static void sdram_ddr2_unmap_bcr(ppc440_sdram_t *sdram) static uint32_t sdram_ddr2_dcr_read(void *opaque, int dcrn) { - ppc440_sdram_t *sdram = opaque; + Ppc4xxSdramDdr2State *sdram = opaque; uint32_t ret = 0; switch (dcrn) { @@ -680,7 +673,7 @@ static uint32_t sdram_ddr2_dcr_read(void *opaque, int dcrn) static void sdram_ddr2_dcr_write(void *opaque, int dcrn, uint32_t val) { - ppc440_sdram_t *sdram = opaque; + Ppc4xxSdramDdr2State *sdram = opaque; switch (dcrn) { case SDRAM_R0BAS: @@ -724,18 +717,18 @@ static void sdram_ddr2_dcr_write(void *opaque, int dcrn, uint32_t val) } } -static void sdram_ddr2_reset(void *opaque) +static void ppc4xx_sdram_ddr2_reset(DeviceState *dev) { - ppc440_sdram_t *sdram = opaque; + Ppc4xxSdramDdr2State *sdram = PPC4xx_SDRAM_DDR2(dev); sdram->addr = 0; sdram->mcopt2 = 0; } -void ppc440_sdram_init(CPUPPCState *env, int nbanks, - MemoryRegion *ram) +static void ppc4xx_sdram_ddr2_realize(DeviceState *dev, Error **errp) { - ppc440_sdram_t *s; + Ppc4xxSdramDdr2State *s = PPC4xx_SDRAM_DDR2(dev); + Ppc4xxDcrDeviceState *dcr = PPC4xx_DCR_DEVICE(dev); /* * SoC also has 4 GiB but that causes problem with 32 bit * builds (4*GiB overflows the 32 bit ram_addr_t). @@ -745,41 +738,75 @@ void ppc440_sdram_init(CPUPPCState *env, int nbanks, 64 * MiB, 32 * MiB, 16 * MiB, 8 * MiB, 0 }; - s = g_malloc0(sizeof(*s)); - s->nbanks = nbanks; - ppc4xx_sdram_banks(ram, s->nbanks, s->bank, valid_bank_sizes); - qemu_register_reset(&sdram_ddr2_reset, s); - ppc_dcr_register(env, SDRAM0_CFGADDR, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); - ppc_dcr_register(env, SDRAM0_CFGDATA, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); - - ppc_dcr_register(env, SDRAM_R0BAS, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); - ppc_dcr_register(env, SDRAM_R1BAS, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); - ppc_dcr_register(env, SDRAM_R2BAS, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); - ppc_dcr_register(env, SDRAM_R3BAS, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); - ppc_dcr_register(env, SDRAM_CONF1HB, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); - ppc_dcr_register(env, SDRAM_PLBADDULL, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); - ppc_dcr_register(env, SDRAM_CONF1LL, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); - ppc_dcr_register(env, SDRAM_CONFPATHB, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); - ppc_dcr_register(env, SDRAM_PLBADDUHB, - s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + if (s->nbanks < 1 || s->nbanks > 4) { + error_setg(errp, "Invalid number of RAM banks"); + return; + } + if (!s->dram_mr) { + error_setg(errp, "Missing dram memory region"); + return; + } + ppc4xx_sdram_banks(s->dram_mr, s->nbanks, s->bank, valid_bank_sizes); + + ppc4xx_dcr_register(dcr, SDRAM0_CFGADDR, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + ppc4xx_dcr_register(dcr, SDRAM0_CFGDATA, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + + ppc4xx_dcr_register(dcr, SDRAM_R0BAS, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + ppc4xx_dcr_register(dcr, SDRAM_R1BAS, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + ppc4xx_dcr_register(dcr, SDRAM_R2BAS, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + ppc4xx_dcr_register(dcr, SDRAM_R3BAS, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + ppc4xx_dcr_register(dcr, SDRAM_CONF1HB, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + ppc4xx_dcr_register(dcr, SDRAM_PLBADDULL, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + ppc4xx_dcr_register(dcr, SDRAM_CONF1LL, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + ppc4xx_dcr_register(dcr, SDRAM_CONFPATHB, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); + ppc4xx_dcr_register(dcr, SDRAM_PLBADDUHB, + s, &sdram_ddr2_dcr_read, &sdram_ddr2_dcr_write); +} + +static Property ppc4xx_sdram_ddr2_props[] = { + DEFINE_PROP_LINK("dram", Ppc4xxSdramDdr2State, dram_mr, TYPE_MEMORY_REGION, + MemoryRegion *), + DEFINE_PROP_UINT32("nbanks", Ppc4xxSdramDdr2State, nbanks, 4), + DEFINE_PROP_END_OF_LIST(), +}; + +static void ppc4xx_sdram_ddr2_class_init(ObjectClass *oc, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(oc); + + dc->realize = ppc4xx_sdram_ddr2_realize; + dc->reset = ppc4xx_sdram_ddr2_reset; + /* Reason: only works as function of a ppc4xx SoC */ + dc->user_creatable = false; + device_class_set_props(dc, ppc4xx_sdram_ddr2_props); } -void ppc4xx_sdram_ddr2_enable(CPUPPCState *env) +void ppc4xx_sdram_ddr2_enable(Ppc4xxSdramDdr2State *s) { - ppc_dcr_write(env->dcr_env, SDRAM0_CFGADDR, 0x21); - ppc_dcr_write(env->dcr_env, SDRAM0_CFGDATA, 0x08000000); + sdram_ddr2_dcr_write(s, SDRAM0_CFGADDR, 0x21); + sdram_ddr2_dcr_write(s, SDRAM0_CFGDATA, 0x08000000); } +static const TypeInfo ppc4xx_types[] = { + { + .name = TYPE_PPC4xx_SDRAM_DDR2, + .parent = TYPE_PPC4xx_DCR_DEVICE, + .instance_size = sizeof(Ppc4xxSdramDdr2State), + .class_init = ppc4xx_sdram_ddr2_class_init, + } +}; +DEFINE_TYPES(ppc4xx_types) + /*****************************************************************************/ /* PLB to AHB bridge */ enum { diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index 13055a8916..f03cdc9ecc 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -342,14 +342,19 @@ static void sam460ex_init(MachineState *machine) error_report("Memory below 64 MiB is not supported"); exit(1); } + dev = qdev_new(TYPE_PPC4xx_SDRAM_DDR2); + object_property_set_link(OBJECT(dev), "dram", OBJECT(machine->ram), + &error_abort); /* * Put all RAM on first bank because board has one slot * and firmware only checks that */ - ppc440_sdram_init(env, 1, machine->ram); + object_property_set_int(OBJECT(dev), "nbanks", 1, &error_abort); + ppc4xx_dcr_realize(PPC4xx_DCR_DEVICE(dev), cpu, &error_fatal); + object_unref(OBJECT(dev)); /* FIXME: does 460EX have ECC interrupts? */ /* Enable SDRAM memory regions as we may boot without firmware */ - ppc4xx_sdram_ddr2_enable(env); + ppc4xx_sdram_ddr2_enable(PPC4xx_SDRAM_DDR2(dev)); /* IIC controllers and devices */ dev = sysbus_create_simple(TYPE_PPC4xx_I2C, 0x4ef600700, diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h index fd0b3ca82a..ff88385ac0 100644 --- a/include/hw/ppc/ppc4xx.h +++ b/include/hw/ppc/ppc4xx.h @@ -37,8 +37,6 @@ typedef struct { uint32_t bcr; } Ppc4xxSdramBank; -void ppc4xx_sdram_ddr2_enable(CPUPPCState *env); - void ppc4xx_sdram_banks(MemoryRegion *ram, int nr_banks, Ppc4xxSdramBank ram_banks[], const ram_addr_t sdram_bank_sizes[]); @@ -138,4 +136,20 @@ struct Ppc4xxSdramDdrState { void ppc4xx_sdram_ddr_enable(Ppc4xxSdramDdrState *s); +/* SDRAM DDR2 controller */ +#define TYPE_PPC4xx_SDRAM_DDR2 "ppc4xx-sdram-ddr2" +OBJECT_DECLARE_SIMPLE_TYPE(Ppc4xxSdramDdr2State, PPC4xx_SDRAM_DDR2); +struct Ppc4xxSdramDdr2State { + Ppc4xxDcrDeviceState parent_obj; + + MemoryRegion *dram_mr; + uint32_t nbanks; /* Banks to use from 4, e.g. when board has less slots */ + Ppc4xxSdramBank bank[4]; + + uint32_t addr; + uint32_t mcopt2; +}; + +void ppc4xx_sdram_ddr2_enable(Ppc4xxSdramDdr2State *s); + #endif /* PPC4XX_H */ From patchwork Mon Oct 17 19:19:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691086 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=dxci8Oaf; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnST3LkYz23kQ for ; Tue, 18 Oct 2022 06:42:01 +1100 (AEDT) Received: from localhost ([::1]:55816 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVzr-0000hF-1c for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:41:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36550) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVff-0002Ts-Gg; Mon, 17 Oct 2022 15:21:09 -0400 Received: from mail-oi1-x234.google.com ([2607:f8b0:4864:20::234]:35661) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfd-0002wd-DC; Mon, 17 Oct 2022 15:21:06 -0400 Received: by mail-oi1-x234.google.com with SMTP id u15so13240781oie.2; Mon, 17 Oct 2022 12:21:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qdwF3Drv7lJ5ZhIvA04ip74IIHwhrVpQPOB7Yjm4bKk=; b=dxci8Oaf8twU1JSdTQNlHAaOd7F8xHWR4COhdnODnSSqgLpzJUS/7QWaLEwcUiL6FI TYvoM7TroCW46fBxJdpRuhyZwKm4zxXkm8YeoN1UfvYtj5vWh9pi8xaM+b9uS2QFHaoD USbHBxeiRWpcix9DTXUi/Wk/p2ETJ64ZqR3PkGfHYO2GcIJKB/WZkOwVn66GDPkoNxtu 6AsQAwJUtRG0JYLWE3VGNhhMUsw5GJSDUbzrQW+NEz4dluDl6Ky6jNybCoSld+NJBMFv iBJf5LZwF3VY9/KLoAlKdGgs01NMGZicAFTPRNI9JdmeXxyVh2vCIwAG/cG5FaIB/egX jp5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qdwF3Drv7lJ5ZhIvA04ip74IIHwhrVpQPOB7Yjm4bKk=; b=VBlQejMFQctiNukihfAnQh2rLQFW6KJCAra/TC6xrf1LGtCZotbFP8jUlr44HcAY+G 8kAVaognfmlvNXy0UmpH32YiXH/Q1Zo8lk3x3EtE9Cq/ik3ZBuXGN/7UY593POFcswer xcnKNDMsuVxRS+e2S5vC/MlK151e2XFCMUFQfy3hvq0asI0gQOvLMVtGkTsyO7Ad0qLu TX7EZj3qC01eV/mTvZ+c0OdZl/ibNVpZCK7CL0HYYAywY6ktrzTn4ZFnVuBbYPzno4vj okhN/07ytrybEKXKeFAG4MEIFyt9Y+0fameFx8DnhXcamXub1qaOQ0oLKYNYhWaQq0+O Mg5g== X-Gm-Message-State: ACrzQf1jPbYvyRVZZATWcMD5d5PPlQ0KYROG0z1kYs/lmlkuB02bDczO uJ98DA3iLnqPUTznukeKqQy7/nxGCBU= X-Google-Smtp-Source: AMsMyM6unnmWOKFmbkhWEEhoivKb36v7PpTAXDPISg172y9iKwuOlmesHeUJ/ieNy2v5zbbwU6KU7A== X-Received: by 2002:a05:6808:2123:b0:355:15ed:480a with SMTP id r35-20020a056808212300b0035515ed480amr9171902oiw.38.1666034463766; Mon, 17 Oct 2022 12:21:03 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:03 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Daniel Henrique Barboza Subject: [PULL 18/38] ppc440_uc.c: Move some macros to ppc4xx.h Date: Mon, 17 Oct 2022 16:19:49 -0300 Message-Id: <20221017192009.92404-19-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::234; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x234.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan These are used by both the SDRAM controller model and system DCRs. In preparation to move SDRAM controller in its own file move these macros to the ppc4xx.h header. Signed-off-by: BALATON Zoltan Reviewed-by: Cédric Le Goater Message-Id: <74d9bf4891e2ccceb52bb6ca6b54fd3f37a9fb04.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440_uc.c | 4 ---- include/hw/ppc/ppc4xx.h | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index 55082f2b88..57274b56dd 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -380,10 +380,6 @@ enum { PESDR1_RSTSTA = 0x365, }; -#define SDR0_DDR0_DDRM_ENCODE(n) ((((unsigned long)(n)) & 0x03) << 29) -#define SDR0_DDR0_DDRM_DDR1 0x20000000 -#define SDR0_DDR0_DDRM_DDR2 0x40000000 - static uint32_t dcr_read_sdr(void *opaque, int dcrn) { ppc4xx_sdr_t *sdr = opaque; diff --git a/include/hw/ppc/ppc4xx.h b/include/hw/ppc/ppc4xx.h index ff88385ac0..10c6dd535f 100644 --- a/include/hw/ppc/ppc4xx.h +++ b/include/hw/ppc/ppc4xx.h @@ -111,6 +111,10 @@ struct Ppc4xxEbcState { }; /* SDRAM DDR controller */ +#define SDR0_DDR0_DDRM_ENCODE(n) ((((unsigned long)(n)) & 0x03) << 29) +#define SDR0_DDR0_DDRM_DDR1 0x20000000 +#define SDR0_DDR0_DDRM_DDR2 0x40000000 + #define TYPE_PPC4xx_SDRAM_DDR "ppc4xx-sdram-ddr" OBJECT_DECLARE_SIMPLE_TYPE(Ppc4xxSdramDdrState, PPC4xx_SDRAM_DDR); struct Ppc4xxSdramDdrState { From patchwork Mon Oct 17 19:19:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691047 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=Nxuhc93q; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn5s2Vdkz23kV for ; Tue, 18 Oct 2022 06:25:51 +1100 (AEDT) Received: from localhost ([::1]:48012 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVkC-0002dd-Fz for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:25:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36552) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfh-0002Vo-BV; Mon, 17 Oct 2022 15:21:12 -0400 Received: from mail-oa1-x2e.google.com ([2001:4860:4864:20::2e]:34752) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVff-0002wJ-R5; Mon, 17 Oct 2022 15:21:09 -0400 Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-1321a1e94b3so14411716fac.1; Mon, 17 Oct 2022 12:21:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nDFT5ekw8vplTcauVsxQPPI+TJA6hK3fyosAuha13Mk=; b=Nxuhc93qCjEB3IJ6CHqoxcgF8xG5WCLnVUBISZ+Ch2onq4vZ3Oems1kzOIAkCrQO1N OFCy7fYu9rn3T6WoaBlZjTprPTCKns4/4GsgEP2pmnooF88BxJoh6HrXaDkV1sZsRALY XC/jhgC5PHwoF6R4at2/tHM1Goorgf4q8uBgv7bXLsXUqlkSH7qZVAdZbVuTsaHSvRPi qexsA7fqnEJy/+1ux5DLu6dLxhfjO0EbC86uhOzJQ9Qyi0btBT5aR6GDqRT3v5cSAVIE WwByGLowLVc1GEZU3CC/kPUGTgo8yA/mxyKQdjtujkulAaoX4OL25vLcF7IvgUnRaOvx wzuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nDFT5ekw8vplTcauVsxQPPI+TJA6hK3fyosAuha13Mk=; b=FuYmYppDwoymiY+dmT+hZdDTXmvDaVFHcS/lVDz4PAb6YCvlPWVSGT4oagbGHdMx1/ MMTjvq3YimNERYrTvQxlSWtWCZBKX4shxDjLB9vN3Mg+HFXb6hpxgeyF7k+7Z/LkI7JE E2oCZ2+ny+r1UMAOKMqoUildN9Evh557vlAyJSUfIzAFIm5zvsuJkWgBKFBu4xNBo3R4 bVwgWDoHrz6hK0PES1SmyB9N947ds9xIjVPU7cKNEd4gOu/3qGNryW7PbcDEvwc8mZrf ov+1RTRDo1kFN+BqlEidnDP8GdVkrHOmBb5yO0LELAZvHgHzfpXigBazMH2Pro9uAMOE 9SIw== X-Gm-Message-State: ACrzQf0sdpu9E811aLiUvT92NuqW5ioijbsvJyRGon9d45wMGf5KSJDX rBDbjiGvRxKjVnRDc7+ichku4YiEe+Q= X-Google-Smtp-Source: AMsMyM4kYisqlUK7FhiswLsnYC0lXFGPPCOdBM15e0HBJ1VQVj6Fn8wMWgvlMPeSPx6UwMkFLQf7kA== X-Received: by 2002:a05:6870:5494:b0:133:14f:73e4 with SMTP id f20-20020a056870549400b00133014f73e4mr6428247oan.184.1666034466665; Mon, 17 Oct 2022 12:21:06 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:06 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, BALATON Zoltan , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Daniel Henrique Barboza Subject: [PULL 19/38] ppc440_uc.c: Remove unneeded parenthesis Date: Mon, 17 Oct 2022 16:19:50 -0300 Message-Id: <20221017192009.92404-20-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::2e; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2e.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: BALATON Zoltan Remove unneeded parenthesis around case labels. Signed-off-by: BALATON Zoltan Reviewed-by: Cédric Le Goater Message-Id: <19db326bea989c03e08f2853f789315bbe806fe9.1664021647.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/ppc440_uc.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c index 57274b56dd..5fbf44009e 100644 --- a/hw/ppc/ppc440_uc.c +++ b/hw/ppc/ppc440_uc.c @@ -499,34 +499,34 @@ static uint32_t sdram_ddr2_bcr(hwaddr ram_base, hwaddr ram_size) uint32_t bcr; switch (ram_size) { - case (8 * MiB): + case 8 * MiB: bcr = 0xffc0; break; - case (16 * MiB): + case 16 * MiB: bcr = 0xff80; break; - case (32 * MiB): + case 32 * MiB: bcr = 0xff00; break; - case (64 * MiB): + case 64 * MiB: bcr = 0xfe00; break; - case (128 * MiB): + case 128 * MiB: bcr = 0xfc00; break; - case (256 * MiB): + case 256 * MiB: bcr = 0xf800; break; - case (512 * MiB): + case 512 * MiB: bcr = 0xf000; break; - case (1 * GiB): + case 1 * GiB: bcr = 0xe000; break; - case (2 * GiB): + case 2 * GiB: bcr = 0xc000; break; - case (4 * GiB): + case 4 * GiB: bcr = 0x8000; break; default: From patchwork Mon Oct 17 19:19:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691085 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=lEKTMEsw; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnST2YCgz1ygT for ; Tue, 18 Oct 2022 06:42:01 +1100 (AEDT) Received: from localhost ([::1]:35184 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVzq-0000nV-T9 for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:41:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36554) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfk-0002Xs-Tw; Mon, 17 Oct 2022 15:21:13 -0400 Received: from mail-oa1-x33.google.com ([2001:4860:4864:20::33]:45014) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfj-0002xB-6v; Mon, 17 Oct 2022 15:21:12 -0400 Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-132b8f6f1b2so14356001fac.11; Mon, 17 Oct 2022 12:21:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kESdHqgE2z+F/UZlt53Vf101LIX5FdnTM9wdubvabds=; b=lEKTMEsw7Xoa0lymAQxx/PDcw6+lQFoqfs/tU2bhgh8zb6IOHwfQ6BSNlq+FWvmt+L 4TdvPvTUfgy8bmPivKTaORx42ivpYBfduc2VX28jreZcJexN/o7vYX9prfZHmCaClrvQ T/pMiUczlhKlUa/Xjlm6CWpnqQGPXOvjSTU/JWDnY+ipq/zm8jAVhzL0Jq8HQF2sEtky Hm1f5idbPhUb+CWSGT1BB+AWh2R0jvXVPwSI15h0xhwq0gRT4uiye9RPa9Pj7tDuYNTB 5m+UPnQvhi1k4KygCheXvD1kzwo3E//emhUIWkYFDbrXribTSlTQQOl3RH2KNwWqAI+3 SMrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kESdHqgE2z+F/UZlt53Vf101LIX5FdnTM9wdubvabds=; b=44LKdDnHvXcbbh8TLELAe/omJOWo0o2ppHA8566eMe89iqF7PAG/Y7ZVkeSGA4ZvD7 fNpsjdp3cVsTNc8pREff/wqlYba1xoThr8V5KMr4Knu0NeavvPODhqsU3RFwCpE9FTYz 8uWSIJOQeDPhkZ5y9Tbrfwr24yayZUvy8dNKt4DI+rSWPb0il1zs0b4LekHPz7glpQZ/ Ed3OOvnhQbeKMu0IKByhU5bKR009MRL/EmfaJxVQHxC0YbFr2VRLg0NQNJRSM4rrvnjy CzRVTR9x3FsvAi03TUofeP1gEnc5dVOUB3TNQgDoKCzAFDZnHJTpdHpoTFLstpwlMh0L 1asA== X-Gm-Message-State: ACrzQf3h0rkyXyQfblqRE2psyATr7pgvCDpURh86d2SAbxt4tCVCQyte 03twFjODWDHreNMm+++Ddw/BZ6i7eSQ= X-Google-Smtp-Source: AMsMyM4I9GjpvBbWYl46xALhpIto/9JeqLDlDzB9Tmduf03SrRU8reeWox87A03Qop3hqxxo6b6TTQ== X-Received: by 2002:a05:6870:40c8:b0:136:4389:1375 with SMTP id l8-20020a05687040c800b0013643891375mr16559881oal.46.1666034469536; Mon, 17 Oct 2022 12:21:09 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:09 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Bernhard Beschow , Bin Meng , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Daniel Henrique Barboza Subject: [PULL 20/38] hw/ppc/meson: Allow e500 boards to be enabled separately Date: Mon, 17 Oct 2022 16:19:51 -0300 Message-Id: <20221017192009.92404-21-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::33; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x33.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Bernhard Beschow Gives users more fine-grained control over what should be compiled into QEMU. Signed-off-by: Bernhard Beschow Reviewed-by: Bin Meng Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20221003203142.24355-2-shentey@gmail.com> Signed-off-by: Daniel Henrique Barboza --- configs/devices/ppc-softmmu/default.mak | 3 ++- hw/ppc/Kconfig | 8 ++++++++ hw/ppc/meson.build | 6 ++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/configs/devices/ppc-softmmu/default.mak b/configs/devices/ppc-softmmu/default.mak index 658a454426..a887f5438b 100644 --- a/configs/devices/ppc-softmmu/default.mak +++ b/configs/devices/ppc-softmmu/default.mak @@ -1,7 +1,8 @@ # Default configuration for ppc-softmmu # For embedded PPCs: -CONFIG_E500=y +CONFIG_E500PLAT=y +CONFIG_MPC8544DS=y CONFIG_PPC405=y CONFIG_PPC440=y CONFIG_VIRTEX=y diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig index 3a4418a69e..22a64745d4 100644 --- a/hw/ppc/Kconfig +++ b/hw/ppc/Kconfig @@ -132,6 +132,14 @@ config E500 select FDT_PPC select DS1338 +config E500PLAT + bool + select E500 + +config MPC8544DS + bool + select E500 + config VIRTEX bool select PPC4XX diff --git a/hw/ppc/meson.build b/hw/ppc/meson.build index 62801923f3..32babc9b48 100644 --- a/hw/ppc/meson.build +++ b/hw/ppc/meson.build @@ -71,12 +71,10 @@ ppc_ss.add(when: 'CONFIG_MAC_OLDWORLD', if_true: files('mac_oldworld.c')) # NewWorld PowerMac ppc_ss.add(when: 'CONFIG_MAC_NEWWORLD', if_true: files('mac_newworld.c')) # e500 +ppc_ss.add(when: 'CONFIG_E500PLAT', if_true: files('e500plat.c')) +ppc_ss.add(when: 'CONFIG_MPC8544DS', if_true: files('mpc8544ds.c')) ppc_ss.add(when: 'CONFIG_E500', if_true: files( 'e500.c', - 'mpc8544ds.c', - 'e500plat.c' -)) -ppc_ss.add(when: 'CONFIG_E500', if_true: files( 'mpc8544_guts.c', 'ppce500_spin.c' )) From patchwork Mon Oct 17 19:19:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691090 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=mylvi1YH; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnTL6kv2z1ygT for ; Tue, 18 Oct 2022 06:42:46 +1100 (AEDT) Received: from localhost ([::1]:53186 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okW0a-0005Os-Mp for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:42:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36556) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfn-0002bc-AZ; Mon, 17 Oct 2022 15:21:17 -0400 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]:45859) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfl-0002u7-NM; Mon, 17 Oct 2022 15:21:15 -0400 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-132fb4fd495so14363392fac.12; Mon, 17 Oct 2022 12:21:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VTqaPV4ZyrwDDKTrBGHMOV/nBzVWSJQdis08EWydlqk=; b=mylvi1YH1IUYnxBeyTlVfwcHc/x1UU4N0VWJFhP7Oult6t8Ay7WXmWdi9VJzbhMGnk S0cOgXPyicznqQfwymwmtoBTUwp/4afFn8s3UUwwakwhun/K/8/JRP72qMdu+nDUevxi EMu0o8l0WfTYz5s57gTCJpBy41GTAaQG/0W4OA8baS18ZVaqgdJmlWUt//uR4ZDaz5BY FVUwe/HGGh0HmBztmv2rGq8nJwo/MpKP6r5yacHj3mVJCJM0E3NGoe8hwJoyga1ipnGh qm2PCINXYwkNc3/9ML1PQ8hPsOgEkN2Fjsq96DCO5gmb8EocCxgTLh8VAVjwVd/7/5lm my+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VTqaPV4ZyrwDDKTrBGHMOV/nBzVWSJQdis08EWydlqk=; b=Y0Rl6BGr6r+3OVpmWbDSqyrBFX0em/ljuWKQk0LFxK1RCKhRZcYpPs7gX18TpvVKvV O6aOpWBm5Vghc0bgymo2ZvD6biLlQHaiwps2CxqPO/XKDo0KQAFI+gKBXY6xvbrqWz7p IvEjK9EeBs8mEqMMSJ/1xWsAI8zWWyjVfumZ04rdvg6o7hc3DZLZ5nN+UaZ0s1V5qFvT KsEC6UUsgIU5vdU3skdID0q4SoGJAUxwHIYGTO4F/QamRWm9uwPeRDI6ZrvhnIu4u2u/ spIRPy6QIVtJFxT+W+zl4Xbm9XaZW+PVRECBWqMLTBCbQMUnoYt6gnNle9wIW6TI5XGE 1kCw== X-Gm-Message-State: ACrzQf2sTRzxeYZGD3mTjy1lbV6cyBq7xM38KwixblblnvoULQB1FcEu +idXJ3y53Qbkv9l9BXUmS2sAYv7zClg= X-Google-Smtp-Source: AMsMyM7HXlX2Q8g2LD8z+xhT8mxjkOHQfOdI/yJGpJAE1jNKkY64L1lryo7TYEV7WKnWoM5uLresfw== X-Received: by 2002:a05:6870:c182:b0:12a:e54e:c6e8 with SMTP id h2-20020a056870c18200b0012ae54ec6e8mr16027315oad.207.1666034472500; Mon, 17 Oct 2022 12:21:12 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:12 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Bernhard Beschow , Bin Meng , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Daniel Henrique Barboza Subject: [PULL 21/38] hw/gpio/meson: Introduce dedicated config switch for hw/gpio/mpc8xxx Date: Mon, 17 Oct 2022 16:19:52 -0300 Message-Id: <20221017192009.92404-22-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::2c; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Bernhard Beschow Having a dedicated config switch makes dependency handling cleaner. Signed-off-by: Bernhard Beschow Reviewed-by: Bin Meng Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20221003203142.24355-3-shentey@gmail.com> Signed-off-by: Daniel Henrique Barboza --- hw/gpio/Kconfig | 3 +++ hw/gpio/meson.build | 2 +- hw/ppc/Kconfig | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/gpio/Kconfig b/hw/gpio/Kconfig index f0e7405f6e..d2cf3accc8 100644 --- a/hw/gpio/Kconfig +++ b/hw/gpio/Kconfig @@ -8,6 +8,9 @@ config PL061 config GPIO_KEY bool +config GPIO_MPC8XXX + bool + config GPIO_PWR bool diff --git a/hw/gpio/meson.build b/hw/gpio/meson.build index 7bd6a57264..b726e6d27a 100644 --- a/hw/gpio/meson.build +++ b/hw/gpio/meson.build @@ -1,5 +1,5 @@ -softmmu_ss.add(when: 'CONFIG_E500', if_true: files('mpc8xxx.c')) softmmu_ss.add(when: 'CONFIG_GPIO_KEY', if_true: files('gpio_key.c')) +softmmu_ss.add(when: 'CONFIG_GPIO_MPC8XXX', if_true: files('mpc8xxx.c')) softmmu_ss.add(when: 'CONFIG_GPIO_PWR', if_true: files('gpio_pwr.c')) softmmu_ss.add(when: 'CONFIG_MAX7310', if_true: files('max7310.c')) softmmu_ss.add(when: 'CONFIG_PL061', if_true: files('pl061.c')) diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig index 22a64745d4..791fe78a50 100644 --- a/hw/ppc/Kconfig +++ b/hw/ppc/Kconfig @@ -124,6 +124,7 @@ config E500 imply AT24C imply VIRTIO_PCI select ETSEC + select GPIO_MPC8XXX select OPENPIC select PLATFORM_BUS select PPCE500_PCI From patchwork Mon Oct 17 19:19:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691069 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=D+ZKsscI; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnBT116Vz1ygT for ; Tue, 18 Oct 2022 06:29:53 +1100 (AEDT) Received: from localhost ([::1]:37524 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVo6-0004Hu-Lt for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:29:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57416) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfs-0002hg-D0; Mon, 17 Oct 2022 15:21:22 -0400 Received: from mail-oa1-x30.google.com ([2001:4860:4864:20::30]:40952) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfp-0002xo-TU; Mon, 17 Oct 2022 15:21:19 -0400 Received: by mail-oa1-x30.google.com with SMTP id 586e51a60fabf-1364357a691so14385728fac.7; Mon, 17 Oct 2022 12:21:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AAG5aIZYO+c6tFUtYdaxQU9IDPUVOE446epr6tRiRRI=; b=D+ZKsscI2ayAksfIsK4/w7edLM/y7ttP812k84wD/qRYem+RBBet6D+rPMxhcjcKKv raGHP5/ZKFPawvfJc6dKXOzb2sJWqdHWpkO5zcOHhWcnAJpZzBBVeYWYNFywPOm38Yv9 d9qYc2DpGKQFvOrh6MJbXHT/8Vq846ASWqHxBkQAUxpO7/XONMH/SljvlHrkKqa487TM 6E9FR0j7ZsLMlATjue4dV5n9OMv7/FUmbl36vEkluGqNWl3dTwj9IL5P9YwhfK114p/t Gustnyezz34TuyMY6oQKMcnjAyXLDtGNVEozaHyA1UAKP37BVmPxBlkup4q9CDquL8or TohQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AAG5aIZYO+c6tFUtYdaxQU9IDPUVOE446epr6tRiRRI=; b=tO/yFDgcZHDKOXmeIsv97n1fXVyeOQArzuiELtwvxJjd+gLxT6gz/wVHiGDb1J9NBG XIQkw6PFF7/3fCR6Sf1LIm7jqu53v6Ci2zvyj9cFclcXAtE2Ru/IYJLH1jNPAJisqMLy z1raq9od9yeU/T7sGJX95Gu/ppRri3c0OoDKRbmRT1LxRb84ZzNaeMin0vWv1Bwi0H+W styuzgGujRf0eH8tM+ZX4YEC4gmB99SayirxyX9P+U5AULQOmeYGywYz8Vm7SoseGWtH rthvugjnRGTNzDh++vuBwVxWg4rYpTZLbaODi/K2ybdJpEmxYaxb+yESngZU+e4KtuXJ O7Pg== X-Gm-Message-State: ACrzQf14xZDBPJSWNpIy0W9lRLKjxUsjZat+v/NCeyA1UFUqTIqeLLHQ mdMgCcXdDwt5e8kPw4oBTVMws6wbPig= X-Google-Smtp-Source: AMsMyM7c5AeAXkHrRLkWkC8+H+mu0oFBKrU4oNy3a56u1bdCoefxEVHD3QdLsv56zxHGnyGtWtgCTA== X-Received: by 2002:a05:6870:3388:b0:136:4f44:78a6 with SMTP id w8-20020a056870338800b001364f4478a6mr16768584oae.125.1666034475459; Mon, 17 Oct 2022 12:21:15 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:15 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Bernhard Beschow , Bin Meng , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Daniel Henrique Barboza Subject: [PULL 22/38] docs/system/ppc/ppce500: Add heading for networking chapter Date: Mon, 17 Oct 2022 16:19:53 -0300 Message-Id: <20221017192009.92404-23-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::30; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x30.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Bernhard Beschow The sudden change of topics is slightly confusing and makes the networking information less visible. So separate the networking chapter to improve comprehensibility. Signed-off-by: Bernhard Beschow Reviewed-by: Bin Meng Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20221003203142.24355-4-shentey@gmail.com> Signed-off-by: Daniel Henrique Barboza --- docs/system/ppc/ppce500.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/system/ppc/ppce500.rst b/docs/system/ppc/ppce500.rst index 9beef39171..ba6bcb7314 100644 --- a/docs/system/ppc/ppce500.rst +++ b/docs/system/ppc/ppce500.rst @@ -146,6 +146,9 @@ You can specify a real world SoC device that QEMU has built-in support but all these SoCs are e500v2 based MPC85xx series, hence you cannot test anything built for P4080 (e500mc), P5020 (e5500) and T2080 (e6500). +Networking +---------- + By default a VirtIO standard PCI networking device is connected as an ethernet interface at PCI address 0.1.0, but we can switch that to an e1000 NIC by: From patchwork Mon Oct 17 19:19:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691062 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=HtRTy4SD; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn8w0C2Kz1ygT for ; Tue, 18 Oct 2022 06:28:32 +1100 (AEDT) Received: from localhost ([::1]:33196 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVmn-0000UX-Ka for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:28:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57418) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfu-0002jS-Sq; Mon, 17 Oct 2022 15:21:26 -0400 Received: from mail-oi1-x22f.google.com ([2607:f8b0:4864:20::22f]:42599) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfs-0002yB-8k; Mon, 17 Oct 2022 15:21:21 -0400 Received: by mail-oi1-x22f.google.com with SMTP id p127so12571873oih.9; Mon, 17 Oct 2022 12:21:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oxx+t+Q670EmUPuBO6yT51edHFCy2D4FS62HYiFc8Dw=; b=HtRTy4SDeJPH+7FOgqR3HmVg2emvtwvzEPShtk/n+Ci+jtpaXUSUlC7+fR/kVmf/uz hcf2wW2bs3WSk+SsUR1AxUJZ4alvGAqyA5Omglp10f3CTaMsRpvZZk9whzFIsHy+KGxR HLRkFGg3guI4d/l5Ys0E0CbFsAid8Yn8QsP7cH5G6snHtBZqV+U34m4oSawqC1gfsKL2 hHbFSMswlj6LiW88CPAR7wJOJiSfNi0k1mgTk5+kRh/mNfUe+XFdO3YSV+k/5nAXVHIy 53j7gPWFOCpQVo3KoGnEpY7SPgWTglPrydNnk+22TrAEIe5oZcQfKAQXjvP6y8lgorE4 sDKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oxx+t+Q670EmUPuBO6yT51edHFCy2D4FS62HYiFc8Dw=; b=CJYGvu0CSAypnta1fL2nrAtrBxFDb1RuLmzPdOchHuRqN9sThJgoMg+4hDcLK6CQr+ TRga/DqhxD3/dSuAK6/gwfKthpxpBw9p1A6XVnCq0yRG/PDfPfIatRr/Al4eWE3vprxv Hk3nF48fIm+2GYrpsylrDheXzMHHS1AIPiQHB5SrsqwfF9ZiTB62s5weNTVopbExWEtK sV2varOMg82K2AIJSmQ82HlIzE3TVYaXTCsZsBypvk3PrvwpEzPRysHsH2N76yyQY2Ia gdRMisu8ZddbtYpBqiBvmQLke3sguoDkDKNVNSKjCBt0PT9zteVav+1PmaCMtVOut4W3 LpAA== X-Gm-Message-State: ACrzQf0+Z8W7rVyav2IrK1i44UBpNjsV6zEc5pmoCqHkuJeNSE8I3lKy l69SKeZPTCQJWQotOH+B73ucFyQAnpw= X-Google-Smtp-Source: AMsMyM5edoHW9Wwg3FekKbknrlNuL4ysT+gcs299HXfvlt+cKrgtgnXW6vl9tV3Ri/pEGGBzuiUkiA== X-Received: by 2002:a05:6808:1717:b0:333:513e:650e with SMTP id bc23-20020a056808171700b00333513e650emr5640982oib.23.1666034478427; Mon, 17 Oct 2022 12:21:18 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:18 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Bernhard Beschow , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Bin Meng , Daniel Henrique Barboza Subject: [PULL 23/38] hw/ppc/e500: Reduce usage of sysbus API Date: Mon, 17 Oct 2022 16:19:54 -0300 Message-Id: <20221017192009.92404-24-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::22f; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Bernhard Beschow PlatformBusDevice has an mmio attribute which gets aliased to SysBusDevice::mmio[0]. So PlatformbusDevice::mmio can be used directly, avoiding the sysbus API. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Bin Meng Message-Id: <20221003203142.24355-5-shentey@gmail.com> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/e500.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index 32495d0123..496c61b612 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -1023,7 +1023,7 @@ void ppce500_init(MachineState *machine) memory_region_add_subregion(address_space_mem, pmc->platform_bus_base, - sysbus_mmio_get_region(s, 0)); + &pms->pbus_dev->mmio); } /* From patchwork Mon Oct 17 19:19:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691084 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=JPpPFhEy; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnSQ4vlqz1ygT for ; Tue, 18 Oct 2022 06:41:58 +1100 (AEDT) Received: from localhost ([::1]:55792 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVzn-0000Kn-JX for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:41:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57420) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfx-0002jp-0D; Mon, 17 Oct 2022 15:21:26 -0400 Received: from mail-oi1-x236.google.com ([2607:f8b0:4864:20::236]:37636) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfv-0002yO-0a; Mon, 17 Oct 2022 15:21:24 -0400 Received: by mail-oi1-x236.google.com with SMTP id j188so13231355oih.4; Mon, 17 Oct 2022 12:21:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=skOEsAeg6KP2CmeD6Dnh5EmKq4YUbFtPTmqJLa/W+oA=; b=JPpPFhEyQx2TgcotGwcol1YvRFYXc96HuEFQSsDxTdSQKQ0v+YOP77v+2q9s/kaRY1 nOZQVzUTIcxU43cy3bx+Tzm4VKQorZfoFkJJ3JhLnyWHggmvxbhaFbpd+qaTeOXPmm2y sqgSQc9p90wVoBzgcpzS4bNYhYZvLMyaO0AOiQv5k3CuYxrnQlE7YI/CiR9FvWgVb0wP JXe57lauzdTpI7EkYav9KmzrS48q44X1+k2824jHU0lnsUmwLKH/wWuIfPIn6WcpPkSd AorA0rHOJRWni8Us+2MOTG8/iJjoA8P9Oq3bhukruWSeB5mcU4mrFVng2hwA6budnpNW fGHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=skOEsAeg6KP2CmeD6Dnh5EmKq4YUbFtPTmqJLa/W+oA=; b=O8VcM1kth2h6Bfi1UVf+AzUrCc+SgvbDU2sj/30Azz4UaISqKhNPIuUzS+9INX/25N ZgcCN7jdp8pDr3CTYQLzsU1Fog+Ob6ARfjpILf4UWUHylQmTpyAzBfq1dgqbwuvYwKhP mFa8tyFZqSYyqHhQjZWVRlS48vmIFiyXSPEONqysr4WtLJm2rCAgqwwvi1gVUFiw9vyD yPw4IYqJx6be0KEH/sBQK8wfsGP5BS7FkIUBX+UsPYUTojJpOb2PlFLPe6h5ykXBeKfr BYely3WIVk+9MdC4LgF2UDKKPwEXGVAkFP5Mbc3r1SvxIDJXoHR7FXbFdaEj2fKGWbRT 3yEg== X-Gm-Message-State: ACrzQf21sXlGpWnCq1/75oJDIxJYtsX1rX0vcBYzo1T2ty/f66o6//y5 uY5CBy3D85+NHWHaA5ENFkFdPWtMGUA= X-Google-Smtp-Source: AMsMyM6wmNFayiT8Q9xHVTClJU/5nHhxHmepjahYoSkxnz68450FfvQFPzHcRyg+abBDI2BKhJxtwQ== X-Received: by 2002:a05:6808:b18:b0:354:48e9:ef25 with SMTP id s24-20020a0568080b1800b0035448e9ef25mr14278243oij.86.1666034481015; Mon, 17 Oct 2022 12:21:21 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:20 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Bernhard Beschow , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Daniel Henrique Barboza Subject: [PULL 24/38] hw/ppc/mpc8544ds: Rename wrongly named method Date: Mon, 17 Oct 2022 16:19:55 -0300 Message-Id: <20221017192009.92404-25-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::236; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x236.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Bernhard Beschow Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20221003203142.24355-6-shentey@gmail.com> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/mpc8544ds.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c index 81177505f0..8e674ad195 100644 --- a/hw/ppc/mpc8544ds.c +++ b/hw/ppc/mpc8544ds.c @@ -36,7 +36,7 @@ static void mpc8544ds_init(MachineState *machine) ppce500_init(machine); } -static void e500plat_machine_class_init(ObjectClass *oc, void *data) +static void mpc8544ds_machine_class_init(ObjectClass *oc, void *data) { MachineClass *mc = MACHINE_CLASS(oc); PPCE500MachineClass *pmc = PPCE500_MACHINE_CLASS(oc); @@ -63,7 +63,7 @@ static void e500plat_machine_class_init(ObjectClass *oc, void *data) static const TypeInfo mpc8544ds_info = { .name = TYPE_MPC8544DS_MACHINE, .parent = TYPE_PPCE500_MACHINE, - .class_init = e500plat_machine_class_init, + .class_init = mpc8544ds_machine_class_init, }; static void mpc8544ds_register_types(void) From patchwork Mon Oct 17 19:19:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691057 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=pI8r1fSJ; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn7v5hjbz1ygT for ; Tue, 18 Oct 2022 06:27:39 +1100 (AEDT) Received: from localhost ([::1]:46966 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVlw-0007TA-T6 for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:27:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51194) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVfz-0002m2-4Q; Mon, 17 Oct 2022 15:21:28 -0400 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]:38625) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVfx-0002yh-L6; Mon, 17 Oct 2022 15:21:26 -0400 Received: by mail-ot1-x32a.google.com with SMTP id z11-20020a05683020cb00b00661a95cf920so6359646otq.5; Mon, 17 Oct 2022 12:21:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ucBINp7qsRISBMjTXg66YJ+tRcZMxd0gKORoFwq6RbY=; b=pI8r1fSJMImV/d8nxGN18rPBxE2ZjgkpQ0hLYEA7uzrAxYjyVdOk3xq5kjhrjXB5Ap SQmygPKwpZ0ctIqTqRXvnBsP5e94mscouDaN/wbPcLLpq7a6t0jFawLtg7km+xSQEJfn nUypsMiphFzwevcXjq2CqkeoKVi60FeqZ21G89eGQKbKN5QFVCIYqOXjf4dPSp66YT0D Pk4RolsI1+zkmOr9GQGN2Uqf7Fy/2A+VU8VmoE58ilhmz+PxUBY7nCBg6rCL9tP7EmL0 2mXMFkAaor6UkJaGYB3rHFyeO0bm2PPSkVz83SCUAPvl7+DU/bjt9tLw6oqdfbew8p+B J4vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ucBINp7qsRISBMjTXg66YJ+tRcZMxd0gKORoFwq6RbY=; b=RPb4RqE/FmBqxnS46kPWVJTt++ogvr5Qlk5zXP7FpFWT5QQqrM3l7ZMce4n+ZTMzAN DUZXi9VhgcEJR4G7ED+dl9mVCDl8Gryxjb6SFedekbz64u8iOUpCtOv14TUZCqZSvrd2 mSrhFebHMqFklHuaNcMb2h/VFGS4HhkoAOl1M1dU7/7lC6OTkwCDFxqmkAgTzPfWgrC5 I2QDBppH95HTlVeBYWJ33YwmZTmeuY69mjWxp0a4g/aO7vPn32x++alXUE2X4AEBaehQ rf/2+5CnMtY3B/nm/R1YO/PW4cKRKZS1/YEsoYx2Trmd9QM50DFgBGOchujhduD2ZdAD CFGw== X-Gm-Message-State: ACrzQf0NW8rGL2Gbw8F3ZsJnYzdLiBNF4Gphv+jfR1+ReSQqGgesT+8G EZ7yKO977RWBTFUBb2TaYKiTWoJ3jNI= X-Google-Smtp-Source: AMsMyM4gVtCv5jSpeZ2g8ORSztypgT0ZZRVA6J+lX0GBMZXFA9zwXWmqADpo2GCSlxIn6fIO4PQ/Wg== X-Received: by 2002:a05:6830:b8d:b0:65f:22fb:be09 with SMTP id a13-20020a0568300b8d00b0065f22fbbe09mr5629942otv.38.1666034483636; Mon, 17 Oct 2022 12:21:23 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:23 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Bernhard Beschow , Bin Meng , Daniel Henrique Barboza Subject: [PULL 25/38] hw/ppc/mpc8544ds: Add platform bus Date: Mon, 17 Oct 2022 16:19:56 -0300 Message-Id: <20221017192009.92404-26-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::32a; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x32a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Bernhard Beschow Models the real device more closely. Address and size values are taken from mpc8544.dts from the linux-5.17.7 tree. The IRQ range is taken from e500plat.c. Signed-off-by: Bernhard Beschow Reviewed-by: Bin Meng Message-Id: <20221003203142.24355-7-shentey@gmail.com> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/mpc8544ds.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c index 8e674ad195..9c81477698 100644 --- a/hw/ppc/mpc8544ds.c +++ b/hw/ppc/mpc8544ds.c @@ -14,6 +14,7 @@ #include "sysemu/device_tree.h" #include "hw/ppc/openpic.h" #include "qemu/error-report.h" +#include "qemu/units.h" #include "cpu.h" static void mpc8544ds_fixup_devtree(void *fdt) @@ -45,6 +46,11 @@ static void mpc8544ds_machine_class_init(ObjectClass *oc, void *data) pmc->pci_nr_slots = 2; pmc->fixup_devtree = mpc8544ds_fixup_devtree; pmc->mpic_version = OPENPIC_MODEL_FSL_MPIC_20; + pmc->has_platform_bus = true; + pmc->platform_bus_base = 0xFF800000ULL; + pmc->platform_bus_size = 8 * MiB; + pmc->platform_bus_first_irq = 5; + pmc->platform_bus_num_irqs = 10; pmc->ccsrbar_base = 0xE0000000ULL; pmc->pci_mmio_base = 0xC0000000ULL; pmc->pci_mmio_bus_base = 0xC0000000ULL; From patchwork Mon Oct 17 19:19:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691103 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=XGdciI5I; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrnf63RL0z23kQ for ; Tue, 18 Oct 2022 06:50:22 +1100 (AEDT) Received: from localhost ([::1]:46320 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okW7v-00062M-U4 for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:50:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51196) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVg2-0002ni-1R; Mon, 17 Oct 2022 15:21:30 -0400 Received: from mail-oi1-x235.google.com ([2607:f8b0:4864:20::235]:40577) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVg0-0002z2-Cv; Mon, 17 Oct 2022 15:21:29 -0400 Received: by mail-oi1-x235.google.com with SMTP id l5so13222730oif.7; Mon, 17 Oct 2022 12:21:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/r/v9NNBgGV7VlSQ/iTKWneUdC+4mqdWXAOwm1s4l3A=; b=XGdciI5IAewMdq1qcvs7TYmZ58u/lWEe2Vdsc3m3Xn6ZCvfQ5NnB53XCQ3p+3QyqlF V8XgeUDQsdJ9LXnKhpRZvHQbb/M5gyQJbzFgp4d0kncQQK0cNhM+/4sOVDTomwEhDxUl chvcHLgV8VpNyBAgljY0bA34zB8wJeoS+2zF4n8HjDEJV3N4SDIOUUWNSrb+VQkr4nTF 65SbtjY2My5ocWi5oRc2GkdXsIhNYLe7dr7ckbgGCVGgKkQYZwSSXRVBQubQgxODiEZv FLKZPaeUlwbs5F6Y82aV+RwlLCB7j+4Yj2QZRZvHPMEoyAI7jVRBLks295o6TcwHdfa6 HQOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/r/v9NNBgGV7VlSQ/iTKWneUdC+4mqdWXAOwm1s4l3A=; b=DT6yIc/xls8FbOrmpR4mhQULfCgXTgxHT96fDEdhzN4tWWsySvd5LNjAsn5iBq0WjZ 1znd8OgNkerBhRCqQNNAJnWpQLPSYnus97ZWnrNvR4AqZJRtCm7SK03z6A6xhRr5NsNQ JhvZeYGgvmypx/+G8N1XDch/7HlrQtlJueGhqjJIfsJu7JYyuoD+Vwh5GBv3AfhXjTb8 rfH2CA61E9acjuMXFZlLqQHDT2ZyxFBoPhFNgu+rlDrob+ZU43Z5SPadpvPY9EiJeezA HMOnAWqhrRBXFJ3TDyVA+9QKZ4ZTxmBIgLVUT27L6RGdgCL7hJY6g6/sx3X8QCC2gZAj o8Rg== X-Gm-Message-State: ACrzQf2XRVfeCkeCS6v0ui6P4s0hECIpJQYpPcLLcm0Jkt/VLqI87QDR 6Md8mbcZkvnJUs64geGAZJst6xfWrr4= X-Google-Smtp-Source: AMsMyM6qzeGYcCvD78rg5FKd1+uhYiw7nwruhyFwKhEid4Xuvp0JueiTRiatWtImCz6oBq3mby9Rtg== X-Received: by 2002:a05:6808:1404:b0:355:4cd4:b10b with SMTP id w4-20020a056808140400b003554cd4b10bmr190195oiv.207.1666034486418; Mon, 17 Oct 2022 12:21:26 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:26 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Bernhard Beschow , Bin Meng , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Daniel Henrique Barboza Subject: [PULL 26/38] hw/ppc/e500: Remove if statement which is now always true Date: Mon, 17 Oct 2022 16:19:57 -0300 Message-Id: <20221017192009.92404-27-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x235.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Bernhard Beschow Now that the MPC8544DS board also has a platform bus, the if statement is always true. Signed-off-by: Bernhard Beschow Reviewed-by: Bin Meng Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20221003203142.24355-8-shentey@gmail.com> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/e500.c | 30 ++++++++++++++---------------- hw/ppc/e500.h | 1 - hw/ppc/e500plat.c | 1 - hw/ppc/mpc8544ds.c | 1 - 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index 496c61b612..3e950ea3ba 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -1007,25 +1007,23 @@ void ppce500_init(MachineState *machine) } /* Platform Bus Device */ - if (pmc->has_platform_bus) { - dev = qdev_new(TYPE_PLATFORM_BUS_DEVICE); - dev->id = g_strdup(TYPE_PLATFORM_BUS_DEVICE); - qdev_prop_set_uint32(dev, "num_irqs", pmc->platform_bus_num_irqs); - qdev_prop_set_uint32(dev, "mmio_size", pmc->platform_bus_size); - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); - pms->pbus_dev = PLATFORM_BUS_DEVICE(dev); - - s = SYS_BUS_DEVICE(pms->pbus_dev); - for (i = 0; i < pmc->platform_bus_num_irqs; i++) { - int irqn = pmc->platform_bus_first_irq + i; - sysbus_connect_irq(s, i, qdev_get_gpio_in(mpicdev, irqn)); - } + dev = qdev_new(TYPE_PLATFORM_BUS_DEVICE); + dev->id = g_strdup(TYPE_PLATFORM_BUS_DEVICE); + qdev_prop_set_uint32(dev, "num_irqs", pmc->platform_bus_num_irqs); + qdev_prop_set_uint32(dev, "mmio_size", pmc->platform_bus_size); + sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + pms->pbus_dev = PLATFORM_BUS_DEVICE(dev); - memory_region_add_subregion(address_space_mem, - pmc->platform_bus_base, - &pms->pbus_dev->mmio); + s = SYS_BUS_DEVICE(pms->pbus_dev); + for (i = 0; i < pmc->platform_bus_num_irqs; i++) { + int irqn = pmc->platform_bus_first_irq + i; + sysbus_connect_irq(s, i, qdev_get_gpio_in(mpicdev, irqn)); } + memory_region_add_subregion(address_space_mem, + pmc->platform_bus_base, + &pms->pbus_dev->mmio); + /* * Smart firmware defaults ahead! * diff --git a/hw/ppc/e500.h b/hw/ppc/e500.h index 1e5853b032..68f754ce50 100644 --- a/hw/ppc/e500.h +++ b/hw/ppc/e500.h @@ -27,7 +27,6 @@ struct PPCE500MachineClass { int mpic_version; bool has_mpc8xxx_gpio; - bool has_platform_bus; hwaddr platform_bus_base; hwaddr platform_bus_size; int platform_bus_first_irq; diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c index fc911bbb7b..5bb1c603da 100644 --- a/hw/ppc/e500plat.c +++ b/hw/ppc/e500plat.c @@ -86,7 +86,6 @@ static void e500plat_machine_class_init(ObjectClass *oc, void *data) pmc->fixup_devtree = e500plat_fixup_devtree; pmc->mpic_version = OPENPIC_MODEL_FSL_MPIC_42; pmc->has_mpc8xxx_gpio = true; - pmc->has_platform_bus = true; pmc->platform_bus_base = 0xf00000000ULL; pmc->platform_bus_size = 128 * MiB; pmc->platform_bus_first_irq = 5; diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c index 9c81477698..7dd5219736 100644 --- a/hw/ppc/mpc8544ds.c +++ b/hw/ppc/mpc8544ds.c @@ -46,7 +46,6 @@ static void mpc8544ds_machine_class_init(ObjectClass *oc, void *data) pmc->pci_nr_slots = 2; pmc->fixup_devtree = mpc8544ds_fixup_devtree; pmc->mpic_version = OPENPIC_MODEL_FSL_MPIC_20; - pmc->has_platform_bus = true; pmc->platform_bus_base = 0xFF800000ULL; pmc->platform_bus_size = 8 * MiB; pmc->platform_bus_first_irq = 5; From patchwork Mon Oct 17 19:19:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691059 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=EwwJTdlb; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn8F5Svfz23kQ for ; Tue, 18 Oct 2022 06:27:57 +1100 (AEDT) Received: from localhost ([::1]:33190 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVmE-0008Qk-PQ for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:27:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51198) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVg4-0002qA-BW; Mon, 17 Oct 2022 15:21:33 -0400 Received: from mail-oi1-x236.google.com ([2607:f8b0:4864:20::236]:37636) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVg2-0002yO-9d; Mon, 17 Oct 2022 15:21:31 -0400 Received: by mail-oi1-x236.google.com with SMTP id j188so13231739oih.4; Mon, 17 Oct 2022 12:21:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FhcWjXEdgwPTRqWuqebJmJ6aw6EMQMpb8BMqAdJTNV8=; b=EwwJTdlbazQAJ/MfqKhO9ZcJoFIc1wnGGJmyC9cCGca027fSe78jDZN8UDcdzBzYdV j+opjCQb1WomG+6jhJFrgznpHE7A1x0TJlXM3ls8xXZTwWigb4E4buhHIGlcYG39IFft /pd2PcyTIG0N7JyaWVbCkfrnPPrk8CNfZ+lBEj+SV2tYMs0J+TPTtwQOtwXYdJH/Lnvh Tb05dwATR6+REcqiyZgO7tDFY1r3J/5fyaGoUXF00q7Ym6zmM7xckAMjVueEFkssznp5 CjpAhsFVIwFUUvAwXtnsIvh3UTxU0Hz+tUthDUdbXu1eDs/MdAoS0w9koHu3TM0C9UuD iJow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FhcWjXEdgwPTRqWuqebJmJ6aw6EMQMpb8BMqAdJTNV8=; b=JskDv0SNtTqitn3zq//oMNErZWWy9bO+j5Vnpq8Di2eNc+eAdIbNSdRp6P+WYCtLu3 rPAuGm4cmK+/X2HFbPD1MbcHDWZQWEmJmcdG+xpxjumvabQa+s1Cfgq4ASwNMQczB1/J JQ+HYPCF3NiGm3AcZYVwulcMnnn0jZ/mf47GpIawGj4fr2hqRTU0kp0CAhzvMll+2nhm DVTxG2yXFu1BwS+u+ixNqZQ2Kku/qwa3A4JZ3I14x+TyDoTdrthqdagR9MGCl24JaKjR EoT6U41m4eHYEfHmztKHKW8przZAQRScluS8YT+QMh9k0OLhMv00ElsKxbE3ICgZnqmB 3KDA== X-Gm-Message-State: ACrzQf2wMMQnFlXTNflj072jfROpjlsW8UzKC/WZlM+Ze3guIQT/VtNI SV/BGpoh8BGdJ5bf0Tp5nQPkRo9/Fic= X-Google-Smtp-Source: AMsMyM45dQdYf9NaDi8YuRmRviO4vygWWfH6g8AoiFN1I2kci8NAfXJbb6fM85X2FN5cnhmkvpA6LA== X-Received: by 2002:a05:6808:ec8:b0:354:4ce3:9ba5 with SMTP id q8-20020a0568080ec800b003544ce39ba5mr5747618oiv.226.1666034489129; Mon, 17 Oct 2022 12:21:29 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:28 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, =?utf-8?q?V=C3=ADctor_Colombo?= , Richard Henderson , Daniel Henrique Barboza Subject: [PULL 27/38] target/ppc: Fix xvcmp* clearing FI bit Date: Mon, 17 Oct 2022 16:19:58 -0300 Message-Id: <20221017192009.92404-28-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::236; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x236.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Víctor Colombo Vector instructions in general are not supposed to change the FI bit. However, xvcmp* instructions are calling gen_helper_float_check_status, which is leading to a cleared FI flag where it should be kept unchanged. As helper_float_check_status only affects inexact, overflow and underflow, and the xvcmp* instructions don't change these flags, this issue can be fixed by removing the call to helper_float_check_status. By doing this, the FI bit in FPSCR will be preserved as expected. Fixes: 00084a25adf ("target/ppc: introduce separate VSX_CMP macro for xvcmp* instructions") Signed-off-by: Víctor Colombo Reviewed-by: Richard Henderson Message-Id: <20221005121551.27957-1-victor.colombo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/translate/vsx-impl.c.inc | 1 - 1 file changed, 1 deletion(-) diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx-impl.c.inc index 7acdbceec4..e6e5c45ffd 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -810,7 +810,6 @@ static void gen_##name(DisasContext *ctx) \ gen_helper_##name(ignored, cpu_env, xt, xa, xb); \ tcg_temp_free_i32(ignored); \ } \ - gen_helper_float_check_status(cpu_env); \ tcg_temp_free_ptr(xt); \ tcg_temp_free_ptr(xa); \ tcg_temp_free_ptr(xb); \ From patchwork Mon Oct 17 19:19:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691105 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=cYzBEpa7; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrngp5nsgz23kK for ; Tue, 18 Oct 2022 06:51:50 +1100 (AEDT) Received: from localhost ([::1]:39654 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okW9L-00074H-TZ for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:51:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51200) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVg6-0002vA-SP; Mon, 17 Oct 2022 15:21:34 -0400 Received: from mail-oi1-x235.google.com ([2607:f8b0:4864:20::235]:40577) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVg5-0002z2-3f; Mon, 17 Oct 2022 15:21:34 -0400 Received: by mail-oi1-x235.google.com with SMTP id l5so13223031oif.7; Mon, 17 Oct 2022 12:21:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pnZp3+RtVWl+Up+vzDAkuOjXA76TOhGWF6jmK21fauw=; b=cYzBEpa7KcXCw2a2qUjb1+t/XHQtMUlaC08HHe25Ixlu4VVFCIDbNRWKJ0Xk3UWUom 2+/0grOf3c40Vz1ie7i5w5SHzjUFOVB22goRkPxuUJwHWgXzmfeVa7AUcpZs/lA5/6pw RNwxhWu7nLKRHU3DePl1FlcFNO295W8ghKuvo7XQgZT0UA+G6B4hndOnKPZQf45JL3zf Ks7o3Dbc066ABXlKMp8l7HwIZ8rEzt3lc/+/AhCaqBQ1Ns4evylJ8j/e/PSPyCeuYd7+ 60FIQ3XKYWB8u5lzIqd3fa1BT03pvUemdv6tz0UjwQVERcO5tGpY9JBhEl2bJVrmHs9B Xc8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pnZp3+RtVWl+Up+vzDAkuOjXA76TOhGWF6jmK21fauw=; b=J9V3zJBVdLftNOF9cYU0vGhXzNKzNRa98IYZzE9b09jy9dK/uPdDaoCGDEEjaofpw6 vxxKrK4cTr79VW/qiBE6azCD3SEXyPFrpqMyAOUiK9dpokn+vQXBOz214oAESuIyJvqA 2Cr/UkFntYVqFd2vBqR8D9wTJjwaUAf2saBQqEkYhxgfvSxsKDPDEYO44wRHqpNc6K3Q g0f/+3ZWVZlUfU44yoFxeBaoUFQTNfREl0JwGv4cFqYk/GFYaTgmrK72M0WyATIV59dQ 8exhwHbL0QkbN/A3STK02Du2D88nEOuNLovn2aOffiYHQckfUGlBRYFXn2EgkKc26L6V poDQ== X-Gm-Message-State: ACrzQf1oSDHhRL10Pr8gsa4+1UKm5ohwChr/aJJ7Eww1gMoYsu98yzVP 3Z3LkbJ6aK2jei7CJljMqL7fmaQK3m8= X-Google-Smtp-Source: AMsMyM5k1yAtdTZSRqSVjhG0F75rVKDZOT1ObLLAMdKQhiJVgW1v5wweBCAiSsDIdoru+nGbxO78yA== X-Received: by 2002:a05:6808:11cb:b0:353:f841:e390 with SMTP id p11-20020a05680811cb00b00353f841e390mr5533863oiv.149.1666034491861; Mon, 17 Oct 2022 12:21:31 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:31 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Peter Maydell , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Daniel Henrique Barboza Subject: [PULL 28/38] hw/ppc/spapr_pci.c: Use device_cold_reset() rather than device_legacy_reset() Date: Mon, 17 Oct 2022 16:19:59 -0300 Message-Id: <20221017192009.92404-29-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x235.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Peter Maydell In spapr_phb_children_reset() we call device_legacy_reset() to reset any QOM children of the SPAPR PCI host bridge device. This will not reset any qbus such a child might own. Switch to device_cold_reset(), which will reset both the device and its buses. (If the child has no qbuses then there will be no change in behaviour.) Signed-off-by: Peter Maydell Reviewed-by: Cédric Le Goater Reviewed-by: Daniel Henrique Barboza Message-Id: <20221014142841.2092784-1-peter.maydell@linaro.org> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/spapr_pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index 57c8a4f085..7b7618d5da 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -2045,7 +2045,7 @@ static int spapr_phb_children_reset(Object *child, void *opaque) DeviceState *dev = (DeviceState *) object_dynamic_cast(child, TYPE_DEVICE); if (dev) { - device_legacy_reset(dev); + device_cold_reset(dev); } return 0; From patchwork Mon Oct 17 19:20:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691052 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=io7IKIeA; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn6L4lPJz1ygT for ; Tue, 18 Oct 2022 06:26:18 +1100 (AEDT) Received: from localhost ([::1]:50960 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVke-00048z-52 for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:26:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37624) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVgE-0003ez-4A; Mon, 17 Oct 2022 15:21:42 -0400 Received: from mail-oa1-x31.google.com ([2001:4860:4864:20::31]:39745) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVgA-00031J-MU; Mon, 17 Oct 2022 15:21:41 -0400 Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-1322fa1cf6fso14394255fac.6; Mon, 17 Oct 2022 12:21:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=aqgkbLfIXWn7D+7LQZe2Ews6I+OeRkOQzRZ5iCESNH4=; b=io7IKIeAmA1uGd0IF+gEJW1ojS0pOcXqAwMAOprKdax1O1Mw+Mt6ke4MHLRNAx4AP1 DPPvdi0+6Oyu0rXvAo4JoaHH41zgYkh8Hp71STndxgjaMbSfACUt7y3+ntCIg+FuBqir a6RK0p455Y590pSOeNjBR0QG4JkM6/PqWZ+vMCAxY3xOjqXrkjA8qSAwCzXsUUEW/7av gUGvd0HIRF1FfFSaXM2lT59aWVz9Srq5VvFc3IcBd5d6mPtZ+356dIfq3pY9Vk5HeV/p 5BlWnuqtwcYFMVVnjGQHMUoW1tINT/DzbDRRC/7p1WxfAj+SAJ/F7QA63C/i0OyTaynv XjHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aqgkbLfIXWn7D+7LQZe2Ews6I+OeRkOQzRZ5iCESNH4=; b=3ctr8qmv6n2/+redlpi/chCMpOpq1Exznb6WRleR4EkFravke3em72y+jmOICPS7iA sPQo2l3HKTjvomsZxxfE8LON45MiR5m0cUWr//THmwmepnBBExvwr4/fGmCldAm/EY1h WVaCVMQzFr3n/CJP066SaJQwE+b0HDaHjSsxbTS8obBXDVJRZQABVcJ158uzOIGaGQ1Z 3DGSs9RdQQKGz7Kouge35F3Zs8C16ZdYTul2eEsQXxx8xS+zgk9EDclj8TUlg1T+i/fA AWO8G+RjfatOoB8lnhrpao+lQ7O0MGVfFFrrTr+x41su+Owg9Q/q+lkKQ5cnNKF3FO/E iOFg== X-Gm-Message-State: ACrzQf0asPUaDudxTSbg8RQx10gBB/BjMI5YZsi/TcVbS4mA1u2/yUiO vqyvMYIPSMBX7M5DdgFI9kFiIeceOvE= X-Google-Smtp-Source: AMsMyM4vcPeIKPLb/AwjDFzNvZGCT9nTRShvNuFDcsUs7hUqhJrVx+Yahe7MMB/LTg74Fv5weDOPFg== X-Received: by 2002:a05:6871:14f:b0:132:901c:31db with SMTP id z15-20020a056871014f00b00132901c31dbmr16392102oab.233.1666034495746; Mon, 17 Oct 2022 12:21:35 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:35 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Daniel Henrique Barboza , "Dr . David Alan Gilbert" , Markus Armbruster , Alistair Francis , David Gibson , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 29/38] qmp/hmp, device_tree.c: introduce dumpdtb Date: Mon, 17 Oct 2022 16:20:00 -0300 Message-Id: <20221017192009.92404-30-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::31; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x31.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" To save the FDT blob we have the '-machine dumpdtb=' property. With this property set, the machine saves the FDT in and exit. The created file can then be converted to plain text dts format using 'dtc'. There's nothing particularly sophisticated into saving the FDT that can't be done with the machine at any state, as long as the machine has a valid FDT to be saved. The 'dumpdtb' command receives a 'filename' parameter and, if the FDT is available via current_machine->fdt, save it in dtb format to 'filename'. In short, this is a '-machine dumpdtb' that can be fired on demand via QMP/HMP. This command will always be executed in-band (i.e. holding BQL), avoiding potential race conditions with machines that might change the FDT during runtime (e.g. PowerPC 'pseries' machine). Cc: Dr. David Alan Gilbert Cc: Markus Armbruster Cc: Alistair Francis Cc: David Gibson Acked-by: Dr. David Alan Gilbert Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Markus Armbruster Signed-off-by: Daniel Henrique Barboza Message-Id: <20220926173855.1159396-2-danielhb413@gmail.com> --- hmp-commands.hx | 15 +++++++++++++++ include/sysemu/device_tree.h | 1 + monitor/misc.c | 1 + qapi/machine.json | 18 ++++++++++++++++++ softmmu/device_tree.c | 37 ++++++++++++++++++++++++++++++++++++ 5 files changed, 72 insertions(+) diff --git a/hmp-commands.hx b/hmp-commands.hx index 8ab8000acd..12b6d4e2dc 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -1800,3 +1800,18 @@ ERST .sub_table = hmp_info_cmds, .flags = "p", }, + +#if defined(CONFIG_FDT) + { + .name = "dumpdtb", + .args_type = "filename:F", + .params = "filename", + .help = "dump the FDT in dtb format to 'filename'", + .cmd = hmp_dumpdtb, + }, + +SRST +``dumpdtb`` *filename* + Dump the FDT in dtb format to *filename*. +ERST +#endif diff --git a/include/sysemu/device_tree.h b/include/sysemu/device_tree.h index ef060a9759..e7c5441f56 100644 --- a/include/sysemu/device_tree.h +++ b/include/sysemu/device_tree.h @@ -136,6 +136,7 @@ int qemu_fdt_add_path(void *fdt, const char *path); } while (0) void qemu_fdt_dumpdtb(void *fdt, int size); +void hmp_dumpdtb(Monitor *mon, const QDict *qdict); /** * qemu_fdt_setprop_sized_cells_from_array: diff --git a/monitor/misc.c b/monitor/misc.c index 6436a8786b..205487e2b9 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -49,6 +49,7 @@ #include "sysemu/blockdev.h" #include "sysemu/sysemu.h" #include "sysemu/tpm.h" +#include "sysemu/device_tree.h" #include "qapi/qmp/qdict.h" #include "qapi/qmp/qerror.h" #include "qapi/qmp/qstring.h" diff --git a/qapi/machine.json b/qapi/machine.json index abb2f48808..b9228a5e46 100644 --- a/qapi/machine.json +++ b/qapi/machine.json @@ -1664,3 +1664,21 @@ '*size': 'size', '*max-size': 'size', '*slots': 'uint64' } } + +## +# @dumpdtb: +# +# Save the FDT in dtb format. +# +# @filename: name of the dtb file to be created +# +# Since: 7.2 +# +# Example: +# {"execute": "dumpdtb"} +# "arguments": { "filename": "fdt.dtb" } } +# +## +{ 'command': 'dumpdtb', + 'data': { 'filename': 'str' }, + 'if': 'CONFIG_FDT' } diff --git a/softmmu/device_tree.c b/softmmu/device_tree.c index 6ca3fad285..ce74f3d48d 100644 --- a/softmmu/device_tree.c +++ b/softmmu/device_tree.c @@ -26,6 +26,9 @@ #include "hw/loader.h" #include "hw/boards.h" #include "qemu/config-file.h" +#include "qapi/qapi-commands-machine.h" +#include "qapi/qmp/qdict.h" +#include "monitor/hmp.h" #include @@ -643,3 +646,37 @@ out: g_free(propcells); return ret; } + +void qmp_dumpdtb(const char *filename, Error **errp) +{ + g_autoptr(GError) err = NULL; + uint32_t size; + + if (!current_machine->fdt) { + error_setg(errp, "This machine doesn't have a FDT"); + return; + } + + size = fdt_totalsize(current_machine->fdt); + + g_assert(size > 0); + + if (!g_file_set_contents(filename, current_machine->fdt, size, &err)) { + error_setg(errp, "Error saving FDT to file %s: %s", + filename, err->message); + } +} + +void hmp_dumpdtb(Monitor *mon, const QDict *qdict) +{ + const char *filename = qdict_get_str(qdict, "filename"); + Error *local_err = NULL; + + qmp_dumpdtb(filename, &local_err); + + if (hmp_handle_error(mon, local_err)) { + return; + } + + info_report("dtb dumped to %s", filename); +} From patchwork Mon Oct 17 19:20:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691091 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=pzlAgUsq; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnTn1HhXz23kQ for ; Tue, 18 Oct 2022 06:43:09 +1100 (AEDT) Received: from localhost ([::1]:51446 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okW0w-0006Gi-VE for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:43:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45860) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVgJ-00046G-Vn; Mon, 17 Oct 2022 15:21:48 -0400 Received: from mail-oi1-x236.google.com ([2607:f8b0:4864:20::236]:36788) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVgD-00031P-Fq; Mon, 17 Oct 2022 15:21:46 -0400 Received: by mail-oi1-x236.google.com with SMTP id y72so13251583oia.3; Mon, 17 Oct 2022 12:21:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ya0usZjpo+eHVeEl1xh5Y1FiouQtJmroW9MogSfqU7U=; b=pzlAgUsqosuwpKnLibS9nwPnqnwp9DiNa/y1Y0wBI15vUaUd2vfRoVRyP5eYcnt03H 0/JmlttsUeONCiP8aOszoOqi3yqus46V5TfYDlVa2LLcbKlyl/jbqMCCU420EYpco5is Z+LgfgLsc0p6W6pg0Hdpi+3063Zxcja4e9pNG/kcmJqXn4Dpop8cfLtoB8nVPX+NFLEi PtQl1Mhl3ug1WY045tMX9S2D6G0XrcqufBN0bQWThD2MMJsAOZasr56TNPc3ZHt82smJ CADhW2GTnCfrB1S794ROn11AsnrXDVjUS/aRk7NsUYEsr4Bl+OO7tUAzm6InSdqcjWYc Mv4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ya0usZjpo+eHVeEl1xh5Y1FiouQtJmroW9MogSfqU7U=; b=EaZfYN08aPbBc7x+762iLFyW/2V2mhWdLkx1C+p44HhANHDYU2BwuwrzfP9eyBWpfZ WsHHndacKD75aV7TbvZEqLY/rXfp6YWjbtqk2j2iR1S1yhKEXZE91OqmlBp4N30Comms 8m/fUdtjaX7BVjpnDPCACF5z6RBAg0zM234tWVdAs3s2oFBxRGv+I+e2GAdVFhmbdo+M zDhlPXWpNI0s+RPtqiBuLZSzgO5GniQQ6vXLKhFAdMWZdWBAmljZdmCC7EHxNzkVSBAG /Qw0iHJ67WKV5oGfs/aIEPtHQZFN/cxRt8L+EdPvQRFxMbLi5XCDHRIMpgADEzKiQ9OA F6bw== X-Gm-Message-State: ACrzQf0ZKWu/ynwVxISX3aVdDXZugfpMS+xnAezMdHvAA9kXztC+xn4F W9F/qciS/MjuSxcbBx47HHaTLm/sVS8= X-Google-Smtp-Source: AMsMyM4bUtiLdqtFDvQloJO5xeQacAeVtGvroK/OtHJFv0Etkw264yxu4vT1uEiXlYFuxjPJN7vi7Q== X-Received: by 2002:aca:4b8b:0:b0:355:4433:d3ef with SMTP id y133-20020aca4b8b000000b003554433d3efmr712099oia.282.1666034498534; Mon, 17 Oct 2022 12:21:38 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:38 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Daniel Henrique Barboza , Chris Wulff , Marek Vasut , =?utf-8?q?Phi?= =?utf-8?q?lippe_Mathieu-Daud=C3=A9?= Subject: [PULL 30/38] hw/nios2: set machine->fdt in nios2_load_dtb() Date: Mon, 17 Oct 2022 16:20:01 -0300 Message-Id: <20221017192009.92404-31-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::236; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x236.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This will enable support for 'dumpdtb' QMP/HMP command for all nios2 machines that uses nios2_load_dtb(). Cc: Chris Wulff Cc: Marek Vasut Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Daniel Henrique Barboza Message-Id: <20220926173855.1159396-7-danielhb413@gmail.com> --- hw/nios2/boot.c | 8 +++++++- hw/nios2/meson.build | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/nios2/boot.c b/hw/nios2/boot.c index 21cbffff47..b30a7b1efb 100644 --- a/hw/nios2/boot.c +++ b/hw/nios2/boot.c @@ -43,6 +43,8 @@ #include "boot.h" +#include + #define NIOS2_MAGIC 0x534f494e static struct nios2_boot_info { @@ -81,6 +83,7 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr) static int nios2_load_dtb(struct nios2_boot_info bi, const uint32_t ramsize, const char *kernel_cmdline, const char *dtb_filename) { + MachineState *machine = MACHINE(qdev_get_machine()); int fdt_size; void *fdt = NULL; int r; @@ -113,7 +116,10 @@ static int nios2_load_dtb(struct nios2_boot_info bi, const uint32_t ramsize, } cpu_physical_memory_write(bi.fdt, fdt, fdt_size); - g_free(fdt); + + /* Set machine->fdt for 'dumpdtb' QMP/HMP command */ + machine->fdt = fdt; + return fdt_size; } diff --git a/hw/nios2/meson.build b/hw/nios2/meson.build index 6c58e8082b..22277bd6c5 100644 --- a/hw/nios2/meson.build +++ b/hw/nios2/meson.build @@ -1,5 +1,5 @@ nios2_ss = ss.source_set() -nios2_ss.add(files('boot.c')) +nios2_ss.add(files('boot.c'), fdt) nios2_ss.add(when: 'CONFIG_NIOS2_10M50', if_true: files('10m50_devboard.c')) nios2_ss.add(when: 'CONFIG_NIOS2_GENERIC_NOMMU', if_true: files('generic_nommu.c')) From patchwork Mon Oct 17 19:20:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691071 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=b/YXtbA4; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnBZ0LpKz1ygT for ; Tue, 18 Oct 2022 06:29:58 +1100 (AEDT) Received: from localhost ([::1]:37534 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVoB-0004PF-1m for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:29:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37626) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVgH-00040D-G3; Mon, 17 Oct 2022 15:21:47 -0400 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]:35663) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVgF-00031r-DZ; Mon, 17 Oct 2022 15:21:44 -0400 Received: by mail-oi1-x230.google.com with SMTP id u15so13242633oie.2; Mon, 17 Oct 2022 12:21:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sgZPCKzCDA12jzgdt/RqL30yjEb1znkmp6aukBcJ0Xo=; b=b/YXtbA40XAbQ1GvyG+zmpwkfvGYnQTlA/FehGcpXhSdTw5JUz4hOCskTqcVssJ4+v fS6wYLMUxphwqkB9L4BZ4xEdH0KBJcnCKvUUxtOUpuJLNDUIhewVNoqIExK01PAK89lZ QNlOBz1GBkhtOZZjAS5w/VdEjujvImaCMZAjnNmFL8ZEsL1RwDmKrsJc5q60WxRzRssX bO9iawmCTxBAqCg6S3j5W15ZUw4qBG1hIuVvuKBBhDM+NzsDvS+Hb1JoeNBkUUAY3t+T PCwLSx9kd0oe3l4NS//D2AGcCJZaDvYDczHgO3wK2mGIBgY+w0tak5xMvZcKHHbdUFNF NvaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sgZPCKzCDA12jzgdt/RqL30yjEb1znkmp6aukBcJ0Xo=; b=M62CytDvX5410qFNQ3kxnwu2dlm9Fr4yj7kRHz8a/B5BnPoq/ZvLCtSuIeyvwJy8bn XqxWDI2KiEU2LOLHybQyX45gNU24gqNdF7WBE3Zsj1O1O2Op8Gru3FeafNT2kf8VQL/f 1mc0mXRyPTQRCeZ3kj75Hh3fLYwsF3B3XnW5u/4FNtkiSSEH+dQFSJXZFNO1KjyTSN+X Oe1zpom+zRoLP2uXAIvkVlylVRW314n5uSSbTW+4GLz/n/VRsVPZXpY2Zkz0NzIOowH2 WRnFv2Oxw/7x76LDErybSCYEPaoTBCebFUY97uQpgkmAm2Cl5mTgqvguhwaUHikywfRb INyg== X-Gm-Message-State: ACrzQf3fRbuSd34p+FdrZ8q2cyo3S+H6pwnB57w0i9Ujj2FXPaJtuYHm pqvZM4whKa9bf5lzCYGqBpLTVkW3cYs= X-Google-Smtp-Source: AMsMyM5eyxX/M/LkRn8nFtFrZmyuldCWTnC0jzzkfEg829wgp1N3WsjUdlk3X7UC+8VkJ0wX3ljDow== X-Received: by 2002:a05:6808:221b:b0:354:cca5:9215 with SMTP id bd27-20020a056808221b00b00354cca59215mr5950758oib.53.1666034501780; Mon, 17 Oct 2022 12:21:41 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:41 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Daniel Henrique Barboza , =?utf-8?q?C=C3=A9dric_Le_G?= =?utf-8?q?oater?= , BALATON Zoltan Subject: [PULL 31/38] hw/ppc: set machine->fdt in bamboo_load_device_tree() Date: Mon, 17 Oct 2022 16:20:02 -0300 Message-Id: <20221017192009.92404-32-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::230; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x230.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This will enable support for 'dumpdtb' QMP/HMP command for the bamboo machine. Setting machine->fdt requires a MachineState pointer to be used inside bamboo_load_device_tree(). Let's change the function to receive this pointer from the caller. 'ramsize' and 'kernel_cmdline' can be retrieved directly from the 'machine' pointer. Cc: Cédric Le Goater Reviewed-by: BALATON Zoltan Signed-off-by: Daniel Henrique Barboza Message-Id: <20220926173855.1159396-9-danielhb413@gmail.com> --- hw/ppc/ppc440_bamboo.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index 56f47e7509..81d71adf34 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -34,6 +34,8 @@ #include "hw/qdev-properties.h" #include "qapi/error.h" +#include + #define BINARY_DEVICE_TREE_FILE "bamboo.dtb" /* from u-boot */ @@ -50,14 +52,13 @@ static hwaddr entry; -static int bamboo_load_device_tree(hwaddr addr, - uint32_t ramsize, - hwaddr initrd_base, - hwaddr initrd_size, - const char *kernel_cmdline) +static int bamboo_load_device_tree(MachineState *machine, + hwaddr addr, + hwaddr initrd_base, + hwaddr initrd_size) { int ret = -1; - uint32_t mem_reg_property[] = { 0, 0, cpu_to_be32(ramsize) }; + uint32_t mem_reg_property[] = { 0, 0, cpu_to_be32(machine->ram_size) }; char *filename; int fdt_size; void *fdt; @@ -92,7 +93,7 @@ static int bamboo_load_device_tree(hwaddr addr, fprintf(stderr, "couldn't set /chosen/linux,initrd-end\n"); } ret = qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", - kernel_cmdline); + machine->kernel_cmdline); if (ret < 0) { fprintf(stderr, "couldn't set /chosen/bootargs\n"); } @@ -113,7 +114,10 @@ static int bamboo_load_device_tree(hwaddr addr, tb_freq); rom_add_blob_fixed(BINARY_DEVICE_TREE_FILE, fdt, fdt_size, addr); - g_free(fdt); + + /* Set ms->fdt for 'dumpdtb' QMP/HMP command */ + machine->fdt = fdt; + return 0; } @@ -157,7 +161,6 @@ static void main_cpu_reset(void *opaque) static void bamboo_init(MachineState *machine) { const char *kernel_filename = machine->kernel_filename; - const char *kernel_cmdline = machine->kernel_cmdline; const char *initrd_filename = machine->initrd_filename; unsigned int pci_irq_nrs[4] = { 28, 27, 26, 25 }; MemoryRegion *address_space_mem = get_system_memory(); @@ -280,8 +283,8 @@ static void bamboo_init(MachineState *machine) /* If we're loading a kernel directly, we must load the device tree too. */ if (kernel_filename) { - if (bamboo_load_device_tree(FDT_ADDR, machine->ram_size, RAMDISK_ADDR, - initrd_size, kernel_cmdline) < 0) { + if (bamboo_load_device_tree(machine, FDT_ADDR, + RAMDISK_ADDR, initrd_size) < 0) { error_report("couldn't load device tree"); exit(1); } From patchwork Mon Oct 17 19:20:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691102 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=PDQ3rErc; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrnf60XSTz23kK for ; Tue, 18 Oct 2022 06:50:22 +1100 (AEDT) Received: from localhost ([::1]:46332 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okW7v-0006AR-U3 for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:50:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45864) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVgL-0004GD-BQ; Mon, 17 Oct 2022 15:21:49 -0400 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]:33287) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVgI-00032A-5U; Mon, 17 Oct 2022 15:21:48 -0400 Received: by mail-ot1-x332.google.com with SMTP id e53-20020a9d01b8000000b006619152f3cdso6373116ote.0; Mon, 17 Oct 2022 12:21:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dZtHb+DrXmw53WkhY99KmP9y3M7ktAz9VmCjc5WorsA=; b=PDQ3rErcGcBgg8fCA8GXn3aDe/Jqd8T5Bf1b35kqztgZAOiCnfgKwPPLeJdiW+46Lo pU677FN49vdN8y2DEqnraJuGeJ1o0VcAGKNzg1vD/sp0oeOYsFvj4xBJD2kel1xsdDEP A4fxzQyKuP9yotd1B5lbQmpVEyCraNfT31MDp62twFYg1gedSfRQsM4brzYIBshZUZD4 KzW3FBNIPZBWevzXnFpYGn498znbmsqwGyLS1riVN9D9eM95k94MLyz1PW6+mm+9P/X2 2JP7C8H/M9WUnfFXJReAk+NMmiPfNKc3UtcfHPyaYvQV/eIJxXB2RLdUZX7bGwXnMdn5 TinA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dZtHb+DrXmw53WkhY99KmP9y3M7ktAz9VmCjc5WorsA=; b=i2FkOrR+t05G0DN7uns2gr813IXsQjcCzwzPXVgFFYG8l+VuAXmeK/MK3YkCojkzOs 4NWQRqCoYAcul2Kt48Zj/wWTHIwNUXA45saQ9dMG8ca3jnfDOZZrrHv0MAsBb2PxhRdQ bTKHtp5cWFq1Gg8sXewEIXaU1mmd8Vdq20aSz257mFod22QVQZ9PdF3Y837YGpgCY0tC eVGPw6KBj7PRtp/opB4Yg4///ezh33N50uf3cQX2LvCaBCrkhIRgBBEUfrcYB5kktXN0 5Jw4NGeUYcNgnzA8nde9OgQ+u1p0mXO4hIFqzlXqQ/qvgLuepk9bN3D/YYqv7+YxC9os idHA== X-Gm-Message-State: ACrzQf3mNhJ4ZdSavVTp6krLwz7YU12UNBlg7cKX28TCUd55xP+WUVnM efNuaQbWjWIWpffdzlNZm4zYrV/0buU= X-Google-Smtp-Source: AMsMyM6EdEtHk4CP8+6iIf0Yma0e6YUQ9IgDNj7ATob/peXSWS79ekbh065fVLEl1UNC0IdRrP6Zbg== X-Received: by 2002:a05:6830:22c9:b0:661:a946:3055 with SMTP id q9-20020a05683022c900b00661a9463055mr5997983otc.8.1666034504572; Mon, 17 Oct 2022 12:21:44 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:44 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Daniel Henrique Barboza , BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 32/38] hw/ppc: set machine->fdt in sam460ex_load_device_tree() Date: Mon, 17 Oct 2022 16:20:03 -0300 Message-Id: <20221017192009.92404-33-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::332; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x332.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This will enable support for 'dumpdtb' QMP/HMP command for the sam460ex machine. Setting machine->fdt requires a MachineState pointer to be used inside sam460ex_load_device_tree(). Let's change the function to receive this pointer from the caller. 'ramsize' and 'kernel_cmdline' can be retrieved directly from the 'machine' pointer. Reviewed-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Daniel Henrique Barboza Message-Id: <20220926173855.1159396-10-danielhb413@gmail.com> --- hw/ppc/sam460ex.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index f03cdc9ecc..4a22ce3761 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -123,13 +123,12 @@ static int sam460ex_load_uboot(void) return 0; } -static int sam460ex_load_device_tree(hwaddr addr, - uint32_t ramsize, +static int sam460ex_load_device_tree(MachineState *machine, + hwaddr addr, hwaddr initrd_base, - hwaddr initrd_size, - const char *kernel_cmdline) + hwaddr initrd_size) { - uint32_t mem_reg_property[] = { 0, 0, cpu_to_be32(ramsize) }; + uint32_t mem_reg_property[] = { 0, 0, cpu_to_be32(machine->ram_size) }; char *filename; int fdt_size; void *fdt; @@ -163,7 +162,8 @@ static int sam460ex_load_device_tree(hwaddr addr, qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end", (initrd_base + initrd_size)); - qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", kernel_cmdline); + qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", + machine->kernel_cmdline); /* Copy data from the host device tree into the guest. Since the guest can * directly access the timebase without host involvement, we must expose @@ -200,7 +200,9 @@ static int sam460ex_load_device_tree(hwaddr addr, EBC_FREQ); rom_add_blob_fixed(BINARY_DEVICE_TREE_FILE, fdt, fdt_size, addr); - g_free(fdt); + + /* Set machine->fdt for 'dumpdtb' QMP/HMP command */ + machine->fdt = fdt; return fdt_size; } @@ -500,9 +502,8 @@ static void sam460ex_init(MachineState *machine) if (machine->kernel_filename) { int dt_size; - dt_size = sam460ex_load_device_tree(FDT_ADDR, machine->ram_size, - RAMDISK_ADDR, initrd_size, - machine->kernel_cmdline); + dt_size = sam460ex_load_device_tree(machine, FDT_ADDR, + RAMDISK_ADDR, initrd_size); boot_info->dt_base = FDT_ADDR; boot_info->dt_size = dt_size; From patchwork Mon Oct 17 19:20:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691089 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=DdqpNKlD; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnSY1gzVz1ygT for ; Tue, 18 Oct 2022 06:42:05 +1100 (AEDT) Received: from localhost ([::1]:47572 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVzu-0001Go-Ux for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:42:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45866) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVgO-0004Ul-2X; Mon, 17 Oct 2022 15:21:52 -0400 Received: from mail-oa1-x31.google.com ([2001:4860:4864:20::31]:38811) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVgL-00032W-Ow; Mon, 17 Oct 2022 15:21:51 -0400 Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-1322d768ba7so14399253fac.5; Mon, 17 Oct 2022 12:21:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uE46D1eM38wkpxmdWgJhMdWVqADBGwfhcqV9MKpgkZQ=; b=DdqpNKlDkhFQh+FdAT1YjuPCsYhwY216bxzg8Lr/acf0lRFWzGfUTo/wCi2ryu/atg hlggaOuJlrmJ1lqxNuDYjZ0QL8yuY66dUfWkshp4s1OS2Vn369CFhI+Voh2UFZpwFA1O ar49q84h7QPy/QhctGvT21+FnpiVq8EJnmkBk1VAlJUvKPhpVRGdH+d/P7ppRddKdk1w U2w3gz28Bqu2V2Wa+tBhQCXF9SQnIbZxNPaEkIiErvHs4rrXzDhEBxYC6ZKyaK6GMVTI lDtKJlryW7PzqUWVxdrS1Q/hmj/tDCxcCn5Qdc4msp1VVWs+fzP8RJ2D7Ryu1wbQj1iW rv9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uE46D1eM38wkpxmdWgJhMdWVqADBGwfhcqV9MKpgkZQ=; b=Jb3OZfWZUzL4+fE8ZcvdOkARoehUwbBpDOqY4d52HrQjab1HKOihUDL8M68FE/1Z6V 4+dL5Yq9UGEfCrL7StIaX0LwZClyUXToCtYE9DZD+lQVfsC976/UaPE6rWUvCH7778R0 nmB77FocvhEkH9N2bK+0Ngjsqw+qL4FUZxb8kjIjGk1mwjGtQh0nWmQot6y6/M3GonX1 eGNzp3FX8IyY7KKqTPCsavjOFrZzV1OPjoTe47mIzTmcOFjAuiHL33BPlXA6dloqbEWK +tmty6l3mgHeV1vmH30Yvo/WTWh5Y81C9LfD3wtg6Ux6bro27jxBhw/ozpk62NxGrbAz wgyA== X-Gm-Message-State: ACrzQf0aEw7xsYHqik0livMtU95gnROsjC2Wd1mlIEcno/f66KG560g9 h8V5m2MrTzJXt3z1cB7HtfQtk3P1ADA= X-Google-Smtp-Source: AMsMyM5VU63Uwn/1jlG+xn2+g2YuoCbrwn2yPB/1yDwmtTg7jiDM4Sa/R3gJmSk9KIjJPghFJv6MWQ== X-Received: by 2002:a05:6870:785:b0:131:e39c:9140 with SMTP id en5-20020a056870078500b00131e39c9140mr6522682oab.261.1666034507240; Mon, 17 Oct 2022 12:21:47 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:46 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Daniel Henrique Barboza , "Edgar E . Iglesias" , =?utf-8?q?Philippe_Mathieu?= =?utf-8?q?-Daud=C3=A9?= Subject: [PULL 33/38] hw/ppc: set machine->fdt in xilinx_load_device_tree() Date: Mon, 17 Oct 2022 16:20:04 -0300 Message-Id: <20221017192009.92404-34-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::31; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x31.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This will enable support for 'dumpdtb' QMP/HMP command for the virtex_ml507 machine. Setting machine->fdt requires a MachineState pointer to be used inside xilinx_load_device_tree(). Let's change the function to receive this pointer from the caller. kernel_cmdline' can be retrieved directly from the 'machine' pointer. 'ramsize' wasn't being used so can be removed. Cc: Edgar E. Iglesias Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Daniel Henrique Barboza Message-Id: <20220926173855.1159396-11-danielhb413@gmail.com> --- hw/ppc/virtex_ml507.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c index 493ea0c19f..13cace229b 100644 --- a/hw/ppc/virtex_ml507.c +++ b/hw/ppc/virtex_ml507.c @@ -45,6 +45,8 @@ #include "hw/qdev-properties.h" #include "ppc405.h" +#include + #define EPAPR_MAGIC (0x45504150) #define FLASH_SIZE (16 * MiB) @@ -144,11 +146,10 @@ static void main_cpu_reset(void *opaque) } #define BINARY_DEVICE_TREE_FILE "virtex-ml507.dtb" -static int xilinx_load_device_tree(hwaddr addr, - uint32_t ramsize, - hwaddr initrd_base, - hwaddr initrd_size, - const char *kernel_cmdline) +static int xilinx_load_device_tree(MachineState *machine, + hwaddr addr, + hwaddr initrd_base, + hwaddr initrd_size) { char *path; int fdt_size; @@ -190,18 +191,21 @@ static int xilinx_load_device_tree(hwaddr addr, error_report("couldn't set /chosen/linux,initrd-end"); } - r = qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", kernel_cmdline); + r = qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", + machine->kernel_cmdline); if (r < 0) fprintf(stderr, "couldn't set /chosen/bootargs\n"); cpu_physical_memory_write(addr, fdt, fdt_size); - g_free(fdt); + + /* Set machine->fdt for 'dumpdtb' QMP/HMP command */ + machine->fdt = fdt; + return fdt_size; } static void virtex_init(MachineState *machine) { const char *kernel_filename = machine->kernel_filename; - const char *kernel_cmdline = machine->kernel_cmdline; hwaddr initrd_base = 0; int initrd_size = 0; MemoryRegion *address_space_mem = get_system_memory(); @@ -294,9 +298,8 @@ static void virtex_init(MachineState *machine) boot_info.fdt = high + (8192 * 2); boot_info.fdt &= ~8191; - xilinx_load_device_tree(boot_info.fdt, machine->ram_size, - initrd_base, initrd_size, - kernel_cmdline); + xilinx_load_device_tree(machine, boot_info.fdt, + initrd_base, initrd_size); } env->load_info = &boot_info; } From patchwork Mon Oct 17 19:20:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691104 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=FEqiNQy8; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrngT5dxTz23kK for ; Tue, 18 Oct 2022 06:51:33 +1100 (AEDT) Received: from localhost ([::1]:48060 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okW95-0006yg-Bo for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:51:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45868) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVgP-0004gS-De; Mon, 17 Oct 2022 15:21:54 -0400 Received: from mail-oi1-x22b.google.com ([2607:f8b0:4864:20::22b]:46053) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVgN-00032q-Ij; Mon, 17 Oct 2022 15:21:52 -0400 Received: by mail-oi1-x22b.google.com with SMTP id o64so13205449oib.12; Mon, 17 Oct 2022 12:21:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=q3CT7+WbJcBsnE0slV77fLYxU0RSlK8xxSRpIF14gBA=; b=FEqiNQy884QXF5xXjsVZ4qdr2u2nVJ6nmZNncdrlouwr0Js9xBEcSQBM0hk4QErNFo tisCN+5+xMutc3gXiTT0qeYEGXgwDquMrtHH75r3TyoJSigGqRrbCAgNw8WyVjAi+UnM 83NnffqB6MgxhsXpWZsCAY2stGBWwpBOAw0LV2BenGqB4/kLFH6j5bx+eRELZmKX2+9G 8LBtBYud3/QPVT81isUvbrWc0PEw74YNFK8hQHyKl571u5+S9lmOiY60IwrK8UJNRE5L ed33UYwULQ6fIdUDFSNk9zItREX/zgk62PCuHanboK1ZU6/jZANBwmsD6HDco0l9+Q7e W2Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=q3CT7+WbJcBsnE0slV77fLYxU0RSlK8xxSRpIF14gBA=; b=kt0x2Re0ZQeV5OZfbgsujprBMKq86nwNzmSpgtT4t8IQWat5Sb8y0BsioH5plNn+BO gLZgusTvOW9proxdhsLn6Jy3y9HqHOEkL3QTBsxYkLe+I4Ep56TGoyiU6gjuxPucnU4r YY8dK+uQn3nOVlmCvUA4c/fkgawMmoVZbMzrqQhfpurxvBY88BjCUYGaEBPZ5kEpvPSG kw/muZo5m9p1Ys/grAVnsyUejmQUHCiKSei1unI18CZ7T6RS7vHFb4a7DMUmy/vCkpPi JFPtARYeu0O9JGDRazoiiaITIgNAgHRU8sUK68QV8r4XaN7j8NOcbQJDEGHF6LRUuDfL ZaUg== X-Gm-Message-State: ACrzQf3tplsBMbje1S1n8XoSrmjbsfN76tXWI9S/9k6W4QyMz8e8Es2P lrb94cnWXnfzVfXhcMZZd/jbFQ58/ok= X-Google-Smtp-Source: AMsMyM6LgJyp6PHv+QR2Y/qA48fZUueHuNr0wnVlBJan62kU8pOAAb/EYp0BS7TEuxDV5/ELifWBWQ== X-Received: by 2002:a05:6808:118e:b0:345:9c3e:121d with SMTP id j14-20020a056808118e00b003459c3e121dmr5818040oil.211.1666034509843; Mon, 17 Oct 2022 12:21:49 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:49 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Daniel Henrique Barboza , BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 34/38] hw/ppc: set machine->fdt in pegasos2_machine_reset() Date: Mon, 17 Oct 2022 16:20:05 -0300 Message-Id: <20221017192009.92404-35-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::22b; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22b.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" We'll introduce a QMP/HMP command that requires machine->fdt to be set properly. Cc: BALATON Zoltan Cc: qemu-ppc@nongnu.org Reviewed-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Daniel Henrique Barboza Message-Id: <20220926173855.1159396-12-danielhb413@gmail.com> --- hw/ppc/pegasos2.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 61f4263953..ecf682b148 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -331,6 +331,10 @@ static void pegasos2_machine_reset(MachineState *machine) vof_build_dt(fdt, pm->vof); vof_client_open_store(fdt, pm->vof, "/chosen", "stdout", "/failsafe"); + + /* Set machine->fdt for 'dumpdtb' QMP/HMP command */ + machine->fdt = fdt; + pm->cpu->vhyp = PPC_VIRTUAL_HYPERVISOR(machine); } From patchwork Mon Oct 17 19:20:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691053 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=c4sCVPVk; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn6Y35hlz1ygT for ; Tue, 18 Oct 2022 06:26:29 +1100 (AEDT) Received: from localhost ([::1]:41502 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVko-00051J-OO for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:26:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34198) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVgR-0004s5-QW; Mon, 17 Oct 2022 15:21:57 -0400 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]:45008) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVgQ-00033T-Al; Mon, 17 Oct 2022 15:21:55 -0400 Received: by mail-oi1-x229.google.com with SMTP id n83so13215790oif.11; Mon, 17 Oct 2022 12:21:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5WKh5pU5ti6mWxMMUJXUey7oA6ivXt+7njW2XdfQk7A=; b=c4sCVPVkjIFDly/enb6flFkcJPO1Nw1jMNhJcETJJETdq0uAkdOMkVUQabEgMlJWwU +uc/BWbQAsh2JWUfaySx5AZBsrUxDcWpWENZJvm3en4tq+2pmWbfeJgA3d5qt0vly0FT AMm0Y147IHp5q/Cf9b87xzSX0qjqCh43H5TsqIzl7bnQfcKRLnRyD1T9P3ZBRSfw6ra+ ppJWL8/Rbddkh0CZkOBjYPjO9Lv+sF3n8EWbURwQcxpZiAxgIX6D+marYMYQLMunCZR7 P1VDHmTajRMv82QhykmTQMKO5d23tf6rylFmUaEKb2wyn3i5QDChh96wG94RSaAHns6Q 4qRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5WKh5pU5ti6mWxMMUJXUey7oA6ivXt+7njW2XdfQk7A=; b=SpRuQWPXQ9jHXpqaI7lU3hRJ6RLvYqbsEi9WpAiHhoEn/GgWMxm4dbL7bFqH7KhCQQ jk60R27oTg1BJycm62MHb/kkfPiDDJEYiPekB443QoXlbO5hmngTGrRXJIsQgKDJq9Rk ILiK7ASd2l0IN+iImGLMejKEtIXSSsWJkKb3RGVZc50ttADOOJo/j0mcm7zPrCB1Ma3R lW5+ggRNRWlrYGpKlsuS6NiZhgefsmv89zTj0ERlhocQESK1sJG7dT9PMJ0SBcUwkYPb +2NK1SoJ5Uv7f5BuuDzslVD7QSCULhvPMtSa8Ssq6w+RtfXPe9zcCcaAj+xS/64fbSbz bA9g== X-Gm-Message-State: ACrzQf3WW736RMfSpwyQK+tXImh2DKj/PWCpQpfJuB5hkl3dcerDZMFE llFKZZ1gghqI4M2eGu2o0iViw84lq+c= X-Google-Smtp-Source: AMsMyM5C03v6MVpV2xmzwDX7jQJjiC+OUmyPhWQidkxyDBfS06huqswQhyOiTn+3THp+TnRmqDPmdw== X-Received: by 2002:aca:5808:0:b0:350:9790:7fe with SMTP id m8-20020aca5808000000b00350979007femr14534025oib.79.1666034512742; Mon, 17 Oct 2022 12:21:52 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:52 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Daniel Henrique Barboza , =?utf-8?q?C=C3=A9dric_Le_G?= =?utf-8?q?oater?= , Frederic Barrat Subject: [PULL 35/38] hw/ppc: set machine->fdt in pnv_reset() Date: Mon, 17 Oct 2022 16:20:06 -0300 Message-Id: <20221017192009.92404-36-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::229; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x229.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This will enable support for the 'dumpdtb' QMP/HMP command for all powernv machines. Reviewed-by: Cédric Le Goater Reviewed-by: Frederic Barrat Signed-off-by: Daniel Henrique Barboza Message-Id: <20220926173855.1159396-13-danielhb413@gmail.com> --- hw/ppc/pnv.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 78e00afb9b..40bb573d1a 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -678,7 +678,13 @@ static void pnv_reset(MachineState *machine) qemu_fdt_dumpdtb(fdt, fdt_totalsize(fdt)); cpu_physical_memory_write(PNV_FDT_ADDR, fdt, fdt_totalsize(fdt)); - g_free(fdt); + /* + * Set machine->fdt for 'dumpdtb' QMP/HMP command. Free + * the existing machine->fdt to avoid leaking it during + * a reset. + */ + g_free(machine->fdt); + machine->fdt = fdt; } static ISABus *pnv_chip_power8_isa_create(PnvChip *chip, Error **errp) From patchwork Mon Oct 17 19:20:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691055 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=QoSKS05b; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrn6k00xfz1ygT for ; Tue, 18 Oct 2022 06:26:37 +1100 (AEDT) Received: from localhost ([::1]:49298 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okVkx-00055e-9B for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:26:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34200) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVgV-0004v9-LZ; Mon, 17 Oct 2022 15:22:02 -0400 Received: from mail-oa1-x32.google.com ([2001:4860:4864:20::32]:36825) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVgT-00033t-CR; Mon, 17 Oct 2022 15:21:58 -0400 Received: by mail-oa1-x32.google.com with SMTP id 586e51a60fabf-136b5dd6655so14417780fac.3; Mon, 17 Oct 2022 12:21:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=aT3WPPjxMZjXCOZjcHpYoYx3tnrOwGNLqWOQmP0vItg=; b=QoSKS05b4AZfA4Ihip/aIN5TnkkMtYDBOg75UcX8Ed2vq70RkyNvqyeXI+8Hsbhwmj frowyxv9zT00y7tFNj/+TIOyOq4yV4SWxL7dVqSvDEU7AnLvpBqhZciNosJRCddzp8Rw RCvcXNaddNqIR2aEna6fM5seyLRgadaDFd//UUmbAI4NZ/Kfe0Wmfff5zK7qD2EZrv/V 6FYOiRtkgCtO8C+AJyjBZyNnQKQisBIfqLb7ieYUDA1y14EQxnzhOk18soPbPjGGsQap hKa8Z0MQbAKJ7T+79VO0Bpe7I+at7R44zqrhlqDTXlEC84qUpNWl5LPQQCeum3zY5L2J IM3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aT3WPPjxMZjXCOZjcHpYoYx3tnrOwGNLqWOQmP0vItg=; b=mGQ8vQGipWmlPIzz4hZFcRq6D3XChqGakMumGlrtgy3KebnSIUxcs/YjS5DsSWsMNr kfmNdm5SYuiQcmRgPsUiBfYOSZ2WUP+/Eywb3Cvw/3M7nNyTxRfzVMzZ2bxW+x6v/FXu nl7qndXbp0JSM0gvhHau3ao9M65nQOTv5KwYAxARIsNZuziZrE0BR6i51U+UGdvd8BL2 gxg/Fe/xRYbH8+r1p07qpHNmMCYWIBLJts8erTq1ttbWwZm1AjSykT4RDbtmeT1r8DRK 3YTENaVxZOtN1nhgLXqw49HJ5W/8xJ6ptVVkEpRdxyZx8+MZFpS/MpcTMw1aPkgJuLWU tirA== X-Gm-Message-State: ACrzQf2kYQTOEqC6/SjGR+DN8t55yAEgnjjvmbUOz4AkBQGtgvyCyPHs GteDVpaAWhUzaBJoEkHemPhsfR1dB+o= X-Google-Smtp-Source: AMsMyM5LGoz9esGrJAFw58RhodbMCPNUuC3YxUYGZssv/+7mgIg6VjVWWpAAI02Q68jT+mMxTnIk+A== X-Received: by 2002:a05:6870:3388:b0:136:4f44:78a6 with SMTP id w8-20020a056870338800b001364f4478a6mr16770206oae.125.1666034515407; Mon, 17 Oct 2022 12:21:55 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:55 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Daniel Henrique Barboza , David Gibson , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 36/38] hw/ppc: set machine->fdt in spapr machine Date: Mon, 17 Oct 2022 16:20:07 -0300 Message-Id: <20221017192009.92404-37-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::32; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x32.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The pSeries machine never bothered with the common machine->fdt attribute. We do all the FDT related work using spapr->fdt_blob. We're going to introduce a QMP/HMP command to dump the FDT, which will rely on setting machine->fdt properly to work across all machine archs/types. Let's set machine->fdt in two places where we manipulate the FDT: spapr_machine_reset() and CAS. There are other places where the FDT is manipulated in the pSeries machines, most notably the hotplug/unplug path. For now we'll acknowledge that we won't have the most accurate representation of the FDT, depending on the current machine state, when using this QMP/HMP fdt command. Making the internal FDT representation always match the actual FDT representation that the guest is using is a problem for another day. spapr->fdt_blob is left untouched for now. To replace it with machine->fdt, since we're migrating spapr->fdt_blob, we would need to migrate machine->fdt as well. This is something that we would like to to do keep our code simpler but it's also a work we'll leave for later. Reviewed-by: David Gibson Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Daniel Henrique Barboza Message-Id: <20220926173855.1159396-14-danielhb413@gmail.com> --- hw/ppc/spapr.c | 3 +++ hw/ppc/spapr_hcall.c | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 8bbaf4f8a4..f79ac85ca1 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1713,6 +1713,9 @@ static void spapr_machine_reset(MachineState *machine) spapr->fdt_initial_size = spapr->fdt_size; spapr->fdt_blob = fdt; + /* Set machine->fdt for 'dumpdtb' QMP/HMP command */ + machine->fdt = fdt; + /* Set up the entry state */ first_ppc_cpu->env.gpr[5] = 0; diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index a8d4a6bcf0..891206e893 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -1256,6 +1256,14 @@ target_ulong do_client_architecture_support(PowerPCCPU *cpu, spapr->fdt_initial_size = spapr->fdt_size; spapr->fdt_blob = fdt; + /* + * Set the machine->fdt pointer again since we just freed + * it above (by freeing spapr->fdt_blob). We set this + * pointer to enable support for the 'dumpdtb' QMP/HMP + * command. + */ + MACHINE(spapr)->fdt = fdt; + return H_SUCCESS; } From patchwork Mon Oct 17 19:20:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691092 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=IVMgT1eq; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MrnTw2TmZz1ygT for ; Tue, 18 Oct 2022 06:43:16 +1100 (AEDT) Received: from localhost ([::1]:54306 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okW13-0007XZ-Ry for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:43:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34202) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVgX-0004vZ-F0; Mon, 17 Oct 2022 15:22:02 -0400 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]:39898) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVgW-000346-1l; Mon, 17 Oct 2022 15:22:01 -0400 Received: by mail-ot1-x332.google.com with SMTP id br15-20020a056830390f00b0061c9d73b8bdso6371963otb.6; Mon, 17 Oct 2022 12:21:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5FJeaKwncU3G1wudkKdG62ntI4+l0De0HVu2CViF7TA=; b=IVMgT1eqfqbzzUMEANVVLu7caEGkJI8/SDCOQZEvMg+qjRPjv6X+zOerMFR7R5+Wp+ MQEGKfkLHRzpvq3l8wzP+jxIH+yBN4NvPA6ZhXi+ugDFUpBYVzpVdTVyRJrKn5fd7HZ3 n7ahLQpgsdA/v2rRlaGcXCkukLhWVBB4lQ8SH7AvrFqYhNbJ+Do58NLajrCpGDbLMHl7 hw6nsKcy9/BBJbzm6Q88UNSpsgHX/rwPQnCh43+pSH7/+GwB3WK67GdMeb6W4tjAuVXy BWzd8SJZ/1VpmGB+g3aSO+6wPAzmLu/eMAF33LInI7nu06/c95gNt3kaDJSvZPj6cuuy yo/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5FJeaKwncU3G1wudkKdG62ntI4+l0De0HVu2CViF7TA=; b=Zlefc4BEg77JmzK2K1DKDpv70kE8owfaz5DeZK55sdILSRYB+/cCFsZCmwdRBn0KHG +vdhxj4xBZ4fY5RB+v7yoZETW3rNjH4BQKoc/SayEOtBpiymCX5AEEK5y5gpzUj2xtqT dZgJ5Ul8qNksUT1zU3qmD+dPBPwXPuXx7YdPpeHT+dypsuc9hcR8Qy9ikMtkKA3RyvYj wfXTuhNb9UFlgvJ8BYp1h/SitkCMXUI7BfUl9GsddJ7zzPho8XyXoym18p2oYPv56hOb iVv6Mt2kX+eL537Qc32axcylmOaUcqWd0djd+Dn41K+BgzofmxKmGhpOLrSN7nIFYLD5 6+LA== X-Gm-Message-State: ACrzQf2SS1qJOGX+Up5owf9D0Q9ix5mk2DWZAfrWA0XKh3kqF2OXIvkx ovf/lptvI+RuYBhbItk6v0SS/4l+Fhc= X-Google-Smtp-Source: AMsMyM5ItiLgJg/NBYBFlt/tIpYbjYy3x2hY8JUJsP1PD2ptkE8trkILR4VbxMmW091+g08aeqrGJA== X-Received: by 2002:a05:6830:33e1:b0:655:e771:f572 with SMTP id i1-20020a05683033e100b00655e771f572mr5889870otu.245.1666034518584; Mon, 17 Oct 2022 12:21:58 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:21:58 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Daniel Henrique Barboza , Alistair Francis , Bin Meng , Palmer Dabbelt , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Dau?= =?utf-8?q?d=C3=A9?= Subject: [PULL 37/38] hw/riscv: set machine->fdt in sifive_u_machine_init() Date: Mon, 17 Oct 2022 16:20:08 -0300 Message-Id: <20221017192009.92404-38-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::332; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x332.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This will enable support for 'dumpdtb' QMP/HMP command for the sifive_u machine. Cc: Alistair Francis Cc: Bin Meng Cc: Palmer Dabbelt Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Daniel Henrique Barboza Message-Id: <20220926173855.1159396-15-danielhb413@gmail.com> --- hw/riscv/sifive_u.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index e4c814a3ea..b139824aab 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -634,6 +634,9 @@ static void sifive_u_machine_init(MachineState *machine) start_addr_hi32 = (uint64_t)start_addr >> 32; } + /* Set machine->fdt for 'dumpdtb' QMP/HMP command */ + machine->fdt = s->fdt; + /* reset vector */ uint32_t reset_vec[12] = { s->msel, /* MSEL pin state */ From patchwork Mon Oct 17 19:20:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1691106 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=BeTuG7aW; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Mrngz5K4pz23kK for ; Tue, 18 Oct 2022 06:51:59 +1100 (AEDT) Received: from localhost ([::1]:33720 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okW9V-0007ly-Jd for incoming@patchwork.ozlabs.org; Mon, 17 Oct 2022 15:51:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34204) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okVga-0004zZ-7D; Mon, 17 Oct 2022 15:22:04 -0400 Received: from mail-oa1-x31.google.com ([2001:4860:4864:20::31]:38811) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okVgY-00032W-MU; Mon, 17 Oct 2022 15:22:03 -0400 Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-1322d768ba7so14399963fac.5; Mon, 17 Oct 2022 12:22:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=aFMFtM7kKT2i4qXvxZxwYogw4Xl5VgeswLzxx97oPqU=; b=BeTuG7aW3vXCzprA/PiCaQaWvCelmhxI37omepGX4JkngCd4cqEzLoDI4TR9WnEwOd pXGBnj4lBPRaw5dbIk78ofpTd3WUeIHqKJZbQqkiOPF9NHzU/uLCxqorBJfLQMJ3PtBG tAu2J1sKQ9e4sEJs8khzoXP4g8HyJOmhYUGaG/Qc8xyLmSrtcueRc5/eW9ZEmm0veM8/ vIGMRveYLnfM5jfBBLa6tfSb6MnyK6cE3VngwdK0Uleg2GHYJiadPuLoS39ZO1DWkZOH oC0NYV8K4GBrWo5LWELV0M1vvtJlkZnA9H4huJaY6FDYsEMve5fcbSJ/Q4FuMClvVeQU Miaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aFMFtM7kKT2i4qXvxZxwYogw4Xl5VgeswLzxx97oPqU=; b=DGmcyu+o/laHvBP/4SwuUz7ivwl5jd8QbuH3snjHqMuzvASCILAvkGDqLLA8ctvV7B lNcQxZNov29Hb5OnsIDOu2ONbIjwwswLpP8qTex95qqi+7ItJAZT9WY3xWgGU5umJZXG EgEk0BMggB/1VSNb79LEmQYtVHGqGisYVXwrK4K+THWCKwt0mdPPqWwqi7+O1YzPwSqd RnFJah0rLiQyYMc3J1zt/1M8kYhDtsZnxmQfOCkbLeaPZ84LmWWJu0evpJzyV9L47H6V TJ5KyzlgDWxSJl8jfX+32x45mx5U/voRm+Rwylfr4NVcGL6PEcNoQL8UIJCu4jul/2Uv JHFw== X-Gm-Message-State: ACrzQf1ZY6bpIBRcgfHbsQkUOQXxgvIuD7dWcbOt2otvQb25WMftkofy C4+9baXz5yWDlT3F3sASv7vqX1tDHXQ= X-Google-Smtp-Source: AMsMyM6OfaxoA48LWmj2CMiSGSdpa8IFlkA31uiwA71uF1uQhhTDizZ0TrYzc8nrnSwWL0ZlYhmalQ== X-Received: by 2002:a05:6871:a6:b0:12b:8d8d:d7b with SMTP id u38-20020a05687100a600b0012b8d8d0d7bmr16453395oaa.197.1666034521524; Mon, 17 Oct 2022 12:22:01 -0700 (PDT) Received: from balboa.COMFAST ([179.111.38.2]) by smtp.gmail.com with ESMTPSA id n132-20020aca408a000000b00342eade43d4sm4648005oia.13.2022.10.17.12.21.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 12:22:01 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, stefanha@redhat.com, Daniel Henrique Barboza , Palmer Dabbelt , Alistair Francis , Bin Meng , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 38/38] hw/riscv: set machine->fdt in spike_board_init() Date: Mon, 17 Oct 2022 16:20:09 -0300 Message-Id: <20221017192009.92404-39-danielhb413@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221017192009.92404-1-danielhb413@gmail.com> References: <20221017192009.92404-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::31; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x31.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This will enable support for the 'dumpdtb' QMP/HMP command for the spike machine. Cc: Palmer Dabbelt Cc: Alistair Francis Cc: Bin Meng Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Daniel Henrique Barboza Message-Id: <20220926173855.1159396-16-danielhb413@gmail.com> --- hw/riscv/spike.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c index 5ba34543c8..1e1d752c00 100644 --- a/hw/riscv/spike.c +++ b/hw/riscv/spike.c @@ -40,6 +40,8 @@ #include "sysemu/device_tree.h" #include "sysemu/sysemu.h" +#include + static const MemMapEntry spike_memmap[] = { [SPIKE_MROM] = { 0x1000, 0xf000 }, [SPIKE_HTIF] = { 0x1000000, 0x1000 }, @@ -304,6 +306,10 @@ static void spike_board_init(MachineState *machine) /* Compute the fdt load address in dram */ fdt_load_addr = riscv_load_fdt(memmap[SPIKE_DRAM].base, machine->ram_size, s->fdt); + + /* Set machine->fdt for 'dumpdtb' QMP/HMP command */ + machine->fdt = s->fdt; + /* load the reset vector */ riscv_setup_rom_reset_vec(machine, &s->soc[0], memmap[SPIKE_DRAM].base, memmap[SPIKE_MROM].base,