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:表示读正常。 |