From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 02E93C00528 for ; Fri, 4 Aug 2023 10:48:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:In-Reply-To: Date:From:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:References: List-Owner; bh=1L2BUs4+0HIN7ixlruwmTQD7s1T/Npq/+59ydNAmrVM=; b=q6DmBLTEYoxBcv +i/KB3uBKtNFaPz+NrtVd3mxgPMHC5cSIq5PG1kHMokHENIy2Pir/t+bBvo69ZBCfLfiPeEPDVqKX lICLaHHT22geeLxL3kGznUIMgDKW0XYAU5SSBcNvAP5a7Or4qqXDMKuMHIi24ahyubDGRCgEPr3Se VPw5dFMWwWw+mRpTADmiGMgc8aoSroBDOEutZiuvZsmGx+tsXKr5NGaP4P8eTzERyE9LXAXm73gwg w5P7KTBtxc3ySUOtjEkbq2w9Cr0vfN/yE11Xe5nO+h41amAURGa1sc0RHcJL+zkIwKG6T9VqRA/9r MYV9ylpf/RLe6NKSKKRg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qRsLI-00CGwM-0I; Fri, 04 Aug 2023 10:47:36 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qRsLC-00CGtw-2W for linux-arm-kernel@lists.infradead.org; Fri, 04 Aug 2023 10:47:32 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4045961F9A; Fri, 4 Aug 2023 10:47:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4DB82C433CC; Fri, 4 Aug 2023 10:47:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1691146049; bh=H9C1kDTN2zibxrSyRILDphp4GIoCCrC2Vq4QlQDJ7+A=; h=Subject:To:Cc:From:Date:In-Reply-To:From; b=TzzykaUbDe3AUxDDMLOFEZaT/helIClxnJKFGdl5mbS6aoNq1hQfbXy2SgigBPKes IkfiNiyqv689PX0gEc3goig2npjX7gnKA7F9HlkjehhRXe42TIlK1YpD5BDbFEQ3Sr wDG6ygROvFk+QVeKYxtwgRIaSgKzKqfSPhlIu7qs= Subject: Patch "iommu/arm-smmu-v3: Work around MMU-600 erratum 1076982" has been added to the 6.4-stable tree To: baolu.lu@linux.intel.com,catalin.marinas@arm.com,corbet@lwn.net,eahariha@linux.microsoft.com,easwar.hariharan@microsoft.com,gregkh@linuxfoundation.org,iommu@lists.linux.dev,jean-philippe@linaro.org,jgg@ziepe.ca,joro@8bytes.org,kirill.shutemov@linux.intel.com,krckatom@amazon.de,linux-arm-kernel@lists.infradead.org,nicolinc@nvidia.com,robin.murphy@arm.com,u.kleine-koenig@pengutronix.de,vladimir.oltean@nxp.com,will@kernel.org,yangyicong@hisilicon.com Cc: From: Date: Fri, 04 Aug 2023 12:47:14 +0200 In-Reply-To: <20230802172620.1628017-2-eahariha@linux.microsoft.com> Message-ID: <2023080414-tubeless-clinic-1168@gregkh> MIME-Version: 1.0 X-stable: commit X-Patchwork-Hint: ignore X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230804_034730_902538_54D207BD X-CRM114-Status: GOOD ( 18.39 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This is a note to let you know that I've just added the patch titled iommu/arm-smmu-v3: Work around MMU-600 erratum 1076982 to the 6.4-stable tree which can be found at: http://www.kernel.org/git/?p=3Dlinux/kernel/git/stable/stable-queue.git= ;a=3Dsummary The filename of the patch is: iommu-arm-smmu-v3-work-around-mmu-600-erratum-1076982.patch and it can be found in the queue-6.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let know about it. >From stable-owner@vger.kernel.org Wed Aug 2 19:26:42 2023 From: Easwar Hariharan Date: Wed, 2 Aug 2023 17:26:17 +0000 Subject: iommu/arm-smmu-v3: Work around MMU-600 erratum 1076982 To: stable@vger.kernel.org Cc: easwar.hariharan@microsoft.com, "Robin Murphy" , = "Nicolin Chen" , "Will Deacon" , "Cat= alin Marinas" , "Jonathan Corbet" = , "Joerg Roedel" , "Lu Baolu" , = "Jason Gunthorpe" , "Uwe Kleine-K=F6nig" , "Vladimir Oltean" , "Yicong Yang" , "Tomas Krcka" , "Jean-Philipp= e Brucker" , "Kirill A. Shutemov" , linux-arm-kernel@lists.infradead.org (moderated list:AR= M64 PORT (AARCH64 ARCHITECTURE)), linux-doc@vger.kernel.org (open list:DOCU= MENTATION), linux-kernel@vger.kernel.org (open list), iommu@lists.linux.dev= (open list:IOMMU SUBSYSTEM) Message-ID: <20230802172620.1628017-2-eahariha@linux.microsoft.com> From: Robin Murphy commit f322e8af35c7f23a8c08b595c38d6c855b2d836f upstream MMU-600 versions prior to r1p0 fail to correctly generate a WFE wakeup event when the command queue transitions fom full to non-full. We can easily work around this by simply hiding the SEV capability such that we fall back to polling for space in the queue - since MMU-600 implements MSIs we wouldn't expect to need SEV for sync completion either, so this should have little to no impact. Signed-off-by: Robin Murphy Reviewed-by: Nicolin Chen Tested-by: Nicolin Chen Link: https://lore.kernel.org/r/08adbe3d01024d8382a478325f73b56851f76e49.16= 83731256.git.robin.murphy@arm.com Signed-off-by: Will Deacon Signed-off-by: Easwar Hariharan Signed-off-by: Greg Kroah-Hartman --- Documentation/arm64/silicon-errata.rst | 2 + drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 29 +++++++++++++++++++++++= +++++ drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 6 +++++ 3 files changed, 37 insertions(+) --- a/Documentation/arm64/silicon-errata.rst +++ b/Documentation/arm64/silicon-errata.rst @@ -143,6 +143,8 @@ stable kernels. +----------------+-----------------+-----------------+--------------------= ---------+ | ARM | MMU-500 | #841119,826419 | N/A = | +----------------+-----------------+-----------------+--------------------= ---------+ +| ARM | MMU-600 | #1076982 | N/A = | ++----------------+-----------------+-----------------+--------------------= ---------+ +----------------+-----------------+-----------------+--------------------= ---------+ | Broadcom | Brahma-B53 | N/A | ARM64_ERRATUM_84571= 9 | +----------------+-----------------+-----------------+--------------------= ---------+ --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -3429,6 +3429,33 @@ static int arm_smmu_device_reset(struct return 0; } = +#define IIDR_IMPLEMENTER_ARM 0x43b +#define IIDR_PRODUCTID_ARM_MMU_600 0x483 + +static void arm_smmu_device_iidr_probe(struct arm_smmu_device *smmu) +{ + u32 reg; + unsigned int implementer, productid, variant, revision; + + reg =3D readl_relaxed(smmu->base + ARM_SMMU_IIDR); + implementer =3D FIELD_GET(IIDR_IMPLEMENTER, reg); + productid =3D FIELD_GET(IIDR_PRODUCTID, reg); + variant =3D FIELD_GET(IIDR_VARIANT, reg); + revision =3D FIELD_GET(IIDR_REVISION, reg); + + switch (implementer) { + case IIDR_IMPLEMENTER_ARM: + switch (productid) { + case IIDR_PRODUCTID_ARM_MMU_600: + /* Arm erratum 1076982 */ + if (variant =3D=3D 0 && revision <=3D 2) + smmu->features &=3D ~ARM_SMMU_FEAT_SEV; + break; + } + break; + } +} + static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu) { u32 reg; @@ -3635,6 +3662,8 @@ static int arm_smmu_device_hw_probe(stru = smmu->ias =3D max(smmu->ias, smmu->oas); = + arm_smmu_device_iidr_probe(smmu); + if (arm_smmu_sva_supported(smmu)) smmu->features |=3D ARM_SMMU_FEAT_SVA; = --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -69,6 +69,12 @@ #define IDR5_VAX GENMASK(11, 10) #define IDR5_VAX_52_BIT 1 = +#define ARM_SMMU_IIDR 0x18 +#define IIDR_PRODUCTID GENMASK(31, 20) +#define IIDR_VARIANT GENMASK(19, 16) +#define IIDR_REVISION GENMASK(15, 12) +#define IIDR_IMPLEMENTER GENMASK(11, 0) + #define ARM_SMMU_CR0 0x20 #define CR0_ATSCHK (1 << 4) #define CR0_CMDQEN (1 << 3) Patches currently in stable-queue which might be from stable-owner@vger.ker= nel.org are queue-6.4/iommu-arm-smmu-v3-document-nesting-related-errata.patch queue-6.4/iommu-arm-smmu-v3-add-explicit-feature-for-nesting.patch queue-6.4/iommu-arm-smmu-v3-document-mmu-700-erratum-2812531.patch queue-6.4/iommu-arm-smmu-v3-work-around-mmu-600-erratum-1076982.patch _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel