lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 26 Jan 2022 08:23:44 +0000 From: Peng Fan <peng.fan@....com> To: "Peng Fan (OSS)" <peng.fan@....nxp.com>, "shawnguo@...nel.org" <shawnguo@...nel.org>, "s.hauer@...gutronix.de" <s.hauer@...gutronix.de> CC: "kernel@...gutronix.de" <kernel@...gutronix.de>, "festevam@...il.com" <festevam@...il.com>, dl-linux-imx <linux-imx@....com>, "linux-arm-kernel@...ts.infradead.org" <linux-arm-kernel@...ts.infradead.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org> Subject: RE: [PATCH] firmware: imx: add get resource owner api > Subject: [PATCH] firmware: imx: add get resource owner api Ping.. we need this API for remoteproc partition case. Thanks, Peng. > > From: Peng Fan <peng.fan@....com> > > Add resource owner management API, this API could be used to check > whether M4 is under control of Linux. > > Signed-off-by: Peng Fan <peng.fan@....com> > --- > drivers/firmware/imx/rm.c | 45 > +++++++++++++++++++++++++++++ > include/linux/firmware/imx/svc/rm.h | 5 ++++ > 2 files changed, 50 insertions(+) > > diff --git a/drivers/firmware/imx/rm.c b/drivers/firmware/imx/rm.c index > a12db6ff323b..3c3605f98123 100644 > --- a/drivers/firmware/imx/rm.c > +++ b/drivers/firmware/imx/rm.c > @@ -43,3 +43,48 @@ bool imx_sc_rm_is_resource_owned(struct imx_sc_ipc > *ipc, u16 resource) > return hdr->func; > } > EXPORT_SYMBOL(imx_sc_rm_is_resource_owned); > + > +/* > + * This function get @resource partition number > + * > + * @param[in] ipc IPC handle > + * @param[in] resource resource the control is associated with > + * @param[out] pt pointer to return the partition number > + * > + * @return Returns 0 for success and < 0 for errors. > + */ > +struct imx_sc_msg_rm_get_resource_owner { > + struct imx_sc_rpc_msg hdr; > + union { > + struct { > + u16 resource; > + } req; > + struct { > + u8 val; > + } resp; > + } data; > +} __packed __aligned(4); > + > +int imx_sc_rm_get_resource_owner(struct imx_sc_ipc *ipc, u16 resource, > +u8 *pt) { > + struct imx_sc_msg_rm_get_resource_owner msg; > + struct imx_sc_rpc_msg *hdr = &msg.hdr; > + int ret; > + > + hdr->ver = IMX_SC_RPC_VERSION; > + hdr->svc = IMX_SC_RPC_SVC_RM; > + hdr->func = IMX_SC_RM_FUNC_GET_RESOURCE_OWNER; > + hdr->size = 2; > + > + msg.data.req.resource = resource; > + > + ret = imx_scu_call_rpc(ipc, &msg, true); > + if (ret) > + return ret; > + > + if (pt) > + *pt = msg.data.resp.val; > + > + return 0; > +} > +EXPORT_SYMBOL(imx_sc_rm_get_resource_owner); > diff --git a/include/linux/firmware/imx/svc/rm.h > b/include/linux/firmware/imx/svc/rm.h > index 456b6a59d29b..ff481b23ea36 100644 > --- a/include/linux/firmware/imx/svc/rm.h > +++ b/include/linux/firmware/imx/svc/rm.h > @@ -59,11 +59,16 @@ enum imx_sc_rm_func { > > #if IS_ENABLED(CONFIG_IMX_SCU) > bool imx_sc_rm_is_resource_owned(struct imx_sc_ipc *ipc, u16 resource); > +int imx_sc_rm_get_resource_owner(struct imx_sc_ipc *ipc, u16 resource, > +u8 *pt); > #else > static inline bool > imx_sc_rm_is_resource_owned(struct imx_sc_ipc *ipc, u16 resource) { > return true; > } > +static inline int imx_sc_rm_get_resource_owner(struct imx_sc_ipc *ipc, > +u16 resource, u8 *pt) { > + return -ENOTSUPP; > +} > #endif > #endif > -- > 2.25.1
Powered by blists - more mailing lists