【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)

外设识别寄存器
【ARM Coresight 系列文章 2.5 - Coresight 寄存器:PIDR0-PIDR7,CIDR0-CIDR3 介绍】_第1张图片

  • 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]

【ARM Coresight 系列文章 2.5 - Coresight 寄存器:PIDR0-PIDR7,CIDR0-CIDR3 介绍】_第2张图片【ARM Coresight 系列文章 2.5 - Coresight 寄存器:PIDR0-PIDR7,CIDR0-CIDR3 介绍】_第3张图片

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

外设寄存器地址偏移
【ARM Coresight 系列文章 2.5 - Coresight 寄存器:PIDR0-PIDR7,CIDR0-CIDR3 介绍】_第4张图片

1.2 CIDR0-CIDR3(Component Identification Registers)

【ARM Coresight 系列文章 2.5 - Coresight 寄存器:PIDR0-PIDR7,CIDR0-CIDR3 介绍】_第5张图片

这四个寄存器,每个寄存器只有最低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对自己的组件,也划分了若个的类。
【ARM Coresight 系列文章 2.5 - Coresight 寄存器:PIDR0-PIDR7,CIDR0-CIDR3 介绍】_第6张图片

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

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

你可能感兴趣的:(#,ARM,Coresight,系列,PIDR0-PIDR7,CIDR0-CIDR7,jedec,JEP106,coresgiht)