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

Re: [PATCH v3 16/23] arm/libxl: vsmmuv3: Emulated SMMUv3 device tree node in libxl


  • To: Milan Djokic <milan_djokic@xxxxxxxx>
  • From: Luca Fancellu <Luca.Fancellu@xxxxxxx>
  • Date: Mon, 13 Apr 2026 13:44:02 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=epam.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=fAs/IheV+auxMrH8rqjFGGtBB/B27mD1QFcTXdKHfno=; b=eSVTPHfDLFNiP6Yy/tRqup2HqpejxjvwUXHNOhJ+1sacNcE6ToljSg/5euD5qm05oL4+yCu0MHZtNRz24Z8Yk5iIhq85IgrIIUHubhcSLnZla/rfNT9pkPuDbgCBg98auqDiVKzOJ0u1jkMJ9keGWDM1prgJp23A/fBcGo06ONQH9/Mq/73ZstwInGLYWjhiGnkyZ660uPeUJV7sCfw2Y5WO6ussJ4sinwTed2SNzOoK2sKjd8Bi4hEsFVSUJMKSfqN44VcDJY3H5i2Kk85VxVFLxRX0+IeaJgOP/JZ1CSGw0cnPMW+F2yBpmwGhzhtrtj2X6butASM1BZ0YtReVEg==
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=fAs/IheV+auxMrH8rqjFGGtBB/B27mD1QFcTXdKHfno=; b=mpXDn3Bj9PRaH2raLccTiQPYVMMuCvOyzYqCJAUCxFsHdaJdtTTG/t1oKoaHK3vziwDmE5b2/QWeFq/3gG8dN8UMdHiAnV6gH8KxMTsbIjqGufK3ADa96BopUtkP41xEjaenokOfg1KxHO/cZoW3Iku67/Gd2AkICijsUlL3PP7sOO+OpBybzl2n88rlkMOLyc5jHQcMgNEpDvS9uZCURlNybSqmLsiipmhdEF90gJOplyDjaUlZiwNhzYf2RTLMqXscp3WmTZvT50TRcOfWQ0N0Cs7a4+LCDk2y0o4pjaMRY7WTLkjvzscxddY43StkJsZQOcH9gDO1BL6Cm100fQ==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=E2d5O3UTMPkivMp1q8ugqtnIB8sdTwOwrkr2INf+Fdp1Ta+F0hX4Mm4RiHO3va0+R/6CqAXonqmGRQgPbNGi9UITP1AawHPKpl74UH9hF9oXvVLgZOld88soX4zU4cAc9sS70JHrql2k9jhSTALYM439XoaQyKhVU6Ik92LbjtC8JUyjkge6gSt+Bqi0vvIZf9+GxrfouePOvgJBIYj7iC3K+uQM+PyZ7xoqKMkZ2uB8NC4abWg+r6/vjRmK//paBmss9WqIT7QlZzVD3MbcTgPN1sk0rnU7ndXG4cCQFYrBFFEVW7Ch7MnkOK1kauzoa7+ah9xOVh2SFFefvlFNoA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IHDnAwXwfuAEuqRE1bOMIro2OaoDDm50LTukWjfJ0UNyUrsHs4kae3GH6fRAmwzbIVFacKttM7m5IqSV39DOjb2qw1RWYpvAicESicGNSMvNcTDu3nbcQCtPBtXaeuymUEOo7e0UuLjGVE84a1+nhTmwLOjmC75oNMWaWbEGJcODM+j9vwj6d/vSaKbOPm6bs2zunnvI0Fr7TWGJM7g7DEN5qb3I2j5p5SL+MV/0YsabtnzCw/oLTCjysngNagMFpQ92boYRxeSuW7SL1QUUdRRgtzueWfhZpiagNE3REqPiEs9YcxojUv3DOYVDrd3cHf4FFZVR3tzXyzFEzr4ovA==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Rahul Singh <Rahul.Singh@xxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>
  • Delivery-date: Mon, 13 Apr 2026 13:45:24 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Thread-index: AQHcy0uWtT0jmyy89kG09VrDZ/FQXg==
  • Thread-topic: [PATCH v3 16/23] arm/libxl: vsmmuv3: Emulated SMMUv3 device tree node in libxl

Hi Milan,

> On 31 Mar 2026, at 02:52, Milan Djokic <milan_djokic@xxxxxxxx> wrote:
> 
> From: Rahul Singh <rahul.singh@xxxxxxx>
> 
> libxl will create an Emulated SMMUv3 device tree node in the device
> tree to enable the guest OS to discover the virtual SMMUv3 during guest
> boot.
> 
> Emulated SMMUv3 device tree node will only be created when
> "viommu=smmuv3" is set in xl domain configuration.
> 
> Signed-off-by: Rahul Singh <rahul.singh@xxxxxxx>
> Signed-off-by: Milan Djokic <milan_djokic@xxxxxxxx>
> ---
> tools/libs/light/libxl_arm.c | 37 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 37 insertions(+)
> 
> diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
> index a248793588..eb879473f5 100644
> --- a/tools/libs/light/libxl_arm.c
> +++ b/tools/libs/light/libxl_arm.c
> @@ -901,6 +901,36 @@ static int make_vpl011_uart_node(libxl__gc *gc, void 
> *fdt,
>     return 0;
> }
> 
> +static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
> +                             const struct arch_info *ainfo,
> +                             struct xc_dom_image *dom)
> +{
> +    int res;
> +    const char *name = GCSPRINTF("iommu@%llx", GUEST_VSMMUV3_BASE);

PRIx64 ?

> +
> +    res = fdt_begin_node(fdt, name);
> +    if (res) return res;
> +
> +    res = fdt_property_compat(gc, fdt, 1, "arm,smmu-v3");
> +    if (res) return res;
> +
> +    res = fdt_property_regs(gc, fdt, GUEST_ROOT_ADDRESS_CELLS,
> +                            GUEST_ROOT_SIZE_CELLS, 1, GUEST_VSMMUV3_BASE,
> +                            GUEST_VSMMUV3_SIZE);
> +    if (res) return res;
> +
> +    res = fdt_property_cell(fdt, "phandle", GUEST_PHANDLE_VSMMUV3);
> +    if (res) return res;
> +
> +    res = fdt_property_cell(fdt, "#iommu-cells", 1);
> +    if (res) return res;
> +
> +    res = fdt_end_node(fdt);
> +    if (res) return res;
> +
> +    return 0;
> +}
> +
> static int make_vpci_node(libxl__gc *gc, void *fdt,
>                           const struct arch_info *ainfo,
>                           struct xc_dom_image *dom)
> @@ -942,6 +972,10 @@ static int make_vpci_node(libxl__gc *gc, void *fdt,
>         GUEST_VPCI_PREFETCH_MEM_SIZE);
>     if (res) return res;
> 
> +    res = fdt_property_values(gc, fdt, "iommu-map", 4, 0,
> +                              GUEST_PHANDLE_VSMMUV3, 0, 0x10000);
> +    if (res) return res;

Shouldn’t this one be protected by (info->arch_arm.viommu_type == 
LIBXL_VIOMMU_TYPE_SMMUV3)?

Cheers,
Luca


 


Rackspace

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