Re: [Xen-devel] [PATCH v8 3/6] xen/arm: zynqmp: introduce zynqmp specific defines
Hi Stefano, On 18/12/2018 23:32, Stefano Stabellini wrote: From: "Edgar E. Iglesias" Introduce zynqmp specific defines for the firmware calls. See EEMI: https://www.xilinx.com/support/documentation/user_guides/ug1200-eemi-api.pdf The error codes are described, under XIlPM Error Codes: https://www.xilinx.com/support/documentation/user_guides/ug1137-zynq-ultrascale-mpsoc-swdev.pdf - pm_api_id These are the EEMI function IDs. Unavoidable. - pm_ret_status These are the EEMI return statuses. Unavoidable. Signed-off-by: Edgar E. Iglesias > Signed-off-by: Stefano Stabellini Acked-by: Julien Grall Cheers, --- Changes in v8: - move PM_GET_TRUSTZONE_VERSION to enum - remove redundant ZYNQMP_SIP_SVC_* definitions Changes in v7: - introduce EEMI_FID - remove tabs Changes in v6: - improve commit message - remove MM_*, node ids and reset ids Changes in v5: - remove MMIO access related definitions Changes in v4: - define PM_MMIO_SHIFT --- xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h | 83 ++ 1 file changed, 83 insertions(+) diff --git a/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h b/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h index 43cefb5..2fbf150 100644 --- a/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h +++ b/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h @@ -15,6 +15,89 @@ #define __ASM_ASM_PLATFORMS_ZYNQMP_H #include +#include + +#define EEMI_FID(fid) ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \ + ARM_SMCCC_CONV_64, \ + ARM_SMCCC_OWNER_SIP, \ + fid) + +enum pm_api_id { +/* Miscellaneous API functions: */ +PM_GET_API_VERSION = 1, /* Do not change or move */ +PM_SET_CONFIGURATION, +PM_GET_NODE_STATUS, +PM_GET_OP_CHARACTERISTIC, +PM_REGISTER_NOTIFIER, +/* API for suspending of PUs: */ +PM_REQ_SUSPEND, +PM_SELF_SUSPEND, +PM_FORCE_POWERDOWN, +PM_ABORT_SUSPEND, +PM_REQ_WAKEUP, +PM_SET_WAKEUP_SOURCE, +PM_SYSTEM_SHUTDOWN, +/* API for managing PM slaves: */ +PM_REQ_NODE, +PM_RELEASE_NODE, +PM_SET_REQUIREMENT, +PM_SET_MAX_LATENCY, +/* Direct control API functions: */ +PM_RESET_ASSERT, +PM_RESET_GET_STATUS, +PM_MMIO_WRITE, +PM_MMIO_READ, +PM_INIT, +PM_FPGA_LOAD, +PM_FPGA_GET_STATUS, +PM_GET_CHIPID, +/* ID 25 is been used by U-boot to process secure boot images */ +/* Secure library generic API functions */ +PM_SECURE_SHA = 26, +PM_SECURE_RSA, +/* Pin control API functions */ +PM_PINCTRL_REQUEST, +PM_PINCTRL_RELEASE, +PM_PINCTRL_GET_FUNCTION, +PM_PINCTRL_SET_FUNCTION, +PM_PINCTRL_CONFIG_PARAM_GET, +PM_PINCTRL_CONFIG_PARAM_SET, +/* PM IOCTL API */ +PM_IOCTL, +/* API to query information from firmware */ +PM_QUERY_DATA, +/* Clock control API functions */ +PM_CLOCK_ENABLE, +PM_CLOCK_DISABLE, +PM_CLOCK_GETSTATE, +PM_CLOCK_SETDIVIDER, +PM_CLOCK_GETDIVIDER, +PM_CLOCK_SETRATE, +PM_CLOCK_GETRATE, +PM_CLOCK_SETPARENT, +PM_CLOCK_GETPARENT, +PM_GET_TRUSTZONE_VERSION = 2563, +PM_API_MAX +}; + +/** + * @XST_PM_SUCCESS:Success + * @XST_PM_INTERNAL: Unexpected error + * @XST_PM_CONFLICT: Conflicting requirements + * @XST_PM_NO_ACCESS: Access rights violation + * @XST_PM_INVALID_NODE: Does not apply to node passed as argument + * @XST_PM_DOUBLE_REQ: Duplicate request + * @XST_PM_ABORT_SUSPEND: Target has aborted suspend + */ +enum pm_ret_status { +XST_PM_SUCCESS = 0, +XST_PM_INTERNAL = 2000, +XST_PM_CONFLICT, +XST_PM_NO_ACCESS, +XST_PM_INVALID_NODE, +XST_PM_DOUBLE_REQ, +XST_PM_ABORT_SUSPEND, +}; extern bool zynqmp_eemi(struct cpu_user_regs *regs); -- Julien Grall ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
[Xen-devel] [PATCH v8 3/6] xen/arm: zynqmp: introduce zynqmp specific defines
From: "Edgar E. Iglesias" Introduce zynqmp specific defines for the firmware calls. See EEMI: https://www.xilinx.com/support/documentation/user_guides/ug1200-eemi-api.pdf The error codes are described, under XIlPM Error Codes: https://www.xilinx.com/support/documentation/user_guides/ug1137-zynq-ultrascale-mpsoc-swdev.pdf - pm_api_id These are the EEMI function IDs. Unavoidable. - pm_ret_status These are the EEMI return statuses. Unavoidable. Signed-off-by: Edgar E. Iglesias Signed-off-by: Stefano Stabellini --- Changes in v8: - move PM_GET_TRUSTZONE_VERSION to enum - remove redundant ZYNQMP_SIP_SVC_* definitions Changes in v7: - introduce EEMI_FID - remove tabs Changes in v6: - improve commit message - remove MM_*, node ids and reset ids Changes in v5: - remove MMIO access related definitions Changes in v4: - define PM_MMIO_SHIFT --- xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h | 83 ++ 1 file changed, 83 insertions(+) diff --git a/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h b/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h index 43cefb5..2fbf150 100644 --- a/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h +++ b/xen/include/asm-arm/platforms/xilinx-zynqmp-eemi.h @@ -15,6 +15,89 @@ #define __ASM_ASM_PLATFORMS_ZYNQMP_H #include +#include + +#define EEMI_FID(fid) ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \ + ARM_SMCCC_CONV_64, \ + ARM_SMCCC_OWNER_SIP, \ + fid) + +enum pm_api_id { +/* Miscellaneous API functions: */ +PM_GET_API_VERSION = 1, /* Do not change or move */ +PM_SET_CONFIGURATION, +PM_GET_NODE_STATUS, +PM_GET_OP_CHARACTERISTIC, +PM_REGISTER_NOTIFIER, +/* API for suspending of PUs: */ +PM_REQ_SUSPEND, +PM_SELF_SUSPEND, +PM_FORCE_POWERDOWN, +PM_ABORT_SUSPEND, +PM_REQ_WAKEUP, +PM_SET_WAKEUP_SOURCE, +PM_SYSTEM_SHUTDOWN, +/* API for managing PM slaves: */ +PM_REQ_NODE, +PM_RELEASE_NODE, +PM_SET_REQUIREMENT, +PM_SET_MAX_LATENCY, +/* Direct control API functions: */ +PM_RESET_ASSERT, +PM_RESET_GET_STATUS, +PM_MMIO_WRITE, +PM_MMIO_READ, +PM_INIT, +PM_FPGA_LOAD, +PM_FPGA_GET_STATUS, +PM_GET_CHIPID, +/* ID 25 is been used by U-boot to process secure boot images */ +/* Secure library generic API functions */ +PM_SECURE_SHA = 26, +PM_SECURE_RSA, +/* Pin control API functions */ +PM_PINCTRL_REQUEST, +PM_PINCTRL_RELEASE, +PM_PINCTRL_GET_FUNCTION, +PM_PINCTRL_SET_FUNCTION, +PM_PINCTRL_CONFIG_PARAM_GET, +PM_PINCTRL_CONFIG_PARAM_SET, +/* PM IOCTL API */ +PM_IOCTL, +/* API to query information from firmware */ +PM_QUERY_DATA, +/* Clock control API functions */ +PM_CLOCK_ENABLE, +PM_CLOCK_DISABLE, +PM_CLOCK_GETSTATE, +PM_CLOCK_SETDIVIDER, +PM_CLOCK_GETDIVIDER, +PM_CLOCK_SETRATE, +PM_CLOCK_GETRATE, +PM_CLOCK_SETPARENT, +PM_CLOCK_GETPARENT, +PM_GET_TRUSTZONE_VERSION = 2563, +PM_API_MAX +}; + +/** + * @XST_PM_SUCCESS:Success + * @XST_PM_INTERNAL: Unexpected error + * @XST_PM_CONFLICT: Conflicting requirements + * @XST_PM_NO_ACCESS: Access rights violation + * @XST_PM_INVALID_NODE: Does not apply to node passed as argument + * @XST_PM_DOUBLE_REQ: Duplicate request + * @XST_PM_ABORT_SUSPEND: Target has aborted suspend + */ +enum pm_ret_status { +XST_PM_SUCCESS = 0, +XST_PM_INTERNAL = 2000, +XST_PM_CONFLICT, +XST_PM_NO_ACCESS, +XST_PM_INVALID_NODE, +XST_PM_DOUBLE_REQ, +XST_PM_ABORT_SUSPEND, +}; extern bool zynqmp_eemi(struct cpu_user_regs *regs); -- 1.9.1 ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel