【ARM Coresight 系列文章 10.1 - ARM Coresight STM 介绍及使用】

文章目录

    • Guaranteed and invariant timing transactions
    • Multiple STPv2 master support

上篇文章:ARM Coresight 系列文章 10 - ARM Coresight STM 介绍及使用

Guaranteed and invariant timing transactions

STM 支持两种类型的软件的数据,一种是 guaranteed的,另一种是 invariant 的, 对于 guaranteed 类型的数据传输,当STM 无法接收 AXI总线发过来的数据时,会通过拉低 WREADY 来暂停 AXI 数据的发送。对于 guaranteed的数据传输,建议对于关键数据才使用该类型,因为该类型数据传输会影响系统性能。

对于 invariant 的数据传输,当STM 无法接收数据时,并不会暂停AXI总线数据的发送,STM 会丢弃AXI发过来的数据,所以无法保证 invariant 数据传输都能够通过STM传输出去。

每个 stimulus port 有连续的256bytes的空间,这个256bytes 又分为两部分,前后 128bytes 的空间,向不同的地址空间写数据会产生不同的数据包。

偏移 Short name 描述
0x78 G_TRIG 向该地址写会产生trigger 包,也可以产生事件信号,信号再通过cross trigger 传递出去
0x70 G_TRIGTS 带时间戳的trigger包
0x68 G_FLAG 一种标记,也算是data
0x60 G_FLAGTS 带时间戳的FLAG数据
0x20-0x5F none reserved
0x18 G_D 数据
0x10 G_DTS 带时间戳的数据
0x08 G_DM 带 Mark 的数据
0x00 G_DMTS 带Mark 并带有时间戳的数据

D:表示数据;
G: guaranteed; 有保证的意思,数据不会丢失。当STM中的buffer 满了的时候,STM 会将 总线上的ready信号拉低,这样的话AXI总线上的数据就会一直等到 ready 信号变高才会继续发送。
M:Mark, 输出的数据会带有标记,比如一串数据中的某个字当做Mark。

高128bytes的地址空间,从下面表格可以看出,都带有标记 “I”(invariant timing), 表示STM 不一定会产生数据, 是因为 当STM buffer满了的时候,此时STM 不会接收AXI发过来的数据,但是没有把 wready 信号拉低,所以AXI 会继续发送谁过来,此时数据就会丢失。

偏移 Short name 描述
0xF8 I_TRIG 向该地址写会产生trigger 包,也可以产生事件信号,信号再通过 cross trigger 传递出去
0xF0 I_TRIGTS 带时间戳的trigger包
0xE8 I_FLAG 一种标记,没有data payload
0xE0 I_FLAGTS 带时间戳的FLAG数据
0xA0-0xDF none reserved
0x98 I_D 数据
0x90 I_DTS 带时间戳的数据
0x88 I_DM 带 Mark 的数据
0x80 I_DMTS 带Mark 并带有时间戳的数据

STM Features 2 Register 寄存器的 DSIZE 域的值为0x1, 数据位宽为64bit,上面 stimulus port 口的地址必须保证 bit[2:0]=0b000,。

Multiple STPv2 master support

STM 支持多 master, 对于 AXI 的 transactions, 如何确认时哪个 master 发起的呢?主要是基于下面两点:

  • 是安全的数据访问还是非安全的数据访问;
  • AXI 写地址总线的高bits。

留个软件的 master ID 有 128个, 0x00-0x7f, 0-63 ID 是留个 安全transaction的, 64-127 是留给非安全 transaction 的。 Master ID bit[7:0] 是由下面几部分构成的:

  • bit[7] = 0;
  • bit[6] = AWPROTS[1], 用于区分安全和非安全;
  • bit[5:0] = AWADDRS[29:24], AXI 的 AWID 和 AWUSER组合 给到 STM AWADDRS[29:24]。

bit[23:0] 用于区分channel id 或者 stimulus port id。

需要注意的是 channels 开始地址是硬件固定的 memory maped 地址,在 STM SPEC中时找不到的

每个 master 需要使用不同的 channel,否者会出现 master id 一样的情况。

上篇文章:ARM Coresight 系列文章 10 - ARM Coresight STM 介绍及使用

你可能感兴趣的:(#,ARM,Coresight,系列,arm开发,STM,AWADDR,Master,ID)