L4.19.35 sdma load firmware timeout

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

L4.19.35 sdma load firmware timeout

Jump to solution
2,460 Views
coindu
Contributor IV

Hi community:

           The sdma need to load firmware about imx/sdma/sdma-imx7d.bin, and set the timeout.

            Mounting file system slowly will cause sdma to load firmware timeout.

          sdma_probe->sdma_get_firmware->request_firmware_nowait->request_firmware_work_func->_request_firmware->_request_firmware_prepare->fw_state_wait->__fw_state_wait_common(fw_priv, MAX_SCHEDULE_TIMEOUT);

          when the system boot up, I can see the time about 6s

```

[ 1.766634] imx-sdma 30bd0000.sdma: no iram assigned, using external mem
[ 1.773170] _reuest [imx/sdma/sdma-imx7d.bin]
[ 1.777900] imx-sdma 302c0000.sdma: no iram assigned, using external mem
[ 1.784403] _reuest [imx/sdma/sdma-imx7d.bin]
[ 4.939451] fw_state_wait sdma in
[ 5.318315] imx-sdma 30bd0000.sdma: Falling back to syfs fallback for: imx/sdma/sdma-imx7d.bin
[ 6.399701] fw_state_wait sdma out
[ 6.399799] _reuest out [imx/sdma/sdma-imx7d.bin]
[ 6.403122] _reuest out [imx/sdma/sdma-imx7d.bin]
[ 6.403125] begin to cont [imx/sdma/sdma-imx7d.bin]
[ 6.403132] imx-sdma 302c0000.sdma: external firmware not found, using ROM firmware
[ 6.431282] begin to cont [imx/sdma/sdma-imx7d.bin]
[ 6.441618] imx-sdma 30bd0000.sdma: external firmware not found, using ROM firmware

```

     If i use ubuntu rootfs, it will cast 2s to mount rootfs parition, lead to the load firmware timeout.

    pastedImage_4.png

 

      Is it possible to load firmware like L4.9.88 does not depend on the file system?

Labels (1)
0 Kudos
1 Solution
2,269 Views
coindu
Contributor IV

I found the way to deal with it, only need build the firmware into kernel image。

View solution in original post

0 Kudos
6 Replies
793 Views
matthewmckay-da
Contributor II

Another option is to change the default firmware_callback_config loading_timeout/old_timeout.

drivers/base/firmware_loader/fallback_table.c

This doesn't avoid the timeout message, it does however mean that the 2nd attempt to load the firmware can be made to happen without waiting 1 minute. So you can set a timeout that ensures that the rootfs is mounted first, in our case 3 seconds.

This solution avoids integrating the firmware into the kernel.

0 Kudos
2,269 Views
igorpadykov
NXP Employee
NXP Employee

Hi coin

one can try to reproduce issue on i.MX7D Sabre SD reference board

with Demo Image

Linux Binary Demo Files - i.MX 7Dual SabreSD

If there is special need for fast firmware loading may be recommended to

perform customizations with help of Commercial Support and Engineering Services | NXP 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
2,270 Views
coindu
Contributor IV

I found the way to deal with it, only need build the firmware into kernel image。

0 Kudos
2,269 Views
ida_jiang
Contributor III

Hi coin ,

I've met similar problem , and how to build this firmware into kernel image ? Which file should be changed ?

Thanks !

Best Regards,

Ida

0 Kudos
2,267 Views
coindu
Contributor IV

For your reference

0 Kudos
2,267 Views
ida_jiang
Contributor III

Thanks ! !

0 Kudos