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

Re: QEMU features useful for Xen development?


  • To: Peter Maydell <peter.maydell@xxxxxxxxxx>, Alex Bennée <alex.bennee@xxxxxxxxxx>
  • From: Ayan Kumar Halder <ayankuma@xxxxxxx>
  • Date: Thu, 31 Aug 2023 11:32:28 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cFPW1HXK22OeEdNPdtNZYqUJCpwGQvBoO+PziOCAtgc=; b=Kb3hW6mdT7nPjTdyIZedDnryTOt3cWnc9XvP69K3q116sm67jjRW8iuMjfswAcUTO09ZifGMD013/5QXYFBptGU32QAVkxAUnmXdeyJWQIBFwfHMSpaVvSzUabj2umyLnhfAhPITI1riIu07mQOjBMMzuJUkZK5rAy8avmGFEECwQuGaUJ+k43V76Abblh1m5dKN9AmuBo8bzYReyiGzslQ738r8gxw7bYJFzs8fYMaHbcL+8NI270uWVlvZ63xaU5EU6Nbt4AgNhL6zSpvMMx/3wy63Nn8Z+zE73RTME3+Zq/z1f4kKSdQGTrQiuxNbCF0bVUOxMSWFDU6QSfOTvg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I1LSWwWCr4j2CHjmKryCwTLIC8WFrDLQ+J3s7Ptrcv8h0RWJZVeRTwPpSHfxM2GQkUDk9flMlySFv7kO1wNDS2ZNZXyLpjGN5gZAJRh6bNlCa+bK2K5VdiJqURXbeeeKealpjHvRvpy5ks/sWTgGZiCXvONA1SYb+KQJdm/q83PizAy9eaepUWkL8Xks28FyOZBHuIPEeOLKrvwWUcX2+CO386rgsHfDUgLLE6rRSOuIzHVP7fQi194hcqLEmCOZm5ZG7doi+CT+VVRKpLJ6k63GwQbkWH/CyQJkpgb5eq17Lva23ak9q+BWXUY598GmjSuAkqPT1a3X15ImfTUEpw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Stewart Hildebrand <stewart.hildebrand@xxxxxxx>, Viresh Kumar <viresh.kumar@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Sergiy Kibrik <Sergiy_Kibrik@xxxxxxxx>, QEMU Developers <qemu-devel@xxxxxxxxxx>, Vikram Garhwal <vikram.garhwal@xxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxx>, Marcin Juszkiewicz <marcin.juszkiewicz@xxxxxxxxxx>, Jonathan Cameron <jonathan.cameron@xxxxxxxxxx>
  • Delivery-date: Thu, 31 Aug 2023 10:32:46 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi Peter/Alex,

Appreciate your help. :)

On 31/08/2023 11:03, Peter Maydell wrote:
CAUTION: This message has originated from an External Source. Please use proper 
judgment and caution when opening attachments, clicking links, or responding to 
this email.


On Thu, 31 Aug 2023 at 10:53, Alex Bennée <alex.bennee@xxxxxxxxxx> wrote:

Peter Maydell <peter.maydell@xxxxxxxxxx> writes:

On Thu, 31 Aug 2023 at 01:57, Stefano Stabellini <sstabellini@xxxxxxxxxx> wrote:
As Xen is gaining R52 and R82 support, it would be great to be able to
use QEMU for development and testing there as well, but I don't think
QEMU can emulate EL2 properly for the Cortex-R architecture. We would
need EL2 support in the GIC/timer for R52/R82 as well.
We do actually have a Cortex-R52 model which at least in theory
should include EL2 support, though as usual with newer QEMU
stuff it quite likely has lurking bugs; I'm not sure how much
testing it's had. Also there is currently no board model which
will work with the Cortex-R52 so it's a bit tricky to use in practice.
(What sort of board model would Xen want to use it with?)
We already model a bunch of the mps2/mps3 images so I'm assuming adding
the mps3-an536 would be a fairly simple step to do (mps2tz.c is mostly
tweaking config values). The question is would it be a useful target for
Xen?
All our MPS2/MPS3 boards are M-profile. That means we have the
device models for all the interesting devices on the board, but
it would be simpler to write the an536 board model separately.
(In particular, the M-profile boards are wrappers around an
"ARMSSE" sort-of-like-an-SoC component; there's no equivalent
for the Cortex-R52.)

   https://developer.arm.com/documentation/dai0536/latest/

Yes, it will be helpful if Qemu can model this board. We have a downstream port of Xen on R52 (upstreaming is in progress).

So, we can test the Qemu model with Xen.

Also if all works fine, we might consider adding this to the upstream Xen CI docker.

Out of curiosity, are you planning to add Qemu R52 SoC support to Zephyr ?

- Ayan


The Cortex-R82 would be more work, because (unlike the R52) it's
AArch64, and we don't have Armv8-R AArch64 support yet, only the AArch32.

I haven't looked at whether GIC on R-profile requires any changes
from the A-profile GIC; on A-profile obviously we emulate the
virtualization support already.

On Cortex-As, in addition to a PCI root complex and an arbitrary PCI
device, SMMUv3 emulation (both stages) and GICv3 ITS are needed to be
able to test PCI Passthrough.
We have ITS emulation support and it was recently plumbed into the
"sbsa-ref" board as it is needed for higher level SBSA compliance.

However, if I recall correctly SMMUv3
emulation in QEMU might not be complete enough to enable us to use it.
Yeah, at the moment the SMMU emulation supports stage 1 and stage 2,
but not both at the same time. This is good enough for PCI passthrough
with a Linux guest using KVM to pass a device through to a nested
Linux guest.
Is this a missing feature for SMMUv3 or something introduced in the
later revisions?
It's a missing feature. The SMMUv3 spec allows an implementation
to implement stage 1, stage 2 or both. We started with just a
stage-1-only implementation because Linux doesn't need any more.
Stage-2-only just landed recently. Nobody's looked at both-stages yet.

thanks
-- PMM




 


Rackspace

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