From 091ae20d51a48c91e380d823665a2a6d41aa8fc7 Mon Sep 17 00:00:00 2001 From: Mirela Simonovic Date: Tue, 23 Oct 2018 16:51:20 +0200 Subject: [PATCH] xen/arm: zynqmp: Add PLL EEMI API definitions and passthrough get functions PLL get functions should be allowed to every guest because guests may need to use these APIs to calculate the PLL output frequency. Thereby, allow passthrough of get functions to every guest. Signed-off-by: Mirela Simonovic Reviewed-by: Saeed Nowshadi Reviewed-by: Stefano Stabellini --- xen/arch/arm/platforms/xilinx-zynqmp-eemi.c | 12 ++++++++++++ xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c b/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c index 3bd24e8534..20c4be353c 100644 --- a/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c +++ b/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c @@ -921,6 +921,18 @@ bool zynqmp_eemi(struct cpu_user_regs *regs) } goto forward_to_fw; + case EEMI_FID(PM_PLL_GET_PARAMETER): + case EEMI_FID(PM_PLL_GET_MODE): + if ( nodeid < NODE_APLL || nodeid > NODE_IOPLL ) + { + gprintk(XENLOG_WARNING, "zynqmp-pm: fn=%u Invalid pll node %u\n", + pm_fn, nodeid); + ret = XST_PM_INVALID_PARAM; + goto done; + } + else + goto forward_to_fw; + /* These calls are never allowed. */ case EEMI_FID(PM_SYSTEM_SHUTDOWN): ret = XST_PM_NO_ACCESS; diff --git a/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h b/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h index 40762335ca..8412d8f0cb 100644 --- a/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h +++ b/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h @@ -80,6 +80,11 @@ enum pm_api_id { PM_CLOCK_GETRATE, PM_CLOCK_SETPARENT, PM_CLOCK_GETPARENT, + /* PLL control API functions */ + PM_PLL_SET_PARAMETER = 48, + PM_PLL_GET_PARAMETER, + PM_PLL_SET_MODE, + PM_PLL_GET_MODE, PM_GET_TRUSTZONE_VERSION = 2563, PM_API_MAX }; -- 2.39.5