[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-users] Enabling SMMU for a bare metal guest

  • To: xen-users@xxxxxxxxxxxxx
  • From: Jarvis Roach <jbr041075@xxxxxxxxx>
  • Date: Tue, 21 Jun 2016 10:40:16 -0400
  • Delivery-date: Tue, 21 Jun 2016 14:42:03 +0000
  • List-id: Xen user discussion <xen-users.lists.xen.org>

I've been working on passing an ethernet controller through to a bare metal guest running on an Xilinx Z US+ MPSoC platform. I got it working, but only by using the system's physical address (PA) for DMA buffers and descriptors instead of using the guest's intermediate physical address (IPA), aka guest phyiscal address. 

I am aware of Julien's presentation on passthrough, and I am successful in passing the ethernet device through to a Linux guest, but when I follow the same steps for my bare metal guest, the IPA->PA translation doesn't seem to be happening. I would expect that if the SMMU was active for that ethernet controller then a) using PA for DMA buffers and descriptors should result in a translation fault, and b) using IPA for the same would work, neither of which is true.

It seems to me that there is something extra is being done by, or for, the Linux guest that isn't done by, or for, my bare metal guest that enables the SMMU for that ethernet controller. I haven't been able to figure what that something extra is by searching the internet, reading through the available documentation, or digging into the code. Any help (better search terms, useful URLs, detailed description of the what's supposed to happen for guests generically or what actually happens for a Linux guest, a working bare metal example, etc) would be appreciated.

Thank you,

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.