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

Re: [Xen-devel] ARM64: PCIe in DOM0

On 09/10/2018 12:25, Bharat Bhushan wrote:

Hi Bharat,

-----Original Message-----
From: Julien Grall <julien.grall@xxxxxxx>
Sent: Friday, October 5, 2018 6:51 PM
To: Bharat Bhushan <bharat.bhushan@xxxxxxx>; Xen-
Subject: Re: [Xen-devel] ARM64: PCIe in DOM0


On 05/10/2018 12:06, Bharat Bhushan wrote:
Further update:
If I change Kconfig to enable this default

CONFIG_HAS_ITS is in tech preview. For having access to it, you need to pass
XEN_CONFIG_EXPERT on *all* the make command line.

I tried with this and I can see "its" node in Dom0 device-tree
My compilation steps are:
I am cross-compiling, so set toolchain path.

make dist-xen XEN_TARGET_ARCH=arm64 XEN_CONFIG_EXPERT=y 
mkimage -A arm64 -T kernel -a 0x80000000 -e 0x80000000 -C none -d ./xen/xen 

Then DOM0 Linux Boots but MSIs are not still working,

Getting below error:
    - pci 0001:00:00.0: Failed to add - passthrough or MSI/MSI-X might fail!

This is a red-herring. This lines happen because PHYSDEVOP_pci_device_add
is not implemented on Xen Arm.

I assume PCI device will still be working on ARM64 based platforms

That's correct.

Any help is very useful,!!

Can you please provide the full log?

Please find attached logs.
I have one UART of a DUART working, So at a time I am not able to provide same 
to XEN or DOM0.
So for you will see two set of log, one when console provided to XEN and 
another same console provided to DOM0 while used for early-prints of XEN.

Xen provides para-virtualized console through hypercall for Dom0. Assuming you have the driver enabled (CONFIG_HVC_XEN), you could add on your Dom0 command line "console=hvc0". This will give you a full console access to Dom0 while still allow Xen to print message.

To narrow down the cause, I would disable the IOMMU. Looking at the logs, I noticed you have some specific ITS driver (fsl-mc) for your board. Xen does not have any knowledge for it. Could it have an impact on the interrupts if not configured correctly?

At the moment, Xen implements a generic ITS and GICv3. Should we expect some specific additions for your platform to use interrupts?

On your previous e-mail you mention you tried to pass "pci=nomsi". Does this setup works without Xen (e.g booting a bare linux)? If so, I would start by exploring whether interrupt are effectively unmask by Xen on guest request.

You could add some print in the GICv3 emulation (arch/arm/vgic-v3.c) and ITS (arch/arm/vgic-v3-its.c).

I am new to XEN so might be doing something wrong.

My knowledge on the board you are using is limited. I have CCed Peng Fan who is also working at NXP and have Xen knowledge.


Julien Grall

Xen-devel mailing list



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