qemu-riscv
[Top][All Lists]
Advanced

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

Re: [PATCH] hw/riscv/virt.c: add address-cells in create_fdt_one_aplic()


From: Conor Dooley
Subject: Re: [PATCH] hw/riscv/virt.c: add address-cells in create_fdt_one_aplic()
Date: Thu, 30 May 2024 16:35:17 +0100

On Thu, May 30, 2024 at 09:26:58AM -0300, Daniel Henrique Barboza wrote:
> 
> 
> On 5/30/24 08:06, Andrew Jones wrote:
> > On Thu, May 30, 2024 at 01:05:41PM GMT, Andrew Jones wrote:
> > > On Thu, May 30, 2024 at 05:49:49AM GMT, Daniel Henrique Barboza wrote:
> > > > We need #address-cells properties in all interrupt controllers that are
> > > > referred by an interrupt-map [1]. For the RISC-V machine, both PLIC and
> > > > APLIC controllers must have this property.
> > > > 
> > > > PLIC already sets it in create_fdt_socket_plic(). Set the property for
> > > > APLIC in create_fdt_one_aplic().
> > > > 
> > > > [1] 
> > > > https://lore.kernel.org/linux-arm-kernel/CAL_JsqJE15D-xXxmELsmuD+JQHZzxGzdXvikChn6KFWqk6NzPw@mail.gmail.com/
> > > 
> > > There are other issues[2] with the DT nodes that we should address at the
> > > same time.
> > > 
> > > [2] https://lore.kernel.org/all/20240529-rust-tile-a05517a6260f@spud/
> > 
> > I meant to CC Conor. Doing that now.
> 
> I'll take a look at these other DT nodes issues.
> 
> Conor, mind give me pointers on how do I reproduce the validation you did
> in [2]? Using upstream 'dtc' I have stuff like:
> 
> ../qemu/qemu_dts.dts:261.4-68: Warning (interrupts_extended_property): 
> /soc/aplic@d000000:interrupts-extended: cell 0 is not a phandle reference
> 
> Which seems to also be an error but it's not what you reported. Are you
> using 'dt-validate' from dt-schema?

Yeah, dt-validate. There's probably some stuff that I could add to my
machine to make it more interesting, but I ran:
        $(qemu) -smp 4 -M virt,aia=aplic-imsic,dumpdtb=$(qemu_dtb) -cpu max -m 
1G -nographic
        dt-validate --schema $(processed_schema) $(qemu_dtb) 2>&1 | tee 
logs/dtbdump.log

A processed schema is a pre-requisite, and I usually have one sitting
around from running dtbs_check or dt_binding_check in Linux, but I think
you can use dt-rebasing to generate one either:
https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/tree/Bindings/Makefile

You'll see a bunch of noise from undocumented isa extensions, but at the
end of the output should be the aplic complaints.

I forgot I had it disabled to test something when I did that test the
other day, there's also complaints about the imsics:
qemu.dtb: imsics@28000000: $nodename:0: 'imsics@28000000' does not match 
'^interrupt-controller(@[0-9a-f,]+)*$'
        from schema $id: 
http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
qemu.dtb: imsics@28000000: compatible:0: 'riscv,imsics' is not one of 
['qemu,imsics']
        from schema $id: 
http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
qemu.dtb: imsics@28000000: compatible: ['riscv,imsics'] is too short
        from schema $id: 
http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
qemu.dtb: imsics@28000000: '#msi-cells' is a required property
        from schema $id: 
http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
qemu.dtb: imsics@28000000: Unevaluated properties are not allowed ('compatible' 
was unexpected)
        from schema $id: 
http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
qemu.dtb: imsics@24000000: $nodename:0: 'imsics@24000000' does not match 
'^interrupt-controller(@[0-9a-f,]+)*$'
        from schema $id: 
http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
qemu.dtb: imsics@24000000: compatible:0: 'riscv,imsics' is not one of 
['qemu,imsics']
        from schema $id: 
http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
qemu.dtb: imsics@24000000: compatible: ['riscv,imsics'] is too short
        from schema $id: 
http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
qemu.dtb: imsics@24000000: '#msi-cells' is a required property
        from schema $id: 
http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
qemu.dtb: imsics@24000000: Unevaluated properties are not allowed ('compatible' 
was unexpected)
        from schema $id: 
http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#

Cheers,
Conor.

Attachment: signature.asc
Description: PGP signature


reply via email to

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