Is it possible to run Jailhouse in QEMU for ZCU102 (Using Petalinux 2016.4)?
There is apparently support for configuration and applications, but QEMU just hangs when calling "jailhouse enable jailhouse/configs/zynqmp-zcu102.cell"
In "zynqmp-zcu102.c" it is mentioned:
"Reservation via device tree: 0x800000000..0x83fffffff"
How to reserve this more specifically?
I have tried to reserve the RAM area above 1GB for Jailhouse, but there is no difference in behavior.
Thank you,
Constantin
On 2017-04-11 15:19, constant...@gmail.com wrote:
> Hi,
>
> Is it possible to run Jailhouse in QEMU for ZCU102 (Using Petalinux 2016.4)?
> There is apparently support for configuration and applications, but QEMU just hangs when calling "jailhouse enable jailhouse/configs/zynqmp-zcu102.cell"
> In "zynqmp-zcu102.c" it is mentioned:
> "Reservation via device tree: 0x800000000..0x83fffffff"
> How to reserve this more specifically?
> I have tried to reserve the RAM area above 1GB for Jailhouse, but there is no difference in behavior.
We didn't enable downstream so far (I prefer upstream as far as
possible). See [1] for more details.
Jan
[1]
Hi again,
I have used the proposed linux kernel and also changed the system.dts and config. The system goes on a bit further; Any idea why the log shows the "FATAL: instruction abort at 0x87fffeee0"? Is this some configuration issue? QEMU support maybe?
Sorry to bother you with this, but the petalinux system is also new to me (so Im not sure every change was correctly taken into account) and there are too many variables around to be able to spot the issue.
Thanks a lot,
Constantin
Indeed, I have now reverted the cell config to the original value and that issue went away; However there's another one, somewhere in the internals of jailhouse_pci_virtual_root_devices_add(), no less daunting to me. Any other ideas?
Best Regards,
Constantin
I have made the changes to pci.c, but QEMU seems to freeze after enabling Jailhouse after the "opening" message is displayed (I have previously started a SSH connection which also freezes - to make sure the Serial port is not somehow hijacked by hypervisor as described in the documentaiton). I cannot start GDB using petalinux tools due to a Python 2.6 dependency (the system has Python 2.7) so I don't really know what happens. Any ideas? (Attached also a log file with the boot messages; tried relying on configured dtb and here also tried memmap for the reserved memory, with the same result).
root@plnx_aarch64:~# jailhouse/usr/local/sbin/jailhouse enable /home/root/jailhouse/configs/zynqmp-zcu102.cell
Initializing Jailhouse hypervisor v0.6 (47-ge02403c-dirty) on CPU 0
Code location: 0x0000ffffc0200040
Page pool usage after early setup: mem 33/996, remap 64/131072
Initializing processors:
CPU 0... OK
CPU 1... OK
CPU 2... OK
CPU 3... OK
Adding virtual PCI device 00:00.0 to cell "ZynqMP-ZCU102"
Adding virtual PCI device 00:01.0 to cell "ZynqMP-ZCU102"
Page pool usage after late setup: mem 44/996, remap 69/131072
Activating hypervisor
[ 71.547900] OF: PCI: host bridge //vpci@0 ranges:
[ 71.549101] OF: PCI: MEM 0xfc100000..0xfc103fff -> 0xfc100000
[ 71.552493] pci-host-generic fc000000.vpci: ECAM at [mem 0xfc000000-0xfc0fffff] for [bus 00]
[ 71.555644] pci-host-generic fc000000.vpci: PCI host bridge to bus 0001:00
[ 71.556337] pci_bus 0001:00: root bus resource [bus 00]
[ 71.556698] pci_bus 0001:00: root bus resource [mem 0xfc100000-0xfc103fff]
[ 71.569008] pci 0001:00:00.0: BAR 0: assigned [mem 0xfc100000-0xfc1000ff 64bit]
[ 71.570284] pci 0001:00:01.0: BAR 0: assigned [mem 0xfc100100-0xfc1001ff 64bit]
[ 71.576654] The Jailhouse is opening.
root@plnx_aarch64:~#
Best Regards,
Constantin
tftp -g 10.0.2.2 jailhouse.tar.gz -r jailhouse.tar.gz
tar zvxf jailhouse.tar.gz
mv tftpboot/jailhouse jailhouse
mkdir -p /lib/firmware
cp ./jailhouse/lib/firmware/jailhouse.bin /lib/firmware
insmod ./jailhouse/lib/modules/4.11.0-rc4/extra/driver/jailhouse.ko
sleep 2
jailhouse/usr/local/sbin/jailhouse enable /home/root/jailhouse/configs/zynqmp-zcu102.cell
Thank you,
Constantin
Any findings on this case? Is there any chance PetaLinux 2017.1 addressed this issue?
Thank you,
Constantin