qemu-riscv
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DT schema warnings on Risc-V virt machine


From: Conor Dooley
Subject: Re: DT schema warnings on Risc-V virt machine
Date: Wed, 3 Aug 2022 23:27:16 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0

On 03/08/2022 18:05, Rob Herring wrote:
> Hey folks,
> 
> FYI, I ran DT validation on the Risc-V 'virt' machine and these are the 
> warnings:
> 
> /home/rob/riscv-virt.dtb: cpu@0: riscv,isa:0: 'rv64imafdcsuh' is not one of 
> ['rv64imac', 'rv64imafdc']
>         From schema: 
> /home/rob/proj/git/linux-dt/Documentation/devicetree/bindings/riscv/cpus.yaml

This one is party a QEMU problem & should've been fixed - but the fix
was never applied:
https://lore.kernel.org/qemu-devel/20190813225307.5792-1-palmer@sifive.com/
I think this just needs a rebase & a resend which I can do.
I think kernel-side we need to add a new string riscv,isa string but it
is not the one in your error message - it's either "rv64imafdch" or
"rv64imafdch_zicsr_zifencei_zba_zbb_zbc_zbs". Palmer, what is your
take on that? Is only the short misa meant to go into the dt?

For the plic/clint related warnings, documenting the
"riscv,{plic,clint}0" variants seems to be to be the right thing to do
as they're already in the kernel in drivers. I'll send patches for
these.

BTW Rob, what version of qemu were you using? I saw more errors on
QEMU's master branch - like the following from a dump of the virt
machine:
/stuff/qemu/qemu.dtb: platform@4000000: $nodename:0: 'platform@4000000' does 
not match '^([a-z][a-z0-9\\-]+-bus|bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$'
        From schema: 
/home/conor/.local/lib/python3.9/site-packages/dtschema/schemas/simple-bus.yaml

Using a platform bus seems to be a core QEMU feature, used on multiple
archs in hw/core/sysbus-fdt.c - but that violates the schema. Not sure
what to do there.

/stuff/qemu/qemu.dtb: soc: poweroff: {'value': [[21845]], 'offset': [[0]], 
'regmap': [[4]], 'compatible': ['syscon-poweroff']} should not be valid under 
{'type': 'object'}
        From schema: 
/home/conor/.local/lib/python3.9/site-packages/dtschema/schemas/simple-bus.yaml
/stuff/qemu/qemu.dtb: soc: reboot: {'value': [[30583]], 'offset': [[0]], 
'regmap': [[4]], 'compatible': ['syscon-reboot']} should not be valid under 
{'type': 'object'}
        From schema: 
/home/conor/.local/lib/python3.9/site-packages/dtschema/schemas/simple-bus.yaml

These two seem to be that the creation script adds them as subnodes of
the soc bus not subnodes of the syscon. A QEMU problem rather than a dt
bindings problem.

The rest seem to be a variety of incorrect names being used in riscv's
virt.c in QEMU. I guess I'll send fixes for those too..

Thanks,
Conor



reply via email to

[Prev in Thread] Current Thread [Next in Thread]