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 08757C4332F for ; Fri, 9 Dec 2022 12:35:33 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=nQRbEZj1pKav/vn9ne/IUfm6b2b9EKb1Dt8yLDuJVlo=; b=u/uWR75pp35S+7 a3iPcU9pgGfLNhIjR7tiSolKCZav+FLsWmHAEaYw/vKUlxU/gtXhwMW/ZS2Hct/ExmHByh9ibXgXP j94M5+qBhqJjt7AnVyocBudj3P6W3bWGS6DCeuM3qt/VQvOES5lxwNrE4yCsimaz07QbGjLOP8ubL 75SXJvX4bqtuJlu/sL2GiHTdGnbxk1Le+7MzlckmGMwc3t48DDmMnLHJ2U8FP5l0S7n7OrqjvqIqT vXfJzwklPcMzl99vg4uJ2cnp9xjax1NS+de+90jDoAPQMC57lTD+2Hp8oznkGI9uneL5Wioydyzlc +7V9LLZLuLTttg/+P96Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p3caO-007YTZ-78; Fri, 09 Dec 2022 12:34:40 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p3caK-007YQY-Nx for linux-arm-kernel@lists.infradead.org; Fri, 09 Dec 2022 12:34:38 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id DABDC23A; Fri, 9 Dec 2022 04:34:38 -0800 (PST) Received: from FVFF77S0Q05N (unknown [10.57.39.232]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 061643F73B; Fri, 9 Dec 2022 04:34:30 -0800 (PST) Date: Fri, 9 Dec 2022 12:34:28 +0000 From: Mark Rutland To: Mark Brown Cc: Catalin Marinas , Will Deacon , Suzuki K Poulose , James Morse , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 3/6] arm64/sysreg: Allow enumerations to be declared as signed Message-ID: References: <20221207-arm64-sysreg-helpers-v1-0-149fa1308a23@kernel.org> <20221207-arm64-sysreg-helpers-v1-3-149fa1308a23@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221207-arm64-sysreg-helpers-v1-3-149fa1308a23@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221209_043436_846270_C4DED6AE X-CRM114-Status: GOOD ( 17.22 ) 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="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, Dec 08, 2022 at 04:03:24PM +0000, Mark Brown wrote: > Most of our enumerations follow a standard scheme where the values can be > treated as signed however there are some where the value must be treated > as signed. Provide a new SignedEnum which allows this to be specified in > the sysreg definition and emit a REG_FIELD_SIGN define for all enumerations > which is a boolean corresponding to our current FTR_UNSIGNED and FTR_SIGNED > macros. > > Signed-off-by: Mark Brown In future we might want to be explicit about which enums are unsigned feature enums, and which are "just" enums without any ordering of values or sign (e.g. CTR_EL0.L1Ip). i.e. we might want to explciitly add an `UnsignedEnum`, and have plain `Enum` not define a __SIGN definition. Minor nit: since __SIGN is a boolean, it'd make more sense for that to be named __SIGNED. Regardless, this makes sense to me, so even for this as-is: Acked-by: Mark Rutland Mark. > --- > arch/arm64/tools/gen-sysreg.awk | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/arch/arm64/tools/gen-sysreg.awk b/arch/arm64/tools/gen-sysreg.awk > index c350164a3955..e105d6fc66a4 100755 > --- a/arch/arm64/tools/gen-sysreg.awk > +++ b/arch/arm64/tools/gen-sysreg.awk > @@ -44,6 +44,11 @@ function define_field(reg, field, msb, lsb) { > define(reg "_" field "_WIDTH", msb - lsb + 1) > } > > +# Print a field _SIGNED definition for a field > +function define_field_sign(reg, field, sign) { > + define(reg "_" field "_SIGN", sign) > +} > + > # Parse a "[:]" string into the global variables @msb and @lsb > function parse_bitdef(reg, field, bitdef, _bits) > { > @@ -233,6 +238,18 @@ END { > next > } > > +/^SignedEnum/ { > + change_block("Enum<", "Sysreg", "Enum") > + expect_fields(3) > + field = $3 > + parse_bitdef(reg, field, $2) > + > + define_field(reg, field, msb, lsb) > + define_field_sign(reg, field, "true") > + > + next > +} > + > /^Enum/ { > change_block("Enum", "Sysreg", "Enum") > expect_fields(3) > @@ -240,6 +257,7 @@ END { > parse_bitdef(reg, field, $2) > > define_field(reg, field, msb, lsb) > + define_field_sign(reg, field, "false") > > next > } > > -- > 2.30.2 > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel