關鍵詞:CoreSight、DAP、ECT、STM、ETM、TPIU、TMC、ETB、ETF、ETR等等。
關聯文檔:《Linux Self-Hosted CoreSight分析》
Chapter 1 Introduction
1.1.1 Structure of CoreSight SoC-400
CoreSight Soc-400一個完整的調試和跟蹤解決方案,包括如下組件:
- 控制和接入組件:
- DAP(Debug Access Port):用來連接外部硬件調試工具的物理接口,允許外部調試工具訪問芯片上CPU、CoreSight、DDR等。
- ECT(Embedded Cross Trigger)
- 跟蹤數據源:跟蹤源是CoreSight中用於產生跟蹤信息的組件。每個跟蹤源組件都會產生一種格式的信息,最終可以組合在一起並且通過跟蹤鏈接到輸出端口。
- PTM(Program Trace Macrocell):監控處理器運行狀況,將處理器執行過的指令信息進行壓縮傳輸。
- STM(System Trace Macrocell):捕捉系統的事件信息並以獲取數據跟蹤形式傳輸到跟蹤漏斗或跟蹤輸出組件。
- ETM(Embedded Trace Macrocell):監控處理器運行狀況,將處理器執行過的指令信息進行壓縮傳輸。跟蹤指令執行、數據搬運、PE(Processing Element)事件。
- 連接:
- Synchronous 1:1 ATB bridge:
- Replicator:可以把單個輸入復用到兩個分支輸出,可以使得CoreSight系統跟蹤信息同時傳輸到兩個或多個輸出。
- Trace Funnel:把CoreSight系統中多個跟蹤源產生的信息組合在一起並以單個流輸出到高級跟蹤總線ATB。Funnel之間可以級聯,一個Funnel最多可以支持6個跟蹤源信息輸入。
- 跟蹤輸出節點:
- TPIU(Trace Port Interface Unit):把捕捉到的數據導出到外部調試適配器,如DSTREAM。
- ETB(Embedded Trace Buffer):是芯片內一塊RAM,用來存儲捕捉到的跟蹤信息。可以通過DAP訪問存儲在ETB中的數據。
- TMC(Trace Memory Controller):在芯片設計時可配置,配置成ETB時跟上面介紹的ETB功能一致。還可以配置成ETR和ETF。
- ETR(Embedded Trace Router):把跟蹤數據存儲到調試目標平台的系統內存上,存儲系統內存空間是可配置的。
- ETF(Embedded Trace FIFO):主要是緩沖數據的輸出,尤其當當量數據在瞬間產生式,通過ETF可以平滑數據的輸出速率。緩存可以被配置為FIFO或Circular Buffer;FIFO滿了之后就會反壓,源頭停止輸出跟蹤數據;Circular Buffer滿了后則會覆蓋。
時間戳組件:產生CoreSight或處理器所需的時間戳。通過Narrow timestamp replicator分發到多個目的設備。路徑:時間戳發生器->時間戳編碼器->Narrow timestamp replicator->時間戳解碼器->CPU/CTI等。
- 時間戳發生器
- 時間戳編碼器
- 時間戳解碼器
1.1.3 Typical CoreSight SoC-400 system
2. Functional Overview
2.1 DAP組件
DAP是片外調試工具用於訪問SOC的一系列組件統稱。包括:
- Serial Wire or JTAG Debug Port
- DAP Bus interconnect
- DAP Bus async bridge
- DAP Bus sync bridge
- JTAG AP
- AXI/AHB/APB AP
2.2 APB組件
用於構建調試APB互聯組件。
- APB interconnect with ROM table
- APB async bridge
- APB sync bridge
2.3 ATB interconnect components
通過ATB互聯套件將跟蹤數據在CoreSight中傳輸。
- ATB replicator
- ATB funnel
- ATB upsizer
- ATB downsizer
- ATB asynchronous bridge
- ATB synchronous bridge
- ATB Phantom Bridges
2.4 Timestamp components
生成CoreSight系統中使用的時間戳。
- Timestamp generator
- Timestamp encoder
- Narrow timestamp replicator
- Narrow timestamp asynchronous bridge
- Narrow timestamp synchronous bridge
- Timestamp decoder
- Timestamp interpolator
2.5 ECT組件
交叉觸發組件用於將一個調試事件從一個調試組件傳輸到另一個:
- Cross Trigger Interface:合成並映射觸發請求,並廣播到ECT子系統其他接口。
- Cross Trigger Matrix:進行觸發事件分發模塊,最少連接兩個CTI到其他CTM。
- Event async bridge
2.6 Trace Sink components
CoreSight使用TPIU/ETB等組件將接收調試信息並轉發到調試設備或RAM中。
- TPIU:連接ATB和外部跟蹤接口。
- ETB:將跟蹤數據保存在片內RAM中。
2.7 Authentication bridges
在使能了安全功能的CoreSight系統中,authentication bridge提供經認證的調試控制連接。
- Authentication replicator:將認證信號從一個master傳到多個slave。
- Authentication async bridge
- Authentication sync bridge
2.8 Granular Power Requester
3. Programmers Model
詳細介紹了各模塊的寄存器,包括GPR、APB、ATB Funnel、ATB Replicator、ETB、TPIU、CTI、DAP、Timestamp。
由於ETM屬於CPU一部分,參照A55 TRM C3 ETM。
TMC
The Arm CoreSight Trace Memory Controller (TMC) is a configurable trace component to terminate trace buses into buffers, FIFOs, or alternatively, to route trace data over AXI to memory or off-chip to interface controllers.
TMC可以配置成3中模式:
- Embedded Trace Buffer:提供一個circular buffer存儲trace。
- Embedded Trace FIFO:將trace存儲到專用SRAM中,作為FIFO或者circular buffer通過APB接口訪問。
- Embedded Trace Router:將trace數據路由到其他存儲設備或者AXI從設備上。