This is a cache of https://discuss.96boards.org/t/hexagon-sdk-support-for-dragonboard-820c/6944. It is a snapshot of the page at 2024-10-31T13:23:16.794+0000.
Hexagon SDK support for <strong>dragonboard</strong> 820c - <strong>dragonboard</strong> 820c - 96Boards Forum

Hexagon SDK support for dragonboard 820c

Hi,

Does dragonboard 820c have support for Hexagon DSP programming as like dragonboard 410c mentioned here(https://github.com/96boards/documentation/wiki/dragonboard-Hexagon-DSP)?

I do see some patches in integration-linux-qcomlt for db820c.

Thanks,
Vijai Kumar K

yes, the same drivers are tested on several Qualcomm platforms, including on DB820c. we should review this wiki page, and make sure it has up-to-date instructions.

2 Likes

Thanks @anon91830841 for the confirmation. I donot see the fastrpc nodes or fastrpc driver for DB820c in the integration tree though. I have cherry-picked the fastrpc drivers and device nodes and I am stuck where in the driver crashes. Can someone update the wiki to have the latest instructions for DB820c?

Best,
Vijai Kumar K

Sorry for the confusion, I see the drivers in Integration tree(integration-linux-qcomlt). Silly of me. I am testing it out. Will update on the progress.

I was able to follow the procedure. I just had to enable CONFIG_QCOM_FASTRPC in defconfig. The only thing I was missing is that firmware files mentioned there. I believe those are required only for 410c and not 820c. 820c adsp pil binaries are there in /lib/firmware. The adsp is up and I get the below message.

[ 26.987904] remoteproc remoteproc0: remote processor adsp-pil is now up

While running the getserial utility, the board reboots and goes to ramdump? @anon91830841 Is there any specific version of firmware to use for 820c?

Thanks,
Vijai Kumar K

Hi Vijai,

Sorry for the delayed reply.

For the crash, can you check if you have CONFIG_QCOM_APR=y set in your kernel config ? I don’t know why for now and need to investigate but I have the same crash if APR is not enabled in my config.

Regarding the firmware, it is possible that the version you have doesn’t have adsp support. Can you please share the output of ‘md5sum /lib/firmware/adsp*’ ?

Regards,
Thierry

Hi @thierryE,

Thank you for following up. I have set CONFIG_QCOM_APR=y and rebuilt the kernel. Now it doesn’t crash however getserial never returns. Below is the md5sums. Can you also share your md5sums? With that, I could try to see if I have the same firmware as you do from Qualcomm. Any release numbers would also help.

66219e7c6e1acddfa072a63407d7ce19 /lib/firmware/adsp.b00
e4056e53934991bcbf5f831aa7b367f3 /lib/firmware/adsp.b01
383f6661be9bffe9d370817fe4265f88 /lib/firmware/adsp.b02
1d8c44da36a7936c5f4ad8ccf373a838 /lib/firmware/adsp.b03
59e147b27521f94982032e27ba959f11 /lib/firmware/adsp.b04
e2750bb2131aecc07c10ba8b70927f86 /lib/firmware/adsp.b05
d31f82fb3b3b69e539ebb4fc39315316 /lib/firmware/adsp.b06
09140d5f680e5bc53680ff7ed8a2473e /lib/firmware/adsp.b08
b08def26323f0842df18d7b2532178a8 /lib/firmware/adsp.b09
ee7d00b4b55bbcc442e0dafe351a14d6 /lib/firmware/adsp.mdt

Thanks,
Vijai Kumar K

Hi @vj-kumar,

So yes, we are using a different firmware that comes from an Android rootfs provided by Qualcomm.

97b33051af496d99f6ea35d036942950 adsp.b00
0a57bce8e0febcb1c8fa8a7e85dd2751 adsp.b01
8351725c0e2c89a6e2f3f128af765e93 adsp.b02
a2e473ebe6eb3554a9e5b3f183d51e06 adsp.b03
bcdcdad1dbde46d02a1d84950bac49db adsp.b04
30ca87ed69d36639ffde04bd74e0eb5d adsp.b05
75413865c1aa9b322fd3840aaed1466e adsp.b06
5b31af8e38397280746b135ad9dc7660 adsp.b07
d8cd194d28da3d5ee3871cd46acb14b4 adsp.b08
a3d1254861b9affa9bc7a80e604ebde0 adsp.b09
d97e1731e77e9406cea3c63d69b784cb adsp.b10
daa2f74f0cbd03003e573708fc511aa8 adsp.b11
e2fb74b3e3cff090a75d4b759ef54d1c adsp.mdt

Regards,
Thierry

Hi Thierry,

I’m interested in testing hexagon SDK too.
I checked which firmware I have on my Android 8.1 rootfs and that’s the same
than Linaro is providing in r01700 firmware release.

Does Linaro plan to do a new firmware release with Qualcomm so that we can test hexagon SDK ?

Or we have to contact Qualcomm, or board supplier to get them ?

Best regards,
Julien

Hi Julien,

Sorry but there is no plan for now to release the non-public firmware we are using.

Please contact Qualcomm or your board vendor to obtain an aDSP firmware that supports FastRPC.

Regards,
Thierry

If you are aware of a version number for these firmwares please tell us.
It will make my request to the board vendor more accurate.

Thanks,
Julien

Finally I managed to get FastRPC to work on db820c with the public firmware release.

I’ll update the Wiki page with instructions for the db820c.

Regards,
Thierry

1 Like

Hi @Julien and @vj-kumar,

I’ve updated the Wiki for db820c support.

The main changes are:

  • Use of Hexagon SDK v3.4.1
  • Updated matrix_multi application
  • adsprpcd daemon (part of the libadsprpcd.so git repository)
  • The matrix_multi DSP library must be signed

Don’t hesitate to contact me if you have any question.

Regards,
Thierry

2 Likes

Thanks a lot @thierryE, I was able to follow the procedure and run the matrix multiplication example on my 820c dragonboard.

Thans a lot thierryE,
I will give a check to this wiki page.

Thanks for this great support, talking about fancy feature like dsp and hexagon SDK,
reveals how much progress have been done in one year on s820.

Kudos to linaro team.

Hello,

I also succeeded in running matrix multiplication example on db820c and some Hexagon SDK examples. However I am not able to run Hexagon_nn example.
I get the following error :

src/lib/fastrpc_apps_user.c:871:adsp dlopen error: hexagon_nn undefined PLT symbol #39 HAP_mem_set_grow_size in libhexagon_nn_skel.so

Did you tried running hexagon_nn examples on Linux ?

Thank you for the wiki update.

Regards.

Hi @thierryE,

I have followed all of these steps & I’ve faced the error as:

./matrix_multi 0 3

  • starting matrix_multi test
    Matrix A Dim 3 X 3
    1 0 0
    0 1 0
    0 0 1
    Matrix B Dim 3 X 3
    2 0 1
    0 1 1
    2 1 2
  • compute mult on the DSP
    Error: compute on DSP failed

usage: ./matrix_multi <1/0 run locally>

Can you please suggest what went wrong here… Thanks…

Hi all,

Update on my own query:
I got ./matrix_multi app working by placing all lib* files in one specific location & ldconfig
Worked without
export ADSP_LIBRARY_PATH=/home***
export LD_LIBRARY_PATH=/home****
Thanks…

Hi @ymj,

Please explain in detail about the location, so that it is helpful for others.

Best,
Vijai Kumar K

Hi @ymj,

Please specify the location. In case someone needs it.

Best,

Vijai Kumar K