DP83TG720S-Q1 SMI 功能支持使用寄存器 REGCR (0x000Dh) 和 ADDAR (0x000Eh) 以及 IEEE 802.3ah 草案第 22 条所定义的 MDIO 管理器件 (MMD) 间接方法对扩展寄存器组进行读写访问,从而访问第 45 条所定义的扩展寄存器组。
REGCR (0x000Dh) 是 MDIO 可管理的 MMD 访问控制。通常情况下,寄存器 REGCR[4:0] 为器件地址 DEVAD,可将 ADDAR (0x000Eh) 寄存器的任何访问引向适宜 MMD。
DP83TG720S-Q1 可支持 4 个 MMD 器件地址。这 4 个 MMD 寄存器空间是:
- DEVAD[4:0] = 11111 (0x1F) 用于 IEEE 所定义的寄存器(0x00 至 0x1F)和特定于供应商的寄存器。该寄存器空间称为 MMD1F。
- DEVAD[4:0] = 00001 (0x01) 用于 1000BASE-T1 PMA MMD 寄存器访问。该寄存器空间称为 MMD1。
- DEVAD[4:0] = 00011 (0x03) 用于特定于供应商的寄存器。该寄存器空间称为 MMD3。
- DEVAD[4:0] = 00111 (0x07) 用于特定于供应商的寄存器。该寄存器空间称为 MMD7。
表 7-15 MMD 寄存器空间划分
MMD 寄存器空间 |
寄存器地址范围 |
MMD1F |
0x000 - 0x0EFD |
MMD1 |
0x1000 - 0x1904 |
MMD3 |
0x3000 - 0x390D |
MMD7 |
0x7000 - 0x7200 |
注: 对于 MMD1/3/7,寄存器地址的最高有效半字节用于表示相应的 MMD 空间。实际寄存器访问操作过程中应忽略该值。例如,访问寄存器 0x1904 时,使用 0x0904 作为寄存器地址,x01 作为 MMD。
经由寄存器 REGCR 和 ADDAR 的所有访问都必须使用正确的 DEVAD。其他 DEVAD 的事务都会被忽略。REGCR[15:14] 保存访问功能:地址 (00)、无后增量的数据 (01)、读写时具有后增量的数据 (10) 和仅在写入时具有后增量的数据 (11)。
- ADDAR 是地址和数据 MMD 寄存器。ADDAR 与 REGCR 结合使用,旨在支持访问扩展寄存器组。如果寄存器 REGCR[15:14] 为 (00),则 ADDAR 保存扩展地址空间寄存器的地址。否则,ADDAR 保存由其地址寄存器内容所指示的数据。REGCR[15:14] 设置为 (00) 时,通过访问寄存器 ADDAR 可修改扩展寄存器组地址寄存器。为访问扩展寄存器组中的任何寄存器,该地址寄存器应始终处于初始化状态。
- REGCR[15:14] 设置为 (01) 时,通过访问寄存器 ADDAR 可访问由地址寄存器中值所选择的扩展寄存器组中的寄存器。
- REGCR[15:14] 设置为 (10) 时,通过访问寄存器 ADDAR 可访问由地址寄存器中值所选择的扩展寄存器组中的寄存器。访问完成后,读取和写入操作都会使地址寄存器中的值递增。
- REGCR[15:14] 设置为 (11) 时,通过访问寄存器 ADDAR 可访问由地址寄存器中值所选择的扩展寄存器组中的寄存器。访问完成后,仅写入访问会使地址寄存器中的值递增。对于读取访问,地址寄存器中的值保持不变。
以下小节介绍了如何使用寄存器 REGCR 和 ADDAR 对扩展寄存器组执行操作。