【ARM Coresight 系列文章 2.3 - Coresight 寄存器】


请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】


下篇文章:【ARM Coresight 系列文章 2.4 - Coresight 寄存器:DEVARCH,DEVID, DEVTYPE】
上篇文章:【ARM Coresight 系列文章 2.2- ATB 总线简介】

Coresight 寄存器介绍

Coresight 对于每个 coresight 组件,规定了一些寄存器,这些寄存器的偏移是固定的,这些寄存器有的是必须存在的。但是有的,可以不实现该寄存器功能。

Coresight 架构,对于 Coresight 的组件,定义了若干个固定的寄存器。第一个寄存器的偏移从 0xF00 开始,直到0xFFC。以下是寄存器列表
在这里插入图片描述
以上的寄存器的地址,在coresight的组件中,是不能当作其他功能使用的。如果该寄存器,在该组件没有实现,那么该寄存器地址要保留,读取要返回0,写被忽略(read must return zero, and writes must be ignored),而不能当作其他功能使用。

对于coresight的组件,占用1个4k或者整数倍的4k空间的memory空间。而 coresight 的寄存器,处于组件占用空间的最后一个4K空间的最后一部分。

寄存器分为两部分:

  • device-specific registers:组件自定义寄存器,从0x000-0xeff。coresight组件利用这些寄存器,实现该组件的功能。

  • coresight management registers: coresight 固定的寄存器,从0xf00-0xfff。这部分寄存器的功能是固定的。

1.1 ITCTRL,integration mode control register

工作模式寄存器。
在这里插入图片描述
对于每个 CoreSight 组件,可以工作在两种模式下:

  • functional mode
  • integration mode

两种模式的区别,在于对coresight组件的寄存器的访问,是否会引发寄存器相应的功能。

integration mode 是用来topology detection的。当一个debugger连接到一个soc后,此时debugger是不知道soc内部有哪些coresight组件的。因此就需要通过查询,来得知soc中有哪些coresight组件的。而查询,就是通过访问coresight组件的寄存器来实现的。此时soc还不知道组件是什么组件,因此也就不知道组件的寄存器是有什么功能。因此此时是不能随意对组件的寄存器进行访问的。

为了使访问的过程中,不影响组件的功能,就可以让组件工作在integration mode下,此时访问组件的寄存器,不会引发寄存器相应的功能。待debugger查询完毕后,获取到soc中各个coresight组件的信息后,再将组件的模式切换为 functional mode。

复位后,组件必须工作在 functional mode下。因此外部 debugger对组件查询完毕后,可以直接对组件进行复位,这样所有的组件就恢复到了function mode了。

1.2 CLAIM寄存器

这个寄存器是一个32位的不可见寄存器。只能通过访问 CLAIMCLRCLAIMSET 这两个寄存器,来设置或者获取该寄存器的值。

该寄存器,可以用来表示该组件的状态。这个是由实现来定义的,比如可以规定,该寄存器的最低位,表示最近该寄存器被读取过,第1位,表示最近该寄存器被写过。

CLAIMCLR寄存器
在这里插入图片描述

CLAIMSET寄存器
在这里插入图片描述

1.3 DEVAFF(Device Affinity Registers)

组件关联功能寄存器。
有时候,组件需要和其他组件,联合起来工作,这样,就需要指示该组件是和另外的什么组件进行关联,就可以用这寄存器。

比如一个 ETM,追踪一个 core 的 trace 信息,那么这个寄存器,就保存core的 MPIDR 寄存器信息,这样debugger就可以通过 DEVAFF 寄存器,得知这个ETM是关联的哪一个core。

在这里插入图片描述

1.4 LSR and LAR

在这里插入图片描述
对于coresight组件的寄存器,ARM定义了如下两类访问:

  • 系统寄存器访问:通过MSR,MRS指令(aarch64),MCR,MRC指令(aarch32)
  • external debug接口访问:DAP访问,或者是 memory-mapped访问,也就是软件通过load store访问

对coresight组件寄存器的访问,是有权限要求的。对于系统寄存器访问和 memory-mapped访问,ARM 定义了 software lock 这个权限限制。当 software lock 有效的时候,软件是不能访问coresight组件寄存器的。

software lock的目的,是为了防止软件意外的修改coresight组件的寄存器,从而修改当前系统状态,或者获取一些不该获取的信息。可以用来防黑客。

software lock 提供了两个寄存器,一个是LAR,一个是LSR。LAR是用来设置software lock状态,而LSR是保存当前的software lock的状态。

往LAR写入0xc5acce55,software lock 状态切换为unlock, software 可以正常访问coresight组件的寄存器,写入其他值,software lock状态切换为lock,software不可以正常访问coresight组件的寄存器(实现自定义)。

对于DAP访问,software lock 是没有用的。因为要通过DAP访问,是必须要debugger连接芯片的。
所以 coresight 组件要能够区分,当前的访问是 DAP 访问,还是非 DAP 访问。

1.5 AUTHSTATUS(Authentication Status Register)

debug 可以分为 non-invasiveinvasive
non-invasive 就是 self-hosted,而 invasive 就是 external debug

实际中,可以根据不同的应用需求,可能会需要支持debug,但是也可能需要支持debug中的一种,也有可能不需要支持debug功能。因此考虑到这些需求,ARM定义了认证接口。

认证接口总共包括4个,这 4 个接口是每个 coresight 组件要实现的。这些接口是 debug功能的总开关。

InterfaceDescription
DBGENinvasive debug enable
SPIDENsecure invasive debug enable
SPNIDENsecure non-invasive debug enable
NIDENnon-invasive debug enable

而这个 authentication status 寄存器,就是保存了这4个接口信号的状态。
在这里插入图片描述

  • DBGEN 使能的时候,NIDEN被忽略,即 NIDEN被认为是使能。
  • SPIDEN使能的时候,SPNIDEN被忽略,即SPNIDEN被认为是使能。

下篇文章:【ARM Coresight 系列文章 2.4 - Coresight 寄存器:DEVARCH,DEVID, DEVTYPE】
上篇文章:【ARM Coresight 系列文章 2.2- ATB 总线简介】

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
• (1) 客户端 客户端是访问 PI 数据的单个 PI Coresight 用户各种计算机上的大部分新款浏览器都支 持 PI Coresight,包括运行 iOS 或 Android 操作系统的平板电脑和手机。 • (2) PI Coresight 应用服务器 应用服务器为 PI Coresight 提供运行环境。应用服务器处理用户(客户端)和 PI Data Archive Server、PI AF Server、Microsoft SQL Server 和 PI Web API 之间的所有应用 程序操作。 • (3) PI Web API PI Web API 针对 PI System 数据提供跨平台和多用户的程序访问。 • (4) PI Web API 爬取程序 PI Web API 爬取程序会定期爬取已注册的服务器以获取元数据并创建搜索索引,从而启 用 PI Coresight 的搜索功能。 PI Coresight 2016 R2 安装与管理指南 1 • (5) PI Data Archive Server PI Data Archive 是 PI System 的核心。它为时间序列数据提供高效的存储和存档功能, 同时通过客户端软件实现高性能的数据检索。PI Coresight 从 PI Data Archive Server 或者 PI AF Server 检索 PI System 数据。 • (6) PI AF Server PI Asset Framework (PI AF) 是以资产为中心的模型、层次结构、对象和设备的单个存储 库。它集成、构建上下文关系、精确化、引用以及进一步分析来自多个来源的数据,包括 源自一个或多个 PI Data Archive Server 的数据。这些元数据和时间序列数据组合在一 起详细地描述了设备或资产。 • (7) Microsoft SQL Server 中的 PI Coresight 数据库 PI Coresight 将用户显示设置和定义存储在 Microsoft SQL 数据库中。显示名称、显示 所有者、显示上的符号、用户权限等此类数据都属于显示定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公CodingCos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值