On 25.07.19 17:59, [email protected] wrote: > Dear all, > > I'm trying to establish an inter-cell communication between 2 cells in Banana > Pi-M1 (BPI) using the IVSHMEM protocol. > > So far I have compiled and inserted both jailhouse.ko and uio_ivshmem.ko (from > https://github.com/henning-schild-work/ivshmem-guest-code) modules in BPI, > running in Linux kernel 4.13.0, and gic-demo works fine. > I've tried to follow this patch > (https://groups.google.com/forum/#!topic/jailhouse-dev/IqwQsQ9JEno) in order > to > create the config file (bananapi-gic-ivshmem-demo.c) based on gic-demo. > > For that I added the shared-memory region for IVSHMEM communication: > > /* IVSHMEM shared memory region */ { > .phys_start = 0x7bf00000, > .virt_start = 0x7bf00000, > .size = 0x100000, > .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE, > }, > > Then, I loaded the cell with the following command: > > "jailhouse cell load 1 ../inmates/demos/arm/ivshmem-demo.bin -s > "pci-cfg-base=0x02000000 ivshmem-irq=155" -a 0x1000” and started it using > "jailhouse cell start 1”, but only got the following output: > "IVSHMEM: pci-cfg-base:0x2000000 > IVSHMEM: ivshmem-irq:155" > > This is the dmesg output that I get when I load the cell: > > [ 66.717056] jailhouse: loading out-of-tree module taints kernel. > [ 98.515850] OF: PCI: host bridge //pci@0 ranges: > [ 98.521159] OF: PCI: MEM 0x02100000..0x02101fff -> 0x02100000 > [ 98.527811] pci-host-generic 2000000.pci: ECAM at [mem > 0x02000000-0x020fffff] > for [bus 00] > [ 98.538938] pci-host-generic 2000000.pci: PCI host bridge to bus 0000:00 > [ 98.545808] pci_bus 0000:00: root bus resource [bus 00] > [ 98.551289] pci_bus 0000:00: root bus resource [mem 0x02100000-0x02101fff] > [ 98.559373] pci 0000:00:00.0: [1af4:1110] type 00 class 0xff0000 > [ 98.559471] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000000ff 64bit] > [ 98.561658] PCI: bus0: Fast back to back transfers disabled > [ 98.567901] pci 0000:00:00.0: BAR 0: assigned [mem 0x02100000-0x021000ff > 64bit] > [ 98.578033] uio_ivshmem 0000:00:00.0: enabling device (0000 -> 0002) > [ 98.586492] The Jailhouse is opening. > [ 110.942999] Created Jailhouse cell "bananapi-gic-ivshmem-demo” > > This is the output that I get when I execute: > > ./jailhouse console > Initializing Jailhouse hypervisor v0.11 on CPU 1 > Code location: 0xf0000040 > Page pool usage after early setup: mem 56/16362, remap 0/131072 > Initializing processors: > CPU 1... OK > CPU 0... OK > Initializing unit: irqchip > Initializing unit: PCI > Adding virtual PCI device 00:00.0 to cell "Banana-Pi" > Page pool usage after late setup: mem 68/16362, remap 5/131072 > Activating hypervisor > Adding virtual PCI device 00:00.0 to cell "bananapi-gic-ivshmem-demo" > Shared memory connection established: "bananapi-gic-ivshmem-demo" <--> > "Banana-Pi" > Created cell "bananapi-gic-ivshmem-demo" > Page pool usage after cell creation: mem 82/16362, remap 5/131072 > Cell "bananapi-gic-ivshmem-demo" can be loaded > Started cell "bananapi-gic-ivshmem-demo > > When I list the PCI devices, I obtain the following: > > lspci -v > 00:00.0 Unassigned class [ff00]: Red Hat, Inc. Inter-VM shared memory > Subsystem: Red Hat, Inc. Inter-VM shared memory > Flags: fast devsel, IRQ 86 > Memory at 02100000 (64-bit, non-prefetchable) [size=256] > > Up until this point, everything seems to work correctly but it is supposed to > see the info "Kernel driver in use: uio_ivshmem” when I list the PCI devices. > However this information does not show up. > Moreover, as far as I understand I need to create a UIO device in order to use > IVSHMEM, but when a try to register a new device with "echo "1af4 1110" > > /sys/bus/pci/drivers/uio_ivshmem/new_id” I get the error "write error: file > exists”. However, if a list all the UIO devices with “ls /dev/uio*”, the > command > returns nothing. > > To sum up, although I have UIO support compiled into the kernel, the UIO > device > files are not beeing created. > > Can anyone help me in overcoming this issue and put IVSHMEM to work in Banana > Pi? If needed, I can send any configuration files that I am using. >
What does the kernel log say about the uio driver setup? Probing might have gone wrong. And which uio_ivshmem driver revision from https://github.com/henning-schild-work/ivshmem-guest-code did you use? Sometime, people check out the wrong branch. Also note that there is now a wip/ivshmem2 branch in jailhouse with a reworked device and a queues/jailhouse-ivshmem2 on http://git.kiszka.org/linux.git/ with a rewritten uio driver as part of the queue. Maybe that is actually easier to set up. 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]. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/f6e7c240-8686-aeff-1167-a8350e0cb03f%40siemens.com.
