I try to set up a shared memory between a Linux root cell and an erika cell on the jetson tx2,
I used this code for the erika cell : https://github.com/evidence/linux-jailh ... mem-demo.c
And on Linux I used this driver : https://github.com/henning-schild-work/ ... _ivshmem.c
and this user space application : https://github.com/henning-schild-work/ ... uio_send.c
On Erika side it's ok I am able to find pci devices and the connection seems established :
Code: Select all
Initializing unit: irqchip Initializing unit: PCI Adding virtual PCI device 00:00.0 to cell "Jetson-TX2" Adding virtual PCI device 00:0f.0 to cell "Jetson-TX2" Page pool usage after late setup: mem 101/16355, remap 101/131072 Activating hypervisor Adding virtual PCI device 00:00.0 to cell "jetson-tx2-can" Shared memory connection established: "jetson-tx2-can" <--> "Jetson-TX2" Created cell "jetson-tx2-can" Page pool usage after cell creation: mem 119/16355, remap 101/131072 Cell "jetson-tx2-can" can be loaded Started cell "jetson-tx2-can" IVSHMEM: Found 1af4:1110 at 00:00.0 IVSHMEM: shmem is at 0x0000000275000000 IVSHMEM: bar0 is at 0x0000000275001000 IVSHMEM: mapped shmem and bars, got position 0x0000000000000001 IVSHMEM: Hello from bare-metal ivshmem-demo inmate!!! IVSHMEM: Enabled IRQ:0x14c IVSHMEM: Enabling IVSHMEM_IRQs IVSHMEM: Done setting up... IVSHMEM: waiting for interrupt.
mmap failed (0x0xffffffffffffffff)
I found this jailhouse topic which talk about the same issue : https://groups.google.com/forum/#!topic ... O8v1z_-qWI
I changed the bar_mask as recommended in this post :
but the memory map still fails.
Memory mappings have to be page-aligned, /wrt the size and start
address. In order to make Linux reserve a full page for an MMIO resource
of some device (so that it can be handed out to userspace separately),
tune the bar_mask for the respective region. 0xfffff000, 0xffffffff, ...
should do the trick here.
Do you know how I could fix this issue ?