Subject: [PATCH v1 1/1] remoteproc: qcom: pas: Coredump elf class to elf64

This change adds a new initialization param which modifies the elf
class accordingly. Some of the subsystem dump analysis tools need
the elf class to be elf64.

Signed-off-by: Gokul krishna Krishnakumar <[email protected]>
---
drivers/remoteproc/qcom_q6v5_pas.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index 0871108fb4dc..17ce3177be7b 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -39,6 +39,7 @@ struct adsp_data {
int pas_id;
int dtb_pas_id;
unsigned int minidump_id;
+ bool uses_elf64;
bool auto_boot;
bool decrypt_shutdown;

@@ -681,7 +682,10 @@ static int adsp_probe(struct platform_device *pdev)
}

rproc->auto_boot = desc->auto_boot;
- rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
+ if (desc->uses_elf64)
+ rproc_coredump_set_elf_info(rproc, ELFCLASS64, EM_NONE);
+ else
+ rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);

adsp = (struct qcom_adsp *)rproc->priv;
adsp->dev = &pdev->dev;
@@ -1126,6 +1130,7 @@ static const struct adsp_data sm8550_adsp_resource = {
.pas_id = 1,
.dtb_pas_id = 0x24,
.minidump_id = 5,
+ .uses_elf64 = true,
.auto_boot = true,
.proxy_pd_names = (char*[]){
"lcx",
@@ -1145,6 +1150,7 @@ static const struct adsp_data sm8550_cdsp_resource = {
.pas_id = 18,
.dtb_pas_id = 0x25,
.minidump_id = 7,
+ .uses_elf64 = true,
.auto_boot = true,
.proxy_pd_names = (char*[]){
"cx",
@@ -1165,6 +1171,7 @@ static const struct adsp_data sm8550_mpss_resource = {
.pas_id = 4,
.dtb_pas_id = 0x26,
.minidump_id = 3,
+ .uses_elf64 = true,
.auto_boot = false,
.decrypt_shutdown = true,
.proxy_pd_names = (char*[]){
--
2.39.2



2023-03-10 04:04:40

by Sibi Sankar

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] remoteproc: qcom: pas: Coredump elf class to elf64

Hey Gokul,

Thanks for the patch.

On 3/9/23 05:40, Gokul krishna Krishnakumar wrote:
> This change adds a new initialization param which modifies the elf
> class accordingly. Some of the subsystem dump analysis tools need
> the elf class to be elf64.
>

https://lore.kernel.org/lkml/[email protected]/

This patch was already sent upstream a while back ^^. IIRC the firmware
certainly aren't 64 bit elfs and dump analysis tools don't really care
as long the coredump contains section headers.

- Sibi

> Signed-off-by: Gokul krishna Krishnakumar <[email protected]>
> ---
> drivers/remoteproc/qcom_q6v5_pas.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
> index 0871108fb4dc..17ce3177be7b 100644
> --- a/drivers/remoteproc/qcom_q6v5_pas.c
> +++ b/drivers/remoteproc/qcom_q6v5_pas.c
> @@ -39,6 +39,7 @@ struct adsp_data {
> int pas_id;
> int dtb_pas_id;
> unsigned int minidump_id;
> + bool uses_elf64;
> bool auto_boot;
> bool decrypt_shutdown;
>
> @@ -681,7 +682,10 @@ static int adsp_probe(struct platform_device *pdev)
> }
>
> rproc->auto_boot = desc->auto_boot;
> - rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
> + if (desc->uses_elf64)
> + rproc_coredump_set_elf_info(rproc, ELFCLASS64, EM_NONE);
> + else
> + rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
>
> adsp = (struct qcom_adsp *)rproc->priv;
> adsp->dev = &pdev->dev;
> @@ -1126,6 +1130,7 @@ static const struct adsp_data sm8550_adsp_resource = {
> .pas_id = 1,
> .dtb_pas_id = 0x24,
> .minidump_id = 5,
> + .uses_elf64 = true,
> .auto_boot = true,
> .proxy_pd_names = (char*[]){
> "lcx",
> @@ -1145,6 +1150,7 @@ static const struct adsp_data sm8550_cdsp_resource = {
> .pas_id = 18,
> .dtb_pas_id = 0x25,
> .minidump_id = 7,
> + .uses_elf64 = true,
> .auto_boot = true,
> .proxy_pd_names = (char*[]){
> "cx",
> @@ -1165,6 +1171,7 @@ static const struct adsp_data sm8550_mpss_resource = {
> .pas_id = 4,
> .dtb_pas_id = 0x26,
> .minidump_id = 3,
> + .uses_elf64 = true,
> .auto_boot = false,
> .decrypt_shutdown = true,
> .proxy_pd_names = (char*[]){

2023-03-10 12:16:50

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] remoteproc: qcom: pas: Coredump elf class to elf64

On 10/03/2023 06:04, Sibi Sankar wrote:
> Hey Gokul,
>
> Thanks for the patch.
>
> On 3/9/23 05:40, Gokul krishna Krishnakumar wrote:
>> This change adds a new initialization param which modifies the elf
>> class accordingly. Some of the subsystem dump analysis tools need
>> the elf class to be elf64.
>>
>
> https://lore.kernel.org/lkml/[email protected]/
>
> This patch was already sent upstream a while back ^^. IIRC the firmware
> certainly aren't 64 bit elfs and dump analysis tools don't really care
> as long the coredump contains section headers.

I think that if we want to change the coredump ELF class, we should
match the class of the loaded firmware file. Same applies to the ELF
machine (EM_NONE).

--
With best wishes
Dmitry