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

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

Hello Jarvis,

I have CCed Edgar who did the bring of Xen on Xilinx Zinqmp

On 21/06/16 15:40, Jarvis Roach wrote:
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.

Can you provide the guest configuration you are using?

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.

The SMMU is configured with Stage-2 page table and not exposed to the guest. I am not aware of any configuration required in the guest, except having a working network driver.


Julien Grall

Xen-users mailing list



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