网口调试分析
案例1:
网口不通问题不明确,先进行硬件全面检查,再检查软件和BIOS问题。具体的分析步骤如下:


- 配置检查
1.PHY_CFG_MODE 配置 011 UTPóSGMII -- OK
2.PHY ADD硬件设计是eth 0对应的PHYADD是001 -- OK
3.CFG_LDO配置1.8V – OK
2、信号测试

TX

RX

XTAL_OUT/CLK

MDIO0_CLK
MDIO信号

MDIO信号
从MDIO信号中读出的数据,PHY芯片链路正常。
MDIO数据帧格式如下所示:
数据帧格式组成:01(2)+01/10(2)+PHY.address(5)+reg.address(5)+10/Z0(2)+register data(16)
数据帧格式一共32bit。
根据数据线的第三、四bit位区分当前状态,当数据以0101开始,则该数据段为写;当数据以0110开始,则该数据段为读。MDIO的工作流程为:
1、MDIO接口在没有传输数据的空闲状态(IDLE)数据线MDIO处于高阻状态。
2、MDIO出现一个2bit的开始标识码(01)一个读/写操作开始
3、MDIO出现一个2bit数据来标识是读操作(10)还是写操作(01)
4、MDIO出现一个5bit数据标识PHY的地址
5、MDIO出现一个5bit数据标识PHY寄存器的地址
6、MDIO需要2个时钟的访问时间
7、MDIO串行读出/写入16bit的寄存器数据
8、MDIO恢复成IDLE状态,同时MDIO进入高阻状态
Clause 22各个寄存器含义如下:
- 寄存器 0x00:控制寄存器 (Control Register)
复位位(Reset):复位PHY设备。
自协商使能(Auto-Negotiation Enable):启用自动协商。
速度选择(Speed Selection):选择10/100 Mbps等速度。
环回使能(Loopback Enable):启用环回模式。
双工模式(Duplex Mode):设置全双工或半双工。
2. 寄存器 0x01:状态寄存器 (Status Register)
链路状态(Link Status):指示链路是否正常。
自动协商完成(Auto-Negotiation Complete):指示自动协商是否完成。
能力(Capabilities):显示设备支持的特性,如10/100 Mbps。
3. 寄存器 0x02:PHY ID 1 (PHY Identifier 1)
PHY芯片制造商的标识高16位。
4. 寄存器 0x03:PHY ID 2 (PHY Identifier 2)
PHY芯片制造商的标识低16位。
由上述硬件测试证明PHY芯片工作正常。确定为软件问题—驱动没装对。
- 本地制卡将驱动和装驱动的脚本存入NVME盘中,长按DEL进入EBL模式(bios调试界面)启动之后PHY芯片MDIO、时钟、RX信号均正常,TX异常,在光口XGE2处检测到的TX信号与PHY芯片发出的RX信号一致。
得出结论:驱动上把XGE0和XGE2交叉接反。
4、各伙伴XGE0-XGE3的对应eth0-eth3有所差异,底板上是双电口双光口,BIOS出版本四个口全部配置成千兆网口。测试PHY芯片的TXRX均正常。但是进入EBL后给eth0配上网段后ping不通。但是另一块板卡可以ping通。


5、检查两块底板PHY的原理图设计,原理图设计并无明显差异,在检查模式配置时只有PHY ADD配置不同的eth 3口配的PHYADD是010,这与硬件设计上的配置有差异,在该环境上尝试将PHYADD配成010。
6、进入EBL模式中给eth0配个网段,PCping模组可以ping通。PXE制卡时图要通过PXE服务器连接模组和PC,用交换机连接在一起。检查到交换机是百兆的,而网口是千兆的,更换千兆交换机后可以ping通。
7、网络配置上在启动阶段到进入OS之间这段的网络配置是BIOS配置的,在进入OS之后的网络配置是驱动配置的,到这个阶段网口通了可以进行PXE制卡。

案例2:
问题描述:8211网口不通
8211上件启动后,识别到phy芯片后可以看到如下打印:

排查phy如下硬件配置均未检查出问题但网口不通:

原理图对比:参考设计给156.25M时钟输入有预留下拉,伙伴原理图上下拉都上件导致给晶振的输入电压不足。


修改措施:去掉下拉电阻,重新测试网口没问题。
网口调试分析
案例1:
网口不通问题不明确,先进行硬件全面检查,再检查软件和BIOS问题。具体的分析步骤如下:
1.PHY_CFG_MODE 配置 011 UTPóSGMII -- OK
2.PHY ADD硬件设计是eth 0对应的PHYADD是001 -- OK
3.CFG_LDO配置1.8V – OK
2、信号测试
TX
RX
XTAL_OUT/CLK
MDIO0_CLK
MDIO信号
MDIO信号
从MDIO信号中读出的数据,PHY芯片链路正常。
MDIO数据帧格式如下所示:
数据帧格式组成:01(2)+01/10(2)+PHY.address(5)+reg.address(5)+10/Z0(2)+register data(16)
数据帧格式一共32bit。
根据数据线的第三、四bit位区分当前状态,当数据以0101开始,则该数据段为写;当数据以0110开始,则该数据段为读。MDIO的工作流程为:
1、MDIO接口在没有传输数据的空闲状态(IDLE)数据线MDIO处于高阻状态。
2、MDIO出现一个2bit的开始标识码(01)一个读/写操作开始
3、MDIO出现一个2bit数据来标识是读操作(10)还是写操作(01)
4、MDIO出现一个5bit数据标识PHY的地址
5、MDIO出现一个5bit数据标识PHY寄存器的地址
6、MDIO需要2个时钟的访问时间
7、MDIO串行读出/写入16bit的寄存器数据
8、MDIO恢复成IDLE状态,同时MDIO进入高阻状态
Clause 22各个寄存器含义如下:
复位位(Reset):复位PHY设备。
自协商使能(Auto-Negotiation Enable):启用自动协商。
速度选择(Speed Selection):选择10/100 Mbps等速度。
环回使能(Loopback Enable):启用环回模式。
双工模式(Duplex Mode):设置全双工或半双工。
2. 寄存器 0x01:状态寄存器 (Status Register)
链路状态(Link Status):指示链路是否正常。
自动协商完成(Auto-Negotiation Complete):指示自动协商是否完成。
能力(Capabilities):显示设备支持的特性,如10/100 Mbps。
3. 寄存器 0x02:PHY ID 1 (PHY Identifier 1)
PHY芯片制造商的标识高16位。
4. 寄存器 0x03:PHY ID 2 (PHY Identifier 2)
PHY芯片制造商的标识低16位。
由上述硬件测试证明PHY芯片工作正常。确定为软件问题—驱动没装对。
得出结论:驱动上把XGE0和XGE2交叉接反。
4、各伙伴XGE0-XGE3的对应eth0-eth3有所差异,底板上是双电口双光口,BIOS出版本四个口全部配置成千兆网口。测试PHY芯片的TXRX均正常。但是进入EBL后给eth0配上网段后ping不通。但是另一块板卡可以ping通。
5、检查两块底板PHY的原理图设计,原理图设计并无明显差异,在检查模式配置时只有PHY ADD配置不同的eth 3口配的PHYADD是010,这与硬件设计上的配置有差异,在该环境上尝试将PHYADD配成010。
6、进入EBL模式中给eth0配个网段,PCping模组可以ping通。PXE制卡时图要通过PXE服务器连接模组和PC,用交换机连接在一起。检查到交换机是百兆的,而网口是千兆的,更换千兆交换机后可以ping通。
7、网络配置上在启动阶段到进入OS之间这段的网络配置是BIOS配置的,在进入OS之后的网络配置是驱动配置的,到这个阶段网口通了可以进行PXE制卡。
案例2:
问题描述:8211网口不通
8211上件启动后,识别到phy芯片后可以看到如下打印:
排查phy如下硬件配置均未检查出问题但网口不通:
原理图对比:参考设计给156.25M时钟输入有预留下拉,伙伴原理图上下拉都上件导致给晶振的输入电压不足。
修改措施:去掉下拉电阻,重新测试网口没问题。