From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E339B3A5451 for ; Fri, 1 May 2026 12:51:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777639912; cv=none; b=gusgxV6jsjCmW4+gjaMorMq7THn/AzIPXcjDmTp03ycZATich+UEcKGDv6QqGsnqA4NBttPJmsAlC+TukNG1cO2CSDynuUUp+/7Wj1oqPspnl04yzgb2hpZtgR73oCjFriLYAvhHE+wZ+M16B2OBrn+4cRxfZbdtRBX8bF+v9v4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777639912; c=relaxed/simple; bh=IwxVPwjsxBBZiuBupDhQYeG358F5s+BoySPudQUssGE=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Za0cJxW7oNHh3QQdz0TdXeJ0HksIxdd/wCMxBy/MZanhz8msCK4lMjSbgXlNXVSFyaq+dwVKe45hZdUdzJTAZ/T+uV8rCwVXlyG5qQElTqxsB30+A1WdEPboq5J0yBAk2wbuVbHgJlupR1Q1B18fanQV6JUFS+Ou/0IsRbPi5EI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca; spf=pass smtp.mailfrom=ziepe.ca; dkim=pass (2048-bit key) header.d=ziepe.ca header.i=@ziepe.ca header.b=bmelGsS/; arc=none smtp.client-ip=209.85.222.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ziepe.ca Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ziepe.ca header.i=@ziepe.ca header.b="bmelGsS/" Received: by mail-qk1-f176.google.com with SMTP id af79cd13be357-8eea23d01f7so241250285a.0 for ; Fri, 01 May 2026 05:51:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; t=1777639910; x=1778244710; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=BDMlaTUNGVqmc1jmP6u4TfGXv+GXsCG3iAN8BRJBeOs=; b=bmelGsS/0y/vF3WxW+CnACb5bBTpqLG84SjuLXaBNedPJQcrEvPm47EqILCNC6to+W necCc81C7+CSw0CL9HbjL9uqNbWLrp0sasTPOMJdHa1DhbHwBkFR83wsAg2qGDUl9Ock tmpmu/AxWvV6pKDCSG+162onPSru5+tsNON87katYoR3e4ULU4iLMVVq8mc9EhqgamA1 lhZbeLnYhyU8iCoONh5SwvOhrkwQa/9aIPJ5p/abSVJBMBhVL/QntJ3DzxecNGk0RkLU 6K1HD25iix8pUp/4X3tWE1r8GsYHkAhcJxxGD3H74degLXjlC7NtsGtU6Rch3tfAu0fr ibaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777639910; x=1778244710; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BDMlaTUNGVqmc1jmP6u4TfGXv+GXsCG3iAN8BRJBeOs=; b=TwS8ly2L5hX17FeyR9uBfFzOGwePLEfUCO9QcmkGAggB2vxQMp9gW59nPWsjJkWZne h2Ou45bmw2Udp977c+jxi8RujkpYP/BlBIFb6i0JFpAj/EGL7ZwklP7u+qAMpIjAsWeX 2cX/KVW4qFeyS7Rsqq4YWb8lKt5yYKEXYbMburhEyh4f+9yt0GRDaQefSPd/kcA5rZaw JNM7TFiz6fm463C2zT8gyZ6IaMIW69yC/0u4tJAJalOOEK2vKiJEvX6pMB5OVba7bcCj dCoeckKAeJ8+ENPO1wOUaZJG+LvAgtqItqxOZ5ctex3SPeIUPwwmM6/IeS/kvnJt8/74 bsAg== X-Forwarded-Encrypted: i=1; AFNElJ8UaDMgKpJItfrT1br4ItnHQj/LT2zSwKRK3XdDkeFviMGBCIY8YpyBrdIzHn8hDwIUhS3KhRU4J411Ycw=@vger.kernel.org X-Gm-Message-State: AOJu0YzWM7EfzaRbUopd4MbI6vzlKfq6gSkwInBZRVHSnMzsv2C0oubX JaYwYtefKdgZinzpLbSU7YTY2wthGoIb5eVwYmb5+2m6+OOzDO2a7ha9P/lXp6S+Bu6FFM4cmx4 kSa+wiHE= X-Gm-Gg: AeBDieswT/wSyhYUrQ4XF/5GQpESEmG1z1uf9l0TdpsGnzqJUmeGPL9ZB8kudCezoSQ Z+zggcW2VBCGUlLJzEHDpKoqcPI2E6pjjr6hqspDCzUYslCQFhrAV3kpfZeqrcuiQ2IbJ/aBBW0 NIILrYz1Ea0s8XorEir2KqvFXE8aBrrbzrmQenfe9NZp8M62SWzRkpidMYeimqNotzq+LfRHnT7 DrHD49MQhUaYFBqaNW+zdHKMKLcbBtUTdQ0QRwNX/crJeUZnzAE1M2VIFGUtdKm+A3TD57LUMQB 00OfobI3ARu8KJ7JlGzXxUH5z5LSbp/0g6nRWwUr7RKW8lRSCnZwM+yYEtTBTiJXRBMQ1sWAnGl gBxKEvEFboXVOgdBgstfSHcycJS9GGmCQ/cCaVXTfYxFEhKfR/4UbYdNgb5lsfzZMPqdu5iWzhQ eKPwvXZmIFVl3NFEyK0khu+TM8cAfYxltDfdQNoYV4u1ytpPrKXj4aUrvwVcLdvykAyBsPjUKuI a5rfxj5ZHfoEhsc X-Received: by 2002:a05:620a:25d3:b0:8ed:d906:a8da with SMTP id af79cd13be357-8fa86fa6765mr1113897585a.18.1777639909805; Fri, 01 May 2026 05:51:49 -0700 (PDT) Received: from ziepe.ca (crbknf0213w-47-54-130-67.pppoe-dynamic.high-speed.nl.bellaliant.net. [47.54.130.67]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8fc2667d5cesm157094985a.0.2026.05.01.05.51.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 May 2026 05:51:49 -0700 (PDT) Received: from jgg by wakko with local (Exim 4.97) (envelope-from ) id 1wInLQ-00000005BDs-2rAu; Fri, 01 May 2026 09:51:48 -0300 Date: Fri, 1 May 2026 09:51:48 -0300 From: Jason Gunthorpe To: Mostafa Saleh Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, iommu@lists.linux.dev, catalin.marinas@arm.com, will@kernel.org, maz@kernel.org, oliver.upton@linux.dev, joey.gouly@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, joro@8bytes.org, jean-philippe@linaro.org, mark.rutland@arm.com, qperret@google.com, tabba@google.com, vdonnefort@google.com, sebastianene@google.com, keirf@google.com Subject: Re: [PATCH v6 13/25] iommu/arm-smmu-v3-kvm: Probe SMMU HW Message-ID: <20260501125148.GE6912@ziepe.ca> References: <20260501111928.259252-1-smostafa@google.com> <20260501111928.259252-14-smostafa@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260501111928.259252-14-smostafa@google.com> On Fri, May 01, 2026 at 11:19:15AM +0000, Mostafa Saleh wrote: > diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > index 61e6ab364086..157acde0436d 100644 > --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > @@ -4738,12 +4738,6 @@ static int arm_smmu_device_reset(struct arm_smmu_device *smmu) > return 0; > } > > -#define IIDR_IMPLEMENTER_ARM 0x43b > -#define IIDR_PRODUCTID_ARM_MMU_600 0x483 > -#define IIDR_PRODUCTID_ARM_MMU_700 0x487 > -#define IIDR_PRODUCTID_ARM_MMU_L1 0x48a > -#define IIDR_PRODUCTID_ARM_MMU_S3 0x498 > - > static void arm_smmu_device_iidr_probe(struct arm_smmu_device *smmu) > { > u32 reg; > diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h > index 64618299d03a..f904f4d19609 100644 > --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h > +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h > @@ -84,6 +84,12 @@ struct arm_vsmmu; > #define IIDR_REVISION GENMASK(15, 12) > #define IIDR_IMPLEMENTER GENMASK(11, 0) > > +#define IIDR_IMPLEMENTER_ARM 0x43b > +#define IIDR_PRODUCTID_ARM_MMU_600 0x483 > +#define IIDR_PRODUCTID_ARM_MMU_700 0x487 > +#define IIDR_PRODUCTID_ARM_MMU_L1 0x48a > +#define IIDR_PRODUCTID_ARM_MMU_S3 0x498 > + > #define ARM_SMMU_AIDR 0x1C Lets put these hunks in some earlier patch to migrate out the functions/etc I think all these pkvm/arm-smmu-v3.c should just be building up the driver. > +static bool smmu_nesting_supported(struct hyp_arm_smmu_v3_device *smmu) > +{ > + unsigned int implementer, productid, variant, revision; > + u32 reg; > + > + if (!(smmu->features & ARM_SMMU_FEAT_TRANS_S1) || > + !(smmu->features & ARM_SMMU_FEAT_TRANS_S2)) > + return false; > + > + reg = readl_relaxed(smmu->base + ARM_SMMU_IIDR); > + implementer = FIELD_GET(IIDR_IMPLEMENTER, reg); > + productid = FIELD_GET(IIDR_PRODUCTID, reg); > + variant = FIELD_GET(IIDR_VARIANT, reg); > + revision = FIELD_GET(IIDR_REVISION, reg); > + > + if (implementer != IIDR_IMPLEMENTER_ARM) > + return true; > + > + if (productid == IIDR_PRODUCTID_ARM_MMU_600) > + return variant >= 2; > + else if (productid == IIDR_PRODUCTID_ARM_MMU_700) > + return !(variant < 1 || revision < 1); > + > + return true; > +} Why not share all this errata stuff with the idr parsing code too? We already have ARM_SMMU_FEAT_NESTING that has the above calculation. The two drivers use the same ARM_SMMU_FEAT system, I would expect one chunk of shared code to compute the FEATs, who cares if pkvm doesn't use all of them? Use the same errata logic and so on to get to the feat bitmap. Jason