在 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 <[email protected]> >>> --- >>> 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
