Skip to content

Commit 2eb8c90

Browse files
xen/arm: add SCI mediator support for DomUs
Integration of the SCMI mediator with xen libs: - add hypercalls to aquire SCI channel and set device permissions for DomUs; - add SCMI_SMC nodes to DomUs device-tree based on partial device-tree; - SCI requests redirection from DomUs to Firmware. Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
1 parent 4a28169 commit 2eb8c90

8 files changed

Lines changed: 367 additions & 14 deletions

File tree

tools/include/xenctrl.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1230,6 +1230,9 @@ int xc_domain_getvnuma(xc_interface *xch,
12301230
int xc_domain_soft_reset(xc_interface *xch,
12311231
uint32_t domid);
12321232

1233+
int xc_domain_get_sci_info(xc_interface *xch, uint32_t domid,
1234+
uint64_t *paddr, uint32_t *func_id);
1235+
12331236
#if defined(__i386__) || defined(__x86_64__)
12341237
/*
12351238
* PC BIOS standard E820 types and structure.

tools/libs/ctrl/xc_domain.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2180,6 +2180,24 @@ int xc_domain_soft_reset(xc_interface *xch,
21802180
domctl.domain = domid;
21812181
return do_domctl(xch, &domctl);
21822182
}
2183+
2184+
int xc_domain_get_sci_info(xc_interface *xch, uint32_t domid,
2185+
uint64_t *paddr, uint32_t *func_id)
2186+
{
2187+
struct xen_domctl domctl = {};
2188+
2189+
memset(&domctl, 0, sizeof(domctl));
2190+
domctl.cmd = XEN_DOMCTL_get_sci_info;
2191+
domctl.domain = domid;
2192+
2193+
if ( do_domctl(xch, &domctl) != 0 )
2194+
return 1;
2195+
2196+
*paddr = domctl.u.sci_info.paddr;
2197+
*func_id = domctl.u.sci_info.func_id;
2198+
return 0;
2199+
}
2200+
21832201
/*
21842202
* Local variables:
21852203
* mode: C

0 commit comments

Comments
 (0)