Linux Documentation
 help / color / mirror / Atom feed
From: "Clément Léger" <cleger@rivosinc.com>
To: Evan Green <evan@rivosinc.com>
Cc: linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
	Palmer Dabbelt <palmer@rivosinc.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Jonathan Corbet <corbet@lwn.net>,
	Andrew Jones <ajones@ventanamicro.com>,
	Conor Dooley <conor@kernel.org>,
	Samuel Ortiz <sameo@rivosinc.com>,
	Conor Dooley <conor.dooley@microchip.com>
Subject: Re: [PATCH v2 02/19] riscv: add ISA extension parsing for scalar crypto
Date: Tue, 24 Oct 2023 11:30:08 +0200	[thread overview]
Message-ID: <56f6af04-bdf4-4b85-99dc-9eb4f391d7ad@rivosinc.com> (raw)
In-Reply-To: <d0ea4996-5c48-47b4-99b0-f4211276e0b2@rivosinc.com>



On 24/10/2023 09:18, Clément Léger wrote:
> 
> 
> On 23/10/2023 18:21, Evan Green wrote:
>> On Tue, Oct 17, 2023 at 6:15 AM Clément Léger <cleger@rivosinc.com> wrote:
>>>
>>> From: Evan Green <evan@rivosinc.com>
>>>
>>> The Scalar Crypto specification defines Zk as a shorthand for the
>>> Zkn, Zkr and Zkt extensions. The same follows for both Zkn, Zks and Zbk,
>>> which are all shorthands for various other extensions. The detailed
>>> breakdown can be found in their dt-binding entries.
>>>
>>> Since Zkn also implies the Zbkb, Zbkc and Zbkx extensions, simply passing
>>> "zk" through a DT should enable all of Zbkb, Zbkc, Zbkx, Zkn, Zkr and Zkt.
>>> For example, setting the "riscv,isa" DT property to "rv64imafdc_zk"
>>> should generate the following cpuinfo output:
>>> "rv64imafdc_zicntr_zicsr_zifencei_zihpm_zbkb_zbkc_zbkx_zknd_zkne_zknh_zkr_zkt"
>>>
>>> riscv_isa_ext_data grows a pair of new members, to permit setting the
>>> relevant bits for "bundled" extensions, both while parsing the ISA string
>>> and the new dedicated extension properties
>>>
>>> Co-developed-by: Conor Dooley <conor.dooley@microchip.com>
>>> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
>>> Signed-off-by: Evan Green <evan@rivosinc.com>
>>> Signed-off-by: Clément Léger <cleger@rivosinc.com>
>>
>> My tree might be out of sync, but in my search for riscv_isa_ext, I
>> also found a use in print_isa() (cpu.c) where we're reaching into
>> riscv_isa_ext[].id and assuming it's always valid. If that's still in
>> there we'll want to fix up that spot too, since now with bundles .id
>> may or may not be valid.
> 
> Oh indeed, the array is visible outside of this compilation unit :/.
> I'll check that before sending V3.

After looking a bit more at that, it actually seems that id is used in
cpuinfo to determine which extensions are present which means you are
right, bundle_size needs to be accounted for.

Looking at it also raises the question (again) of exposing the "bundles"
extensions themselves or not in cpuinfo output. With the current setup,
the bundles extensions won't be visible in cpuinfo output. For instance
if Zk was in the isa string, then it will not be visible in the cpuinfo
output, only the child extensions. One solution would be to always have
a valid id for each extension. So we would have one for Zk for instance.

We would then have a similar setup for all "bundles" or "subset"
extensions, they would have a id for all of them. For instance, Zk would
become:

__RISCV_ISA_EXT_DATA_BUNDLE(zk, RISCV_ISA_EXT_ZK, riscv_zk_bundled_exts)

Same would go for zvbb (riscv_zvbb_subset_exts would only contain Zvkb):

__RISCV_ISA_EXT_DATA_BUNDLE(zk, RISCV_ISA_EXT_ZVBB, riscv_zvbb_subset_exts)

For the sake of completeness, I feel like it would be good to have all
the extensions (bundles or not) visible in the riscv_isa_ext.

Any objection ?

Clément

> 
> Clément
> 
>>
>> -Evan

  reply	other threads:[~2023-10-24  9:30 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-17 13:14 [PATCH v2 00/19] riscv: report more ISA extensions through hwprobe Clément Léger
2023-10-17 13:14 ` [PATCH v2 01/19] riscv: hwprobe: factorize hwprobe ISA extension reporting Clément Léger
2023-10-18 17:24   ` Evan Green
2023-10-18 17:33     ` Conor Dooley
2023-10-18 17:36       ` Conor Dooley
2023-10-18 17:45         ` Evan Green
2023-10-19  9:46           ` Clément Léger
2023-10-19 10:24             ` Conor Dooley
2023-10-19 15:58               ` Evan Green
2023-10-19  7:26         ` Clément Léger
2023-10-19 10:22           ` Conor Dooley
2023-10-19 12:29             ` Clément Léger
2023-10-20 10:27             ` Andrew Jones
2023-10-17 13:14 ` [PATCH v2 02/19] riscv: add ISA extension parsing for scalar crypto Clément Léger
2023-10-23 16:21   ` Evan Green
2023-10-24  7:18     ` Clément Léger
2023-10-24  9:30       ` Clément Léger [this message]
2023-10-24 16:37         ` Evan Green
2023-10-24 18:11           ` Clément Léger
2023-10-17 13:14 ` [PATCH v2 03/19] riscv: hwprobe: add support for scalar crypto ISA extensions Clément Léger
2023-10-18 17:24   ` Evan Green
2023-10-19  7:21     ` Clément Léger
2023-10-17 13:14 ` [PATCH v2 04/19] dt-bindings: riscv: add scalar crypto ISA extensions description Clément Léger
2023-10-17 13:14 ` [PATCH v2 05/19] riscv: add ISA extension parsing for vector crypto extensions Clément Léger
2023-10-18  1:45   ` Jerry Shih
2023-10-18 12:52     ` Clément Léger
2023-10-18 17:26       ` Evan Green
2023-10-19  9:35         ` Clément Léger
2023-10-19 15:33           ` Conor Dooley
2023-10-19 16:19             ` Evan Green
2023-10-23  7:24               ` Clément Léger
2023-10-23 16:18                 ` Evan Green
2023-10-20  2:43           ` Jerry Shih
2023-10-23  7:14             ` Clément Léger
2023-10-17 13:14 ` [PATCH v2 06/19] riscv: hwprobe: export vector crypto ISA extensions Clément Léger
2023-10-18 17:27   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 07/19] dt-bindings: riscv: add vector crypto ISA extensions description Clément Léger
2023-10-17 13:14 ` [PATCH v2 08/19] riscv: add ISA extension parsing for Zfh/Zfhmin Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 09/19] riscv: hwprobe: export Zfh/Zfhmin ISA extensions Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 10/19] dt-bindings: riscv: add Zfh[min] ISA extensions description Clément Léger
2023-10-17 13:14 ` [PATCH v2 11/19] riscv: add ISA extension parsing for Zihintntl Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 12/19] riscv: hwprobe: export Zhintntl ISA extension Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 13/19] dt-bindings: riscv: add Zihintntl ISA extension description Clément Léger
2023-10-17 13:14 ` [PATCH v2 14/19] riscv: add ISA extension parsing for Zvfh[min] Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 15/19] riscv: hwprobe: export Zvfh[min] ISA extensions Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 16/19] dt-bindings: riscv: add Zvfh[min] ISA extension description Clément Léger
2023-10-17 13:14 ` [PATCH v2 17/19] riscv: add ISA extension parsing for Zfa Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 18/19] riscv: hwprobe: export Zfa ISA extension Clément Léger
2023-10-18 17:28   ` Evan Green
2023-10-17 13:14 ` [PATCH v2 19/19] dt-bindings: riscv: add Zfa ISA extension description Clément Léger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56f6af04-bdf4-4b85-99dc-9eb4f391d7ad@rivosinc.com \
    --to=cleger@rivosinc.com \
    --cc=ajones@ventanamicro.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=conor.dooley@microchip.com \
    --cc=conor@kernel.org \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=evan@rivosinc.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@rivosinc.com \
    --cc=paul.walmsley@sifive.com \
    --cc=robh+dt@kernel.org \
    --cc=sameo@rivosinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox