|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RFC v1 0/5] Introduce SCI-mediator feature
On 14.12.21 11:34, Oleksii Moisieiev wrote: Hi Oleksii Introducing the feature, called SCI mediator. It's purpose is to redirect SCMI requests from the domains to firmware (SCP, ATF etc), which controls the power/clock/resets etc. The idea is to make SCP firmware (or similar, such as AT-F) responsible for control power/clock/resets and provide SCMI interface so controls can be shared between the Domains. Originally, we've met a problem, that the devices, shared between different Domains, can't have an access to HW registers to work with clocks/resets/power etc. You have to pass cpg to the Domain, so the devices can access HW directly. The solution for this is to move HW controls over power/clock/resets to SCP firmware and use Linux-kernel SCMI drivers to pass requests to SCP. Xen is responsible for permissions setting, so Domain can access only to power/clock/resets which are related to this Domain. Also XEN is the mediator which redirects SCMI requests, adding agentID so firmware should know the sender. SMC is currently used as transport, but this should be configurable. Here is the high level design: SCI (System Control Interface) feature can be enabled in xen_config:CONFIG_SCI=yMediator can be configured:CONFIG_SCMI_SMC=y Great work! I can imagine this is going to be nice feature once upstreamed.I am wondering, would the Xen (with the required updates of course) also be able to send it's own requests to the SCP? For example, to control overall system performance (CPU frequency) or other let's say important power management task. Oleksii Moisieiev (5): xen/arm: add support for Renesas R-Car Gen3 platform xen/arm: add generic SCI mediator framework xen/arm: introduce SCMI-SMC mediator driver tools/arm: add "scmi_smc" option to xl.cfg xen/arm: add SCI mediator support for DomUs MAINTAINERS | 6 + docs/man/xl.cfg.5.pod.in | 22 + tools/include/libxl.h | 5 + tools/include/xenctrl.h | 3 + tools/include/xenguest.h | 2 + tools/libs/ctrl/xc_domain.c | 23 + tools/libs/guest/xg_dom_arm.c | 5 +- tools/libs/light/libxl_arm.c | 122 ++++- tools/libs/light/libxl_create.c | 54 +- tools/libs/light/libxl_dom.c | 1 + tools/libs/light/libxl_internal.h | 4 + tools/libs/light/libxl_types.idl | 6 + tools/xl/xl_parse.c | 9 + xen/arch/arm/Kconfig | 10 + xen/arch/arm/Makefile | 1 + xen/arch/arm/domain.c | 24 + xen/arch/arm/domain_build.c | 11 + xen/arch/arm/domctl.c | 15 + xen/arch/arm/platforms/Makefile | 1 + xen/arch/arm/platforms/rcar3.c | 47 ++ xen/arch/arm/sci/Kconfig | 10 + xen/arch/arm/sci/Makefile | 2 + xen/arch/arm/sci/sci.c | 128 +++++ xen/arch/arm/sci/scmi_smc.c | 795 ++++++++++++++++++++++++++++++ xen/arch/arm/setup.c | 1 + xen/arch/arm/xen.lds.S | 7 + xen/include/asm-arm/domain.h | 4 + xen/include/asm-arm/sci/sci.h | 162 ++++++ xen/include/public/arch-arm.h | 11 + xen/include/public/domctl.h | 9 + 30 files changed, 1485 insertions(+), 15 deletions(-) create mode 100644 xen/arch/arm/platforms/rcar3.c create mode 100644 xen/arch/arm/sci/Kconfig create mode 100644 xen/arch/arm/sci/Makefile create mode 100644 xen/arch/arm/sci/sci.c create mode 100644 xen/arch/arm/sci/scmi_smc.c create mode 100644 xen/include/asm-arm/sci/sci.h -- Regards, Oleksandr Tyshchenko
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |