返回目录页
用户诊断:Broadcom NetLink®/NetXtreme® 57XX 用户指南
简介
系统要求
运行 Broadcom NetXtreme 用户诊断
诊断测试描述
诊断测试消息
简介
Broadcom NetXtreme 用户诊断是一个基于 MS-DOS 的应用程序,它可以在您系统中的 Broadcom NetXtreme Gigabit Ethernet 适配器上运行一系列诊断测试(参见表 1)。Broadcom NetXtreme 用户诊断还允许您更新设备固件以及查看和更改可用适配器属性的设置。Broadcom NetXtreme 用户诊断可以在下列任一模式下运行:
- MS-DOS 命令提示符模式
- Broadcom 命令行界面 (CLI) 模式
在任一模式下,您均可以查看适配器软件的版本并指定要测试的适配器和要执行的测试。MS-DOS 命令提示符模式对于查看和更改可用属性的设置、更新或加载设备固件、查看错误日志(如果有)的版本以及将错误日志打印至文件非常有用。Broadcom CLI 模式 对于启用/禁用可用属性、启用/禁用/选择以及设置可用协议的速度和双工模式非常有用。
要运行 Broadcom NetXtreme 用户诊断,则必须创建包含 B57udiag.exe 文件的 MS-DOS 6.22 引导软盘。然后,在软驱中使用引导盘启动系统。有关详情,请参见在 MS-DOS 命令提示符模式下运行或在 Broadcom 命令行界面模式下运行。
注:B57udiag.exe 文件位于安装光盘上。
系统要求
操作系统:MS-DOS 6.22
软件:B57udiag.exe
运行 Broadcom NetXtreme 用户诊断
在 MS-DOS 命令提示符模式下运行
在 MS-DOS 命令提示符处,使用表 1 所示命令选项键入 b57udiag。
注:在 MS-DOS 命令提示符模式下,每次键入命令时命令字符串的开头均必须包括 b57udiag。
表 1:MS-DOS 命令提示符模式命令选项
命令选项
|
描述
|
b57udiag
|
在系统中的所有 Broadcom NetXtreme Gigabit Ethernet 适配器上执行全部测试。
|
b57udiag -c <num>
|
指定要测试的适配器,或者要在其上更新固件或查看或更改可用属性设置的适配器。
|
b57udiag -cmd
|
变更为 Broadcom CLI 模式。
|
b57udiag -w <value>
|
启用/禁用 Wake on LAN (WOL) 属性。
1 = 启用
0 = 禁用
|
b57udiag -mba <value>
|
启用/禁用 Multi-Boot Agent (MBA) 协议。
1 = 启用
0 = 禁用
|
b57udiag -mbap <value>
|
选择特定的 MBA 协议。
0 = Preboot Execution Environment (PXE)
1 = Remote Program Load (RPL)
2 = Bootstrap Protocol (BOOTP)
|
b57udiag -mbas <value>
|
选择 MBA 速度和双工模式。
0 = 自动
1 = 10 Mbps 速度,半双工操作
2 = 10 Mbps 速度,全双工操作
3 = 100 Mbps 速度,半双工操作
4 = 100 Mbps 速度,全双工操作
6 = 1000 Mbps 速度,全双工操作(光纤)
|
b57udiag -firm <file>
|
根据现有图像文件名和新图像<文件名>之间的匹配,更新所选适配器的 EEPROM。
示例:
b57udiag -firm ee5751c3.40a
b57udiag -firm ee5721c3.40a
|
b57udiag -firmall <file>
|
根据匹配的<文件名>图像更新所有适配器的 EEPROM。
|
b57udiag -ver
|
显示软件/eeprom.bin 文件的版本。
|
b57udiag -pxe <file>
|
从文件中加载 Preboot Execution Environment (PXE) 固件。
示例:
b57udiag -pxe b57mmba.nic
注:此命令仅适用于外插适配器。对于 LOM 适配器,PXE 固件会在启动时自动加载。
|
b57udiag -elog <file>
|
将错误日志打印至文件。
|
b57udiag -pipmi <file>
|
从文件加载 Intelligent Platform Management Interface (IPMI)。
请勿使用。台式机和移动平台不支持 IPMI。
|
b57udiag -ipmi <value>
|
启用/禁用 IPMI。
请勿使用。台式机和移动平台不支持 IPMI。
|
b57udiag -help
|
显示 MS-DOS 命令提示符模式命令选项表。
|
在 Broadcom 命令行界面模式下运行
在 MS-DOS 提示符处,使用表 2 所示的命令选项键入 b57udiag -cmd
。
注:除非另有说明,否则设置的值以十进制记数法表示。
表 2: Broadcom 命令行界面 (CLI) 模式命令
命令
|
描述
|
upgfrm
|
从文件升级 PXE 或引导代码
|
dir
|
显示 NVRAM 中的文件目录。
|
示例:
|
条目
|
类型
|
SRAM 地址
|
EEP 偏移
|
长度
|
执行
|
版本
|
|
引导代码
|
08003000
|
00000200
|
000011B0
|
CPUA(2)
|
5705-v3.27
|
0
|
PXE
|
00010000
|
000013B0
|
0000C854
|
否
|
7.0.1
|
1
|
ASF CFG
|
00000000
|
0001027C
|
000001D4
|
否
|
ASFIPMIc V2.15
|
2
|
ASF CPUB
|
C0034000
|
00010450
|
00002654
|
否
|
ASFIPMIc V2.15
|
3
|
ASF CPUA
|
08000000
|
00012AA4
|
000035B4
|
否
|
ASFIPMIc V2.15
|
4
|
INIT
|
C0034000
|
00016058
|
00001A94
|
CPUB
|
ASFIPMIc V2.15
|
setwol
|
启用/禁用 Wake on LAN (WOL) 属性
setwol e = 启用 WOL
setwol d = 禁用 WOL
|
setpxe
|
启用/禁用 Preboot Exchange Environment (PXE) 并设置 PXE 速度
|
setpxe e
|
= 启用 PXE
|
setpxe d
|
= 禁用 PXE
|
setpxe s 0
|
= 自动(默认值)
|
setpxe s 1
|
= 10 Mbps 速度,半双工操作
|
setpxe s 2
|
= 10 Mbps 速度,全双工操作
|
setpxe s 3
|
= 100 Mbps 速度,半双工操作
|
setpxe s 4
|
= 100 Mbps 速度,全双工操作
|
setasf
|
启用/禁用 Alert Standard Format (ASF)
|
setasf e
|
= 启用 ASF
|
setasf d
|
= 禁用 ASF
|
setmba
|
启用/禁用 Multi Boot Agent (MBA) 并选择 MBA 协议。
|
setmba d
|
= 禁用 MBA
|
setmba e 0
|
= 启用 Preboot Execution Environment (PXE) MBA(默认值)
|
setmba e 1
|
= 启用 Remote Program Load (RPL) MBA
|
setmba e 2
|
= 启用 Boot Protocol (BootP) MBA
|
setmba s 0
|
= 自动速度和双工(默认值)
|
setmba s 1
|
= 10 Mbps 速度,半双工操作
|
setmba s 2
|
= 10 Mbps 速度,全双工操作
|
setmba s 3
|
= 100 Mbps 速度,半双工操作
|
setmba s 4
|
= 100 Mbps 速度,全双工操作
|
setmba s 6
|
= 1000 Mbps,全双工(光纤)
|
setipmi
|
启用/禁用 Intelligent Platform Management Interface (IPMI)。
|
请勿使用。台式机和移动平台不支持 IPMI。
|
nictest
|
运行指定的诊断测试
将测试名称或组名称包括在命令字符串内,从而指定某组内要运行的单个测试或要运行的测试组,如以下示例所示:
|
nictest abcd
|
= 运行全部测试
|
nictest b
|
= 运行 B 组中的全部测试
|
nictest a3b1
|
= 仅运行测试 A3 和 B1
|
nictest a124b2
|
= 运行测试 A1、A2、A4 和 B2
|
exit
|
从 Broadcom CLI 模式转变为 MS-DOS 命令提示符模式
|
device
|
选择设备(适配器)
|
device <n>
|
= 以十六进制记数法表示的设备号(默认值 = 00000000)
|
device r
|
= 删除所有当前 Broadcom 适配器并重新扫描可用适配器
|
device s
|
= 无提示模式(不显示适配器)
|
version
|
显示适配器软件的版本
|
help
|
显示此命令列表
|
reset
|
使 Broadcom NetXtreme Gigabit Ethernet 芯片复位
|
reset c
|
= 模拟冷复位
|
reset w
|
= 等待固件签名
|
reset t
|
= 显示从复位到固件倒置签名的时间
|
cls
|
清屏
|
asfprg
|
将 Alert Standard Format (ASF) 加载至 NVRAM
请勿使用。Alert Standard Format (ASF) 不适用于系统平台。
|
诊断测试描述
诊断测试分为 4 组:寄存器测试(A 组)、存储器测试(B 组)、杂项测试(C 组)和驱动器关联测试(D 组)。表 3 列出了诊断测试并进行了描述。
表 3:诊断测试
测试
|
描述
|
编号
|
名称
|
A 组:寄存器测试
|
A1
|
间接寄存器
|
此测试使用间接寻址方法将数据的增量写入 MAC 散列寄存器表,然后重新读取数据以进行验证。递增测试数据时,执行 100 次存储器读/写操作。
|
A2
|
控制寄存器
|
配置内容中指定的每个寄存器定义只读位和读/写位。此测试将 0 和 1 写入测试位以确保只读位不变,而读/写位会发生变化。
此测试尝试读取寄存器配置文件 (Ctrlreg.txt) 以获取寄存器定义。如果该文件不存在,将使用默认寄存器偏移和屏蔽位。
偏移 只读屏蔽 读写屏蔽
0x00000400 0x00000000 0x007FFF8C
0x00000404 0x03800107 0x00000000
|
A3
|
中断
|
此测试验证中断功能。它启用中断并等待 500 毫秒,如果无法产生中断则报告错误。
|
A4
|
内置自测试
|
表示硬件内置自测 (BIST)。
|
A5
|
PCI 配置寄存器
|
此测试验证 PCI 配置寄存器的存取完整性。
|
B 组:内存测试
|
B1
|
高速暂存区
|
此测试对板载高速暂存区 SRAM 进行测试。执行以下测试:
地址测试:此测试将唯一数据增量写入每个地址并重新读取,以确保数据正确。将唯一数据填入整个地址后,程序将再次重新读取数据,以确保数据仍然正确。
Walking 位:对于每个地址,写入第一个数据并重新读取以进行测试。然后将数据左移一位,数据变成第二个数据并重复执行相同测试。重复执行测试 32 次,直到将测试位移出测试地址为止。对整个测试区域重复执行相同测试。
伪随机数据:使用预先计算的伪随机数据集将唯一数据写入每个测试 RAM。通过测试后,程序将多次重新读取数据以确保数据仍然正确。
数据读/写测试:此测试将测试数据写入 SRAM 并重新读取,以确保数据正确。使用的测试数据为 0x00000000、0xFFFFFFFF、0xAA55AA55 和 0x55AA55AA。
交替数据模式测试:此测试将测试数据写入 SRAM,将测试数据的补码写入下一个地址,然后重新读取这两个数据,以确保数据正确。测试后,程序将多次重新读取数据以确保数据仍然正确。使用的测试数据为 0x00000000、0xFFFFFFFF、0xAA55AA55 和 0x55AA55AA。
|
B2
|
BD SRAM
|
此测试对缓冲区描述符 (BD) SRAM 进行测试。此测试的执行方式与 B1 中所述的高速暂存区测试的执行方式相同。
|
B3
|
DMA SRAM
|
此测试通过执行 B1 测试中所述的高速暂存区测试对直接存储器存储 (DMA) SRAM 进行测试。
|
B4
|
MBUF SRAM
|
此测试通过执行 B1 测试中所述的高速暂存区测试对存储器存取缓冲器 (MBUF) SRAM 进行测试。
|
B5
|
MBUF SRAM via DMA
|
此测试使用 8 种数据测试模式。此测试使用 0x1000 大小的数据缓冲区。在执行每种模式测试之前,缓冲区被初始化并填入测试模式。然后执行从主机缓冲区到适配器 MBUF 存储器的发送 DMA(大小为 0x1000)。
此测试根据主机存储器验证适配器 MBUF 存储器中的数据完整性,并对整个 MBUF 缓冲区重复执行 DMA。然后,测试执行从适配器到主机的接收 DMA。每次执行接收 DMA 之前,0x1000 字节测试缓冲区清零。测试验证数据完整性之后,对整个 MBUF SRAM 范围重复执行测试。8 种测试模式如下所述。
测试 模式描述
116 00 和 16 FF 在整个主机 DMA 缓冲区中填入 16 字节的 00,然后填入 16 字节的 FF。
16 FF 和 16 00 在整个主机 DMA 缓冲区中填入 16 字节的 FF,然后填入 16 字节的 00。
32 00 和 32 FF 在整个主机 DMA 缓冲区中填入 32 字节的 00,然后填入 32 字节的 FF。
32 FF 和 32 00 在整个主机 DMA 缓冲区中填入 32 字节的 FF,然后填入 32 字节的 00。
00000000 在整个主机 DMA 缓冲区中全部填入 00。
FFFFFFFF 在整个主机 DMA 缓冲区中全部填入 FF。
AA55AA55 在整个主机 DMA 缓冲区中填入数据 0xAA55AA55。
55AA55AA 在整个主机 DMA 缓冲区中填入数据 0x55AA55AA。
|
B7
|
CPU GPR
|
此测试在三种不同的电压下(1.1V、1.2V 和 1.3V)对 CPU 通用寄存器进行测试,其执行方式与 B1 中所述的高速暂存区测试的执行方式相同。
|
C 组:杂项测试
|
C1
|
NVRAM
|
电可擦除可编程只读存储器 (EEPROM) 测试中使用递增测试数据。此测试将测试数据填入测试区域并重新读取数据以验证内容。然后,此测试将 0 填入测试区域以清除存储器。
|
C2
|
CPU
|
此测试打开 Cpu.bin 文件。如果该文件存在并且内容正确,此测试将代码加载到 RX CPU 和 TX CPU 中并验证 CPU 执行。
|
C3
|
DMA
|
此测试对高优先级直接存储器存储 (DMA) 和低优先级 DMA 进行测试。此测试将数据从主机存储器移至适配器 SRAM 并验证数据。然后,此测试将数据移回至主机存储器并再次验证数据。
|
C4
|
MII
|
独立于介质的接口 (MII) 测试功能与控制寄存器测试 (A2) 的功能相同。配置内容中指定的每个寄存器定义只读位和读/写位。此测试将 0 和 1 写入测试位以确保只读位不变,而读/写位会发生变化。
此测试尝试读取寄存器配置文件 (Miireg.txt) 以获取寄存器定义。如果该文件不存在,则使用下表:
偏移 只读屏蔽 读写屏蔽
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 0x7C00 0x0000
0x19 0x7C00 0x0000
0x1E 0x0000 0xFFFF
0x1F 0x0000 0xFFFF
|
C5
|
VPD
|
执行测试之前,VPD 测试首先保存重要产品数据 (VPD) 存储器中的内容。然后,该测试将 5 种测试数据模式(0xFF、0xAA、0x55、递增数据或递减数据)中的一种写入 VPD 存储器。默认情况下,使用递增数据模式。此测试对整个测试区域写入并重新读取数据,然后恢复 VPD 存储器的原始内容。
|
C6
|
ASF 硬件
|
复位测试。此测试设置"复位"位并轮询以自清除位。此测试验证寄存器的复位值。
事件映射测试:此测试设置 SMB_ATTN 位。此测试通过更改 ASF_ATTN_LOC 位,验证 TX_CPU 或 RX_CPU 事件位中的映射位。
计数器测试
- 清除 WG_TO、HB_TO、PA_TO、PL_TO、RT_TO 位(在这些位被置"1"的情况下)并确保这些位被清除。
- 清除时间戳计数器。将 1 写入每个 PL、PA、HB、WG、RT 计数器。设置 TSC_EN 位。
- 轮询每个 PA_TO 位,计数到 50 为止。 在计数到 50 时检查 PL_TO 位是否置"1"。继续轮询,计数到 200 为止。检查所有其它 TO 位是否置"1",并验证时间戳计数器是否递增计数。
|
C7
|
扩展 ROM
|
此测试对启用、禁用和存取适配器上的扩展只读存储器 (ROM) 的能力进行测试。
|
D 组:驱动器关联测试
|
D1
|
MAC 回送
|
此测试是一种内部回送数据发送/接收测试。它将媒体存取控制 (MAC) 初始化为内部回送模式并发送 100 个数据包。数据应回送至接收信道并由接收例程接收,从而验证数据完整性。除非启用 Gigabit Ethernet,否则此测试使用 100-Mbit/s 数据率。
|
D2
|
PHY 回送
|
此测试与 MAC 回送测试 (D1) 相同,所不同的是数据通过物理层 (PHY) 设备送回。除非启用 Gigabit Ethernet,否则此测试使用 100-Mbit/s 数据率。
|
D5
|
MII 杂项
|
此测试对自动轮询和 PHY 中断能力进行测试。这些是 PHY 的功能。
|
D6
|
MSI
|
此测试对适配器的消息信号中断 (MSI) 能力进行测试。有关 MSI 定义,请参考 PCI Specification 版本 2.3。
|
诊断测试消息
/* 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-clear",
/* 53 */ "ATTN_LOC %d cannot be mapped to %cX CPU event bit %d",
/* 54 */ "%s Register is not cleared to zero after reset",
/* 55 */ "Cannot start poll_ASF Timer",
/* 56 */ "poll_ASF bit did not get reset after acknowledged",
/* 57 */ "Timestamp Counter is not counting",
/* 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 manufacture 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",
返回目录页