Skip to contentSkip to conversation

riscv,isa fixups

PATCH Applied Conor Dooley 4 participants 8 messages Dec 5, 2022 – Jan 24, 2023

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v3 cover riscv,isa fixups

From: Conor Dooley <[email protected]>

I noticed ~today~ while looking at the isa manual that I had not accounted for another couple of edge cases with my regex. As before, I think attempting to validate the canonical order for multiletter stuff makes no sense - but we should totally try to avoid false-positives for combinations that are known to be valid.

All I've changed for v2 was collecting tags & adding in the missing commit reference that Heiko pointed out.

v3 fixes an issue Jess spotted - it's *any* multi-letter extension that can come immediately after the single-letter ones, not just ones starting with Z.

@Palmer, either you can take this once the DT folks have ACKed it if you like, or I will take onto some v6.2-rcN fixes branch. I don't think that there is any urgency :)

Thanks,
Conor.

CC Jessica Clarke <[email protected]>
CC Conor Dooley <[email protected]>
CC Rob Herring <[email protected]>
CC Krzysztof Kozlowski <[email protected]>
CC Paul Walmsley <[email protected]>
CC Palmer Dabbelt <[email protected]>
CC Albert Ou <[email protected]>
CC Heiko Stuebner <[email protected]>
CC Andrew Jones <[email protected]>
CC Guo Ren <[email protected]>

Conor Dooley (2):
dt-bindings: riscv: fix underscore requirement for multi-letter
extensions
dt-bindings: riscv: fix single letter canonical order

 Documentation/devicetree/bindings/riscv/cpus.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Signature · 7 lines
2.38.1


_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
#1 lore raw

PATCH v3 1/2 dt-bindings: riscv: fix underscore requirement for multi-letter extensions

From: Conor Dooley <[email protected]>

The RISC-V ISA Manual allows the first multi-letter extension to avoid a leading underscore. Underscores are only required between multi-letter extensions.

The dt-binding does not validate that a multi-letter extension is canonically ordered, as that'd need an even worse regex than is here, but it should not fail validation for valid ISA strings.

Allow the first multi-letter extension to appear immediately after the single-letter extensions.

Fixes 299824e68bd0 ("dt-bindings: riscv: add new riscv,isa strings for emulators")
---
 Documentation/devicetree/bindings/riscv/cpus.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Documentation/devicetree/bindings/riscv/cpus.yaml +1 -1
index 90a7cabf58fe..97659bb71811 100644
@@ -80,7 +80,7 @@ properties:
       insensitive, letters in the riscv,isa string must be all
       lowercase to simplify parsing.
     $ref: "/schemas/types.yaml#/definitions/string"
-    pattern: ^rv(?:64|32)imaf?d?q?c?b?v?k?h?(?:_[hsxz](?:[a-z])+)*$
+    pattern: ^rv(?:64|32)imaf?d?q?c?b?v?k?h?(?:[hsxz](?:[a-z])+)?(?:_[hsxz](?:[a-z])+)*$
 
   # RISC-V requires 'timebase-frequency' in /cpus, so disallow it here
   timebase-frequency: false
Signature · 7 lines
2.38.1


_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
maintainer Acked-by on v3 1/2
#2 lore raw

Re: [PATCH v3 1/2] dt-bindings: riscv: fix underscore requirement for multi-letter extensions

Quoted 13 lines · Conor Dooley

From: Conor Dooley <[email protected]>

The RISC-V ISA Manual allows the first multi-letter extension to avoid a leading underscore. Underscores are only required between multi-letter extensions.

The dt-binding does not validate that a multi-letter extension is canonically ordered, as that'd need an even worse regex than is here, but it should not fail validation for valid ISA strings.

Allow the first multi-letter extension to appear immediately after the single-letter extensions.

Quoted 8 lines
Fixes 299824e68bd0 ("dt-bindings: riscv: add new riscv,isa strings for emulators")
---
 Documentation/devicetree/bindings/riscv/cpus.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv

#3 lore raw

PATCH v3 2/2 dt-bindings: riscv: fix single letter canonical order

In reply to Conor Dooley

From: Conor Dooley <[email protected]>

I used the wikipedia table for ordering extensions when updating the pattern here in commit 299824e68bd0 ("dt-bindings: riscv: add new riscv,isa strings for emulators").

Unfortunately that table did not match canonical order, as defined by the RISC-V ISA Manual, which defines extension ordering in (what is currently) Table 41, "Standard ISA extension names". Fix things up by re-sorting v (vector) and adding p (packed-simd) & j (dynamic languages). The e (reduced integer) and g (general) extensions are still intentionally left out.

---
 Documentation/devicetree/bindings/riscv/cpus.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Documentation/devicetree/bindings/riscv/cpus.yaml +1 -1
index 97659bb71811..d4148418350c 100644
@@ -80,7 +80,7 @@ properties:
       insensitive, letters in the riscv,isa string must be all
       lowercase to simplify parsing.
     $ref: "/schemas/types.yaml#/definitions/string"
-    pattern: ^rv(?:64|32)imaf?d?q?c?b?v?k?h?(?:[hsxz](?:[a-z])+)?(?:_[hsxz](?:[a-z])+)*$
+    pattern: ^rv(?:64|32)imaf?d?q?c?b?k?j?p?v?h?(?:[hsxz](?:[a-z])+)?(?:_[hsxz](?:[a-z])+)*$
 
   # RISC-V requires 'timebase-frequency' in /cpus, so disallow it here
   timebase-frequency: false
Signature · 7 lines
2.38.1


_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
maintainer Acked-by on v3 2/2
#4 lore raw

Re: [PATCH v3 2/2] dt-bindings: riscv: fix single letter canonical order

Quoted 20 lines · Conor Dooley

From: Conor Dooley <[email protected]>

I used the wikipedia table for ordering extensions when updating the pattern here in commit 299824e68bd0 ("dt-bindings: riscv: add new riscv,isa strings for emulators").

Unfortunately that table did not match canonical order, as defined by the RISC-V ISA Manual, which defines extension ordering in (what is currently) Table 41, "Standard ISA extension names". Fix things up by re-sorting v (vector) and adding p (packed-simd) & j (dynamic languages). The e (reduced integer) and g (general) extensions are still intentionally left out.

Quoted 4 lines
---
 Documentation/devicetree/bindings/riscv/cpus.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv

maintainer Reviewed-by Acked-by on the v3 series
#5 lore raw
In reply to Conor Dooley
Quoted 11 lines · Conor Dooley

From: Conor Dooley <[email protected]>

I noticed ~today~ while looking at the isa manual that I had not accounted for another couple of edge cases with my regex. As before, I think attempting to validate the canonical order for multiletter stuff makes no sense - but we should totally try to avoid false-positives for combinations that are known to be valid.

All I've changed for v2 was collecting tags & adding in the missing commit reference that Heiko pointed out.

Quoted 7 lines

v3 fixes an issue Jess spotted - it's *any* multi-letter extension that can come immediately after the single-letter ones, not just ones starting with Z.

@Palmer, either you can take this once the DT folks have ACKed it if you like, or I will take onto some v6.2-rcN fixes branch. I don't think that there is any urgency :)

Sorry I missed these.

We can just do a shared tag if you have stuff that depends on them? That'll let me keep fixes clean, as I'm running the DT stuff too now. Though maybe it doesn't matter so much because I'm not really taking any DT stuff.

Quoted 24 lines

Thanks,
Conor.

CC Jessica Clarke <[email protected]>
CC Conor Dooley <[email protected]>
CC Rob Herring <[email protected]>
CC Krzysztof Kozlowski <[email protected]>
CC Paul Walmsley <[email protected]>
CC Palmer Dabbelt <[email protected]>
CC Albert Ou <[email protected]>
CC Heiko Stuebner <[email protected]>
CC Andrew Jones <[email protected]>
CC Guo Ren <[email protected]>

Conor Dooley (2):
dt-bindings: riscv: fix underscore requirement for multi-letter
extensions
dt-bindings: riscv: fix single letter canonical order

 Documentation/devicetree/bindings/riscv/cpus.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
#6 lore raw
Quoted 20 lines · Palmer Dabbelt
Quoted 11 lines · Conor Dooley

From: Conor Dooley <[email protected]>

I noticed ~today~ while looking at the isa manual that I had not accounted for another couple of edge cases with my regex. As before, I think attempting to validate the canonical order for multiletter stuff makes no sense - but we should totally try to avoid false-positives for combinations that are known to be valid.

All I've changed for v2 was collecting tags & adding in the missing commit reference that Heiko pointed out.

Quoted 7 lines

v3 fixes an issue Jess spotted - it's *any* multi-letter extension that can come immediately after the single-letter ones, not just ones starting with Z.

@Palmer, either you can take this once the DT folks have ACKed it if you like, or I will take onto some v6.2-rcN fixes branch. I don't think that there is any urgency :)

Quoted 8 lines

Sorry I missed these.

We can just do a shared tag if you have stuff that depends on them? That'll let me keep fixes clean, as I'm running the DT stuff too now. Though maybe it doesn't matter so much because I'm not really taking any DT stuff.

Nah, shared tag is not needed.
Noone's got a DT with multiletter stuff that needs to be merged yet. Feel free to take on on fixes or for-next.

Thanks,
Conor.

#7 lore raw
In reply to Conor Dooley
This series was applied to riscv/linux.git (fixes) by Palmer Dabbelt <[email protected]>:

Hello:

This series was applied to riscv/linux.git (fixes) by Palmer Dabbelt <[email protected]>:

Quoted 9 lines · On Mon, 5 Dec 2022 17:44:58 +0000 you wrote:

From: Conor Dooley <[email protected]>

I noticed ~today~ while looking at the isa manual that I had not accounted for another couple of edge cases with my regex. As before, I think attempting to validate the canonical order for multiletter stuff makes no sense - but we should totally try to avoid false-positives for combinations that are known to be valid.

[...]

Here is the summary with links:
- [v3,1/2] dt-bindings: riscv: fix underscore requirement for multi-letter extensions

    https://git.kernel.org/riscv/c/ec64efc4966e
  - [v3,2/2] dt-bindings: riscv: fix single letter canonical order
    https://git.kernel.org/riscv/c/a943385aa801

You are awesome, thank you!

Signature · 2 lines
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html