Received: by 2002:a05:7412:b10a:b0:f3:1519:9f41 with SMTP id az10csp188156rdb; Thu, 30 Nov 2023 01:57:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IF1r9m8ahP0qjWqJRILUU1q/Nm+8cdMy/mXHYRwldEpdCi0LzEWbkzi2h4s9vlpxaE68KEH X-Received: by 2002:a17:90b:33cc:b0:285:c484:566f with SMTP id lk12-20020a17090b33cc00b00285c484566fmr12469814pjb.40.1701338255572; Thu, 30 Nov 2023 01:57:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701338255; cv=none; d=google.com; s=arc-20160816; b=v17vbw+j5KUzxxTTdQxhmWhIX9biMz1yVsJjKb2uk0zc9U1FTVirlwMgptMtWnqVMc t6qt2gE4VQmgW/YlLZJ5zXG5ahWrs61pnDn2wbuzGddA2WL1us0Ed1Fz6xf+ZWs4R0mU aU8YB1inYIMGdWcvXvlcpAg3LQRngnGvQ+Sl1pVm22klzn2XKAcc7Gzr/mIINkJ/NhEq 8tuXgmOoBu/NZsjKZ9UEsuW5lfytBKT+8kizEcbS9XZdqkYeHWcYmKDRkzeOlHBCfpNE aJhhLUiP1lhcwVbyyGKok1CBeAB3utgnG80vR/xv/2x4G3FwcCQ4pNA8njwJTsj8oGZ+ hb4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=lt1PUnr119M0i4YTMmp4J1gSCrPaIFDk8C3FCD9pyMw=; fh=7I4AdvFaI/BRrOZN0LfJJ5M7KWZUDKFRD28ML/3C8Cs=; b=w3QQ0ozcjL1XrqBhENIgWHQXhXxreK30XP+5dx9fzsL+VA21WfflOOQUvNboYoS86Y zcpPfVi51rFdkX+m7Wrxg5oHm7CYyp5NL8MBKWV/VjHEY2NFPg7BOQt30L4qs/IozGHy tylysZYBF5GMLIzkC546E/yOxpJa4uKYKokud3y8RYpC6Hk4ZW6vyiHsOB2SoBak9/dI QEoMC+Bbeb1wvEZZyGFLd7JlDZJI0wgTjSdkaFgxKZd39+rYXGPJ6o2pc46BFGT4XG7o ipch5EbjTK+jaHBVPWBLizQe00jeYrMz0VdBfBCFw2YsUi+n6ibCgeq9DnjPltLYX554 G4lQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Abovv0qw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id z17-20020a17090ab11100b002850d5f8ab3si3259428pjq.174.2023.11.30.01.57.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Nov 2023 01:57:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Abovv0qw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 13A94802AF3D; Thu, 30 Nov 2023 01:57:34 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231843AbjK3J5Y (ORCPT + 99 others); Thu, 30 Nov 2023 04:57:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53548 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231755AbjK3J5W (ORCPT ); Thu, 30 Nov 2023 04:57:22 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ACA0010E3 for ; Thu, 30 Nov 2023 01:57:28 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8F54C433C7; Thu, 30 Nov 2023 09:57:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701338248; bh=At+gyQ/xlCRkksDXB0AhXb0mnnG01bKhfjPTqRTzZXE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Abovv0qwUCZwPg8D/kLwSak9MM+KwQp+Imy7tTEjlQI4TY8Oj1MxhxXO/s1kfuj82 +iNWONY+mKsQeZqsGsTjxZ78vbWI0QJNgET64WHrdMtNUEX1F1XHhHp/K4kQb+vfPl c3UMMRIvwhJVmfxykZmFGThLgoz1F2g2t400stCNhVt3YEK01lSqI8nrmPtYRfBuO0 cHyQ2OHF+Bpf2/T9Y7a65VBDx9Bfl0EzNrLepERg6lfZLglPRu8z7IU7mtQUsN1E6k fGAFjaDM5ImkJBgXkNe8tTaU13bG5G1zA4VcbvgiFcgj72sJ/dLqa0TYu92+klwKcd YZWwy67I+TJZA== Date: Thu, 30 Nov 2023 09:57:22 +0000 From: Conor Dooley To: Anup Patel Cc: Inochi Amaoto , Daniel Lezcano , Thomas Gleixner , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Paul Walmsley , Palmer Dabbelt , Albert Ou , Chen Wang , Anup Patel , Samuel Holland , Guo Ren , Jisheng Zhang , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH v4 1/2] dt-bindings: timer: thead,c900-aclint-mtimer: separate mtime and mtimecmp regs Message-ID: <20231130-decibel-passenger-6e932b1ce554@spud> References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="MkvK8Enbv+3r7NNr" Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Thu, 30 Nov 2023 01:57:34 -0800 (PST) --MkvK8Enbv+3r7NNr Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Nov 30, 2023 at 03:01:24PM +0530, Anup Patel wrote: > On Sat, Nov 18, 2023 at 12:39=E2=80=AFPM Inochi Amaoto wrote: > > > > The timer registers of aclint don't follow the clint layout and can > > be mapped on any different offset. As sg2042 uses separated timer > > and mswi for its clint, it should follow the aclint spec and have > > separated registers. > > > > The previous patch introduced a new type of T-HEAD aclint timer which > > has clint timer layout. Although it has the clint timer layout, it > > should follow the aclint spec and uses the separated mtime and mtimecmp > > regs. So a ABI change is needed to make the timer fit the aclint spec. > > > > To make T-HEAD aclint timer more closer to the aclint spec, use > > regs-names to represent the mtimecmp register, which can avoid hack > > for unsupport mtime register of T-HEAD aclint timer. > > > > Signed-off-by: Inochi Amaoto > > Fixes: 4734449f7311 ("dt-bindings: timer: Add Sophgo sg2042 CLINT timer= ") > > Link: https://lists.infradead.org/pipermail/opensbi/2023-October/005693= =2Ehtml > > Link: https://github.com/riscv/riscv-aclint/blob/main/riscv-aclint.adoc >=20 > The ratified Priv v1.12 specification defines platform specific M-mode ti= mer > registers without defining any layout of mtime and mtimecmp registers. > (Refer, "3.2.1 Machine Timer Registers (mtime and mtimecmp)") >=20 > The "thead,c900-aclint-mtimer" can be thought of as is one possible > implementation of "riscv,mtimer" defined by the Priv v1.12 specificaiton. >=20 > If it is not too late then I suggest making this binding into generic > "riscv,mtimer" binding. We could definitely reorganise things, it's not too late for that as implementation specific compatibles would be needed regardless, so software that would've matched on those will continue to do so. That said, does this platform actually implement the 1.12 priv spec if there is no mtime register? The section you reference says: "Platforms provide a real-time counter, exposed as a memory-mapped machine-mode read-write register, mtime." It seems to me like this hardware is not suitable for a generic "riscv,mtimer" fallback. Am I missing something there Anup? It doesn't even implement the draft aclint spec, given that that says: "The MTIMER device provides machine-level timer functionality for a set of HARTs on a RISC-V platform. It has a single fixed-frequency monotonic time counter (MTIME) register and a time compare register (MTIMECMP) for each HART connected to the MTIMER device." But I already said no to having a generic, "riscv" prefixed, compatible for that, given it is in draft form. Cheers, Conor. > > --- > > .../timer/thead,c900-aclint-mtimer.yaml | 42 ++++++++++++++++++- > > 1 file changed, 41 insertions(+), 1 deletion(-) > > > > diff --git a/Documentation/devicetree/bindings/timer/thead,c900-aclint-= mtimer.yaml b/Documentation/devicetree/bindings/timer/thead,c900-aclint-mti= mer.yaml > > index fbd235650e52..053488fb1286 100644 > > --- a/Documentation/devicetree/bindings/timer/thead,c900-aclint-mtimer.= yaml > > +++ b/Documentation/devicetree/bindings/timer/thead,c900-aclint-mtimer.= yaml > > @@ -17,7 +17,20 @@ properties: > > - const: thead,c900-aclint-mtimer > > > > reg: > > - maxItems: 1 > > + oneOf: > > + - items: > > + - description: MTIME Registers > > + - description: MTIMECMP Registers > > + - items: > > + - description: MTIMECMP Registers > > + > > + reg-names: > > + oneOf: > > + - items: > > + - const: mtime > > + - const: mtimecmp > > + - items: > > + - const: mtimecmp > > > > interrupts-extended: > > minItems: 1 > > @@ -28,8 +41,34 @@ additionalProperties: false > > required: > > - compatible > > - reg > > + - reg-names > > - interrupts-extended > > > > +allOf: > > + - if: > > + properties: > > + compatible: > > + contains: > > + const: thead,c900-aclint-mtimer > > + then: > > + properties: > > + reg: > > + items: > > + - description: MTIMECMP Registers > > + reg-names: > > + items: > > + - const: mtimecmp > > + else: > > + properties: > > + reg: > > + items: > > + - description: MTIME Registers > > + - description: MTIMECMP Registers > > + reg-names: > > + items: > > + - const: mtime > > + - const: mtimecmp > > + > > examples: > > - | > > timer@ac000000 { > > @@ -39,5 +78,6 @@ examples: > > <&cpu3intc 7>, > > <&cpu4intc 7>; > > reg =3D <0xac000000 0x00010000>; > > + reg-names =3D "mtimecmp"; > > }; > > ... > > -- > > 2.42.1 > > > > --MkvK8Enbv+3r7NNr Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCZWhcggAKCRB4tDGHoIJi 0kn8AQDqzj5sPhrTZ4MnXUrint8opq95zpJJFvIiNf7BO7n8lAEA1WQHbj11P6xz RHWuZ9KBckPhPthVbmqyHo6rJmIi6A4= =YOvF -----END PGP SIGNATURE----- --MkvK8Enbv+3r7NNr--