Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp974290imm; Wed, 26 Sep 2018 09:35:26 -0700 (PDT) X-Google-Smtp-Source: ACcGV61EVmXp7McHr1iSXYdAlUJpaD99wXRFSjLwCjuVxmgt+q4D7nZsaGauQKubksWsl2cNw2yZ X-Received: by 2002:a63:574c:: with SMTP id h12-v6mr6445311pgm.423.1537979726704; Wed, 26 Sep 2018 09:35:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537979726; cv=none; d=google.com; s=arc-20160816; b=x5EBczQqvD6OQrW8DDi8cgzaGasQsSuoP/gYmDhxaC7zAkxcuZHaU/r5wJGy1N9AHL y4mkAS4sBZsROF66Eerxo8iDXXhFiyTfAi0vJwnXFuySHTCVcQypkKkBLd0FIu7+W+NV YZZzPUUA5ZIPgNknrpbNq9Vfex/HfW5hzubexZRkqjmoavwd7uz9u4G7eD4VZcWMrmV8 tTueGuUpKXa3yW8oMextNN7/5woR9ro5vwSvbciKHNC3dCkmCxvjddPexBXK0D1S9ZoC 30zpOo5w/pm3wSZqaPWIQNDupbfHdi4sp4uvVPOv3Ehtm5f9oS9CZKYtZtKFRIqAd2QW SkDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=TLe7pFFm3CpDD8z8kFTvj202Igu6UYpiI03UhCBAtJA=; b=pAPEfILu3Pc8fW6Ecq5B6k/h1Ln9Q6ZrCFSTU5XrBtBx+SxGpwvvSDk/ouygjs75/K clqeT7T8yfwEWTVr8NUMK8BE/puxhhPCIL3su8GR6/byyjnjqddUw7RtwQ6W0h2JaR+/ UAzksczy9gbiIDT39VCuFNcL9lMVE2GuzcR6yny8zqqx0+M63X3wCtqmAqAjLInaibSC Af+WGT6p+lYR+R4X+Pmz68Q/4x56UtNW6hyU0ZK2yva67gkCDjFuwE0t3PrhdQ36Xx8y pOqPfcBJXJd7XfqM+/MqOpJi44CNb3r2saFzTC4vfUVjyXMNNdqa6uhcsGaPPW947Vjl 4Skw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x11-v6si1655382plv.434.2018.09.26.09.35.11; Wed, 26 Sep 2018 09:35:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728720AbeIZWrY (ORCPT + 99 others); Wed, 26 Sep 2018 18:47:24 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:49954 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727823AbeIZWrX (ORCPT ); Wed, 26 Sep 2018 18:47:23 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5358E1684; Wed, 26 Sep 2018 09:33:38 -0700 (PDT) Received: from en101.Emea.Arm.com (en101.emea.arm.com [10.4.13.23]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 873903F5B3; Wed, 26 Sep 2018 09:33:35 -0700 (PDT) From: Suzuki K Poulose To: linux-arm-kernel@lists.infradead.org Cc: kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, marc.zyngier@arm.com, cdall@kernel.org, eric.auger@redhat.com, suzuki.poulose@arm.com, will.deacon@arm.com, dave.martin@arm.com, peter.maydell@linaro.org, pbonzini@redhat.com, rkrcmar@redhat.com, julien.grall@arm.com, linux-kernel@vger.kernel.org, Catalin Marinas , James Morse Subject: [PATCH v6 04/18] arm64: Add a helper for PARange to physical shift conversion Date: Wed, 26 Sep 2018 17:32:40 +0100 Message-Id: <20180926163258.20218-5-suzuki.poulose@arm.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180926163258.20218-1-suzuki.poulose@arm.com> References: <20180926163258.20218-1-suzuki.poulose@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On arm64, ID_AA64MMFR0_EL1.PARange encodes the maximum Physical Address range supported by the CPU. Add a helper to decode this to actual physical shift. If we hit an unallocated value, return the maximum range supported by the kernel. This will be used by KVM to set the VTCR_EL2.T0SZ, as it is about to move its place. Having this helper keeps the code movement cleaner. Cc: Catalin Marinas Cc: Marc Zyngier Cc: James Morse Cc: Christoffer Dall Reviewed-by: Eric Auger Signed-off-by: Suzuki K Poulose --- Changes since V4: - Add a comment on the result for unknown values. --- arch/arm64/include/asm/cpufeature.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h index 1717ba1db35d..072cc1c970c2 100644 --- a/arch/arm64/include/asm/cpufeature.h +++ b/arch/arm64/include/asm/cpufeature.h @@ -530,6 +530,26 @@ void arm64_set_ssbd_mitigation(bool state); static inline void arm64_set_ssbd_mitigation(bool state) {} #endif +static inline u32 id_aa64mmfr0_parange_to_phys_shift(int parange) +{ + switch (parange) { + case 0: return 32; + case 1: return 36; + case 2: return 40; + case 3: return 42; + case 4: return 44; + case 5: return 48; + case 6: return 52; + /* + * A future PE could use a value unknown to the kernel. + * However, by the "D10.1.4 Principles of the ID scheme + * for fields in ID registers", ARM DDI 0487C.a, any new + * value is guaranteed to be higher than what we know already. + * As a safe limit, we return the limit supported by the kernel. + */ + default: return CONFIG_ARM64_PA_BITS; + } +} #endif /* __ASSEMBLY__ */ #endif -- 2.19.0