devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/2] Update section header name check
@ 2022-12-21  6:10 Srinivasa Rao Mandadapu
  2022-12-21  6:10 ` [PATCH v4 1/2] remoteproc: elf_loader: Update resource table " Srinivasa Rao Mandadapu
  2022-12-21  6:10 ` [PATCH v4 2/2] docs: remoteproc: Update section header name requirement Srinivasa Rao Mandadapu
  0 siblings, 2 replies; 4+ messages in thread
From: Srinivasa Rao Mandadapu @ 2022-12-21  6:10 UTC (permalink / raw)
  To: linux-remoteproc, agross, andersson, lgirdwood, broonie, robh+dt,
	quic_plai, bgoswami, perex, tiwai, srinivas.kandagatla,
	quic_rohkumar, linux-arm-msm, linux-kernel, swboyd, judyhsiao,
	devicetree, krzysztof.kozlowski, mathieu.poirier, corbet
  Cc: Srinivasa Rao Mandadapu

Update section header name check and corresponding documentation.
Changes since v3:
    -- Rephrase commit message.
Changes since v2:
    -- Update the commit message with example.
    -- Update the documentation text appropriately.
Changes since v1:
    -- Update the commit message.
    -- Use strstarts instead of strstr.
    -- Update documentation file.

Srinivasa Rao Mandadapu (2):
  remoteproc: elf_loader: Update resource table name check
  docs: remoteproc: Update section header name requirement

 Documentation/staging/remoteproc.rst       | 5 ++++-
 drivers/remoteproc/remoteproc_elf_loader.c | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v4 1/2] remoteproc: elf_loader: Update resource table name check
  2022-12-21  6:10 [PATCH v4 0/2] Update section header name check Srinivasa Rao Mandadapu
@ 2022-12-21  6:10 ` Srinivasa Rao Mandadapu
  2023-01-04 23:15   ` Mathieu Poirier
  2022-12-21  6:10 ` [PATCH v4 2/2] docs: remoteproc: Update section header name requirement Srinivasa Rao Mandadapu
  1 sibling, 1 reply; 4+ messages in thread
From: Srinivasa Rao Mandadapu @ 2022-12-21  6:10 UTC (permalink / raw)
  To: linux-remoteproc, agross, andersson, lgirdwood, broonie, robh+dt,
	quic_plai, bgoswami, perex, tiwai, srinivas.kandagatla,
	quic_rohkumar, linux-arm-msm, linux-kernel, swboyd, judyhsiao,
	devicetree, krzysztof.kozlowski, mathieu.poirier, corbet
  Cc: Srinivasa Rao Mandadapu

Update the way of checking resource table name with prefix substring search
instead of complete string search.

In general, Qualcomm DSP binary is prepared by combining different ELFs'.
Hence, section header name (e.g. .resource_table), appended with ELF name
to differentiate with same section(e.g. resource_table.ac_bin_process) of
different ELFs'.

Example readelf output of DSP binary:
    [60] .start.ac_bin_process PROGBITS
    [61] .resource_table.ac_bin_process PROGBITS
    [62] .comment.ac_bin_process PROGBITS

Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Mukesh Ojha <quic_mojha@quicinc.com>
---
 drivers/remoteproc/remoteproc_elf_loader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/remoteproc/remoteproc_elf_loader.c b/drivers/remoteproc/remoteproc_elf_loader.c
index 5a412d7..77330d6 100644
--- a/drivers/remoteproc/remoteproc_elf_loader.c
+++ b/drivers/remoteproc/remoteproc_elf_loader.c
@@ -272,7 +272,7 @@ find_table(struct device *dev, const struct firmware *fw)
 		u64 offset = elf_shdr_get_sh_offset(class, shdr);
 		u32 name = elf_shdr_get_sh_name(class, shdr);
 
-		if (strcmp(name_table + name, ".resource_table"))
+		if (!strstarts(name_table + name, ".resource_table"))
 			continue;
 
 		table = (struct resource_table *)(elf_data + offset);
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v4 2/2] docs: remoteproc: Update section header name requirement
  2022-12-21  6:10 [PATCH v4 0/2] Update section header name check Srinivasa Rao Mandadapu
  2022-12-21  6:10 ` [PATCH v4 1/2] remoteproc: elf_loader: Update resource table " Srinivasa Rao Mandadapu
@ 2022-12-21  6:10 ` Srinivasa Rao Mandadapu
  1 sibling, 0 replies; 4+ messages in thread
From: Srinivasa Rao Mandadapu @ 2022-12-21  6:10 UTC (permalink / raw)
  To: linux-remoteproc, agross, andersson, lgirdwood, broonie, robh+dt,
	quic_plai, bgoswami, perex, tiwai, srinivas.kandagatla,
	quic_rohkumar, linux-arm-msm, linux-kernel, swboyd, judyhsiao,
	devicetree, krzysztof.kozlowski, mathieu.poirier, corbet
  Cc: Srinivasa Rao Mandadapu

Add section header name requirement specification in elf segments.

Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Mukesh Ojha <quic_mojha@quicinc.com>
---
 Documentation/staging/remoteproc.rst | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/staging/remoteproc.rst b/Documentation/staging/remoteproc.rst
index 348ee7e..0c9c10a 100644
--- a/Documentation/staging/remoteproc.rst
+++ b/Documentation/staging/remoteproc.rst
@@ -244,7 +244,10 @@ according to the specified device address (might be a physical address
 if the remote processor is accessing memory directly).
 
 In addition to the standard ELF segments, most remote processors would
-also include a special section which we call "the resource table".
+also include a special section which we call the "resource table".
+A "resource table" section name must start with the ".resource_table" prefix,
+optionally having a more descriptive string appended. For example,
+".resource_table.my_rproc" is a valid section name.
 
 The resource table contains system resources that the remote processor
 requires before it should be powered on, such as allocation of physically
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v4 1/2] remoteproc: elf_loader: Update resource table name check
  2022-12-21  6:10 ` [PATCH v4 1/2] remoteproc: elf_loader: Update resource table " Srinivasa Rao Mandadapu
@ 2023-01-04 23:15   ` Mathieu Poirier
  0 siblings, 0 replies; 4+ messages in thread
From: Mathieu Poirier @ 2023-01-04 23:15 UTC (permalink / raw)
  To: Srinivasa Rao Mandadapu
  Cc: linux-remoteproc, agross, andersson, lgirdwood, broonie, robh+dt,
	quic_plai, bgoswami, perex, tiwai, srinivas.kandagatla,
	quic_rohkumar, linux-arm-msm, linux-kernel, swboyd, judyhsiao,
	devicetree, krzysztof.kozlowski, corbet

On Wed, Dec 21, 2022 at 11:40:32AM +0530, Srinivasa Rao Mandadapu wrote:
> Update the way of checking resource table name with prefix substring search
> instead of complete string search.
> 
> In general, Qualcomm DSP binary is prepared by combining different ELFs'.
> Hence, section header name (e.g. .resource_table), appended with ELF name
> to differentiate with same section(e.g. resource_table.ac_bin_process) of
> different ELFs'.
>

Well, they are different ELF files so it is implied the resource section may be
different...  And from what I see this is purely a human thing and not
specifically needed by machines.  

I can't imagine this is a new situation and as such must ask how it was working
before?

> Example readelf output of DSP binary:
>     [60] .start.ac_bin_process PROGBITS
>     [61] .resource_table.ac_bin_process PROGBITS

The real question is...  Why is this labeled ".resource_table.ac_bin_process"
rather than simply ".resource_table"?

>     [62] .comment.ac_bin_process PROGBITS
> 
> Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Mukesh Ojha <quic_mojha@quicinc.com>
> ---
>  drivers/remoteproc/remoteproc_elf_loader.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/remoteproc/remoteproc_elf_loader.c b/drivers/remoteproc/remoteproc_elf_loader.c
> index 5a412d7..77330d6 100644
> --- a/drivers/remoteproc/remoteproc_elf_loader.c
> +++ b/drivers/remoteproc/remoteproc_elf_loader.c
> @@ -272,7 +272,7 @@ find_table(struct device *dev, const struct firmware *fw)
>  		u64 offset = elf_shdr_get_sh_offset(class, shdr);
>  		u32 name = elf_shdr_get_sh_name(class, shdr);
>  
> -		if (strcmp(name_table + name, ".resource_table"))
> +		if (!strstarts(name_table + name, ".resource_table"))
>  			continue;
>  
>  		table = (struct resource_table *)(elf_data + offset);
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-01-04 23:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-21  6:10 [PATCH v4 0/2] Update section header name check Srinivasa Rao Mandadapu
2022-12-21  6:10 ` [PATCH v4 1/2] remoteproc: elf_loader: Update resource table " Srinivasa Rao Mandadapu
2023-01-04 23:15   ` Mathieu Poirier
2022-12-21  6:10 ` [PATCH v4 2/2] docs: remoteproc: Update section header name requirement Srinivasa Rao Mandadapu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).