On 19.08.20 14:41, Christoph Gerum wrote: > > On 8/19/20 1:31 PM, Jakub Lužný wrote: >> On Wed, 19 Aug 2020 at 13:03, Christoph Gerum >> <christoph.ge...@uni-tuebingen.de >> <mailto:christoph.ge...@uni-tuebingen.de>> wrote: >> >> >> During our work on autojail we also had the assumption that >> .pci_mmconfig_base needed to be below 2^32, but we could not find a >> reason for that in jailhouse. I was think, that this restriction was >> either caused by the linux driver or a misconfigured device tree. >> But I >> will revisit the problem in the next days. >> >> >> I have been looking into that and the device tree generated by >> Jailhouse might be the issue. When I move the .pci_mmconfig_base to >> 0x200000000, the generated device tree looked like this: >> >> pci@0 { >> dma-coherent; >> #interrupt-cells = <0x01>; >> interrupt-map-mask = <0x00 0x00 0x00 0x07>; >> ranges = <0x2000000 0x02 0x100000 0x02 0x100000 0x00 0x4000>; >> compatible = "pci-host-ecam-generic"; >> device_type = "pci"; >> status = "ok"; >> #size-cells = <0x02>; >> bus-range = <0x00 0x00>; >> #address-cells = <0x03>; >> reg = <0x02 0x00 0x100000>; >> linux,pci-domain = <0x01>; >> interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x96 0x01 0x00 >> 0x00 0x00 0x02 0x01 0x00 0x97 0x01 0x00 0x00 0x00 0x03 0x01 0x00 0x98 >> 0x01 0x00 0x00 0x00 0x04 0x01 0x00 0x99 0x01>; >> }; >> >> At first, according to [1], the #address-cells must be 3 and >> #size-cells must be 2. In Jailhouse, this is taken from the parent >> node. I don't know if that might be an issue. >> >> But it's weird that the reg property is just 3x 32bits. According to >> the Jailhouse code at [2], I would expect it to be 5x 32bits long. >> Doesn't the kernel think that the size is 0x10000000000000 or >> something similar? > > That is correct, reg property is defined by the #address and #size-cells > of the parent node which are 2 and 1 in this case. > > But one needs to change the reg and ranges properties in the inmate .dts > as well. At least i think, I forgot the ranges last time I tried. >
We need the that mmconfig resource in 32-bit space because the jailhouse driver appends the mmio resource region for the host controller to it, and that region must be 32-bit because ivshmem devices have 32-bit resources to be placed. I think the RPI4 has some space that that, though, somewhere in the 0xffxxxxxx range. Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to jailhouse-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/66a1c16b-ae44-693c-abd4-512f42d4e4d3%40siemens.com.