From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
Wei Liu <wl@xen.org>, George Dunlap <george.dunlap@citrix.com>,
Nick Rosbrook <rosbrookn@ainfosec.com>,
Anthony PERARD <anthony.perard@citrix.com>,
Juergen Gross <jgross@suse.com>
Subject: [RFC v2 7/8] tools/arm: add "arm_sci" option to xl.cfg
Date: Tue, 8 Feb 2022 18:00:13 +0000 [thread overview]
Message-ID: <e138c3ed5de18e7b2a423254f3b55c1a5f22c572.1644341635.git.oleksii_moisieiev@epam.com> (raw)
In-Reply-To: <cover.1644341635.git.oleksii_moisieiev@epam.com>
This enumeration sets SCI type for the domain. Currently there is
two possible options: either 'none' or 'scmi_smc'.
'none' is the default value and it disables SCI support at all.
'scmi_smc' enables access to the Firmware from the domains using SCMI
protocol and SMC as transport.
Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
---
docs/man/xl.cfg.5.pod.in | 20 ++++++++++++++++++++
tools/golang/xenlight/helpers.gen.go | 2 ++
tools/golang/xenlight/types.gen.go | 7 +++++++
tools/include/libxl.h | 5 +++++
tools/libs/light/libxl_types.idl | 6 ++++++
tools/xl/xl_parse.c | 9 +++++++++
6 files changed, 49 insertions(+)
diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index ddf82cb3bc..f960e367c4 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -1614,8 +1614,28 @@ This feature is a B<technology preview>.
=back
+=item B<arm_sci="STRING">
+
+B<Arm only> Set ARM_SCI type for the guest. ARM_SCI is System Control Protocol
+allows domain to manage various functions that are provided by HW platform.
+
=over 4
+=item B<none>
+
+Don't allow guest to use ARM_SCI if present on the platform. This is the
+default value.
+
+=item B<scmi_smc>
+
+Enables SCMI_SMC support for the guest. SCMI is System Control Management
+Inferface - allows domain to manage various functions that are provided by HW
+platform, such as clocks, resets and power-domains. Xen will mediate access to
+clocks, power-domains and resets between Domains and ATF. Disabled by default.
+SCP is used as transport.
+
+=back
+
=item B<force_assign_without_iommu=BOOLEAN>
If set, Xen allows to assign a devices even if it is not behind an IOMMU.
diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/helpers.gen.go
index 664933bbb8..6cf7725735 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -1091,6 +1091,7 @@ if err := x.DmRestrict.fromC(&xc.dm_restrict);err != nil {
return fmt.Errorf("converting field DmRestrict: %v", err)
}
x.Tee = TeeType(xc.tee)
+x.ArmSci = ArmSciType(xc.arm_sci)
if err := x.ForceAssignWithoutIommu.fromC(&xc.force_assign_without_iommu);err != nil {
return fmt.Errorf("converting field ForceAssignWithoutIommu: %v", err)
@@ -1439,6 +1440,7 @@ if err := x.DmRestrict.toC(&xc.dm_restrict); err != nil {
return fmt.Errorf("converting field DmRestrict: %v", err)
}
xc.tee = C.libxl_tee_type(x.Tee)
+xc.arm_sci = C.libxl_arm_sci_type(x.ArmSci)
xc._type = C.libxl_domain_type(x.Type)
switch x.Type{
case DomainTypeHvm:
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
index 2f7a088c3b..3b5c959215 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -443,6 +443,12 @@ TeeTypeNone TeeType = 0
TeeTypeOptee TeeType = 1
)
+type ArmSciType int
+const(
+ArmSciTypeNone ArmSciType = 0
+ArmSciTypeScmi ArmSciType = 1
+)
+
type RdmReserve struct {
Strategy RdmReserveStrategy
Policy RdmReservePolicy
@@ -512,6 +518,7 @@ NestedHvm Defbool
Apic Defbool
DmRestrict Defbool
Tee TeeType
+ArmSci ArmSciType
ForceAssignWithoutIommu Defbool
Type DomainType
TypeUnion DomainBuildInfoTypeUnion
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 2bbbd21f0b..30e5aee119 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -278,6 +278,11 @@
*/
#define LIBXL_HAVE_BUILDINFO_ARCH_ARM_TEE 1
+/*
+ * libxl_domain_build_info has the arch_arm.sci field.
+ */
+#define LIBXL_HAVE_BUILDINFO_ARCH_ARM_SCI 1
+
/*
* LIBXL_HAVE_SOFT_RESET indicates that libxl supports performing
* 'soft reset' for domains and there is 'soft_reset' shutdown reason
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index 1080966c33..1878c115c3 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -480,6 +480,11 @@ libxl_tee_type = Enumeration("tee_type", [
(1, "optee")
], init_val = "LIBXL_TEE_TYPE_NONE")
+libxl_arm_sci_type = Enumeration("arm_sci_type", [
+ (0, "none"),
+ (1, "scmi_smc")
+ ], init_val = "LIBXL_ARM_SCI_TYPE_NONE")
+
libxl_rdm_reserve = Struct("rdm_reserve", [
("strategy", libxl_rdm_reserve_strategy),
("policy", libxl_rdm_reserve_policy),
@@ -564,6 +569,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
("apic", libxl_defbool),
("dm_restrict", libxl_defbool),
("tee", libxl_tee_type),
+ ("arm_sci", libxl_arm_sci_type),
("force_assign_without_iommu", libxl_defbool),
("u", KeyedUnion(None, libxl_domain_type, "type",
[("hvm", Struct(None, [("firmware", string),
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 67fa96d949..d53c9b1271 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -2747,6 +2747,15 @@ skip_usbdev:
}
}
+ if (!xlu_cfg_get_string (config, "arm_sci", &buf, 1)) {
+ e = libxl_arm_sci_type_from_string(buf, &b_info->arm_sci);
+ if (e) {
+ fprintf(stderr,
+ "Unknown arm_sci \"%s\" specified\n", buf);
+ exit(-ERROR_FAIL);
+ }
+ }
+
xlu_cfg_get_defbool(config, "force_assign_without_iommu",
&b_info->force_assign_without_iommu, 0);
--
2.27.0
next prev parent reply other threads:[~2022-02-08 18:00 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-08 18:00 [RFC v2 0/8] Introduce SCI-mediator feature Oleksii Moisieiev
2022-02-08 18:00 ` [RFC v2 1/8] xen/hypfs: support fo nested dynamic hypfs nodes Oleksii Moisieiev
2022-02-10 7:34 ` Juergen Gross
2022-02-11 8:16 ` Oleksii Moisieiev
2022-02-11 13:28 ` Juergen Gross
2022-02-11 13:32 ` Oleksii Moisieiev
2022-02-08 18:00 ` [RFC v2 2/8] libs: libxenhypfs - handle blob properties Oleksii Moisieiev
2022-02-09 13:47 ` Oleksandr Andrushchenko
2022-02-09 14:01 ` Jan Beulich
2022-02-09 14:04 ` Oleksandr Andrushchenko
2022-02-09 14:04 ` Juergen Gross
2022-02-08 18:00 ` [RFC v2 3/8] xen/arm: Export host device-tree to hypfs Oleksii Moisieiev
2022-02-08 18:26 ` Julien Grall
2022-02-09 10:20 ` Oleksii Moisieiev
2022-02-09 12:17 ` Julien Grall
2022-02-09 14:17 ` Oleksii Moisieiev
2022-02-09 18:51 ` Oleksii Moisieiev
2022-02-09 19:34 ` Julien Grall
2022-02-10 9:38 ` Oleksii Moisieiev
2022-02-09 14:03 ` Juergen Gross
2022-02-08 18:00 ` [RFC v2 4/8] xen/arm: add generic SCI mediator framework Oleksii Moisieiev
2022-02-08 18:00 ` [RFC v2 5/8] xen/arm: introduce SCMI-SMC mediator driver Oleksii Moisieiev
2022-02-09 15:02 ` Oleksandr Andrushchenko
2022-02-09 15:23 ` Julien Grall
2022-02-11 8:46 ` Bertrand Marquis
2022-02-11 10:44 ` Oleksii Moisieiev
2022-02-11 11:18 ` Bertrand Marquis
2022-02-11 11:55 ` Oleksii Moisieiev
2022-02-11 23:35 ` Stefano Stabellini
2022-02-12 12:43 ` Julien Grall
2022-02-14 11:13 ` Oleksii Moisieiev
2022-02-14 11:27 ` Bertrand Marquis
2022-02-14 11:51 ` Oleksii Moisieiev
2022-02-14 22:05 ` Stefano Stabellini
2022-02-16 17:41 ` Oleksii Moisieiev
2022-02-08 18:00 ` [RFC v2 6/8] tools/arm: Introduce force_assign_without_iommu option to xl.cfg Oleksii Moisieiev
2022-02-17 14:52 ` Anthony PERARD
2022-02-18 8:19 ` Oleksii Moisieiev
2022-02-17 15:20 ` Julien Grall
2022-02-18 9:16 ` Oleksii Moisieiev
2022-02-18 10:17 ` Julien Grall
2022-02-21 18:39 ` Oleksii Moisieiev
2022-06-03 13:43 ` Jan Beulich
2022-02-08 18:00 ` Oleksii Moisieiev [this message]
2022-02-08 18:00 ` [RFC v2 8/8] xen/arm: add SCI mediator support for DomUs Oleksii Moisieiev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e138c3ed5de18e7b2a423254f3b55c1a5f22c572.1644341635.git.oleksii_moisieiev@epam.com \
--to=oleksii_moisieiev@epam.com \
--cc=anthony.perard@citrix.com \
--cc=george.dunlap@citrix.com \
--cc=jgross@suse.com \
--cc=rosbrookn@ainfosec.com \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.