I was right, the problem was related with the uio driver. The driver requires 
the PCI_HOST_GENERIC to be enabled in the kernel. After enabling it (Bus 
support -> PCI host controller drivers -> Generic PCI host controller), 
jailhouse with vpci and interrupts works fine.

Best
Giovani

> Thank you Jan. Yes, the issue was related to the UART clock as pointed out in 
> the another link.
> 
> To fix it, I added the following to the system-user.dtsi file:
> 
> /include/ "system-conf.dtsi"
> /include/ "zynqmp-clk-ccf.dtsi"
> / {
>       clk100: clk100 {
>               compatible = "fixed-clock";
>               #clock-cells = <0>;
>               clock-frequency = <100000000>;
>               u-boot,dm-pre-reloc;
>       };
> };
> 
> &pcie {
>       status = "disabled";
> };
> 
> &uart1 {
>       clocks = <&clk100 &clk100>;
> };
> 
> After that, it was possible to see the output from the gic-demo.bin in the 
> /dev/ttyUSB1.
> 
> Regarding the address range 8000000000-8000ffffff, it is related to the PCI 
> bridge. After disabling the pcie (see the dtsi above), the address range is 
> not mapped anymore and lspci runs correctly.
> 
> However, the problem now is related to the vPCI mapping. I can see the 
> following outputs regarding vPCI when I run the root and non-root cells:
> 
> Adding virtual PCI device 00:00.0 to cell "ZynqMP-ZCU102" Cell Id = 0 (from 
> the root cell)
> 
> Shared memory connection established: "gic-demo-ivshmem" <--> "ZynqMP-ZCU102" 
> (from the non-root cell).
> 
> But no devices are mapped (lspci is empty), so I believe the problem is in 
> the uio driver. 
> 
> Does the uio driver 
> (https://github.com/henning-schild-work/ivshmem-guest-code) need some 
> specific flag enabled in the kernel? Or does it have a conflict with other 
> driver? In the vanilla kernel, it creates interrupt 38 for the new vPCI 
> device, but in the Xilinx kernel, interrupt 38 is already in use:
> 
> 38:  0  0  0   GICv2  58 Level     ffa60000.rtc
> 
> The uio driver does not display the usual messages informing that new devices 
> are mapped when jailhouse root cell is created. Also, /proc/interrupts does 
> not contain the new interrupt for the vPCI device that should have been 
> created.
> 
> > > Hello,
> > > 
> > > I have a full Jailhouse setup (including ivshmem and interrupts) running 
> > > on top of the vanilla 4.14 kernel on the Xilinx Ultrascale+ platform. 
> > > However, I need to use some drivers only available on the Xilinx 4.14 
> > > kernel, so I am trying to run Jailhouse on it.
> > > 
> > > I was able to compile and load Jailhouse using the Xilinx kernel. But 
> > > when I load the gic-demo, I can't see any output on the terminal 
> > > (/dev/ttyUSB1). Also, when I check the cell stats, it seems that it not 
> > > running (the stats do not increment).
> > 
> > This might be the same issue that was reported earlier today:
> > 
> > https://www.mail-archive.com/[email protected]/msg05086.html
> > 
> > > 
> > > # jailhouse enable zynqmp-zcu102.cell 
> > > 
> > > Initializing Jailhouse hypervisor v0.8 (37-g1fa90014-dirty) on CPU 1
> > > Code location: 0x0000ffffc0200060
> > > Page pool usage after early setup: mem 33/995, remap 64/131072
> > > Initializing processors:
> > >  CPU 1... OK
> > >  CPU 3... OK
> > >  CPU 0... OK
> > >  CPU 2... OK
> > > Adding virtual PCI device 00:00.0 to cell "ZynqMP-ZCU102" Cell Id = 0
> > > Page pool usage after late setup: mem 41/995, remap 69/131072
> > > Activating hypervisor
> > > [   94.525270] The Jailhouse is opening.
> > > 
> > > # jailhouse cell create zynqmp-zcu102-gic-demo.cell
> > > 
> > > [  107.815785] CPU3: shutdown
> > > [  107.818406] psci: CPU3 killed.
> > > Created cell "gic-demo"
> > > Page pool usage after cell creation: mem 53/995, remap 69/131072
> > > [  107.829653] Created Jailhouse cell "gic-demo"
> > > 
> > > #jailhouse cell load 1 gic-demo.bin 
> > > 
> > > Cell "gic-demo" can be loaded
> > > 
> > > #jailhouse cell start 1
> > > 
> > > Started cell "gic-demo"
> > > 
> > > Any suggestion about the causes of this issue?
> > > 
> > > Another problem is that I have something mapped in 0x8000000000:
> > > 
> > > 8000000000-8000ffffff : cfg (does anyone know that is this? - I generated 
> > > the linux images using petalinux tools)
> > > 
> > > After I load the root-cell and type lspci, I got an unhandled data read 
> > > in that address:
> > > 
> > > root@linaro-gnome:~# lspci
> > > Unhandled data read at 0x8000000000(4)
> > > 
> > > FATAL: unhandled trap (exception class 0x24)
> > > Cell state before exception:
> > >  pc: ffffff800847c8dc   lr: ffffff800847c8c8 spsr: 200001c5     EL1
> > >  sp: ffffff800a0abc90  esr: 24 1 1810005
> > >  x0: ffffff800b000000   x1: ffffff800b000000   x2: 0000000000000000
> > >  x3: ffffffc04cf8bb98   x4: ffffffc04cf8b000   x5: ffffff8008de0308
> > >  x6: 0000000000000000   x7: ffffff800848ac48   x8: ffffffc04cf8ce80
> > >  x9: 0000007ffecb7c80  x10: 0101010101010101  x11: 000000000000001b
> > > x12: 000000000000000f  x13: ffffffffffffffff  x14: 0000000000000000
> > > x15: 0000007fbdc31cc0  x16: ffffff8008198598  x17: 0000007fbdbed170
> > > x18: 0000000000000a03  x19: 0000000000000004  x20: ffffff800a0abcec
> > > x21: ffffff8008e8b000  x22: ffffff800a0abd5c  x23: 0000000000000040
> > > x24: 000000000000000f  x25: ffffffc04ccfa480  x26: 0000000000000004
> > > x27: ffffffc04ccfa480  x28: 0000000000000000  x29: ffffff800a0abc90
> > 
> > Did you mark the RAM that is used for the hypervisor and also the
> > inmates as reserved in the device tree that Linux boots from?
> > 
> > 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to