diff options
author | Franck LENORMAND <franck.lenormand@nxp.com> | 2020-03-04 13:20:05 +0100 |
---|---|---|
committer | Franck LENORMAND <franck.lenormand@nxp.com> | 2020-03-13 17:11:58 +0100 |
commit | 2ccb9a596aab4d465eb82e3b7e0d153e9f54bd7c (patch) | |
tree | e41dd375fda53be6894fe56fe321ba3c24b142ce /include | |
parent | ccf07c0822eb0d9fdd0251d92fb21a52a9be1ef0 (diff) |
SSI-87: firmware: imx: Add APIs required for secvio
The Security Violation module requires SC API for the SECO, RM, MISC
and IRQ.
This patch does:
- imx-scu-irq: Allow reuse of imx_scu_irq_get_status
- seco:
- Add imx_sc_seco_secvio_enable
- Add imx_sc_seco_secvio_config
- Add imx_sc_seco_secvio_dgo_config
Signed-off-by: Franck LENORMAND <franck.lenormand@nxp.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/dt-bindings/firmware/imx/rsrc.h | 3 | ||||
-rw-r--r-- | include/linux/firmware/imx/sci.h | 4 | ||||
-rw-r--r-- | include/linux/firmware/imx/svc/seco.h | 30 |
3 files changed, 36 insertions, 1 deletions
diff --git a/include/dt-bindings/firmware/imx/rsrc.h b/include/dt-bindings/firmware/imx/rsrc.h index cfae34a7611c..126760ab3b11 100644 --- a/include/dt-bindings/firmware/imx/rsrc.h +++ b/include/dt-bindings/firmware/imx/rsrc.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (C) 2016 Freescale Semiconductor, Inc. - * Copyright 2017-2018 NXP + * Copyright 2017-2018,2020 NXP */ #ifndef __DT_BINDINGS_RSCRC_IMX_H @@ -51,6 +51,7 @@ #define IMX_SC_R_DC_1_BLIT2 38 #define IMX_SC_R_DC_1_BLIT_OUT 39 #define IMX_SC_R_DC_1_WARP 42 +#define IMX_SC_R_SECVIO 44 #define IMX_SC_R_DC_1_VIDEO0 45 #define IMX_SC_R_DC_1_VIDEO1 46 #define IMX_SC_R_DC_1_FRAC0 47 diff --git a/include/linux/firmware/imx/sci.h b/include/linux/firmware/imx/sci.h index 5d5e3094181e..e749594436bb 100644 --- a/include/linux/firmware/imx/sci.h +++ b/include/linux/firmware/imx/sci.h @@ -17,8 +17,12 @@ #include <linux/firmware/imx/svc/rm.h> #include <linux/firmware/imx/svc/seco.h> +#define IMX_SC_IRQ_GROUP_WAKE 3U /* Wakeup interrupts */ +#define IMX_SC_IRQ_SECVIO BIT(6) /* Security violation */ + int imx_scu_enable_general_irq_channel(struct device *dev); int imx_scu_irq_register_notifier(struct notifier_block *nb); int imx_scu_irq_unregister_notifier(struct notifier_block *nb); int imx_scu_irq_group_enable(u8 group, u32 mask, u8 enable); +int imx_scu_irq_get_status(u8 group, u32 *irq_status); #endif /* _SC_SCI_H */ diff --git a/include/linux/firmware/imx/svc/seco.h b/include/linux/firmware/imx/svc/seco.h index 00480b32ac63..d0dd803a1a52 100644 --- a/include/linux/firmware/imx/svc/seco.h +++ b/include/linux/firmware/imx/svc/seco.h @@ -23,12 +23,21 @@ enum imx_sc_seco_func { IMX_SC_SECO_FUNC_UNKNOWN = 0, IMX_SC_SECO_FUNC_BUILD_INFO = 16, IMX_SC_SECO_FUNC_SAB_MSG = 23, + IMX_SC_SECO_FUNC_SECVIO_ENABLE = 25, + IMX_SC_SECO_FUNC_SECVIO_CONFIG = 26, + IMX_SC_SECO_FUNC_SECVIO_DGO_CONFIG = 27, }; #if IS_ENABLED(CONFIG_IMX_SCU) int imx_sc_seco_build_info(struct imx_sc_ipc *ipc, uint32_t *version, uint32_t *commit); int imx_sc_seco_sab_msg(struct imx_sc_ipc *ipc, u64 smsg_addr); +int imx_sc_seco_secvio_enable(struct imx_sc_ipc *ipc); +int imx_sc_seco_secvio_config(struct imx_sc_ipc *ipc, u8 id, u8 access, + u32 *data0, u32 *data1, u32 *data2, u32 *data3, + u32 *data4, u8 size); +int imx_sc_seco_secvio_dgo_config(struct imx_sc_ipc *ipc, u8 id, u8 access, + u32 *data); #else /* IS_ENABLED(CONFIG_IMX_SCU) */ static inline int imx_sc_seco_build_info(struct imx_sc_ipc *ipc, uint32_t *version, @@ -42,6 +51,27 @@ int imx_sc_seco_sab_msg(struct imx_sc_ipc *ipc, u64 smsg_addr) { return -EOPNOTSUPP; } + +static inline +int imx_sc_seco_secvio_enable(struct imx_sc_ipc *ipc) +{ + return -EOPNOTSUPP; +} + +static inline +int imx_sc_seco_secvio_config(struct imx_sc_ipc *ipc, u8 id, u8 access, + u32 *data0, u32 *data1, u32 *data2, u32 *data3, + u32 *data4, u8 size) +{ + return -EOPNOTSUPP; +} + +static inline +int imx_sc_seco_secvio_dgo_config(struct imx_sc_ipc *ipc, u8 id, u8 access, + u32 *data) +{ + return -EOPNOTSUPP; +} #endif /* IS_ENABLED(CONFIG_IMX_SCU) */ #endif /* _SC_SECO_API_H */ |