本章提供以下信息:
本文档提供了有关如何在 Broadcom NetXtreme 以太网控制器上使用 DOS 诊断实用程序的信息。
所有命令都可以从 DOS 提示符或 CLI(命令行界面)提示符输入。不带参数运行程序时,将进入 CLI 模式。否则,参数将作为命令使用来执行,并在完成执行后退出程序。
在 CLI 中,假定系统中有 3 个设备,在每次提示之前始终显示所有的设备信息,如下例所示:
C Brd:Rv Bus PCI Spd Base Irq EEP MAC Fmw Configuration - ------- ------- --- --- ---- -- ---- ------------ ----------- -------------- 0 5702:A2 02:0A:0 32 33 FEAF 3 128K 0010180416DB 5702-v2.24a PW,auto 1 5702:A2 02:0B:0 32 33 FEAD 11 128K 0010180416C4 5702-v2.24a PW,auto
|
操作系统: |
DOS 6.22 |
|
软件: |
b57udiag.exe |
要查看“功能列表”,请输入命令“b57udiag -cmd”。
命令
功能
从文件升级 PXE 或 Boot 代码
显示 NVRAM 中的文件目录
启用/禁用 WOL
启用/禁用 PXE
启用/禁用 ASF
启用多重引导代理
运行一组 NIC 测试
退出程序
显示或切换设备
显示程序版本
显示可用命令
执行 DOS 命令
重置芯片
清除屏幕
对 ASF 固件编程以包含到 NVRAM 中
upgfrm
命令:upgfrm
说明:从文件升级 PXE 或 Boot 代码。
语法:upgfrm [-选项]
该命令读取文件的代码并对其进行编程,以包含到 pxe 或引导区中。必须指定作为编程目标的“pxe”或“boot”和文件名参数。
选项:
-f <string>
输入文件
-p
升级 PXE 代码
-b
升级 Boot 代码
-d
不执行设备检查
dir命令:dir
说明:显示 NVRAM 中的文件目录。
示例:
Entry Type SRAM Addr EEP Offset Length Execute Version
----- ------------ --------- ---------- -------- ------- -------
BootCode 08003000 00000200 000011B0 CPUA (2) 5702-v2.24a
0 PXE 00010000 000013B0 0000C854 no 2.2.7setwol
命令:set wol
说明:启用/禁用 WOL。
语法:setwol [ -选项]
|
选项: |
|
|
-e |
启用 WOL |
|
-d |
禁用 WOL |
setpxe
命令:set pxe
说明:启用/禁用 PXE 并设置 PXE 速度。
语法:setpxe [ -选项]
选项:
-e
启用 PXE
-d
禁用 PXE
-s<DEC>
指定 PXE 速度(默认值 = 0)
速度: 0 = auto
1 = 10 HD
2 = 10 FD
3 = 100 HD
4 = 100 FD
setasf
命令:setasf
说明:启用/禁用 ASF。
语法:setasf [-选项]
选项:
-e
启用 ASF
-d
禁用 ASF
setmba
命令:setmba
说明:启用/禁用多重引导代理。
语法:setmba [ -选项]
选项:
-e<DEC>
指定 MBA 协议
协议: 0 = pxe
1 = rpl
2 = bootp-d
禁用 MBA
-s<DEC>
指定 MBA 速度(默认值 = 0)
速度: 0 = auto
1 = 10 HD
2 = 10 FD
3 = 100 HD
4 = 100 FD
nictest
命令:nictest
说明:运行一组 NIC 测试。
语法:nictest [测试列表]
示例:有关测试说明的详细信息,请参见“诊断测试”。
abcd
运行所有测试
b
运行 b 组的所有测试
a3 b1
仅运行 a3 和 b1 测试
a124b2
运行 a1、a2、a4 和 b2 测试
如果没有输入测试列表,则使用 diagcfg 设置。
选项:
-n <DEC>
迭代
-e
还运行 NVRAM 验证
exit
命令:exit
说明:从 CLI 模式退出。
语法: exit
示例:
b57udiag> exit
命令:device
说明:显示或切换设备。
语法:device [ -选项]
|
选项: |
|
| -n <HEX>
|
设备号(默认值 = 00000000) |
| -r
|
删除当前所有设备并重新扫描可用设备。 |
| -s
|
无提示模式 - 不显示设备 |
version
命令:version
说明:显示软件版本。
语法: version
示例:
C:\>b57udiag -version
Copyright (c) 2000, 2001 Broadcom Corporation, all rights reserved
Broadcom NetXtreme User Diagnostic 3.09 (06/14/02)
help
命令:help
说明:显示可用的帮助命令。
语法: help
示例:
C:\>b57udiag -help
Copyright (c) 2000, 2001, 2002 Broadcom Corporation, all rights reserved
Broadcom NetXtreme User Diagnostic 3.09 (06/14/02)
|
命令 |
功能 |
|
从文件升级 PXE 或 Boot 代码 |
|
|
显示 NVRAM 中的文件目录 |
|
|
启用/禁用 WOL |
|
|
启用/禁用 PXE |
|
|
启用/禁用 ASF |
|
|
运行一组 NIC 测试 |
|
|
退出程序 |
|
|
显示或切换设备 |
|
|
显示程序版本 |
|
|
显示可用命令 |
|
|
执行 DOS 命令 |
|
|
重置芯片 |
|
|
清除屏幕 |
|
|
对 ASF 固件编程以包含到 NVRAM 中 |
dos
命令:dos
说明:执行 DOS 命令。
语法:dos <dos 命令>
如果没有输入参数,则输入 DOS 命令解释程序。
命令:reset
说明:重置芯片。
语法: reset
|
选项: |
|
| -c
|
模拟冷重置 |
| -w
|
等待固件签名 |
| -t
|
显示从重置到固件转换签名的时间 |
命令:cls
说明:清除屏幕。
语法: cls
asfprg
命令:asfprg
说明:对 asf 固件编程以包含到 NVRAM 中
语法: asfprg [init_img [rx_img [tx_img]]]
默认文件名是 asfinit.bin、asfcpua.bin 和 asfcpub.bin,这些都可以用参数来改写。
选项:
-v<HEX> 冗余级别 (0,1,2)(默认值=00000001)
这些测试分为四个组:寄存器测试、内存测试、杂项测试和数据测试。它们分别编为 A、B、C 和 D 组。
A 组
A1. Indirect Register Test
A2. Control Register Test
A3. Interrupt Test
A4. BIST
A5. PCI Cfg Register Test
B 组
B1. Scratch Pad Test
B2. BD SRAM Test
B3. DMA SRAM Test
B4. MBUF SRAM Test
B5. MBUF SRAM via DMA Test
B6. External SRAM Test
C 组
D 组
A1.Indirect Register Test(间接寄存器测试)
命令:regtest -i
功能:使用间接寻址方法,将增量数据写入 MAC 散列寄存器表并读回数据进行验证。增加测试数据时,内存读/写将进行 100 次。
默认方式:启用测试
A2.Control Register Test(控制寄存器测试)
命令:regtest
功能: 配置内容中指定的每个寄存器定义只读位和读/写位。测试将 0 和 1 写入测试位以确保只读位不被更改,并且相应地更改读/写位。
默认方式:启用测试。
默认寄存器表
该测试将试图读取寄存器定义的寄存器配置文件 ctrlreg.txt。如果该文件不存在,将使用默认的寄存器偏移和屏蔽位。
Offset R/O Mask R/W Mask
0x00000400 0x00000000 0x007fff8c
0x00000404 0x03800107 0x00000000A3.Interrupt Test(中断测试)
命令:intrtest
功能:该测试验证中断功能。它支持中断,并为发生中断等待 500 毫秒。如果没有发生中断,它就会报告错误。
默认方式:启用
A4. BIST
命令:bist
功能:内置硬件自测 (BIST)。该测试启动 BIST,并等待硬件返回的测试结果。
默认方式:由于发生间歇的故障,该测试当前已根据默认配置被禁用。
A5.PCI Cfg Register Test(PCI 配置寄存器测试)
命令:pcicfg
功能:该测试用于验证 PCI 配置寄存器的存取完整性。
B1.Scratch Pad Test(高速缓存区测试)
命令:memtest -s
功能:该测试用于测试主板上的高速缓存区 SRAM。将执行以下测试:
数据模式测试:将测试数据写入 SRAM,并读回数据以确保数据正确。使用的测试数据是 0x00000000、0xffffffff、0xaa55aa55 和 0x55aa55aa。
备用数据模式测试:将测试数据写入 SRAM。将补充测试数据写入下一个地址。读回两种数据以确保数据正确。测试后,程序再一次读回数据以确保数据保持正确。使用的测试数据是 0x00000000、0xffffffff、0xaa55aa55 和 0x55aa55aa。
地址测试:用唯一的增量数据编写每个地址。读回数据以确保数据正确。使用唯一数据填充整个地址后,程序将再次读回数据,以确保数据保持不变。
WalkingOne 位测试:对于每个地址,数据 1 被写入并读回,以便进行测试。然后它将数据向左移动 1 位,这样数据成为两个并重复进行相同的测试。它重复测试 32 次,直到测试位移出测试地址。在整个测试范围重复相同的测试。
伪随机数据测试:预先计算的伪随机数据集用于将唯一数据写入每个测试 RAM。在通过测试后,程序再一次读回数据以确保数据保持正确。
默认方式:启用
B2.BD SRAM Test(BD SRAM 测试)
命令:memtest -b
功能:该测试用于检测 BD SRAM。执行该测试的方式与 B1 中说明的 Scratch Pad Test 执行方式相同。
默认方式:启用
B3.DMA SRAM Test(DMA SRAM 测试)
命令:memtest -d
功能:它用于测试 DMA SRAM,执行测试的方法和 B1 中说明的 Scratch Pad Test 执行方式相同。
默认方式:启用
B4.MBUF SRAM Test(MBUF SRAM 测试)
命令:memtest -m
功能:它用于测试 DMA SRAM,执行测试的方法和 B1 中说明的 Scratch Pad Test 执行方式相同。
默认方式:启用
B5.MBUF SRAM via DMA Test(通过 DMA 的 MBUF SRAM 测试)
命令:memtest -x
功能:使用八个数据测试模式。该测试将使用 0x1000 大小的数据缓冲区。每个模式测试之前,缓冲区被初始化并使用该测试模式来填充。然后,它从主机缓冲区到 NIC MBUF 内存执行大小为 0x1000 的传输 DMA。它对照主机内存验证 MBUF 中的数据完整性,并为整个 MBUF 缓冲区重复 DMA。然后,执行从 NIC 到主机的接收 DMA。在每个接收 DMA 之前,0x1000 字节测试缓冲区被清空为 0。在验证数据完整性后,为整个 MBUF SRAM 范围重复测试。这些测试模式说明如下。
测试模式
说明
16 00 和 16 FF
先用16 个字节的 00,然后用16 个字节的 FF 填充整个主机 DMA 缓冲区。
16 FF 和 16 0'
先用16 个字节的 00,然后用16 个字节的 FF 填充整个主机 DMA 缓冲区。
32 00 和 32 FF
先用32 个字节的 00,然后用32 个字节的 FF 填充整个主机 DMA 缓冲区。
32 00 和 32 FF
先用32 个字节的 FF,然后用32 个字节的 00 填充整个主机 DMA 缓冲区。
00000000
用所有 0 填充整个主机 DMA 缓冲区。
FFFFFFFF
用所有 FF 填充整个主机 DMA 缓冲区。
AA55AA55
用数据 0xAA55AA55 填充整个主机 DMA 缓冲区。
55AA55AA
用数据 0x55AA55AA 填充整个主机 DMA 缓冲区。
默认方式:启用
B6.External SRAM Test(外部 SRAM 测试)
命令:memtest -e
功能:它用于测试 DMA SRAM,执行测试的方法和 B1 中说明的 Scratch Pad Test 执行方式相同。
默认方式:禁用
C1.EEPROM Test(EEPROM 测试)
命令:setest
功能:EEPROM 测试中使用增量测试数据。它将测试数据填充到测试范围中并读回数据以验证内容。测试后,将使用 0 来填充测试范围,以清空内存。
默认方式:启用
C2.CPU Test(CPU 测试)
命令:cputest
功能:该测试打开 cpu.bin 文件。如果文件存在并且内容良好,它将代码加载到 Rx 和 Tx CPU 并验证 CPU 执行。
默认方式:启用
C3.DMA Test(DMA 测试)
命令:dmatest
功能:同时测试高优先级 DMA 和低优先级 DMA。它将数据从主机内存移至 NIC SRAM,验证数据,然后将数据移回主机内存来验证数据。
默认方式:启用
C4.MII Test(MII 测试)
命令:miitest
功能:功能和 A2 中的 Control Register Test 功能相同。配置内容中指定的每个寄存器定义只读位和读/写位。测试将 0 和 1 写入测试位以确保只读位值不被更改,并且相应地更改读/写位。
默认方式:启用测试。
默认寄存器表
测试将试图读取寄存器定义的寄存器配置文件 miireg.txt。如果该文件不存在,将使用下面的表:
Offset R/O Mask R/W Mask 0x00 0x0000 0x7180 0x02 0xffff 0x0000 0x03 0xffff 0x0000 0x04 0x0000 0xffff 0x05 0xefff 0x0000 0x06 0x0001 0x0000 0x07 0x0800 0xb7ff 0x08 0xffff 0x0000 0x09 0x0000 0xff00 0x0a 0x7c00 0x0000 0x10 0x0000 0xffbf 0x11 0x3300 0x0000 0x19 0x001f 0x0000 0x1e 0x0000 0xffff 0x1f 0x0000 0xffffC5.VPD Test(VPD 测试)
命令:vpdtest
功能:VPD 测试在执行测试之前首先保存 VPD 的内容。完成后,它将 5 个测试数据模式(0xff、0xaa、0x55、增量数据或减量数据)中的一个写入 VPD 内存。默认情况下,使用增量数据模式。它在整个测试阶段写入并读回数据,然后还原初始内容。
默认方式:禁用
C6.ASF Test(ASF 测试)
命令:asftest
功能: m
设置重置位,并轮询以便自我清空。验证寄存器的重置值。
设置 SMB_ATTN 位。通过更改 ASF_ATTN LOC 位,来验证 TX_CPU 或 RX_CPU 事件位中的映射位。
C7.ROM Expansion Test(ROM 扩展测试)
命令:romtest
功能:该功能用于测试启用/禁用/访问设备上的扩展只读存储器的能力。
D1.Mac Loopback Test(Mac 回送测试)
命令:pkttest -m
功能:这是一个内部回送数据传输/接收测试。它将 MAC 初始化为内部回送模式,并传输 100 个数据包。数据将送回接收信道并由接收程序进行接收,这可以验证数据的完整性。除非启用了千兆位速率,否则,该测试使用的速率为 100 MB。
默认方式:启用
D2.Phy Loopback Test(Phy 回送测试)
命令:pkttest -p
功能:该测试与 D1 中的 Mac Loopback Test 相同,不同的是数据通过物理层设备进行回送。除非启用了千兆位速率,否则,该测试使用的速率为 100 MB。
默认方式:启用
D3.RJ-45 Loopback Test(PHY 回送测试)
命令:pkttest -e
功能:这是一个外部回送测试。从 UUT 的角度来看,不配置任何回送模式。希望由 RJ-45 回送接口送回数据。除非启用了千兆位速率,否则,该测试使用的速率为 100 MB。
默认方式:禁用
D4.MII Miscellaneous Test(MII 杂项测试)
命令:None
功能:该功能用于测试自动轮询和 PHY 中断功能。这些都是 PHY 的功能。
默认方式:启用
D5.MSI Test(MSI 测试)
命令:msitest
功能:该功能测试设备的“信息信号中断 (MSI)”功能。有关 MSI 的定义,请参阅 2.2 版的“PCI 规范”。
默认方式:禁用
/* 0 */ "PASS", /* 1 */ "Got 0x%08X @ 0x%08X. Expected 0x%08X", /* 2 */ "Cannot perform task while chip is running", /* 3 */ "Invalid NIC device", /* 4 */ "Read only bit %s got changed after writing zero at offset 0x%X", /* 5 */ "Read only bit %s got changed after writing one at offset 0x%X", /* 6 */ "Read/Write bit %s did not get cleared after writing zero at offset 0x%X", /* 7 */ "Read/Write bit %s did not get set after writing one at offset 0x%X", /* 8 */ "BIST failed", /* 9 */ "Could not generate interrupt", /* 10 */ "Aborted by user", /* 11 */ "Tx DMA:Got 0x%08X @ 0x%08X. Expected 0x%08X", /* 12 */ "Rx DMA:Got 0x%08X @ 0x%08X. Expected 0x%08X", /* 13 */ "Tx DMA failed", /* 14 */ "Rx DMA failed", /* 15 */ "Data error, got 0x%08X at 0x%08X, expected 0x%08X", /* 16 */ "Second read error, got 0x%08X at 0x%08X, expected 0x%08X", /* 17 */ "Failed writing EEPROM at 0x%04X", /* 18 */ "Failed reading EEPROM at 0x%04X", /* 19 */ "EEPROM data error, got 0x08X at 0x04X, expected 0x%08X", /* 20 */ "Cannot open file %s", /* 21 */ "Invalid CPU image file %s", /* 22 */ "Invalid CPU image size %d", /* 23 */ "Cannot allocate memory", /* 24 */ "Cannot reset CPU", /* 25 */ "Cannot release CPU", /* 26 */ "CPU test failed", /* 27 */ "Invalid Test Address Range\nValid NIC address is 0x%08X-0x%08X and exclude 0x%08X-0x%08X", /* 28 */ "DMA:Got 0x%08X @ 0x%08X. Expected 0x%08X", /* 29 */ "Unsupported PhyId %04X:%04X", /* 30 */ "Too many registers specified in the file, max is %d", /* 31 */ "Cannot write to VPD memory", /* 32 */ "VPD data error, got %08X @ 0x04X, expected %08X", /* 33 */ "No good link! Check Loopback plug", /* 34 */ "Cannot TX Packet!", /* 35 */ "Requested to Tx %d. Only %d is transmitted", /* 36 */ "Expected %d packets. Only %d good packet(s) have been received\n%d unknown packets have been received.\n%d bad packets have been received.", /* 37 */ "%c%d is an invalid Test", /* 38 */ "EEPROM checksum error", /* 39 */ "Error in reading WOL/PXE", /* 40 */ "Error in writing WOL/PXE", /* 41 */ "No external memory detected", /* 42 */ "DMA buffer %04X is large, size must be less than %04X", /* 43 */ "File size %d is too big, max is %d", /* 44 */ "Invalid %s", /* 45 */ "Failed writing 0x%x to 0x%x", /* 46 */ "", /* 47 */ "Ambiguous command", /* 48 */ "Unknown command", /* 49 */ "Invalid option", /* 50 */ "Cannot perform task while chip is not running. (need driver)", /* 51 */ "Cannot open register define file or content is bad", /* 52 */ "ASF Reset bit did not self-cleared", /* 53 */ "ATTN_LOC %d cannot be mapped to %cX CPU event bit %d", /* 54 */ "%s Regsiter is not cleared to zero after reset", /* 55 */ "Cannot start poll_ASF Timer", /* 56 */ "poll_ASF bit did not get reset after acknowleged", /* 57 */ "Timestamp Counter is not counding", /* 58 */ "%s Timer is not working", /* 59 */ "Cannot clear bit %s in %cX CPU event register", /* 60 */ "Invalid "EEPROM_FILENAME" file size, expected %d but only can read %d bytes", /* 61 */ "Invalid magic value in %s, expected %08x but found %08x", /* 62 */ "Invalid manufature revision, expected %c but found %c", /* 63 */ "Invalid Boot Code revision, expected %d.%d but found %d.%d", /* 64 */ "Cannot write to EEPROM", /* 65 */ "Cannot read from EEPROM", /* 66 */ "Invalid Checksum", /* 67 */ "Invalid Magic Value", /* 68 */ "Invalid MAC address, expected %02X-%02X-%02X-%02X-%02X-%02X", /* 69 */ "Slot error, expected an UUT to be found at location %02X:%02X:00", /* 70 */ "Adjacent memory has been corrupted while testing block 0x%08x-0x%08x\nGot 0x%08x @ address 0x%08x. Expected 0x%08x", /* 71 */ "The function is not Supported in this chip", /* 72 */ "Packets received with CRC error", /* 73 */ "MII error bits set: %04x", /* 74 */ "CPU does not initialize MAC address register correctly", /* 75 */ "Invalid firmware file format", /* 76 */ "Resetting TX CPU Failed", /* 77 */ "Resetting RX CPU Failed", /* 78 */ "Invalid MAC address", /* 79 */ "Mac address registers are not initialized correctly", /* 80 */ "EEPROM Bootstrap checksum error",
请阅读约束和免责声明全文。