Skip to content

Commit 1b5964b

Browse files
Merge patch series "Fix dt-validate issues on qemu dtbdumps due to dt-bindings"
Conor Dooley <mail@conchuod.ie> says: From: Conor Dooley <conor.dooley@microchip.com> The device trees produced automatically for the virt and spike machines fail dt-validate on several grounds. Some of these need to be fixed in the linux kernel's dt-bindings, but others are caused by bugs in QEMU. Patches been sent that fix the QEMU issues [0], but a couple of them need to be fixed in the kernel's dt-bindings. The first patches add compatibles for "riscv,{clint,plic}0" which are present in drivers and the auto generated QEMU dtbs. Thanks to Rob Herring for reporting these issues [1], Conor. To reproduce the errors: ./build/qemu-system-riscv64 -nographic -machine virt,dumpdtb=qemu.dtb dt-validate -p /path/to/linux/kernel/Documentation/devicetree/bindings/processed-schema.json qemu.dtb (The processed schema needs to be generated first) 0 - https://lore.kernel.org/linux-riscv/20220810184612.157317-1-mail@conchuod.ie/ 1 - https://lore.kernel.org/linux-riscv/20220803170552.GA2250266-robh@kernel.org/ * fix-dt-validate: dt-bindings: riscv: add new riscv,isa strings for emulators dt-bindings: interrupt-controller: sifive,plic: add legacy riscv compatible dt-bindings: timer: sifive,clint: add legacy riscv compatible Link: https://lore.kernel.org/r/20220823183319.3314940-1-mail@conchuod.ie [Palmer: some cover letter pruning, and dropped Rust-for-Linux#4 as suggested.] Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
2 parents 90e0d94 + 299824e commit 1b5964b

3 files changed

Lines changed: 19 additions & 9 deletions

File tree

Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ properties:
6666
- enum:
6767
- allwinner,sun20i-d1-plic
6868
- const: thead,c900-plic
69+
- items:
70+
- const: sifive,plic-1.0.0
71+
- const: riscv,plic0
72+
deprecated: true
73+
description: For the QEMU virt machine only
6974

7075
reg:
7176
maxItems: 1

Documentation/devicetree/bindings/riscv/cpus.yaml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ title: RISC-V bindings for 'cpus' DT nodes
99
maintainers:
1010
- Paul Walmsley <paul.walmsley@sifive.com>
1111
- Palmer Dabbelt <palmer@sifive.com>
12+
- Conor Dooley <conor@kernel.org>
1213

1314
description: |
1415
This document uses some terminology common to the RISC-V community
@@ -79,9 +80,7 @@ properties:
7980
insensitive, letters in the riscv,isa string must be all
8081
lowercase to simplify parsing.
8182
$ref: "/schemas/types.yaml#/definitions/string"
82-
enum:
83-
- rv64imac
84-
- rv64imafdc
83+
pattern: ^rv(?:64|32)imaf?d?q?c?b?v?k?h?(?:_[hsxz](?:[a-z])+)*$
8584

8685
# RISC-V requires 'timebase-frequency' in /cpus, so disallow it here
8786
timebase-frequency: false

Documentation/devicetree/bindings/timer/sifive,clint.yaml

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,18 @@ description:
2222

2323
properties:
2424
compatible:
25-
items:
26-
- enum:
27-
- sifive,fu540-c000-clint
28-
- starfive,jh7100-clint
29-
- canaan,k210-clint
30-
- const: sifive,clint0
25+
oneOf:
26+
- items:
27+
- enum:
28+
- sifive,fu540-c000-clint
29+
- starfive,jh7100-clint
30+
- canaan,k210-clint
31+
- const: sifive,clint0
32+
- items:
33+
- const: sifive,clint0
34+
- const: riscv,clint0
35+
deprecated: true
36+
description: For the QEMU virt machine only
3137

3238
description:
3339
Should be "<vendor>,<chip>-clint" and "sifive,clint<version>".

0 commit comments

Comments
 (0)