admin 管理员组

文章数量: 887018

diag

背景

平台:SA8155,Q+A 1.2.1

8155上集成了很多IP核,其中有不少的IP本质上是arm M核或者R核,这些模块在开发或者使用过程中也是需要监控和诊断的,但是他们并没有外部的调试接口,高通设计了整套诊断框架通过APSS(application processer subsystem)用来实现对这些IP核的诊断和监控。这套诊断框架支持从上位机PC的 QPST/QXDM软件对IP core的访问,也支持从APSS直接访问。

diag_service线程信息

在查看diag_service线程信息,我们能看到,这个有几个以GLINK_IST_x命名的中断线程:

# pidin -p 32790 threadspid tid name               thread name          STATE       Blocked                     32790   1 bin/diag_service   1                    RECEIVE     10                          32790   2 bin/diag_service   DALTimer_dispatcher  RECEIVE     2                           32790   3 bin/diag_service   Workloop             SEM         fff8089e64620f94            32790   4 bin/diag_service   GLINK_IST_481        INTR                                    32790   5 bin/diag_service   GLINK_IST_188        INTR                                    32790   6 bin/diag_service   GLINK_IST_606        INTR                                    32790   7 bin/diag_service   glink_ssr_handler    REPLY       24586                       32790   8 bin/diag_service   ipcr_lpass           CONDVAR     (0x270731be10)              32790   9 bin/diag_service   ipcr_cdsp            CONDVAR     (0x270731bce0)              32790  10 bin/diag_service   ipcr_mpss            CONDVAR     (0x270731bbb0)              32790  11 bin/diag_service   IPC_ROUTER_RM        RECEIVE     3                           32790  12 bin/diag_service   diag_timer_handler   RECEIVE     5                           32790  13 bin/diag_service   diag_task            CONDVAR     (0x5134b3e34)               32790  14 bin/diag_service   pdbg_rm              RECEIVE     6                           32790  15 bin/diag_service   diag_resmgr          RECEIVE     17                          32790  16 bin/diag_service   diag_fwd_task        CONDVAR     (0x5134bc17c)               32790  17 bin/diag_service   diag_compress_task   CONDVAR     (0x5134bc0cc)               32790  18 bin/diag_service   ssr_event_monitor    REPLY       700466                      32790  19 bin/diag_service   diagcomm_udp         CONDVAR     (0x270733cac0)              32790  20 bin/diag_service   GLinkSMEMlpass       CONDVAR     (0x27073104a4)              32790  21 bin/diag_service   GLinkSMEMmpss        CONDVAR     (0x27073104f4)              32790  22 bin/diag_service   GLinkSMEMcdsp        CONDVAR     (0x2707310544)

我们想了解的是这几个线程是怎么来的,如何创建的

GLINK_IST_x中断线程创建

调用时序图:

对应的dts文件以及节点信息:

target/filesets/dtsi/sdm8155.dtsi

    smem_info {mpss@0 {id = <0x1>;interrupts = <0x1e1>;reg = <0x17c0000c 0x1000>;tx-fifo-size = <0x4000>;tx-mtu-size = <0x1000>;ss_name = "mpss";};lpass@0 {id = <0x2>;interrupts = <0xbc>;reg = <0x17c0000c 0x100>;tx-fifo-size = <0x4000>;tx-mtu-size = <0x1000>;ss_name = "lpass";};dsps@0 {id = <0x3>;interrupts = <0xca>;reg = <0x17c0000c 0x1000000>;tx-fifo-size = <0x4000>;tx-mtu-size = <0x1000>;ss_name = "dsps";};cdsp@0 {id = <0x5>;interrupts = <0x25e>;reg = <0x17c0000c 0x10>;tx-fifo-size = <0x4000>;tx-mtu-size = <0x1000>;ss_name = "cdsp";};};

interrupts = <0x25e>; --> 606 --> GLINK_IST_606

diag_service全景图

参考

80-NA157-61 Rev. YE 《Diagnostic System User Guide》

本文标签: diag