load_fw: The firmware loading loop terminates prematurely #555
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The remoteproc_load_noblock() is a non-blocking API designed to load the remote firmware in streaming mode. The application has to continue supplying the firmware data blocks until the complete firmware is loaded. The load_fw example does this and checks the
nlen
variable (returned by the remoteproc_load_noblock() API) for zero to determine if the firmware loading is complete. However,nlen
(contains the filesize of the next program header) alone can't be taken as the sufficient condition to mark the completion of firmware loading as 0 is a valid value for filesize for sections that don't require loading to the target memory such as the .bss section. This patch proposes checking filesize as well as memsize as a better metric to mark completion of the firmware loading loop.