Message ID | 20230309001035.24024-1-quic_gokukris@quicinc.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [v1,1/1] remoteproc: qcom: pas: Coredump elf class to elf64 | expand |
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/8dea333d-544d-7c07-d560-a1a9c3a38ddc@quicinc.com/ 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 <quic_gokukris@quicinc.com> > --- > 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*[]){
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/8dea333d-544d-7c07-d560-a1a9c3a38ddc@quicinc.com/ > > 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).
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*[]){
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 <quic_gokukris@quicinc.com> --- drivers/remoteproc/qcom_q6v5_pas.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)