h3c高端 (h3c简单配置实例)

装备测试项介绍

点灯测试

该功能测试被测单板端口指示灯是否可以正常亮灭,测试过程有两种方式:

指示灯全灭(奇数灯亮(指示灯全灭(偶数灯亮(指示灯全灭(恢复原有状态;

h3c高级配置,h3cs10500

为了更容易识别出哪些指示灯有问题,提供单独点奇数灯和恢复原来状态、单独点偶数灯和恢复原来状态。

h3c高级配置,h3cs10500

测试到的相关器件:

逻辑点灯的情况,通常是主控板Cpu<--->local bus<--->cpld<--->led

Mac/phy点灯的情况Cpu<--->pcie<--->mac芯片<--->mdio<--->phy<---->led

【命令行】

test led slot/subslot on_delay off_delay

slot/subslot:被测试槽位

on_delay:亮灯时间

off_delay:灭灯时间

【命令行】

test led slot/subslot on {green | red | recover}

slot/subslot:被测槽位

green:长亮绿色灯

red:长亮红色灯

recover:恢复

【示例】

[H3C-equipment]test led 0/0 on green

[H3C-equipment]test led 0/0 on red

[H3C-equipment]test led 0/0 recover

[H3C-equipment]test led 0/0 5 5

常见错误现象

【常见问题】该测试项和硬件逻辑、软件实现都有关系,出问题后请先检查逻辑版本是否为产线归档逻辑,之后可通过手动写寄存器来确认硬件灯是否有故障本身就受控制,还是软件实现不对,没有正确设置寄存器值。

定位方法

led 灯确认软件寄存器方法,下边以QGS48H为例:

首先需要通过debug port map slot X获取端口对应的的unit和 port 号,用得到的port号,从软件端口列表g_auiLSXM1QGS48HB_HwTenPortList数组中推算出端口的物理口号:

以unit = 0 port =17为例:以port号为下标,填的值就是对应的物理口号,这里unit = 0 port =17对应的物理口号应该是 28,(如果是前面的8个口,204~211,应该减去200,然后再把值乘以2,如208对应的物理口就是16,209->18以此类推)然后再由物理口号换算成Led的offset。Jericho的led有三个bus,分别对应 物理口的 0~23, 24~47, 48~71,然后根据之前得到的物理口号,换算成在bus 上的offset。换算方法如下:

1、首先把物理口号加1,因为bus上的值是从1开始的,这样每个bus物理口号就变成1~24,25~48,49~72;

2、把步骤得到的值,与以下数据进行比较,bus1 的减24, bus 2的减48,找到相应的值的位置。即是他的offset.

/*根据芯片号和灯号获得每个bus上对应的物理serdes端口号*/

以unit = 0 port =17为 物理口为28,在bus 1范围内,28+1=29-24=5。而在unit 0 bus 1 的数组里,5是在第0个位置,所以它的offset就是0.然后,我们会得到这样一个对应关系:unit 0 port 17 => bus 1 offset 0,另外ledup的data ram base offset 是0x90,也就是说从0x90开始,再加上之前得到 的offset值 就是我们的目标值,这里要将数据转成十进制,0x90=144 + 0(offset) =144

bcm slot x chip 0 g/cmic_ledup1_data_ram144 即是unit 0 port 17对应的led灯的软件开关寄存器。

bcm slot 1 chip 0 g/cmic_ledup1_data_ram144

CMIC_LEDUP1_DATA_RAM144.CMIC0[0x21640]=0: <DATA_N=0>

这里DATA_N=0表示灯灭,DATA_N=1表示灯亮。

也可以手动修改这个值:

bcm slot 1 chip 0 modreg/cmic_ledup1_data_ram144/data_n=1

bcm slot 1 chip 0 g/cmic_ledup1_data_ram144

CMIC_LEDUP1_DATA_RAM144.CMIC0[0x21640]=1: <DATA_N=1>

硬件定位方法

个别灯异常,检查LED灯及相关链路

所有灯均异常,检查电源情况及MAC或PHY工作情况

温度测试

该功能测试当前运行环境实际温度值,包括单板所有结温和板温。芯片结温我们认为-40到128之间的值属于正常范围,其它值为无效值,会使单板下电,实际读取通过连续读取6次以防止误报。板温是通过I2C读取传感器MAX6696和LM75各通道真实温度值。该命令获取到的温度都是单板各温点的真实温度,没有经过软件处理。

测试到的相关器件:

CPU<--->IIC总线<--->MAC6696/LM75

常见错误现象

【常见问题】该测试项如果测试失败会返回fail,同时Spot前也会打*表明该温点测试失败。

如下测试例 high limit设置为30度,实际温度超出30度就会测试失败

h3c高级配置,h3cs10500

其它测试失败一般都是温度读到的不在正常范围内

测试到的相关器件:

Cpu<--->iic总线<--->MAX6696/lm75

【命令行】

test temperature slot/subslot low_limit high_limit temp-spot

slot/subslot:被测槽位

low_limit:低温下限

high_limit:高温上限

定位方法

可根据如下Atrribute列确定是结温(CPU和INCHIP)还是板温(HOTSPOT),根据Channel列确定是哪片测温芯片的第几通道来确认问题。

h3c高级配置,h3cs10500

硬件定位方法

针对过温点检查是否散热器加工问题

若散热器正常更换监控温度芯片MAX6696验证

若仍故障更换被测相关芯片验证

均温测试测试

该功能测试当前运行环境单板散热是否均衡,分别包括多个芯片共用一个散热器情况下,各芯片间温差要求在8度内,单个芯片内部各测温点间温差要求在15度内。以上所有温度都是取的 芯片pvt[x] curr值,不取peak值。

测试到的相关器件:

CPU<--->MAC芯片内部温度监控点

用bcm接口直接读取,不清楚读取过程??

【命令行】

test temperature slot/subslot average hig_limit difference chip {chip_id/all}

slot/subslot :被测槽位

hig_limit:温度上限

difference:最高和最低温点的差值上限

chip_id:测试单个芯片

all:测试全部芯片

【示例】

[H3C-equipment]test temperature 0/0 average 90 15 chip all

[H3C-equipment]test temperature 0/0 average 90 15 chip 0

常见错误现象

【常见问题】该测试项如果测试失败会返回fail,同时行前也会打*表明测试失败。

1、实际温度合理,但是difference值设置不合理,导致测试失败,如下difference值为3度,但实际温差为7.3度在合理范围内。

h3c高级配置,h3cs10500

同一散热器下温差大于8度,该情况多数是散热器出问题,可找硬件确认

定位方法

如上所述每种失败情况都有相应的错误信息输出,可根据提示确认哪个芯片温度有异常,或者哪个散热器有异常来进一步跟踪。

硬件定位方法

检查是否散热器加工问题,检查散热器平整度。

若平整度异常,工艺分析后决定重新组装单板或更换散热器或重新焊接芯片

若排除平整度及散热器问题仍异常,更换被测相关芯片验证