装备测试项介绍
CPU外挂ram测试
实现方法:在测试之前用装备命令行先设置一个SDRAM测试的标志位,软重启单板(watchdog或reboot),单板启动时,bootware检测测试标志位,如果检测到,则按照规范进行测试。
覆盖CPU与内存间的所有数据线、地址线、内存的存储单元。
测试到的相关器件:
设置CPLD标志位<--->重启单板boot进行CPU外挂ram测试<--->从一高端内存读取测试结果
【命令行1】
test ram slot/subslot unit_test_flag {set | clear | show}
test ram slot/subslot show_result
slot/subslo:被测槽位
set:设置测试标志
clear:清除测试标志
show:查看测试标志是否设置成功
show_result:查看测试结果
【示例】
[H3C-equipment]test ram 4/0 unit_test_flag set
【示例】
[H3C-equipment]test ram 4/0 unit_test_flag clear
【示例3】
[H3C-equipment]test ram 4/0 show_result
常见错误现象
1、如下如果测试地址数据都为全F,则说明没有测试;如果不是全F测试说明测试出现错误。
[H3C-equipment]test ram 3/0 show_result
@
RAM has been tested!
Sdram has address line error!
The error address is:0xffffffff
The data written is:0xffffffff
The data read out is:0xffffffff
test result:fail
$
定位方法
1、查看测试标志是否设置成功,如下。
[H3C-equipment]test ram 3/0 unit_test_flag show
@
CPU RAM unit test flag is set!
test result:pass
$
测试标志设置成功后,软重启单板,切换串口后可以看到单板开始测试。如果没有测试,按ctrl+b进boot扩展段,然后按ctrl+a输入md.b b400000a,查看bit0是否为1。如果不为1或为1没有测试,则说明是boot版本问题。
Memory test begin...................................................................................................................
....................................................................................................................................
....................................................................................................................................
....................................................................................................................................
..............................................................................................................
16342 Mbytes memory test ok.
BootWare> md.b b400000a
b400000a: 21 0b 0c 0d 55 55 ff ff 00 00 ff ff 00 00 00 19 !...UU..........
如果前boot阶段已经测试了,在测试完后,进入ctrl+b进入boot扩展段,再按ctrl+a,然后输入md.b 0x8f800000查看是否如红色部分结果。如果不是则说明ram有问题。
BootWare> md.b 0x8f800000
8f800000: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
8f800010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
8f800020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
如果3步确认boot阶段测试没有问题,软件启动后查看结果还是失败,则可能是软件启动时修改了高端内存。
确认是否是有这种情况?
如果出错,打印 64位16进制数,为1 的bit位表示相应的线路故障。对于数据线测试,bit 0 ~bit 63 对应 64 跟数据线;对于地址线测试,bit 0 ~ bit 12对应A0 ~ A12,bit 13、bit 14对应 BA0、BA1;对于内存单元测试,bit 0 ~ bit 63 与数据线对应,由于8个颗粒每个8根数据线,拼接成 64 位数据线,可以通过查原理图,索引到相应的颗粒。
例如:
Data line test ...
00000400 /* bit 10为1,表示数据线 D10 故障 */
Address line test ...
00000020 /* bit 为1,表示地址线 A5 故障 */Unit test...
00000400 /* bit 10为1,查原理图数据线 D10 相对应的颗粒
注意:如果数据线有错误,应该先查数据线,因为数据线错误会影响地址线测试和内存单元测试结果的正确性;同理,为保证内存单元测试的正确性,也要先保证地址线没有故障。
硬件定位方法
测试板卡电源和时钟,确认是否工作正常。
有内存条单板,更换内存条验证。
DDR颗粒单板,烧写特殊定位内存boot,根据失效数据线判断失效颗粒位置,
更换颗粒验证
若特殊boot无法定位,测试数据、地址线阻抗和反向电压,若有异常,更换对应颗粒
若均无异常,考虑更换CPU验