寄存器描述

Atlas 200I A2 加速模块提供了两个MDIO的控制器,寄存器基址分别为(MDIO0: 0xA0180000)和(MDIO1: 0xA0190000);具体寄存器描述如下。

寄存器名称

描述

偏移地址

宽度

默认值

字段名称

字段范围

字段属性

字段默认值

字段释义

MDIO_COMMAND_REG

MDIO控制寄存器

0x0000

32

0x00008000

rsv

31:18

RO

0x0

保留

Mdio_clk_sel_exp

17

RW

0x0

MDIO的时钟模式选择扩展寄存器。与Mdio_clk_sel一起选择时钟模式,{Mdio_clk_sel_exp,Mdio_clk_sel}:

默认值为01

00:1MHz;

01:2.5MHz;

10:12.5MHz;

11:25MHz(需要保证宽带PHY器件的Tco(MDC的上升沿到MDIO稳定的时间)+双向电平转换器件的延时不大于25ns)

Mdio_Auto_Scan

16

RW

0x0

自动扫描PHY使能(只能扫描符合IEEE802.3-2005协议中第22章描述的寄存器)。配置该bit时,Mdio_Start必须为0

Mdio_clk_sel

15

RW

0x1

MDIO的时钟模式选择寄存器,具体描述见Mdio_clk_sel_exp

Mdio_Start

14

RW/SC

0x0

MDIO启动命令控制字。

1:表示正在进行MDIO访问,不能进行操作,此位在MDIO访问结束后自动清零。(50us可以完成一次访问);

0:表示MDIO访问已经结束,可以进行写1进行MDIO访问。

配置该bit时,Mdio_Auto_Scan必须为0

Mdio_St

13:12

RW

0x0

MDIO访问类型寄存器。

2’b00:表示访问的是符合IEEE802.3-2005协议中第45章描述的寄存器;

2’b01:表示访问的是符合IEEE802.3-2005协议中第22章描述的寄存器。其余为无效值。

Mdio_Op

11:10

RW

0x0

MDIO操作寄存器。

当mdio_st为2’b00时,mdio_op:

2’b00代表写地址,

2’b01代表写数据,

2’b10代表连读操作,

2’b11代表非连读的读操作;

当st为2’b01时,mdio_op:

2’b01代表写,

2’b10代表读,

其余为无效值。

Mdio_Prtad

9:5

RW

0x0

MDIO访问的外部的端口地址。

当mdio_st为2’b00时,表示要访问的外部的端口地址;

当mdio_st为2’b01时,表示要访问的外部的PHY地址。

Mdio_Devad

4:0

RW

0x0

MDIO访问的外部的设备地址。

当mdio_st为2’b00时,表示要访问的外部的设备地址;

当mdio_st为2’b01时,表示要访问的外部PHY的寄存器地址。

MDIO_ADDR_REG

MDIO间接地址寄存器

0x0004

32

0x00000000

Rsv

31:16

RO

0x0

保留

Mdio_Address

15:0

RW

0x0

当mdio_st为2’b00时有效,代表要访问的外部某端口某设备的内部寄存器的地址,当mdio_st为其它值时无效。

MDIO_WDATA_REG

MDIO写数据寄存器

0x0008

32

0x00000000

Rsv

31:16

RO

0x0

保留

Mdio_Wdata

15:0

RW

0x0

MDIO写访问的写数据。

MDIO_RDATA_REG

MDIO读数据寄存器

0x000C

32

0x00000000

Rsv

31:16

RO

0x0

保留

Mdio_Rdata

15:0

RO

0x0

MDIO读访问的读数据。

MDIO_STA_REG

MDIO访问状态寄存器

0x0010

32

0x00000000

Rsv

31:1

RO

0x0

保留

Mdio_Sta

0

RO

0x0

MDIO读访问的状态。

1:表示读出错;

0:表示读正常。