From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BFEF7FD376A for ; Wed, 25 Feb 2026 16:02:10 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.1240890.1542134 (Exim 4.92) (envelope-from ) id 1vvHKe-0008Mz-BD; Wed, 25 Feb 2026 16:01:48 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 1240890.1542134; Wed, 25 Feb 2026 16:01:48 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vvHKe-0008Ms-8D; Wed, 25 Feb 2026 16:01:48 +0000 Received: by outflank-mailman (input) for mailman id 1240890; Wed, 25 Feb 2026 16:01:46 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vvHKc-0008Mh-ID for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 16:01:46 +0000 Received: from mail187-10.suw11.mandrillapp.com (mail187-10.suw11.mandrillapp.com [198.2.187.10]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 450477b1-1263-11f1-9ccf-f158ae23cfc8; Wed, 25 Feb 2026 17:01:40 +0100 (CET) Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1]) by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id 4fLfTv15Vvz5Qld74 for ; Wed, 25 Feb 2026 16:01:39 +0000 (GMT) Received: from [37.26.189.201] by mandrillapp.com id 482a7224c02e41c58e684e009777b938; Wed, 25 Feb 2026 16:01:39 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 450477b1-1263-11f1-9ccf-f158ae23cfc8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; s=mte1; t=1772035299; x=1772305299; bh=zyfB8a/LztjIJ2AZxsJrk+XNtYgH9WQ+m3rsAXKXpdU=; h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=FHrEco3iUjR+/SczBYRGigGIyQIWH96xjiJnviZw21eUaRcQyyN+Hb+KmKELQ7EgK 2wurPAmdU4wJ8sRRgQSD8WSutqBMCgJPWhrcV8Xe+llO2ZRmA1JucYgqpyLFK9ctVL zdvcxQZJwevy289wlFkikeXnjAEq/pFfSyARnZPEbY1BLB5//oyQf9xRAJWzg5Q2VD o1Q3DI/9Bmuydqn+1tIM/dTw6YGS5IwpJllaLUuvCJqpeycldB3F+TBmgf31+gUjy2 iI52sl3i6LsdX5E6gaa3IU7J8teTy7VKLTwFydW21YEWUl1kHLh9JDgpnGdzmq/Vct y72h/vieU1n3w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1; t=1772035299; x=1772295799; i=anthony.perard@vates.tech; bh=zyfB8a/LztjIJ2AZxsJrk+XNtYgH9WQ+m3rsAXKXpdU=; h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=StdL/u14QdfCODZMQlK3/6wq/pkCGeIYEbMgEewQ3ncyhWTVm8vQApzi54bEcqBqd zUKC6ZXZ6lyMR0MMf4hkwLrY4lW6OQ9RTbRh0vxaeFeqYzxTWUpz+WBafzOfwcH4Pa FQnaWQdjeKCRtckjU24fDrbh0yUGLb6EJRiDDZZs9Tc7w4qmAtEKoefyAASAXbG6ae uJ0ZsfYa/vFC9V5jyXDLFeDaNHTLAqoMGSzMvB5Ua7Talecnvjg0vZ1FrvMapBFtZR LKY+QoXTDxZLo54O0YY7OSFa8PakQhAI1c1LxNCF4fp9Ly/5Oxfp+IrHmaKC2K7jtH bx9eeGE0KjZ3Q== From: "Anthony PERARD" Subject: =?utf-8?Q?Re:=20[PATCH=20v10=205/6]=20tools/xl/libxl:=20wire=20up=20SCMI=20SMC=20multi-agent=20configuration?= X-Bm-Disclaimer: Yes X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2 X-Bm-Transport-Timestamp: 1772035289214 To: "Oleksii Moisieiev" Cc: xen-devel@lists.xenproject.org, "Andrew Cooper" , "Bertrand Marquis" , "Jan Beulich" , "Juergen Gross" , "Julien Grall" , "Michal Orzel" , "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" , "Stefano Stabellini" , "Volodymyr Babchuk" , "Grygorii Strashko" Message-Id: References: <4ed96ed7bbb04c02b09eed63730702398b00b83f.1770982468.git.oleksii_moisieiev@epam.com> In-Reply-To: <4ed96ed7bbb04c02b09eed63730702398b00b83f.1770982468.git.oleksii_moisieiev@epam.com> X-Native-Encoded: 1 X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.482a7224c02e41c58e684e009777b938?= X-Mandrill-User: md_30504962 Feedback-ID: 30504962:30504962.20260225:md Date: Wed, 25 Feb 2026 16:01:39 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On Fri, Feb 13, 2026 at 11:37:05AM +0000, Oleksii Moisieiev wrote: > Plumb the SCMI SMC multi-agent type through the toolstack: > > - Extend libxl_arm_sci_type enumeration with scmi_smc_multiagent (value 2) > - Add agent_id field to libxl_arm_sci structure for per-domain agent assignment > - Update libxl_arm.c to translate libxl config to XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA > and pass agent_id to the hypervisor via xen_domctl_createdomain > - Add xl.cfg parsing for arm_sci="type=scmi_smc_multiagent,agent_id=N" > - Document the new xl.cfg options in xl.cfg.5.pod.in > > This completes the userspace side of multi-agent SCMI, allowing xl create > and dom0less configurations to assign unique agent_id values to domains. > > Signed-off-by: Grygorii Strashko > Signed-off-by: Oleksii Moisieiev > --- > > Changes in v10: > - Split hypervisor and toolstack changes into separate commits Thanks. That's easier to review. > docs/man/xl.cfg.5.pod.in | 14 ++++++++++++++ > tools/libs/light/libxl_arm.c | 4 ++++ > tools/libs/light/libxl_types.idl | 4 +++- > tools/xl/xl_parse.c | 12 ++++++++++++ > 4 files changed, 33 insertions(+), 1 deletion(-) > > diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in > index 27c455210b..e7f8af6156 100644 > --- a/docs/man/xl.cfg.5.pod.in > +++ b/docs/man/xl.cfg.5.pod.in > @@ -3156,8 +3156,22 @@ single SCMI OSPM agent support. > Should be used together with B Xen command line > option. > > +=item B > + > +Enables ARM SCMI SMC multi-agent support for the guest by enabling SCMI over > +SMC calls forwarding from domain to the EL3 firmware (like Trusted Firmware-A) > +with a multi SCMI OSPM agent support. The SCMI B should be > +specified for the guest. > + > =back > > +=item B > + > +Specifies a non-zero ARM SCI agent id for the guest. This option is mandatory > +if the SCMI SMC support is enabled for the guest. The agent ids of domains Those is need to say "SCMI SMC multi-agent support for the guest" ? `agent_id` doesn't seems to be used if we only select "type=scmi_smc" > +existing on a single host must be unique and in the range [0..254]. UINT8_MAX > +(255) is treated as invalid. What does "UINT8_MAX is treated as invalid" mean? Why is it mention? How is it different that the number 3615? My guess is that we don't care in this user documentation. All we need to say is that the value needs to be between 0 and 254 included, which is already stated. Also, it's written "non-zero agent id", but zero is in range of accepted values ([0-254]). So is agent_id=0 a valid config, or not? Also, if this config option isn't specified, we have a default to the value 0, is that ok? (libxl doesn't check if `agent_id` is a valid value, only `xl` doesn't that in this patch) BTW, you could check that agent_id is valid value in "libxl__arch_domain_build_info_setdefault()" > + > =back > > =back > diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c > index e4407d6e3f..be0e6263ae 100644 > --- a/tools/libs/light/libxl_arm.c > +++ b/tools/libs/light/libxl_arm.c > @@ -240,6 +240,10 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc, > case LIBXL_ARM_SCI_TYPE_SCMI_SMC: > config->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC; > break; > + case LIBXL_ARM_SCI_TYPE_SCMI_SMC_MULTIAGENT: > + config->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA; > + config->arch.arm_sci_agent_id = d_config->b_info.arch_arm.arm_sci.agent_id; > + break; > default: > LOG(ERROR, "Unknown ARM_SCI type %d", > d_config->b_info.arch_arm.arm_sci.type); > diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl > index 4a958f69f4..9bfbf09145 100644 > --- a/tools/libs/light/libxl_types.idl > +++ b/tools/libs/light/libxl_types.idl > @@ -554,11 +554,13 @@ libxl_sve_type = Enumeration("sve_type", [ > > libxl_arm_sci_type = Enumeration("arm_sci_type", [ > (0, "none"), > - (1, "scmi_smc") > + (1, "scmi_smc"), > + (2, "scmi_smc_multiagent") > ], init_val = "LIBXL_ARM_SCI_TYPE_NONE") > > libxl_arm_sci = Struct("arm_sci", [ > ("type", libxl_arm_sci_type), > + ("agent_id", uint8) Could you add a "#define LIBXL_HAVE_SCMI_SMC_MULTIAGENT" in "tools/include/libxl.h"? With a quick description about the new type, and new field. The are plenty of "LIBXL_HAVE_*" macro example in the header. > ]) > > libxl_rdm_reserve = Struct("rdm_reserve", [ > diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c > index 1cc41f1bff..2f1b475022 100644 > --- a/tools/xl/xl_parse.c > +++ b/tools/xl/xl_parse.c > @@ -1306,6 +1306,18 @@ static int parse_arm_sci_config(XLU_Config *cfg, libxl_arm_sci *arm_sci, > } > } > > + if (MATCH_OPTION("agent_id", ptr, oparg)) { > + unsigned long val = parse_ulong(oparg); > + > + if ( val >= UINT8_MAX ) { > + fprintf(stderr, "An invalid ARM_SCI agent_id specified (%lu). Valid range [0..254]\n", > + val); > + ret = ERROR_INVAL; > + goto out; > + } > + arm_sci->agent_id = val; > + } > + > ptr = strtok(NULL, ","); > } Thanks, -- Anthony Perard | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech