diag_service的GLINK_IST是怎么来的

背景

平台: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的GLINK_IST是怎么来的_第1张图片

diag_service线程信息

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

# pidin -p 32790 threads
     pid 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中断线程创建

diag_service的GLINK_IST是怎么来的_第2张图片

调用时序图:

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

target/hypervisor/host/out_8155/host_merged_8155_la.dts

    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

参考

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

你可能感兴趣的:(随便记录,linux)