fastrpc: add dsp_check utility and documentation#336
Conversation
|
add proper commit message, also looks like android compilation CI is failing, moving PR to draft until basic problem are resolved. |
| * A DSP is considered Online IFF: | ||
| * - remoteproc exists | ||
| * - remoteproc state == running | ||
| * - firmware for that DSP is present |
There was a problem hiding this comment.
Order of this should be
- firmware file present
- remote proc exist
- remote proc state
| * - required DSP modules (skel/shell) are present | ||
| * - required FastRPC user-space libraries are present | ||
| * - firmware build ID matches shell build ID (if available) | ||
| * - a matching FastRPC device node exists |
There was a problem hiding this comment.
Order is :
DSP is online
FastRPC device exists
user space libraries present
Shell file is present
shell and firmware binaries match
|
|
||
| #define QCOM_BASE_DIR "/usr/share/qcom" | ||
| #define MACHINE_MODEL_PATH "/sys/firmware/devicetree/base/model" | ||
| #define FW_BASE_PATH "/lib/firmware/" |
There was a problem hiding this comment.
Add support for legacy systems like 820c, QRB5165, etc as they have different locations for firmware files and different device nodes for remote_proc and glink.
939e8ae to
cef2c85
Compare
| | SignedPD | Signed process domains available | | ||
| | UnsignedPD* | Unsigned process domains available | | ||
|
|
||
| **Note:** On platforms that do not support unsigned PDs, unsigned binaries must be signed |
There was a problem hiding this comment.
On platforms that do not support unsigned PDs, skel binaries must be signed.
| Within the DSP base path, the tool checks for: | ||
|
|
||
| - FastRPC shell binaries | ||
| - Skeleton (`*_skel.so`) libraries |
There was a problem hiding this comment.
What skel libraries are checked for existance?
|
|
||
| - It exists on the platform | ||
| - It is currently running | ||
| - Firmware is present |
There was a problem hiding this comment.
Shouldn't the firmware file check be the first one?
|
|
||
| /dev/dma_heap/system | ||
|
|
||
| This result is printed once and applies globally to all DSPs. |
There was a problem hiding this comment.
Is this an optional or mandatory dependency?
There was a problem hiding this comment.
It is optional, changed this and will update
c28545e to
27e20a4
Compare
|
|
||
| printf("\n* If Unsigned PD not supported, needs signing to run\n"); | ||
|
|
||
| #ifdef PARSE_YAML |
There was a problem hiding this comment.
bring #ifdef to start of line
| #include <yaml.h> | ||
| #endif | ||
|
|
||
|
|
| * | ||
| * DSP Online: | ||
| * A DSP is considered Online IFF: | ||
| * - remoteproc exists |
There was a problem hiding this comment.
let's keep all these details in .md file, you can remove from here
-Add a dsp_check diagnostic utility to evaluate DSP availability and FastRPC offload readiness across supported DSPs. This determines DSP online state using remoteproc, validates firmware presence, checks required DSP runtime modules, verifies FastRPC user-space libraries, and reports device node availability. Clear reasons are provided when offload is not possible. -Works for both Linux and Android targets. -Documentation for the user is included to describe this readiness criteria and explain how to interpret the reported output. Note: Whitespace changes (CRLF -> LF) are included in this commit. Signed-off-by: Mahima Bhattaram <mbhattar@qti.qualcomm.com>
Adds a dsp_check utility to assess DSP availability and FastRPC offload readiness, along with user-facing documentation explaining the readiness criteria.