[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Query] Assigning PCI ranges to dom0 and domU
On 14 August 2014 15:57, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> wrote: > On Thu, 14 Aug 2014, manish jaggi wrote: >> On 1 August 2014 19:31, Stefano Stabellini >> <stefano.stabellini@xxxxxxxxxxxxx> wrote: >> > On Fri, 1 Aug 2014, manish jaggi wrote: >> >> Hi Stefano, >> >> >> >> I am working on accessing PCI nodes in the doms on ARM (cavium). If there >> >> is the below device tree node >> >> pcie1@0x849000000000 { >> >> compatible = "cavium,thunder-pcie"; >> >> device_type = "pci"; >> >> msi-parent = <&its>; >> >> bus-range = <0 255>; >> >> #size-cells = <2>; >> >> #address-cells = <3>; >> >> reg = <0x8490 0x00000000 0 0x40000000>; /* Configuration >> >> space */ >> >> ranges = <0x03000000 0x8310 0x00000000 0x8310 0x00000000 0x00 >> >> 0x10000000>, /* mem ranges */ >> >> <0x03000000 0x8100 0x00000000 0x8100 0x00000000 0x80 >> >> 0x00000000>; >> >> }; >> >> >> >> >> >> How to assign ranges to guest dom0 / domU. Is there a well defined api in >> >> xen OR I have to parse the device tree >> >> ranges and do a 1:1 mapping using map_mmio_regions. >> > >> > Firstly you just need to get PCI up and running in Dom0, and you can do >> > that by passing this device tree node to Dom0 and remapping the >> > appropriate memory ranges. See for example: >> > >> > xen/arch/arm/platforms/xgene-storm.c:xgene_storm_specific_mapping >> > >> > >> > Once that is done, it is time to look at pciback and pcifront and try to >> > get them running on ARM. >> > >> > >> > I would start by enabling PCI passthrough in the xl toolstack, look at >> > tools/libxl/libxl_pci.c:libxl__device_pci_add, called by >> > domcreate_attach_pci. It should be working on ARM following the PV path >> > (LIBXL_DOMAIN_TYPE_PV). >> > >> > >> > After the toolstack parts are in place, you should be able to see a pci >> > entry in xenstore (xenstore-ls to list everything that is present in >> > xenstore). That is the basic information needed by pcifront and pciback >> > to enstablish a communication channel. >> I am getting this output, cmd 30 in do_physdev_op is commented though >> >> linux:~ # xl pci-assignable-add 01:10.1 >> (XEN) do_physdev_op cmd=30 >> linux:~ # xl pci-assignable-list >> 0000:01:10.1 >> linux:~ # xenstore-list >> xenstore-list: Usage: xenstore-list [-h] [-p] [-s] key [...] >> linux:~ # xenstore-list /local/domain/0 >> name >> domid >> linux:~ # xenstore-ls >> tool = "" >> xenstored = "" >> local = "" >> domain = "" >> 0 = "" >> name = "Domain-0" >> domid = "0" >> libxl = "" >> pciback = "" >> 0000-01-10-1 = "" >> driver_path = "/sys/bus/pci/drivers/thunder-BGX" >> >> Does it look good ? >> >> Can you please send a log or point to one, which shows something >> similar for x86 so that I can use that as a reference. > > You should be able to just Google something like that. > This is what Google gave me as result: > > # xenstore-ls /local/domain/0/backend/pci > 14 = "" > 0 = "" > domain = "debian-2" > frontend = "/local/domain/14/device/pci/0" > uuid = "b328cab0-a704-d59f-8133-c5f053f4b639" > dev-0 = "0000:00:1d.00" > state = "4" > online = "1" > frontend-id = "14" > num_devs = "1" > root-0 = "0000:00" > root_num = "1" > # xenstore-ls /local/domain/14/device/pci > 0 = "" > state = "4" > backend-id = "0" > backend = "/local/domain/0/backend/pci/14/0" > pci-op-ref = "8" > event-channel = "27" > magic = "7" > > You can also simply go through libxl code and see what it is writing to > xenstore: tools/libxl/libxl_pci.c:libxl__device_pci_add_xenstore. Thanks Stefano for a quick response _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |