Dear,
We are working on a product based on the APQ8016E and linaro-18 subsystem. We signed binaries successfully and flashed below list
sbl1.mbn
rpm.mbn
tz.mbn
hyp.mbn
emmc_appsboot.mbn
NON-HLOS.bin
However,we are facing issues related to wifi module. Wifi is not working on signed binaries whereas it was working fine before signing.
Below are the logs:
root@linaro-alip:~# dmesg | grep -i wcnss
[ 10.661702] qcom-wcnss-pil a204000.wcnss: a204000.wcnss supply vddcx not found, using dummy regulator
[ 10.673169] remoteproc remoteproc0: a204000.wcnss is available
[ 10.674066] remoteproc remoteproc0: powering up a204000.wcnss
[ 10.674074] remoteproc remoteproc0: Booting fw image wcnss.mdt, size 7260
[ 10.713965] qcom-wcnss-pil a204000.wcnss: segment outside memory range
We tried to debugge issue from our end by putting debug statement:
— a/drivers/soc/qcom/mdt_loader.c
+++ b/drivers/soc/qcom/mdt_loader.c
@@ -168,6 +168,7 @@ int qcom_mdt_load(struct device *dev, const struct firmware *fw,
continue;
offset = phdr->p_paddr - mem_reloc;
-
printk("%s p_paddr %x mem_reloc %x offset %x p_memsz %x mem_size %x\n", __func__, phdr->p_paddr, mem_reloc, offset, phdr->p_memsz, mem_size); if (offset < 0 || offset + phdr->p_memsz > mem_size) { dev_err(dev, "segment outside memory range\n"); ret = -EINVAL;
We got these debug statements where as it is a failed case:
[ 10.638186] qcom_mdt_load p_paddr f500000 mem_reloc f500000 offset 0 p_memsz ee0f0 mem_size 600000
[ 10.646824] qcom_mdt_load p_paddr f5ef000 mem_reloc f500000 offset ef000 p_memsz 405000 mem_size 600000
[ 10.657681] qcom_mdt_load p_paddr f9ff000 mem_reloc f500000 offset 4ff000 p_memsz 20 mem_size 600000
[ 10.897127] qcom_mdt_load p_paddr 8b600000 mem_reloc 89300000 offset 2300000 p_memsz 3438 mem_size c00000
For debugging purpose when we also checked these logs on unsigned binaries, below are the logs for positive case:
root@linaro-alip:~# dmesg | grep -i offset
[ 10.827598] qcom_mdt_load p_paddr f500000 mem_reloc f500000 offset 0 p_memsz ee0f0 mem_size 600000
[ 10.838568] qcom_mdt_load p_paddr f5ef000 mem_reloc f500000 offset ef000 p_memsz 405000 mem_size 600000
[ 10.843325] qcom_mdt_load p_paddr f9ff000 mem_reloc f500000 offset 4ff000 p_memsz 20 mem_size 600000
[ 11.046518] qcom_mdt_load p_paddr 8b600000 mem_reloc 8b600000 offset 0 p_memsz 3438 mem_size c00000
[ 11.047279] qcom_mdt_load p_paddr 8b604000 mem_reloc 8b600000 offset 4000 p_memsz 8000 mem_size c00000
[ 11.058506] qcom_mdt_load p_paddr 8b60c000 mem_reloc 8b600000 offset c000 p_memsz f000 mem_size c00000
[ 11.065030] qcom_mdt_load p_paddr 8b61b000 mem_reloc 8b600000 offset 1b000 p_memsz e000 mem_size c00000
[ 11.073109] qcom_mdt_load p_paddr 8b629000 mem_reloc 8b600000 offset 29000 p_memsz 4c43b0 mem_size c00000
[ 11.111372] qcom_mdt_load p_paddr 8baed400 mem_reloc 8b600000 offset 4ed400 p_memsz 37cf8 mem_size c00000
[ 11.112415] qcom_mdt_load p_paddr 8baed400 mem_reloc 8b600000 offset 4ed400 p_memsz 21c44 mem_size c00000
[ 11.123402] qcom_mdt_load p_paddr 8bb30000 mem_reloc 8b600000 offset 530000 p_memsz 1b0 mem_size c00000
[ 11.125760] qcom_mdt_load p_paddr 8bb31000 mem_reloc 8b600000 offset 531000 p_memsz a0000 mem_size c00000
[ 11.137589] qcom_mdt_load p_paddr 8bbd1000 mem_reloc 8b600000 offset 5d1000 p_memsz edc0 mem_size c00000
Can anyone please help us to find the root cause of this issue.
Thank You,
Yogita