[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Device pass through on XEN on ARM
On 05/01/2014 08:26 PM, Ian Campbell wrote: > On Thu, 2014-05-01 at 15:44 +0100, Julien Grall wrote: > > On 04/29/2014 12:35 PM, Khandelwal, Shubham wrote: > > > Hello, > > > > Hello, > > > > I've dropped the xen-arm list as it has been archived few months ago. > > > > > I would like to understand how is pass through achieved on XEN on ARM > > > for devices which do not have a PCI bus controller, like for example > > > embedded devices. Any pointers in this direction will be appreciated. > > > > For the moment, Xen 4.5 doesn't support device passthrough. > > People who are using 4.4 have been hardcoding mmio passthrough for > specific platforms though, essentially by hacking the hypervisor code to > do whatever magic was needed. > > The method is somewhat similar to the platform specific mappings > callback which allows MMIO regions which are undescribed in the DT to be > passed to dom0. xgene_storm_specific_mapping() is probably the best > example. > > Essentially you just need to arrange for map_mmio_region() and > gic_route_irq_to_guest() to be called for the appropriate regions when > constructing the guest domain. Doing this statically for e.g. dom1 is > pretty trivial, just hack some calls in somewhere on the domain create > path with he appropriate checks. > > Allowing this to happen for any domain (useful if you want to reboot the > guest domain) is a bit trickier, I'd probably be inclined to create a > custom domctl and arrange for it to be called during domain build for > the appropriate domain. > > Obviously this is all very hacky and as Julien says there are various > things in the pipeline for 4.5 which will allow this to be done > properly. > > Ian. Hello Ian, Julien, Just to try out the passthrough using the hacks you mentioned, I made changes in xen to assign a GPIO controlled LED to domU by calling map_mmio_regions() in the domain creation path. After domU boots, when I try to access the LED using ioremap, ioread and iowrite from kernel space I see that I am not able to control the LED, also when I try to control LED using sysfs from user space it shows 'no such device' error. I am using xen 4.5 unstable and I have made the following changes in xen/common/domctl.c :: do_domctl(), after line 473: int passthrough = map_mmio_regions(d, 0x4805B000, 0x4805B000 + 0x1000, 0x4805B000); if (passthrough) printk("Failed to map passthrough_LED @ 0x4805B000 to dom%d\n", d->domain_id); While booting domU, in the logs I can see there is no error in map_mmio_regions(). Am I missing something here. Thanks and Regards Shubham Khandelwal _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |