From patchwork Fri Aug 4 15:29:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1816996 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=20221208 header.b=JSSyHIMr; 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 4RHV6J2w5Bz1yYD for ; Sat, 5 Aug 2023 01:30:48 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qRwkz-0006Dl-Ss; Fri, 04 Aug 2023 11:30:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qRwkv-0006CZ-OH; Fri, 04 Aug 2023 11:30:21 -0400 Received: from mail-oa1-x34.google.com ([2001:4860:4864:20::34]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qRwku-0004MJ-6v; Fri, 04 Aug 2023 11:30:21 -0400 Received: by mail-oa1-x34.google.com with SMTP id 586e51a60fabf-1bbaa549bcbso1652298fac.3; Fri, 04 Aug 2023 08:30:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691163018; x=1691767818; 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=Rk0ufMi3dk4kgrpp1bd4RIeLfZAozZ6yw2JFgmfTZA8=; b=JSSyHIMrHARa0qJo4H34TTLe+jAHDuOSf/RjraGz51jFoTVsInERVCfZKNE0k8Ssmx SkyGD1Rh03JhakLsU0K09+qD2cTm8R3i1nUtSGL9uG3RvEMfUqZ17V0hBF+83uTmfREr RBtmKS1FR3tWDSl8UDq23Y3fsQgkda6w03FN6yBsor1e2VPegFTE42wdZRWy1h603FZ/ ykfGdUP1HsgWd7OahAV45LdJq5CQVE/qZE6HRk3JYCMakp0iF18oZ/UPQNKGlz6S1JR8 tL0Y2Pk9iaDrNaWsjBUEneNSgLf/GJ89lBxEhrs+ZGaJ6Cct7vyVkD8Q2YBjTSWwuxkK Cmhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691163018; x=1691767818; 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=Rk0ufMi3dk4kgrpp1bd4RIeLfZAozZ6yw2JFgmfTZA8=; b=PzEwd4vcIRKtcVMwAqTdUS5/KtFheiUzc9mAcuEWnHrv5HiO1ZIjuzk3faB8eOjWQU gy/SPvHD+edizrtLkgXbe9ERCTB9RUdwjgljP4rzZ5MCE6YdsRvlONOF52EnV++zEIEP kkQOEWXz4t2D7NSDzvzJ+tqDhWQiMrtPjZXNm6R0azPTPjIzPMTPCeQzzCuvAPPTzRo6 QvVnvGONaEgm4kMp4C0swR0DCp4EVbayfC71wQqu+JLoedSLQPGcpd1r5dH+7/SplzbI RtQ3/rLsMe/DxaqytP3JASNmoVTbWdpYOi3YHY1pBWGfViQSoToPLYGeLdBOjY1liFVY QtAg== X-Gm-Message-State: AOJu0YxuNfaA6fL+WrhsDmOqi8WgX1NDXlP6GkN2jCsJlKdqR//krCNh ThvNSvCI5rsQq8GxaSvPBj798ORNp+M= X-Google-Smtp-Source: AGHT+IE2U90/MbOuDtdthMIXToy5323jqJvUVXCkcFk3uSBPvDGqS29ZnhPn/6ycCU4Fa9ML+TCj7w== X-Received: by 2002:a05:6870:2050:b0:1be:deef:748a with SMTP id l16-20020a056870205000b001bedeef748amr2900012oad.50.1691163018153; Fri, 04 Aug 2023 08:30:18 -0700 (PDT) Received: from grind.. ([177.197.108.190]) by smtp.gmail.com with ESMTPSA id q4-20020a4a4b04000000b00560b1febfdfsm1115761ooa.10.2023.08.04.08.30.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Aug 2023 08:30:17 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, BALATON Zoltan Subject: [PULL 1/7] ppc/pegasos2: Fix reset state of USB functions Date: Fri, 4 Aug 2023 12:29:49 -0300 Message-ID: <20230804152955.22316-2-danielhb413@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230804152955.22316-1-danielhb413@gmail.com> References: <20230804152955.22316-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::34; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x34.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-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: BALATON Zoltan The original non-free board firmware sets the command register of the USB functions to 7 and some guests rely on this for working USB. Match what the board firmware does when using VOF instead. Signed-off-by: BALATON Zoltan Reviewed-by: Daniel Henrique Barboza Message-ID: <06a2b864431425f23d1f2b5abf0c027819ac11c6.1689725688.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/pegasos2.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 4447bbe8ec..4a2ab35f19 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -324,9 +324,13 @@ static void pegasos2_machine_reset(MachineState *machine, ShutdownCause reason) pegasos2_pci_config_write(pm, 1, (PCI_DEVFN(12, 2) << 8) | PCI_INTERRUPT_LINE, 2, 0x409); + pegasos2_pci_config_write(pm, 1, (PCI_DEVFN(12, 2) << 8) | + PCI_COMMAND, 2, 0x7); pegasos2_pci_config_write(pm, 1, (PCI_DEVFN(12, 3) << 8) | PCI_INTERRUPT_LINE, 2, 0x409); + pegasos2_pci_config_write(pm, 1, (PCI_DEVFN(12, 3) << 8) | + PCI_COMMAND, 2, 0x7); pegasos2_pci_config_write(pm, 1, (PCI_DEVFN(12, 4) << 8) | PCI_INTERRUPT_LINE, 2, 0x9); From patchwork Fri Aug 4 15:29:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1817002 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=20221208 header.b=Ba7IU+rO; 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 4RHV6m34LMz1yYD for ; Sat, 5 Aug 2023 01:31:12 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qRwl9-0006OF-8p; Fri, 04 Aug 2023 11:30:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qRwky-0006Dy-1G; Fri, 04 Aug 2023 11:30:25 -0400 Received: from mail-oo1-xc2d.google.com ([2607:f8b0:4864:20::c2d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qRwkw-0004OG-C1; Fri, 04 Aug 2023 11:30:23 -0400 Received: by mail-oo1-xc2d.google.com with SMTP id 006d021491bc7-56ccdb2c7bbso1481075eaf.1; Fri, 04 Aug 2023 08:30:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691163020; x=1691767820; 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=Zkglx2BRJmppKi0eGpH9W2XIhA3WWhO1HfeX9ZW+4xY=; b=Ba7IU+rOiaGNk5cprrgsIbjEGX97CGC2ykkRCr6HA1F1LA0P4QZpS2kdI7Utb3pJqf swOYY1SDTfMLgmQ8fryMl+fL6IcCy11HC/65Yt+5GVoQ93vQ4n6c8f2qWp54JBEhBf4q PpPY3QcTteefPkxgenwroSgZOFb8+uWvstjp7uS47flURRb46iIPdJJDv6SIMtQNJlR1 KTV5DWt/wILz0ewxWq2Xq6Nv5BqSnUryRlrEoVxBllkak9hdf2sLvmttuncuqm6unTp0 0VDXnD7850x4vkvaedK4FCKW4dK7h950gTtOG2zJksixEsi+6vYAUD1MTLMee5X2IGZY yBMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691163020; x=1691767820; 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=Zkglx2BRJmppKi0eGpH9W2XIhA3WWhO1HfeX9ZW+4xY=; b=O8hbxtqmjk/95nyrxD+K1zrQk0G4YuU/Rg4nejGt/oOlKmAjM64XlR0mfBiQ+MaQfl jxFA3AgQNDuTygC1U3xhYlMvseqFxDW4I63N2UpcUIDbEwOCcBz7YOQ0iwPjC0lLRBSM F0IMXS2+39YCVAVFDcgb3jxYb4kRaLv+ANykHKB6SziHBb7c55rVqC41b1/Hl45brEPC JuOe+QmrzFQ9JUoDmDzUkyXVV8jgxVGqc91NkRYtD9bkik5qJs2d0Wa69keiLpLIyV2V +zJfhrW02yu8/67xyq9gqrzkPHkKvyR2dr3iE5IAvH+kgVIDO4qM+QdqQ/DnXx/Saozf Iz5A== X-Gm-Message-State: AOJu0Yyx8pkUe8ktcXlTip6tj9J9Stepe0cylKgh0J6PwogCnwqbowLu chBNc6l1WswGhzlTEiKhkf4eVJUJyGI= X-Google-Smtp-Source: AGHT+IG+kTuz/JWHj/nxmZWGF9E49ezL1uoe6Kds2L3izNUac0i4FdxJ7ndpwOUBFlNU3961VfYSHQ== X-Received: by 2002:a4a:8554:0:b0:567:27f4:8c45 with SMTP id l20-20020a4a8554000000b0056727f48c45mr2238439ooh.8.1691163020488; Fri, 04 Aug 2023 08:30:20 -0700 (PDT) Received: from grind.. ([177.197.108.190]) by smtp.gmail.com with ESMTPSA id q4-20020a4a4b04000000b00560b1febfdfsm1115761ooa.10.2023.08.04.08.30.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Aug 2023 08:30:20 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, BALATON Zoltan Subject: [PULL 2/7] ppc/pegasos2: Fix reg property of ROM BARs Date: Fri, 4 Aug 2023 12:29:50 -0300 Message-ID: <20230804152955.22316-3-danielhb413@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230804152955.22316-1-danielhb413@gmail.com> References: <20230804152955.22316-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::c2d; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc2d.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-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: BALATON Zoltan The register offset of the ROM BAR is 0x30 not 0x28. This fixes the reg property entry of the ROM region in the device tree. Signed-off-by: BALATON Zoltan Reviewed-by: Daniel Henrique Barboza Message-ID: <6abd73b1211f9d0776dfa5d71d6294f17eecb426.1689725688.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/pegasos2.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 4a2ab35f19..8ed13a42a2 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -766,7 +766,11 @@ static void add_pci_device(PCIBus *bus, PCIDevice *d, void *opaque) if (!d->io_regions[i].size) { continue; } - cells[j] = cpu_to_be32(d->devfn << 8 | (PCI_BASE_ADDRESS_0 + i * 4)); + cells[j] = PCI_BASE_ADDRESS_0 + i * 4; + if (cells[j] == 0x28) { + cells[j] = 0x30; + } + cells[j] = cpu_to_be32(d->devfn << 8 | cells[j]); if (d->io_regions[i].type & PCI_BASE_ADDRESS_SPACE_IO) { cells[j] |= cpu_to_be32(1 << 24); } else { From patchwork Fri Aug 4 15:29:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1817009 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=20221208 header.b=Mj5SRFIO; 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 4RHV855qPqz1yYD for ; Sat, 5 Aug 2023 01:32:21 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qRwl8-0006NX-Vh; Fri, 04 Aug 2023 11:30:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qRwl1-0006H9-0E; Fri, 04 Aug 2023 11:30:27 -0400 Received: from mail-oa1-x30.google.com ([2001:4860:4864:20::30]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qRwkz-0004PP-Ey; Fri, 04 Aug 2023 11:30:26 -0400 Received: by mail-oa1-x30.google.com with SMTP id 586e51a60fabf-1bbb4bddd5bso1623295fac.2; Fri, 04 Aug 2023 08:30:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691163022; x=1691767822; 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=Z3/xofAUXf9srrGRAG4gcr5JOgWOYN0doTlFr9+WeQU=; b=Mj5SRFIOGKQCJ4FMaJm/deeClg9OFshSUODEwiSQIFQvcbwUqIgUnZOfcgAA/9R+ZN l+iNR5ximCwSVRRYMDBmF2zVL/NwXaHUT7DdZxiaEkdxVrrcyAm5A8fiduaUUlC2phvV 3dsJ5og0MpZvcM6oK2tOM6eDbSBC0MEZZ09lGMKRCv6DwvQmuht4hch9hrbMxJcW1VUw b+hfUc+TSiFIX0vuGOwW4foJwaEwfHEiyIhlNafsVtyIUV+lDqkgjnzUpYMiBK25RRl7 lA7xHKJFno/5DgA/k9ioH8XwJNKycs6ovFQY4PxkRAWNNtynn3cT1E1Y7DlYe1KxdtzO DEeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691163022; x=1691767822; 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=Z3/xofAUXf9srrGRAG4gcr5JOgWOYN0doTlFr9+WeQU=; b=XPB8ES6098Tb92iiPPwEZHrssGUoa4EvsqCDGmofS8Ndx6t1W6RA4e1ZFhpUOjn29c ob0DZnI4E18ukuiOcncIlyqhYNyLZGkQZuEOPrT81o4bgP2tjAO+DIdUqlSyuRnXP2n4 Z6+SAU0UhZvC47B7XceHu3F1di1FrVT5OqWGhIAULdVUfNmSKR4X7TdOh/vFspIM+jRW pfxoI0amy5oH8HqQrc4bb7Y8aOFPbTpgVoqHzuMJGAIUlI53JyuOB7YRx4Plhjhre3qZ esXx9EpwWTj2XfNIczdfa2jrdBgasil41g0e1aD12T9nOKWETQTyTmbcPVGOWbtxGlWk LI5Q== X-Gm-Message-State: AOJu0YwVgk0Isogz5xTXiXvhzRwiRL5lbl6NXqicBGKmLconenx/pY/j GuYprIE7WbifyXLBlHBEHurua/39jwU= X-Google-Smtp-Source: AGHT+IHbEcnJknPSlXF4KCn6PAPzI4+8cbzntclome/M1P1WgK+U1a6UPRmhB1PoxCKdIdq56A5WnA== X-Received: by 2002:a05:6870:3321:b0:17f:7388:4c69 with SMTP id x33-20020a056870332100b0017f73884c69mr2516216oae.30.1691163022642; Fri, 04 Aug 2023 08:30:22 -0700 (PDT) Received: from grind.. ([177.197.108.190]) by smtp.gmail.com with ESMTPSA id q4-20020a4a4b04000000b00560b1febfdfsm1115761ooa.10.2023.08.04.08.30.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Aug 2023 08:30:22 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, BALATON Zoltan Subject: [PULL 3/7] ppc/pegasos2: Fix naming of device tree nodes Date: Fri, 4 Aug 2023 12:29:51 -0300 Message-ID: <20230804152955.22316-4-danielhb413@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230804152955.22316-1-danielhb413@gmail.com> References: <20230804152955.22316-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-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: BALATON Zoltan The board firmware names devices by their class so match that for common devices. Also make sure the /rtas node has a name. This is needed because VOF otherwise does not include it in results got by nextprop which is how AmigaOS queries it and fails if no name property is found. Signed-off-by: BALATON Zoltan Reviewed-by: Daniel Henrique Barboza Message-ID: <808ade37aa141563d1ee349254151672bf7a5d59.1689725688.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/pegasos2.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 8ed13a42a2..6475acfbed 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -739,6 +739,13 @@ static void add_pci_device(PCIBus *bus, PCIDevice *d, void *opaque) pci_get_word(&d->config[PCI_VENDOR_ID]), pci_get_word(&d->config[PCI_DEVICE_ID])); + if (pci_get_word(&d->config[PCI_CLASS_DEVICE]) == + PCI_CLASS_NETWORK_ETHERNET) { + name = "ethernet"; + } else if (pci_get_word(&d->config[PCI_CLASS_DEVICE]) >> 8 == + PCI_BASE_CLASS_DISPLAY) { + name = "display"; + } for (i = 0; device_map[i].id; i++) { if (!strcmp(pn, device_map[i].id)) { name = device_map[i].name; @@ -929,6 +936,7 @@ static void *build_fdt(MachineState *machine, int *fdt_size) qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-display-device", 0); qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-size", 20); qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-version", 1); + qemu_fdt_setprop_string(fdt, "/rtas", "name", "rtas"); /* cpus */ qemu_fdt_add_subnode(fdt, "/cpus"); From patchwork Fri Aug 4 15:29:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1817000 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=20221208 header.b=HOZHtybn; 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 4RHV6V5mVGz1yYD for ; Sat, 5 Aug 2023 01:30:58 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qRwl9-0006Ot-BU; Fri, 04 Aug 2023 11:30:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qRwl2-0006Ja-9K; Fri, 04 Aug 2023 11:30:28 -0400 Received: from mail-oa1-x36.google.com ([2001:4860:4864:20::36]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qRwl0-0004Qb-Tz; Fri, 04 Aug 2023 11:30:28 -0400 Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-1bb75afeee3so1671266fac.0; Fri, 04 Aug 2023 08:30:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691163025; x=1691767825; 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=BAqK6QWaeNrKvf7OH3VDv+9xR6Z10k+UDV3PubsDTA0=; b=HOZHtybnY3cDgbU/UlSdpDPFOiyz8uApBIYp9YdLM3jTO1s1h56AiMN2G/3NtxW1B7 H5VgrCInf68NmOPMqhI7IjZE/7yOBwCwvgzUytcca4Vy8xr1hFSiigvXNtTYd1LdxDcv z+oDSewbhNkTykxZmx8lqox1RX2Y24NOcUGoyxrhp4sKpfp6MU7EpPfCsdOutEhGsBDE MhTCmzQ3QXasf2S3PJvCicD+5FfxmhqbxIsHQxOEfMtjVT4v3hYpf3ken+tpJmwCBNI8 H6kGX5C552d2TH8E1brPjvsLRWDbpqzR7vY+fRAJ6aHizab6mJV9ktQUi1YYpW9LYBL+ F2Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691163025; x=1691767825; 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=BAqK6QWaeNrKvf7OH3VDv+9xR6Z10k+UDV3PubsDTA0=; b=LIIWfzm8kLdBO20OAsge5iG49uADe+AN6pNFu4c9VjtrWeALsuTorp4sQi1aLczUn2 q+qiO+9n7rXHNj/CTxheNQS/trnojq/2SJEWGcK9iVHtJJRxh6iEzN0bjaodD6C79PN9 0KtTzG3zLHGaDjFz74xJs2sTdB9ZfkbmtvXofvGgpQbO1xTUzWYmM1qvqrzy3cfPnewF CpkU+p7wbp33haPx/rD/0bIMCjkMUX1xy4hwUg9S8GNhuDRrUCRgGIhUjsPI2ExGX5Pq DkflKNyhO89QqSOFzAUXvh1qbWXHHGiZsP6dohOQb5Datqm5E8NQQiCp6/oZW/T8dbdy tDBg== X-Gm-Message-State: AOJu0YxDvJHs37Zl2GubyCynDFxhPe5+yJCC0cspMznLSasPugDVhGva 87oeupfjv7jHkeQTvIyEchZRVe85MII= X-Google-Smtp-Source: AGHT+IHGXTuwByLLrqbdjvQQu9J+PExLuBUoVycbmjrDJhdG/oiEosehz2SLmLFm16sFTafC35wG0w== X-Received: by 2002:a05:6870:e0d4:b0:1b4:7411:df6e with SMTP id a20-20020a056870e0d400b001b47411df6emr2352574oab.15.1691163024913; Fri, 04 Aug 2023 08:30:24 -0700 (PDT) Received: from grind.. ([177.197.108.190]) by smtp.gmail.com with ESMTPSA id q4-20020a4a4b04000000b00560b1febfdfsm1115761ooa.10.2023.08.04.08.30.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Aug 2023 08:30:24 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, BALATON Zoltan Subject: [PULL 4/7] ppc/pegasos2: Fix reg property of 64 bit BARs in device tree Date: Fri, 4 Aug 2023 12:29:52 -0300 Message-ID: <20230804152955.22316-5-danielhb413@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230804152955.22316-1-danielhb413@gmail.com> References: <20230804152955.22316-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-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: BALATON Zoltan The board firmware handles this correctly following the Open Firmware standard which we missed. This fixes 64 bit BARs when using VOF. Signed-off-by: BALATON Zoltan Reviewed-by: Daniel Henrique Barboza Message-ID: <20230721221320.1311E7456AB@zero.eik.bme.hu> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/pegasos2.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 6475acfbed..075367d94d 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -781,7 +781,11 @@ static void add_pci_device(PCIBus *bus, PCIDevice *d, void *opaque) if (d->io_regions[i].type & PCI_BASE_ADDRESS_SPACE_IO) { cells[j] |= cpu_to_be32(1 << 24); } else { - cells[j] |= cpu_to_be32(2 << 24); + if (d->io_regions[i].type & PCI_BASE_ADDRESS_MEM_TYPE_64) { + cells[j] |= cpu_to_be32(3 << 24); + } else { + cells[j] |= cpu_to_be32(2 << 24); + } if (d->io_regions[i].type & PCI_BASE_ADDRESS_MEM_PREFETCH) { cells[j] |= cpu_to_be32(4 << 28); } From patchwork Fri Aug 4 15:29:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1817006 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=20221208 header.b=RvuQZz8u; 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 4RHV7s1QtXz1yYl for ; Sat, 5 Aug 2023 01:32:09 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qRwlB-0006Yo-T8; Fri, 04 Aug 2023 11:30:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qRwl4-0006LF-Q2; Fri, 04 Aug 2023 11:30:30 -0400 Received: from mail-oo1-xc32.google.com ([2607:f8b0:4864:20::c32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qRwl3-0004SX-2X; Fri, 04 Aug 2023 11:30:30 -0400 Received: by mail-oo1-xc32.google.com with SMTP id 006d021491bc7-56ccdb2c7bbso1481126eaf.1; Fri, 04 Aug 2023 08:30:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691163027; x=1691767827; 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=UCtpTXO6E/fFLMU1sjLPkFfWe5afgv3Y6x6eh4rRv5o=; b=RvuQZz8uE+o/fC8SHuuqIpjOS2NBx+TIf64nKRYsppRHkKqaXrWZVTfO2FJ/d4l99E 7LsGlU6U5OWyIdiEnYZKQ3LnUzYzGS/TNzilUzAagmdCpgYmDTQlmaBpVVcWqHHvkbSu ULRBDrUiFnD49TG3wmbywTV5mdQlaxE+/QoLtKI5mRiUkgJKHBvokQv3CUeHhNaHwpVN H6VqwRqdysX0b+TuoIDxJN7fdcSqU2mdNQXldmB5os5TdxV00njSPtNLo5hGuu5NoGHH PVDqjbIxDhFkpG/W/fg08NhhTMHbFdTG76yAhPlv/WbrrkBCqUO0DEQhFP7ppw1cLvX4 CJmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691163027; x=1691767827; 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=UCtpTXO6E/fFLMU1sjLPkFfWe5afgv3Y6x6eh4rRv5o=; b=RF4E7JLp1cMuGKfSKk2dc7Az3EHzLK6itkrtkcWrZJXaPj1phIrB1zdNWbO+sE5X+Y BPklG1pM/o1JGkUMBwe2Cpdc1ZqBm2mIDbvfebdBrzApSWPJyGu6O/DuXgAW8eeBg3nl CqnaNDyEJ8n8G4KARKuHKw+52WtB/pSoPix6kkSfvyMnNBdohyWD1swgVp4hnQ8Bc+gy iI5seWgehdIDYtw6LehLr88KArcwcesUcVhz8mVqGufROrcwiMy1FIqkAgLlLHjO5kKn 9/7UowCJR4eYbcRwvlxGaAUCP/+i1H2WAY2RMEeDXf3wWcSU90d2bfWzEoCAKnfYznf3 HMtQ== X-Gm-Message-State: AOJu0YyniBNiQgvQ+WJu3+fVyJ/QpIgUc8cSMtLeR8no5hOY3iJ47tqo vUQiiCeuXtJBGvHSI+vxc9jV0ZTScxc= X-Google-Smtp-Source: AGHT+IFEMj8wJBb+k3eIVRxh7+sIRLOX8+7Pea3WVGKmxhRHo0l28nZynjvaGcqyEmLZT9QLE8FiWg== X-Received: by 2002:a4a:6202:0:b0:56c:a841:610d with SMTP id x2-20020a4a6202000000b0056ca841610dmr2372921ooc.9.1691163027349; Fri, 04 Aug 2023 08:30:27 -0700 (PDT) Received: from grind.. ([177.197.108.190]) by smtp.gmail.com with ESMTPSA id q4-20020a4a4b04000000b00560b1febfdfsm1115761ooa.10.2023.08.04.08.30.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Aug 2023 08:30:27 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin , =?utf-8?q?C=C3=A9dric_Le_Goater?= Subject: [PULL 5/7] target/ppc: Implement ASDR register for ISA v3.0 for HPT Date: Fri, 4 Aug 2023 12:29:53 -0300 Message-ID: <20230804152955.22316-6-danielhb413@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230804152955.22316-1-danielhb413@gmail.com> References: <20230804152955.22316-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::c32; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc32.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-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Nicholas Piggin The ASDR register was introduced in ISA v3.0. It has not been implemented for HPT. With HPT, ASDR is the format of the slbmte RS operand (containing VSID), which matches the ppc_slb_t field. Fixes: 3367c62f522b ("target/ppc: Support for POWER9 native hash") Signed-off-by: Nicholas Piggin Reviewed-by: Cédric Le Goater Message-ID: <20230726182230.433945-2-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- target/ppc/mmu-hash64.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index 900f906990..a0c90df3ce 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -770,7 +770,8 @@ static bool ppc_hash64_use_vrma(CPUPPCState *env) } } -static void ppc_hash64_set_isi(CPUState *cs, int mmu_idx, uint64_t error_code) +static void ppc_hash64_set_isi(CPUState *cs, int mmu_idx, uint64_t slb_vsid, + uint64_t error_code) { CPUPPCState *env = &POWERPC_CPU(cs)->env; bool vpm; @@ -782,13 +783,15 @@ static void ppc_hash64_set_isi(CPUState *cs, int mmu_idx, uint64_t error_code) } if (vpm && !mmuidx_hv(mmu_idx)) { cs->exception_index = POWERPC_EXCP_HISI; + env->spr[SPR_ASDR] = slb_vsid; } else { cs->exception_index = POWERPC_EXCP_ISI; } env->error_code = error_code; } -static void ppc_hash64_set_dsi(CPUState *cs, int mmu_idx, uint64_t dar, uint64_t dsisr) +static void ppc_hash64_set_dsi(CPUState *cs, int mmu_idx, uint64_t slb_vsid, + uint64_t dar, uint64_t dsisr) { CPUPPCState *env = &POWERPC_CPU(cs)->env; bool vpm; @@ -802,6 +805,7 @@ static void ppc_hash64_set_dsi(CPUState *cs, int mmu_idx, uint64_t dar, uint64_t cs->exception_index = POWERPC_EXCP_HDSI; env->spr[SPR_HDAR] = dar; env->spr[SPR_HDSISR] = dsisr; + env->spr[SPR_ASDR] = slb_vsid; } else { cs->exception_index = POWERPC_EXCP_DSI; env->spr[SPR_DAR] = dar; @@ -963,13 +967,13 @@ bool ppc_hash64_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type, } switch (access_type) { case MMU_INST_FETCH: - ppc_hash64_set_isi(cs, mmu_idx, SRR1_PROTFAULT); + ppc_hash64_set_isi(cs, mmu_idx, 0, SRR1_PROTFAULT); break; case MMU_DATA_LOAD: - ppc_hash64_set_dsi(cs, mmu_idx, eaddr, DSISR_PROTFAULT); + ppc_hash64_set_dsi(cs, mmu_idx, 0, eaddr, DSISR_PROTFAULT); break; case MMU_DATA_STORE: - ppc_hash64_set_dsi(cs, mmu_idx, eaddr, + ppc_hash64_set_dsi(cs, mmu_idx, 0, eaddr, DSISR_PROTFAULT | DSISR_ISSTORE); break; default: @@ -1022,7 +1026,7 @@ bool ppc_hash64_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type, /* 3. Check for segment level no-execute violation */ if (access_type == MMU_INST_FETCH && (slb->vsid & SLB_VSID_N)) { if (guest_visible) { - ppc_hash64_set_isi(cs, mmu_idx, SRR1_NOEXEC_GUARD); + ppc_hash64_set_isi(cs, mmu_idx, slb->vsid, SRR1_NOEXEC_GUARD); } return false; } @@ -1035,13 +1039,14 @@ bool ppc_hash64_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type, } switch (access_type) { case MMU_INST_FETCH: - ppc_hash64_set_isi(cs, mmu_idx, SRR1_NOPTE); + ppc_hash64_set_isi(cs, mmu_idx, slb->vsid, SRR1_NOPTE); break; case MMU_DATA_LOAD: - ppc_hash64_set_dsi(cs, mmu_idx, eaddr, DSISR_NOPTE); + ppc_hash64_set_dsi(cs, mmu_idx, slb->vsid, eaddr, DSISR_NOPTE); break; case MMU_DATA_STORE: - ppc_hash64_set_dsi(cs, mmu_idx, eaddr, DSISR_NOPTE | DSISR_ISSTORE); + ppc_hash64_set_dsi(cs, mmu_idx, slb->vsid, eaddr, + DSISR_NOPTE | DSISR_ISSTORE); break; default: g_assert_not_reached(); @@ -1075,7 +1080,7 @@ bool ppc_hash64_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type, if (PAGE_EXEC & ~amr_prot) { srr1 |= SRR1_IAMR; /* Access violates virt pg class key prot */ } - ppc_hash64_set_isi(cs, mmu_idx, srr1); + ppc_hash64_set_isi(cs, mmu_idx, slb->vsid, srr1); } else { int dsisr = 0; if (need_prot & ~pp_prot) { @@ -1087,7 +1092,7 @@ bool ppc_hash64_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type, if (need_prot & ~amr_prot) { dsisr |= DSISR_AMR; } - ppc_hash64_set_dsi(cs, mmu_idx, eaddr, dsisr); + ppc_hash64_set_dsi(cs, mmu_idx, slb->vsid, eaddr, dsisr); } return false; } From patchwork Fri Aug 4 15:29:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1816997 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=20221208 header.b=ZE+Wzad5; 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 4RHV6K06jQz1yYl for ; Sat, 5 Aug 2023 01:30:49 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qRwlC-0006bR-3y; Fri, 04 Aug 2023 11:30:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qRwl7-0006Nf-9n; Fri, 04 Aug 2023 11:30:34 -0400 Received: from mail-oa1-x2f.google.com ([2001:4860:4864:20::2f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qRwl5-0004Su-GX; Fri, 04 Aug 2023 11:30:33 -0400 Received: by mail-oa1-x2f.google.com with SMTP id 586e51a60fabf-1bbb9fcac6bso1497516fac.1; Fri, 04 Aug 2023 08:30:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691163030; x=1691767830; 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=YmOCwr8scqpbH27tXqr8/twDH4Na3KfVNmq2dgwXruo=; b=ZE+Wzad5Hr3omCFnnpb1fJx5ORDOqPxVMOHhcf5cuAYh64SStqRFPnRh041K9sMhJU cF4ZTiGS4P6evyWwoU8p/QuCA6Az1QtXyIj+n6CsB1Y9sIbYwxXtv8RX7/w/hBP10787 kEmM80Wnv1kZ5K+7a5L+tvpE9RaaRme9sH5l2/FtyBtY+0GamYrqyFRyrQ2e4u4ZdGGp aA++sT1z0+RGjs/XoRyNa5GyuydkzoELx+mKapImSCiVSSuBL5+lmlJQjsMhu8EYul/A /oNtt4/5/girIA2bqrn4ayXpheuhoxaqfqC11W43LckO6KDkU7WgWp0I2p3MrsNtLAbH rJKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691163030; x=1691767830; 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=YmOCwr8scqpbH27tXqr8/twDH4Na3KfVNmq2dgwXruo=; b=iEPiIOk3oR2VCC6YTTJWf6hHMTBGGuv3OnmlDuny5fKUIoRQv10RQ8YOJxkePEQ4V+ mjvTGVK0FcN2vVVs/NSZmLO46VpYETcpIqTLvpxZTgXNQHfYAeA5IVrqKjGzPQuDArGS 7Hwxvy+4ryaweWS4oRUzOK5lw4coC61WDO2LOhlw06KyipcxtsCAd9zyPPmPCzy94ppP PEf3eXYAyN+er63FeRYnH2vmxprXeF96thcqGKRmxEJTWTopuWh41iJVj9p8NTHpzLCi DgJmN0Xv+ArbLVJR48h9OqXLhPo2WbIft+qkQKaoZ3UddwYcBUSNQYppTvrmy4zV3jDP xW3g== X-Gm-Message-State: AOJu0YxZ0APxJBcGg8pwooig648xobO0D2fRzqSo3+TEZPn9qOExCurS Z1PFSyLuk/ToDicunDqDxm+X241Oe8o= X-Google-Smtp-Source: AGHT+IFvuzSnoeNnFC0cAxR9l7CP5z4oisaBPa+xIFeQBHxJc1/oCw7/njgeWLtg53XojooSgAWz3Q== X-Received: by 2002:a05:6870:c6a6:b0:1bb:7825:636b with SMTP id cv38-20020a056870c6a600b001bb7825636bmr30637oab.9.1691163029785; Fri, 04 Aug 2023 08:30:29 -0700 (PDT) Received: from grind.. ([177.197.108.190]) by smtp.gmail.com with ESMTPSA id q4-20020a4a4b04000000b00560b1febfdfsm1115761ooa.10.2023.08.04.08.30.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Aug 2023 08:30:29 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin , =?utf-8?q?C=C3=A9dric_Le_Goater?= Subject: [PULL 6/7] target/ppc: Fix pending HDEC when entering PM state Date: Fri, 4 Aug 2023 12:29:54 -0300 Message-ID: <20230804152955.22316-7-danielhb413@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230804152955.22316-1-danielhb413@gmail.com> References: <20230804152955.22316-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-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Nicholas Piggin HDEC is defined to not wake from PM state. There is a check in the HDEC timer to avoid setting the interrupt if we are in a PM state, but no check on PM entry to lower HDEC if it already fired. This can cause a HDECR wake up and QEMU abort with unsupported exception in Power Save mode. Fixes: 4b236b621bf ("ppc: Initial HDEC support") Signed-off-by: Nicholas Piggin Reviewed-by: Cédric Le Goater Message-ID: <20230726182230.433945-4-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 003805b202..9aa8e46566 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -2685,6 +2685,12 @@ void helper_pminsn(CPUPPCState *env, uint32_t insn) env->resume_as_sreset = (insn != PPC_PM_STOP) || (env->spr[SPR_PSSCR] & PSSCR_EC); + /* HDECR is not to wake from PM state, it may have already fired */ + if (env->resume_as_sreset) { + PowerPCCPU *cpu = env_archcpu(env); + ppc_set_irq(cpu, PPC_INTERRUPT_HDECR, 0); + } + ppc_maybe_interrupt(env); } #endif /* defined(TARGET_PPC64) */ From patchwork Fri Aug 4 15:29:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Daniel Henrique Barboza X-Patchwork-Id: 1817011 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=20221208 header.b=JByYRihg; 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 4RHV8F67gRz1yYD for ; Sat, 5 Aug 2023 01:32:29 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qRwlQ-0006uL-Kv; Fri, 04 Aug 2023 11:30:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qRwl9-0006Oj-7d; Fri, 04 Aug 2023 11:30:35 -0400 Received: from mail-oa1-x34.google.com ([2001:4860:4864:20::34]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qRwl7-0004TJ-KK; Fri, 04 Aug 2023 11:30:34 -0400 Received: by mail-oa1-x34.google.com with SMTP id 586e51a60fabf-1bb571ea965so1594639fac.0; Fri, 04 Aug 2023 08:30:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691163032; x=1691767832; 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=qJnKCGmP9kaedWrwkgycSEaXLaOS7eo0z/drQLy3XG4=; b=JByYRihgxxU5gWilylamf1mrHpEZAk/B/zY8M7a7aPJ64XsaEuN/wVw0D7bVQlah91 6yUMzLICiEMiPQMqoS4teim4Eq/l4PB9d+PbaPWSzvFuZEdfveFGeOyR6C0zNqf1RPRD tp69SSsT5mCyb/Ob9nWpXoPijGiLEM3aCQa5vNCvk6AZHaGsAxRSy+YuxoSxz7G+1FgT qZhbUQjt2vo7BWxVlKmya7QbfljMji7XmdtYUAlpY9C9v4aHkHhcGcOY+P5zfmuVGTC7 HyBVyX8GEC04/ir3II7BY3bQ1qgaAg0Bam+90mqOYHpT/1m7n+VKUKuJsr+Ag65hDyeD bnPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691163032; x=1691767832; 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=qJnKCGmP9kaedWrwkgycSEaXLaOS7eo0z/drQLy3XG4=; b=RrhZe2bM4TAvB8aTe8kp2kPWDjWvcPdIocgEbo7peykxKczbEzZKW8sQENhU4cRgXt ykwhfmayTrr+W62tkGHYhlh0eBpx0MMmX7D2ALTD0wn+ok69vKjfocqpgb2QEXrQGQdU NYsDppLr6riZTKY6HqkEAM6gEQL+rLHIqIdHumlnQ6AXhLeLVY/hE1o7yCgGt3cfDVhM 4qlZsviBiBCQABOvc1CdNd7UeopITKuy1JuULL5Z4n67+oYfTP9y+5l1m9BdbO1nvL/B 2hXifyY05Ndon2Mq0J1kDek0/NkffCmjFEEkCpjfSuZb8CO0kB0VDHX9J31j2xRSy1qD JzMQ== X-Gm-Message-State: AOJu0YybDmKN2oetb7qdJ0Fen0sswO4fuO1B4mITs2Y31P00+Wu8C1Oz 6/I5mf48lZhJ+UcHdNz6XCSeg1MEDWQ= X-Google-Smtp-Source: AGHT+IHPPCjDQBYlwIfKnJzJdMmyD0S+C1mCGJP6HNEp3yvGYk2VO0NtPlIZSuOiWGRzD0rnC48HKg== X-Received: by 2002:a05:6870:9708:b0:1bb:6485:7988 with SMTP id n8-20020a056870970800b001bb64857988mr2357817oaq.35.1691163032131; Fri, 04 Aug 2023 08:30:32 -0700 (PDT) Received: from grind.. ([177.197.108.190]) by smtp.gmail.com with ESMTPSA id q4-20020a4a4b04000000b00560b1febfdfsm1115761ooa.10.2023.08.04.08.30.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Aug 2023 08:30:31 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin , =?utf-8?q?C=C3=A9dric_Le_Goater?= Subject: [PULL 7/7] target/ppc: Fix VRMA page size for ISA v3.0 Date: Fri, 4 Aug 2023 12:29:55 -0300 Message-ID: <20230804152955.22316-8-danielhb413@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230804152955.22316-1-danielhb413@gmail.com> References: <20230804152955.22316-1-danielhb413@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2001:4860:4864:20::34; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x34.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-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Nicholas Piggin Until v2.07s, the VRMA page size (L||LP) was encoded in LPCR[VRMASD]. In v3.0 that moved to the partition table PS field. The powernv machine can now run KVM HPT guests on POWER9/10 CPUs with this fix and the patch to add ASDR. Fixes: 3367c62f522b ("target/ppc: Support for POWER9 native hash") Signed-off-by: Nicholas Piggin Reviewed-by: Cédric Le Goater Message-ID: <20230730111842.39292-1-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- target/ppc/mmu-hash64.c | 45 +++++++++++++++++++++++++++++++++++------ target/ppc/mmu-hash64.h | 5 +++++ 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index a0c90df3ce..d645c0bb94 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -874,12 +874,46 @@ static target_ulong rmls_limit(PowerPCCPU *cpu) return rma_sizes[rmls]; } -static int build_vrma_slbe(PowerPCCPU *cpu, ppc_slb_t *slb) +/* Return the LLP in SLB_VSID format */ +static uint64_t get_vrma_llp(PowerPCCPU *cpu) { CPUPPCState *env = &cpu->env; - target_ulong lpcr = env->spr[SPR_LPCR]; - uint32_t vrmasd = (lpcr & LPCR_VRMASD) >> LPCR_VRMASD_SHIFT; - target_ulong vsid = SLB_VSID_VRMA | ((vrmasd << 4) & SLB_VSID_LLP_MASK); + uint64_t llp; + + if (env->mmu_model == POWERPC_MMU_3_00) { + ppc_v3_pate_t pate; + uint64_t ps, l, lp; + + /* + * ISA v3.0 removes the LPCR[VRMASD] field and puts the VRMA base + * page size (L||LP equivalent) in the PS field in the HPT partition + * table entry. + */ + if (!ppc64_v3_get_pate(cpu, cpu->env.spr[SPR_LPIDR], &pate)) { + error_report("Bad VRMA with no partition table entry"); + return 0; + } + ps = PATE0_GET_PS(pate.dw0); + /* PS has L||LP in 3 consecutive bits, put them into SLB LLP format */ + l = (ps >> 2) & 0x1; + lp = ps & 0x3; + llp = (l << SLB_VSID_L_SHIFT) | (lp << SLB_VSID_LP_SHIFT); + + } else { + uint64_t lpcr = env->spr[SPR_LPCR]; + target_ulong vrmasd = (lpcr & LPCR_VRMASD) >> LPCR_VRMASD_SHIFT; + + /* VRMASD LLP matches SLB format, just shift and mask it */ + llp = (vrmasd << SLB_VSID_LP_SHIFT) & SLB_VSID_LLP_MASK; + } + + return llp; +} + +static int build_vrma_slbe(PowerPCCPU *cpu, ppc_slb_t *slb) +{ + uint64_t llp = get_vrma_llp(cpu); + target_ulong vsid = SLB_VSID_VRMA | llp; int i; for (i = 0; i < PPC_PAGE_SIZES_MAX_SZ; i++) { @@ -897,8 +931,7 @@ static int build_vrma_slbe(PowerPCCPU *cpu, ppc_slb_t *slb) } } - error_report("Bad page size encoding in LPCR[VRMASD]; LPCR=0x" - TARGET_FMT_lx, lpcr); + error_report("Bad VRMA page size encoding 0x" TARGET_FMT_lx, llp); return -1; } diff --git a/target/ppc/mmu-hash64.h b/target/ppc/mmu-hash64.h index 1496955d38..de653fcae5 100644 --- a/target/ppc/mmu-hash64.h +++ b/target/ppc/mmu-hash64.h @@ -41,8 +41,10 @@ void ppc_hash64_finalize(PowerPCCPU *cpu); #define SLB_VSID_KP 0x0000000000000400ULL #define SLB_VSID_N 0x0000000000000200ULL /* no-execute */ #define SLB_VSID_L 0x0000000000000100ULL +#define SLB_VSID_L_SHIFT PPC_BIT_NR(55) #define SLB_VSID_C 0x0000000000000080ULL /* class */ #define SLB_VSID_LP 0x0000000000000030ULL +#define SLB_VSID_LP_SHIFT PPC_BIT_NR(59) #define SLB_VSID_ATTR 0x0000000000000FFFULL #define SLB_VSID_LLP_MASK (SLB_VSID_L | SLB_VSID_LP) #define SLB_VSID_4K 0x0000000000000000ULL @@ -58,6 +60,9 @@ void ppc_hash64_finalize(PowerPCCPU *cpu); #define SDR_64_HTABSIZE 0x000000000000001FULL #define PATE0_HTABORG 0x0FFFFFFFFFFC0000ULL +#define PATE0_PS PPC_BITMASK(56, 58) +#define PATE0_GET_PS(dw0) (((dw0) & PATE0_PS) >> PPC_BIT_NR(58)) + #define HPTES_PER_GROUP 8 #define HASH_PTE_SIZE_64 16 #define HASH_PTEG_SIZE_64 (HASH_PTE_SIZE_64 * HPTES_PER_GROUP)