【ARM Coresight 系列文章 2.5 - Coresight 寄存器:PIDR0-PIDR7,CIDR0-CIDR3 介绍】

文章目录

    • 1.1 JEDEC 与 JEP106
    • 1.2 PIDR0-PIDR7(peripheral identification registers)
    • 1.2 CIDR0-CIDR3(Component Identification Registers)

1.1 JEDEC 与 JEP106

JEDEC和JEP106都是来自美国电子工业联合会(JEDEC,Joint Electron Device Engineering Council)的标准。

JEDEC是该联合会的简称,也指代该联合会制定的所有标准。

而JEP106则是其中的一项特定标准,名为 “Standard Manufacturer’s Identification Code”,即“标准制造商识别代码”。这个标准提供了一种机制,可以让不同的半导体制造商有自己独一无二的识别代码,这样就可以在设备和系统中准确地识别使用了哪些制造商的产品。

所以,JEP106实际上就是JEDEC的一个子集,是在JEDEC架构下的一个具体标准。

1.2 PIDR0-PIDR7(peripheral identification registers)

外设识别寄存器
在这里插入图片描述

  • CMOD 用于表示该组件是否被Customer 修改过,如果为0表示没有被修改过,其他值则表示被修改过;
  • PIDR2.REVISIONPIDR3.REVAND 一起构成组件的版本号;
  • JEDEC: 固定为1;
  • PIDR1.DES_0 bits[7:4] 表示的是JEP106 识别码的bits[3:0];
  • PIDR2.DES_1 bits[2:0] 表示的是JEP106 识别码的bits[6:4];
  • PIDR4.DES_2 bits[3:0] 表示的是 JEP106 的 连续码 continuation code。

制造商的识别码由一个或多个 8 位字段定义,由 7个数据位加 1 个奇校验位组成。例如 ARM 的 JEDEC code 是 0x7F 0x7F 0x7F 0x7F 0x3B。而 连续码 continuation code 表示的是 0x7F 出现的次数,例如ARM的连续码是0x4。而识别码是最后的 bits[6:0], ARM 公司的识别码是0x3B。

SoC 中有多个coresight的组件,为了较好方便的管理这些组件,designer 给每个组件分配了唯一的编号。这个编号就保存在part number中:

  • PART_0, PIDR0 bits[7:0] Part number bits[7:0]
  • PART_1, PIDR1 bits[3:0] Part number bits[11:8]

在这里插入图片描述在这里插入图片描述

  • SIZE:表示这个组件占用 4k 空间的块数。如果只占用一个块,那么值是0,如果占用两个块,值是1。占用的块数为 2^SIZE。这种做法已经被废弃,ARM 推荐使用 Unique Component Identifier 域来表示组件占用空间的大小,或者使用一些没有使用过的寄存器来表示。

外设寄存器地址偏移
在这里插入图片描述

1.2 CIDR0-CIDR3(Component Identification Registers)

在这里插入图片描述

这四个寄存器,每个寄存器只有最低8位有效。这四个寄存器的组合,用来标识组件的类型。

对于ARM的组件,CIDR寄存器的有些位的值是固定的:

  • CIDR3 bits[7:0] 的值是 0xB1;
  • CIDR2 bits[7:0] 的值是 0x05;
  • CIDR1 bits[3:0] 的值是 0x0;
  • CIDR0 bits[7:0] 的值是 0x0D;

CIDR1寄存器中有一个CLASS位域 CIDR1 bits[7:4],用来表示组件属于哪一个类。ARM对自己的组件,也划分了若个的类。
在这里插入图片描述

  • 0x1: ROM Table;
  • 0x9: CoreSight组件;
  • 0xF: CoreLink组件。

读取组件的 CIDR 寄存器,即可知道这个组件是属于哪一类。
对于Rom Table, 固定为 0xB105_100D;
对于Coresight组件,固定为 0xB105_900D;
对于CoreLink 组件, 固定为 0xB105_F00D

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/24600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习(34)—— StarGAN(1)

深度学习(34)—— StarGAN(1) 文章目录 深度学习(34)—— StarGAN(1)1. 背景2. 基本思路3. 整体流程4. StarGAN v2(1) 网络结构(2) mapping network(3) style encoder(4)Loss 和之前…

4个顶级的支持消费级硬件的NeRF软件平台

似乎每天都有大量的创新发布,人们很容易感到不知所措。因此,让我们放慢脚步,看看4个主流的支持消费级硬件的NeRF 平台。 推荐:用 NSDT设计器 快速搭建可编程3D场景。 1、Instant-NGP(Instant-NeRF) 2022 年…

【CTF】Python原型链污染

Python原型链污染 原型链 在Python中每个对象都有一个原型,原型上定义了对象可以访问的属性和方法。当对象访问属性或方法时,会先在自身查找,如果找不到就会去原型链上的上级对象中查找,原型链污染攻击的思路是通过修改对象原型…

计算机网络-三种交换方式

计算机网络-三种交换方式 电路交换(Circuit Switching) 电话交换机接通电话线的方式称为电路交换从通信资源分配的角度来看,交换(Switching)就是按照某种方式动态的分配传输线路的资源 电话交换机 为了解决电话之间通信两两之间连线过多,所以产生了电话…

认识 spring AOP (面向切面编程) - springboot

前言 本篇介绍什么是spring AOP, AOP的优点,使用场景,spring AOP的组成,简单实现AOP 并 了解它的通知;如有错误,请在评论区指正,让我们一起交流,共同进步! 文章目录 前言1. 什么是s…

快速制作美容行业预约小程序

随着科技的不断进步,移动互联网的快速发展,小程序成为了很多行业迅速发展的利器。对于美容行业来说,一款美容预约小程序不仅可以方便用户进行预约,还可以提升美容店铺的服务质量和管理效率。下面,我们来介绍一下如何快…

K8S deployment 重启的三种方法

一般重启deployment&#xff0c;常规操作是删掉对应的pod, 但如果有多个副本集的话&#xff0c;一个个删很麻烦。 除了删除pod&#xff0c;还可以&#xff1a; 方案一&#xff1a; 加上环境变量 kubectl patch deploy <deployment-name> -p {"spec":{"…

【云原生K8s】初识Kubernetes的理论基础

K8S由google的Borg系统(博格系统&#xff0c;google内部使用的大规模容器编排工具)作为原型&#xff0c;后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。 云原生基金会&#xff08;CNCF&#xff09;于2015年12月成立&#xff0c;隶属于Linux基金会。CNCF孵化的第一个项目…

iOS——Block循环引用

Capturing ‘self’ strongly in this block is likely to lead to a retain cycle 典型的循环引用 self持有了blockblock持有了self(self.name) 这样就形成了self -> block -> self的循环引用 解决办法 强弱共舞 使用 中介者模式 __weak typeof(self) weakSelf sel…

认识MyBatis 之 MyBatis的动态SQL

前言 本篇介绍MyBatis里如何使用动态SQL&#xff0c;了解如何去简单使用动态标签&#xff1b;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文章目录 前言MyBatis - 动态 SQLif标签trim标签where标签update set 标签delet…

F5 LTM 知识点和实验 10-基础配置

第十章 基础配置 VLAN VLAN是对物理网络进行逻辑分区的一种方式,可以创建不同的广播域。将具有共同要求的主机分组在一个VLAN中——不管它们的物理位置如何——提供了明显的优势,包括: 减小广播域的大小,从而提高网络的整体性能显著减少系统和网络维护任务(功能相关的主机…

【Spring Boot】(二)Spring Boot 配置文件的探索之旅

文章目录 前言一、配置文件的作用二、配置文件的格式2.1 Spring Boot 配置文件格式2.2 properties 和 yml 的区别 三、properties 配置文件3.1 properties 基本语法3.2 配置文件的读取3.3 properties 优缺点分析 四、yml 配置文件说明4.1 yml 基本语法4.2 yml 使用案例4.3 yml …

两数相加 LeetCode热题100

题目 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会…

el-table某一列嵌套使用el-popover,使用click触发,导致页面下拉框组件无法触发弹框关闭(解决办法)

在弹框触发的方法里加上document.body.click() 即可 尝试了很多其他的方法都没用&#xff0c;只有这个解决了 完整代码&#xff1a; <el-select change"sourceChange" clearable ><el-optionv-for"option in list1":key"option.code":…

【 SpringSecurity】第三方认证方法级别安全

文章目录 SpringSecurity 第三方认证实现方法级别的安全 SpringSecurity 第三方认证 在登录网页时&#xff0c;时常有用其他账号登录的方式&#xff0c;它们能够让用户避免在Web站点特定的登录页上自己输入凭证信息。这样的Web站点提供了一种通过其他网站&#xff08;如Facebo…

matlab使用教程(9)—matlab基本语句

1.条件控制 - if、else、switch 条件语句可用于在运行时选择要执行的代码块。最简单的条件语句为 if 语句。例如&#xff1a; % Generate a random number a randi(100, 1); % If it is even, divide by 2 if rem(a, 2) 0 disp(a is even) b a/2; end 通过使用可选关键字 …

fishing之第四篇使用案例一模拟登陆口

文章目录 一、访问钓鱼平台二、Sending Profiles(发件人邮箱配置)三、User&Groups(接收人邮件列表)四、Landing Pags(钓鱼页面配置)五、Email Templates(邮件内容配置)六、Campaigns七、攻击结果查看免责声明一、访问钓鱼平台 详细查看第二篇的gophish的搭建 二…

WebRTC 之音视频同步

在网络视频会议中&#xff0c; 我们常会遇到音视频不同步的问题&#xff0c; 我们有一个专有名词 lip-sync 唇同步来描述这类问题&#xff0c;当我们看到人的嘴唇动作与听到的声音对不上的时候&#xff0c;不同步的问题就出现了 而在线会议中&#xff0c; 听见清晰的声音是优先…

Java窗体应用程序人事管理系统web人资招聘员工劳资jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 Java窗体应用程序人事管理系统 注意&#xff1a;此项…

Python 开发工具 Pycharm —— 使用技巧Lv.1

Basic code completion Ctrl空格 is available in the search field when you search for text in the current file CtrlF, so there is no need to type the entire string 基本代码完成Ctrl 空格可在搜索领域当你搜索文本在当前文件Ctrl F,所以没有必要整个字符串类型 To m…