On 2017-12-21 10:05, Luca Cuomo wrote: > Il giorno domenica 10 dicembre 2017 17:34:24 UTC+1, jonas ha scritto: >> Hi, >> >> I'll be making an effort to contribute my work to the master branch of >> Jailhouse within the next couple of weeks. >> >> /Jonas >> >> Den fredag 8 december 2017 kl. 06:47:33 UTC+1 skrev Constantin Petra: >>> Hi, >>> >>> >>> I'm resending the patch(es) that were shared by Jonas a while ago. >>> >>> >>> Best Regards, >>> Constantin >>> >>> >>> On Thu, Dec 7, 2017 at 10:08 PM, Henning Schild <henning...@siemens.com> >>> wrote: >>> Hi Claudio, >>> >>> >>> >>> Am Thu, 7 Dec 2017 17:29:45 +0100 >>> >>> schrieb Claudio Scordino <cla...@evidence.eu.com>: >>> >>> >>> >>>> Hi guys, >>> >>>> >>> >>>> 2017-08-09 15:23 GMT+02:00 Henning Schild >>> >>>> <henning...@siemens.com>: >>> >>>> >>> >>>>> Hey, >>> >>>>> >>> >>>>> unfortunately Jonas never published his overall changes, maybe now >>> >>>>> he understands why i kindly asked him to do so. >>> >>>>> I think Jonas maybe ran into every single problem one could >>> >>>>> encounter on the way, so if you read the thread you will probably >>> >>>>> be able to come up with a similar patch at some point. That would >>> >>>>> be the duplication of efforts, getting a first working patch into a >>> >>>>> mergeable form is another story. >>> >>>>> >>> >>>>> If there are legal reasons to not publish code on the list i suggest >>> >>>>> you exchange patches between each other. But of cause i would like >>> >>>>> to see contributions eventually ;). >>> >>>>> >>> >>>>> >>> >>>> We need to run IVSHMEM on the TX1. >>> >>>> Any chance of upstreaming those patches to not waste time >>> >>>> re-inventing the wheel ? >>> >>>> If that's not possible, please send me a copy privately. >>> >>> >>> >>> Unfortunately i do not have those patches either. I am afraid someone >>> >>> will have to do that over again. >>> >>> >>> >>> But the whole thread is basically about enabling the demo, which is >>> >>> interesting for people just getting started with ivshmem. And for >>> >>> people that want to implement their own protocol on top of it. >>> >>> If you are just looking at running ivshmem-net you are good to go, that >>> >>> code is in a working state. >>> >>> >>> >>> Henning >>> >>> >>> >>> >>> >>>> Many thanks and best regards, >>> >>>> >>> >>>> Claudio > > Hi all, > > i've applied the provided patch and i'm trying to connect the linux root cell > with the bare metal cell running the inmate/demo/arm/ivshmem-demo.c. I've > attached the used configurations (jetson-tx1-ivshmem for the root cell and > the other one for the bare metal). > When i create the bare metal cell the connection between pci devices is > correctly up. > ----------------------------------------------------------------- > Initializing Jailhouse hypervisor on CPU 2 > Code location: 0x0000ffffc0200050 > Page pool usage after early setup: mem 63/16358, remap 64/131072 > Initializing processors: > CPU 2... OK > CPU 1... OK > CPU 3... OK > CPU 0... OK > Adding virtual PCI device 00:0f.0 to cell "Jetson-TX1-ivshmem" > Page pool usage after late setup: mem 74/16358, remap 69/131072 > Activating hypervisor > Adding virtual PCI device 00:0f.0 to cell "jetson-tx1-demo-shmem" > Shared memory connection established: "jetson-tx1-demo-shmem" <--> > "Jetson-TX1-ivshmem" > ------------------------------------------------------------------- > > 1st problem: no PCI device appears in linux (lspci does not return anything)
Are you using a Linux kernel with the Jailhouse-related patches? Did you enable CONFIG_PCI_HOST_GENERIC and CONFIG_PCI_DOMAINS? On most ARM systems, Jailhouse exposes the ivshmem devices via a virtual host bridge. > > Then i launch the ivshmem-demo.bin. I've made some modification: > * in inmate/lib/arm-common/pci.c the #define PCI_CFG_BASE (0x48000000) > as defined in jetson-tx-ivshmem.c: > config.header.platform_info.pci_mmconfig_base. > In the same file i've enabled the print of pci_read/write_config > * in inmate/demos/arm/ivshmem-demo.c i've removed the filter on > class/revision in order to get a suitable pci device with proper > deviceId:vendorId > > When the bare metal starts, it iterate on the memory with a lot of read > > pci_read_config(bdf:0x0, addr:0x0000000000000000, size:0x2), > reg_addr0x48000000 > pci_read_config(bdf:0x1, addr:0x0000000000000000, size:0x2), > reg_addr0x48000100 > pci_read_config(bdf:0x2, addr:0x0000000000000000, size:0x2), > reg_addr0x48000200 > pci_read_config(bdf:0x3, addr:0x0000000000000000, size:0x2), > reg_addr0x48000300 > > .... after a while something happens (follow <---) > > IVSHMEM: Found 1af4:1110 at 07:10.0 <--- > pci_read_config(bdf:0x780, addr:0x0000000000000008, size:0x4), > reg_addr0x48078008 > IVSHMEM: class/revision ff010000, not supported skipping device <--- //IGNORED > pci_read_config(bdf:0x780, addr:0x0000000000000006, size:0x2), > reg_addr0x48078004 > pci_read_config(bdf:0x780, addr:0x0000000000000034, size:0x1), > reg_addr0x48078034 > IVSHMEM ERROR: device is not MSI-X capable <--- > pci_read_config(bdf:0x780, addr:0x000000000000004c, size:0x4), > reg_addr0x4807804c > pci_read_config(bdf:0x780, addr:0x0000000000000048, size:0x4), > reg_addr0x48078048 > pci_read_config(bdf:0x780, addr:0x0000000000000044, size:0x4), > reg_addr0x48078044 > pci_read_config(bdf:0x780, addr:0x0000000000000040, size:0x4), > reg_addr0x48078040 > IVSHMEM: shmem is at 0x000000007bf00000 <--- > pci_write_config(bdf:0x780, addr:0x0000000000000014, value:0x0, size:0x4), > reg_addr0x48078014 > pci_write_config(bdf:0x780, addr:0x0000000000000010, value:0x7c000000, > size:0x4), reg_addr0x48078010 > IVSHMEM: bar0 is at 0x000000007c000000 <--- > .... > IVSHMEM: mapped shmem and bars, got position 0x0000000000000001 <--- > IVSHMEM: Enabled IRQ:0x9b > IVSHMEM: Enabling IVSHMEM_IRQs > ... > > 2nd problem: > > At the end of devices scanning here is the error: > > > Unhandled data read at 0x10000(1) > > FATAL: unhandled trap (exception class 0x24) > Cell state before exception: > pc: 0000000000001a80 lr: 0000000000001ac0 spsr: 20000005 EL1 > sp: 0000000000003da0 esr: 24 1 1130007 > x0: 0000000070006000 x1: 00000000000000ff x2: 0000000000002238 > x3: ffffffffffffffff x4: 0000000000003de0 x5: 0000000000000002 > x6: 0000000000000000 x7: 0000000000000008 x8: 0000000000003de8 > x9: 0000000000000000 x10: 0000000000000000 x11: 0000000000002690 > x12: 0000000000000000 x13: 0000000000000000 x14: 0000000000000020 > x15: 0000000000000000 x16: 0000000000000000 x17: 0000000000000000 > x18: 0000000000000000 x19: 00000000000000ff x20: 0000000000010000 > x21: 0000000000001000 x22: 00000000000011b8 x23: 00000000ffffffd0 > x24: 0000000000003f70 x25: 000000000000288b x26: 000000000000272c > x27: 0000000000000001 x28: 0000000000000780 x29: 0000000000000000 > > Parking CPU 3 (Cell: "jetson-tx1-demo-shmem") > That indicates a mismatch between the cell configuration and the hardware information that is either hard-coded into the inmate code or otherwise provided to it. I didn't check the ivshmem-demo code but I suspect the location of the virtual PCI host controller is hard-coded. A Linux inmate would get it from a device tree provided to its boot. Jan -- 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. For more options, visit https://groups.google.com/d/optout.