Rocket - debug - TLDebugModuleInner - Program Buffer Access

Posted 技术之一

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rocket - debug - TLDebugModuleInner - Program Buffer Access相关的知识,希望对你有一定的参考价值。

https://mp.weixin.qq.com/s/EJVqw7JPjjaib68tENl5AQ

 

简单介绍TLDebugModuleInner中的Program Buffer Access。

 

技术图片

 

1. implementation-specific bits set by harts executing code

 

技术图片

 

1) haltedBitRegs/resumeReqRegs

 

haltedBitRegs和resumeReqRegs在dmactive为假的情况下,值为0。在dmactive为真的情况下,其值由hartHaltedId和hartResumingId确定:

技术图片

 

2) haltedBitRegs

 

技术图片

hartHaltedWrEn为真时,hartHaltedId对应的比特为真;

hartResumingWrEn为真时,hartResumingId对应的比特为假;

 

3) resumeReqRegs

 

技术图片

hartResumingWrEn为真时,hartResumingId对应的比特为假;

resumereq为真时,hamaskWrSel(component)选中的核心,对应的比特为真;

 

4) hartHaltedWrEn/hartHaltedId

 

hartHaltedId接收写寄存器的数据,hartHaltedWrEn是写寄存器的标志:

技术图片

 

谁写呢?核心写:

技术图片

核心如何写?想必是通过读写指令。

 

5) hartResumingWrEn/hartResumingId

 

hartResumingId接收写寄存器的数据,hartResumingWrEn是写寄存器的标志:

技术图片

这个寄存器也是由核心来写。

 

2. sbcsFields, sbAddrFields, sbDataFields

 

通过SystemBusAccessModule生成系统总线相关的寄存器:

技术图片

 

3. Program Buffer Access

 

生成通过dmi接口访问寄存器的逻辑:

技术图片

 

包括除了由outer实现的dmcontrol/hawindow/hawindowsel寄存器之外的,其他寄存器:

技术图片

 

4. 附录

 

以上是关于Rocket - debug - TLDebugModuleInner - Program Buffer Access的主要内容,如果未能解决你的问题,请参考以下文章

Rocket - debug - DebugTransport

Rocket - debug - Custom

Rocket - debug - DebugCustomXbar

Rocket - debug - TLDebugModule

Rocket - debug - SBA

Rocket - debug - DMI