Apologies for the formatting.

After a few tests with qemu I found that the dtb written by qemu doesn't
contain the nodes in question. When the VM is run, the dtb is updated
by the runtime firmware, skiboot, which adds those nodes. But the
safe dtb at [2] earlier also must have had skiboot modifying its internal
structure. I will head over to skiboot for now.

Thanks,
Amol

On 16/03/2022, Amol <suratia...@gmail.com> wrote:
> Hello,
>
> Below is a part of the dtb file as generated by
> qemu's powernv9 emulation:
>
> / {
>       ....
>       compatible = "qemu,powernv9\0ibm,powernv";
>       model = "IBM PowerNV (emulated by qemu)";
>       pciex@600c3c0000000 {
>               compatible = "ibm,power9-pciex\0ibm,ioda3-phb";
>               device_type = "pciex";
>               ....
>               #address-cells = <0x03>;
>               #size-cells = <0x02>;
>               #interrupt-cells = <0x01>;
>               interrupt-parent = <0x804e>;
>               ranges = <0x2000000 0x00 0x80000000 0x600c0 0x00 0x00 
> 0x7fff0000>;
>               ....
>               pci@0 {
>                       interrupts = <0x01>;
>                       #address-cells = <0x03>;
>                       #size-cells = <0x02>;
>                       #interrupt-cells = <0x01>;
>                       interrupt-map-mask = <0x00 0x00 0x00 0x07>;
>                       interrupt-map =
> <0x00 0x00 0x00 0x01 0x804e 0xfeff8 0x01
>  0x00 0x00 0x00 0x02 0x804e 0xfeff9 0x01
>  0x00 0x00 0x00 0x03 0x804e 0xfeffa 0x01
>  0x00 0x00 0x00 0x04 0x804e 0xfeffb 0x01>;
>                       ranges = <0x2000000 0x00 0x00 0x2000000 0x00 0x00 
> 0xf0000000 0x00>;
>               };
>       };
>

. . .
. . .
. . .

>
> It seems that qemu is generating (or basing its modifications on) an
> incorrectly specified
> dtb.
>
> Thanks,
> Amol
>
> [1] https://elinux.org/Device_Tree_Usage#Advanced_Interrupt_Mapping
> [2] https://people.freebsd.org/~jhibbits/p9_vga_out_devtree.txt
>

Reply via email to