From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gordan Bobic Subject: Re: Device pass through on XEN on ARM Date: Wed, 11 Jun 2014 11:07:09 +0100 Message-ID: References: "\"<3A6586556649FF42BA3240F179473FD11454A64270@HIKAWSEX01.ad.harman.com> <53625DC9.7050704@linaro.org> " "\"<1398956164.22521.4.camel@kazak.uk.xensource.com> \\\" <3A6586556649FF42BA3240F179473FD114885FF8C1@HIKAWSEX01.ad.harman.com> <1402479753.9727.6.camel@kazak.uk.xensource.com>" <8f7eb6e73289910426e673a3d1a944f7@mail.shatteredsilicon.net>" <1402480845.9727.11.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1402480845.9727.11.camel@kazak.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On 2014-06-11 11:00, Ian Campbell wrote: > On Wed, 2014-06-11 at 10:53 +0100, Gordan Bobic wrote: >> On 2014-06-11 10:42, Ian Campbell wrote: >> > On Wed, 2014-06-11 at 11:16 +0200, Khandelwal, Shubham wrote: >> >> 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, >> > >> > How does it fail? Does it give a fault in the hypervisor or the guest >> > kernel or just silently eat the MMIO writes and not do anything? >> > >> >> 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. >> > >> > 0x4xxxxxxx is a RAM region on 4.5 (see the end of >> > xen/include/public/arch-arm.h), I suspect your mmio mapping is being >> > clobbered by a RAM mapping (and therefore that your answer above is >> > "silently does nothing". >> > >> > Do you need this to be a 1:1 mapping or could you move it to some free >> > space? Most of the low GB is free (but do check arch-arm.h) to be used >> > for MMIO mappings. >> >> I have a sneaky suspicion that part of the problem is that the >> offending BAR is 16GB in size. > > What makes you think that? The region is 4K according to the lines > shown > above. > > Since you mention BAR (a PCI thing) I've a sneaking suspicious this > isn't the thread you think it is ;-) D'oh! My mail-foo is weak today. I was reading one thread but somehow managed to post on a different one. Apologies for the noise. :( Gordan