The fastrpc driver has support for 5 types of remoteprocs. There are
some products which support GDSP remoteprocs. GDSP is General Purpose
DSP where tasks can be offloaded. This patch extends the driver to
support GDSP remoteprocs.
Signed-off-by: Ling Xu <quic_lxu5@quicinc.com>
---
drivers/misc/fastrpc.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
index 85b6eb16b616..d05969de406e 100644
--- a/drivers/misc/fastrpc.c
+++ b/drivers/misc/fastrpc.c
@@ -27,6 +27,7 @@
#define MDSP_DOMAIN_ID (1)
#define SDSP_DOMAIN_ID (2)
#define CDSP_DOMAIN_ID (3)
+#define GDSP_DOMAIN_ID (4)
#define FASTRPC_MAX_SESSIONS 14
#define FASTRPC_MAX_VMIDS 16
#define FASTRPC_ALIGN 128
@@ -2249,6 +2250,8 @@ static int fastrpc_get_domain_id(const char *domain)
return MDSP_DOMAIN_ID;
else if (!strncmp(domain, "sdsp", 4))
return SDSP_DOMAIN_ID;
+ else if (!strncmp(domain, "gdsp", 4))
+ return GDSP_DOMAIN_ID;
return -EINVAL;
}
@@ -2323,13 +2326,14 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev)
case ADSP_DOMAIN_ID:
case MDSP_DOMAIN_ID:
case SDSP_DOMAIN_ID:
- /* Unsigned PD offloading is only supported on CDSP */
+ /* Unsigned PD offloading is only supported on CDSP and GDSP */
data->unsigned_support = false;
err = fastrpc_device_register(rdev, data, secure_dsp, domain);
if (err)
goto err_free_data;
break;
case CDSP_DOMAIN_ID:
+ case GDSP_DOMAIN_ID:
data->unsigned_support = true;
/* Create both device nodes so that we can allow both Signed and Unsigned PD */
err = fastrpc_device_register(rdev, data, true, domain);
--
2.34.1
在 7/9/2025 1:47 PM, Ling Xu 写道: > The fastrpc driver has support for 5 types of remoteprocs. There are > some products which support GDSP remoteprocs. GDSP is General Purpose > DSP where tasks can be offloaded. This patch extends the driver to > support GDSP remoteprocs. > sorry, please ignore this patch. I haven't change commit message here. "Extend the driver to support GDSP remoteprocs." > Signed-off-by: Ling Xu <quic_lxu5@quicinc.com> > --- > drivers/misc/fastrpc.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c > index 85b6eb16b616..d05969de406e 100644 > --- a/drivers/misc/fastrpc.c > +++ b/drivers/misc/fastrpc.c > @@ -27,6 +27,7 @@ > #define MDSP_DOMAIN_ID (1) > #define SDSP_DOMAIN_ID (2) > #define CDSP_DOMAIN_ID (3) > +#define GDSP_DOMAIN_ID (4) > #define FASTRPC_MAX_SESSIONS 14 > #define FASTRPC_MAX_VMIDS 16 > #define FASTRPC_ALIGN 128 > @@ -2249,6 +2250,8 @@ static int fastrpc_get_domain_id(const char *domain) > return MDSP_DOMAIN_ID; > else if (!strncmp(domain, "sdsp", 4)) > return SDSP_DOMAIN_ID; > + else if (!strncmp(domain, "gdsp", 4)) > + return GDSP_DOMAIN_ID; > > return -EINVAL; > } > @@ -2323,13 +2326,14 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev) > case ADSP_DOMAIN_ID: > case MDSP_DOMAIN_ID: > case SDSP_DOMAIN_ID: > - /* Unsigned PD offloading is only supported on CDSP */ > + /* Unsigned PD offloading is only supported on CDSP and GDSP */ > data->unsigned_support = false; > err = fastrpc_device_register(rdev, data, secure_dsp, domain); > if (err) > goto err_free_data; > break; > case CDSP_DOMAIN_ID: > + case GDSP_DOMAIN_ID: > data->unsigned_support = true; > /* Create both device nodes so that we can allow both Signed and Unsigned PD */ > err = fastrpc_device_register(rdev, data, true, domain); -- Thx and BRs, Ling Xu
On 7/9/25 7:52 AM, Ling Xu wrote: > 在 7/9/2025 1:47 PM, Ling Xu 写道: >> The fastrpc driver has support for 5 types of remoteprocs. There are >> some products which support GDSP remoteprocs. GDSP is General Purpose >> DSP where tasks can be offloaded. This patch extends the driver to >> support GDSP remoteprocs. >> > > sorry, please ignore this patch. > I haven't change commit message here. > "Extend the driver to support GDSP remoteprocs." How about this instead: Some platforms (like SMabcd) feature one or more GPDSPs (General Purpose DSPs). Similar to other kinds of Hexagon DSPs, they provide a FastRPC implementation, allowing code execution in both signed and unsigned protection domains. Extend the checks to allow domain names starting with "gdsp" (possibly followed by an index). Konrad > >> Signed-off-by: Ling Xu <quic_lxu5@quicinc.com> >> --- >> drivers/misc/fastrpc.c | 6 +++++- >> 1 file changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c >> index 85b6eb16b616..d05969de406e 100644 >> --- a/drivers/misc/fastrpc.c >> +++ b/drivers/misc/fastrpc.c >> @@ -27,6 +27,7 @@ >> #define MDSP_DOMAIN_ID (1) >> #define SDSP_DOMAIN_ID (2) >> #define CDSP_DOMAIN_ID (3) >> +#define GDSP_DOMAIN_ID (4) >> #define FASTRPC_MAX_SESSIONS 14 >> #define FASTRPC_MAX_VMIDS 16 >> #define FASTRPC_ALIGN 128 >> @@ -2249,6 +2250,8 @@ static int fastrpc_get_domain_id(const char *domain) >> return MDSP_DOMAIN_ID; >> else if (!strncmp(domain, "sdsp", 4)) >> return SDSP_DOMAIN_ID; >> + else if (!strncmp(domain, "gdsp", 4)) >> + return GDSP_DOMAIN_ID; >> >> return -EINVAL; >> } >> @@ -2323,13 +2326,14 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev) >> case ADSP_DOMAIN_ID: >> case MDSP_DOMAIN_ID: >> case SDSP_DOMAIN_ID: >> - /* Unsigned PD offloading is only supported on CDSP */ >> + /* Unsigned PD offloading is only supported on CDSP and GDSP */ >> data->unsigned_support = false; >> err = fastrpc_device_register(rdev, data, secure_dsp, domain); >> if (err) >> goto err_free_data; >> break; >> case CDSP_DOMAIN_ID: >> + case GDSP_DOMAIN_ID: >> data->unsigned_support = true; >> /* Create both device nodes so that we can allow both Signed and Unsigned PD */ >> err = fastrpc_device_register(rdev, data, true, domain); >
在 7/10/2025 3:19 AM, Konrad Dybcio 写道: > On 7/9/25 7:52 AM, Ling Xu wrote: >> 在 7/9/2025 1:47 PM, Ling Xu 写道: >>> The fastrpc driver has support for 5 types of remoteprocs. There are >>> some products which support GDSP remoteprocs. GDSP is General Purpose >>> DSP where tasks can be offloaded. This patch extends the driver to >>> support GDSP remoteprocs. >>> >> >> sorry, please ignore this patch. >> I haven't change commit message here. >> "Extend the driver to support GDSP remoteprocs." > > How about this instead: > > Some platforms (like SMabcd) feature one or more GPDSPs (General > Purpose DSPs). Similar to other kinds of Hexagon DSPs, they provide a > FastRPC implementation, allowing code execution in both signed and > unsigned protection domains. > > Extend the checks to allow domain names starting with "gdsp" > (possibly followed by an index). > Thanks very much. I will update in next patch. > Konrad > >> >>> Signed-off-by: Ling Xu <quic_lxu5@quicinc.com> >>> --- >>> drivers/misc/fastrpc.c | 6 +++++- >>> 1 file changed, 5 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c >>> index 85b6eb16b616..d05969de406e 100644 >>> --- a/drivers/misc/fastrpc.c >>> +++ b/drivers/misc/fastrpc.c >>> @@ -27,6 +27,7 @@ >>> #define MDSP_DOMAIN_ID (1) >>> #define SDSP_DOMAIN_ID (2) >>> #define CDSP_DOMAIN_ID (3) >>> +#define GDSP_DOMAIN_ID (4) >>> #define FASTRPC_MAX_SESSIONS 14 >>> #define FASTRPC_MAX_VMIDS 16 >>> #define FASTRPC_ALIGN 128 >>> @@ -2249,6 +2250,8 @@ static int fastrpc_get_domain_id(const char *domain) >>> return MDSP_DOMAIN_ID; >>> else if (!strncmp(domain, "sdsp", 4)) >>> return SDSP_DOMAIN_ID; >>> + else if (!strncmp(domain, "gdsp", 4)) >>> + return GDSP_DOMAIN_ID; >>> >>> return -EINVAL; >>> } >>> @@ -2323,13 +2326,14 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev) >>> case ADSP_DOMAIN_ID: >>> case MDSP_DOMAIN_ID: >>> case SDSP_DOMAIN_ID: >>> - /* Unsigned PD offloading is only supported on CDSP */ >>> + /* Unsigned PD offloading is only supported on CDSP and GDSP */ >>> data->unsigned_support = false; >>> err = fastrpc_device_register(rdev, data, secure_dsp, domain); >>> if (err) >>> goto err_free_data; >>> break; >>> case CDSP_DOMAIN_ID: >>> + case GDSP_DOMAIN_ID: >>> data->unsigned_support = true; >>> /* Create both device nodes so that we can allow both Signed and Unsigned PD */ >>> err = fastrpc_device_register(rdev, data, true, domain); >> -- Thx and BRs, Ling Xu
© 2016 - 2025 Red Hat, Inc.