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+jqhzzxgzdxvikchn6kfwqk6n...@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.
signature.asc
Description: PGP signature