返回目录页

DOS 诊断:Broadcom NetXtreme® 57XX 用户指南

简介

必要条件

功能列表(命令)

功能描述(命令)

诊断测试

错误消息


简介

所有命令均可以通过 DOS 命令提示符或 Broadcom 命令行界面 (CLI) 提示符键入。如果使用 DOS 命令提示符,每次要运行命令时,必须键入 b57udiag -function name(及任何选项)。 操作结束时,程序返回 DOS 命令提示符模式。在 Broadcom CLI 模式下,命令字符串不必包含 b57udiag;只需键入功能名称及任何所需选项。操作结束时,程序返回 Broadcom CLI 提示符模式。

在 Broadcom CLI 模式下,假定系统中有两个设备,所有设备信息均在每个 CLI 提示符前面显示,如下例所示:

C Brd:Rv    Bus   PCI Spd Base Irq EEP MAC          Fmw         Configuration
- ------- ------- --- --- ---- -- ---- ----------- ----------- --------------
0 5705:A3 02:0A:0 32  33  FEAF  3 128K 0010180416DB 5705-v3.16  PW,auto

1 5705:A3 02:0B:0 32  33  FEAD 11 128K 0010180416C4 5705-v3.16  PW,auto

必要条件

操作系统:DOS 6.22

软件:b57udiag.exe


功能列表(命令)

要访问功能列表,键入 b57udiag -cmd,然后按 ENTER 键。

命令 操作
upgfrm

从文件升级 PXE 或引导代码
dir

显示 NVRAM 中的文件目录
setwol

启用/禁用 WOL
setpxe

启用/禁用 PXE
setasf

启用/禁用 ASF
setipmi 启用/禁用 IPMI
setmba

启用多引导代理
nictest

运行一组网络接口卡测试
exit

退出程序
device

显示或切换设备
version

显示程序版本
help

显示可用命令
dos

执行 DOS 命令
reset

使芯片复位
cls

清屏
asfprg

将 ASF 固件编程到 NVRAM 中

功能描述(命令)

upgfrm

描述:从文件升级 PXE 或引导代码。

语法upgfrm -options

此命令从文件读取代码并将代码编程到 PXE 或引导区域中。必须指定编程目标(pxeboot)和文件名这两个参数。

选项

操作

f string

输入文件
p

升级 PXE 代码
b

升级引导代码
d

不执行设备检查

dir

描述:显示 NVRAM 中的文件目录。

示例

Entry Type SRAM    Addr EEP  Offset     Length   Execute Version
 
----- ------------ --------- ---------- -------- ------- -------
       BootCode    08003000  00000200   000011B0 CPUA (2) 5705-v3.16
  0    PXE         00010000  000013B0   0000C854 NO       7.0.1
  1    ASF CFG     00000000 0001027C    000001D4 NO       ASFIMPIc V2.15
2 ASF CPUB C0034000 00010450 0002654 NO ASFIMPIc V2.15
3 ASF CPUA 08000000 00012AA4 000035b4 NO ASFIMPIc V2.15
4 INIT C0034000 00016058 00001A94 CPUB ASFIMPIc V2.15

setwol

描述:启用/禁用 Wake on LAN。

语法setwol -options

选项

操作

e

启用 WOL

d

禁用 WOL

setpxe

描述:启用/禁用 PXE 并设置 PXE 速度。

语法setpxe -options

选项

操作

e

启用 PXE
d

禁用 PXE
s DEC

指定 PXE 速度(默认值 = 0)

速度:

0 = 自动
1 = 10 Mbit/s 半双工
2 = 10 Mbit/s 全双工
3 = 100 Mbit/s 半双工
4 = 100 Mbit/s 全双工

setasf

描述:启用/禁用 Alert Standard Format (ASF)。

语法setasf -options

选项

操作

e

启用 ASF
d

禁用 ASF

setipmi

描述:启用/禁用智能平台管理接口 (IPMI)。

语法setipmi -options

选项

操作

e

启用 IPMI
d

禁用 IPMI

setmba

描述:启用/禁用 Multiple Boot Agent (MBA)。

语法setmba -options

nictest

描述:运行一组网络接口控制器 (NIC) 测试。

语法nictest [test list]

示例:有关测试描述的详情,请参见诊断测试

 

abcd

运行所有测试
 

b

运行 b 组中的所有测试
 

a3b1

仅运行测试 a3 和 b1
 

a124b2

运行测试 a1、a2、a4 和 b2

如果未键入测试列表,则会使用 diagcfg 设置。

选项

操作

-n <DEC>

迭代

-e

同时运行 NVRAM 验证

exit

描述:退出 CLI 模式。

语法exit

示例57udiag exit

device

描述:显示或切换设备。

语法device -options

选项

操作

n [HEX]

设备号(默认值 = 00000000)
r

删除所有当前设备并重新扫描可用设备。
s

默认模式(不显示设备)

version

描述:显示软件版本。

语法version

示例

C:\>b57udiag -version

Copyright (c) 2000, 2001, 2002, 2003 Broadcom Corporation, all rights reserved

Broadcom Gigabit Ethernet Controller User Diagnostic 7.0 (03-9-14)

help

描述:显示可用帮助命令。

语法help

示例

C:\>b57udiag -help

Copyright (c) 2000, 2001, 2002, 2003 Broadcom Corporation, all rights reserved

Broadcom Gigabit Ethernet Controller User Diagnostic 7.0 (03-9-14)

命令

操作

upgfrm

从文件升级 PXE 或引导代码
dir

显示 NVRAM 中的文件目录
setwol

启用/禁用 Wake on LAN
setpxe

启用/禁用 PXE
setasf

启用/禁用 ASF
setmba

启用 Multiple Boot Agents
nictest

运行一组网络接口卡测试
exit

退出程序
device

显示或切换设备
version

显示程序版本
help

显示可用命令
dos

执行 DOS 命令
reset

使芯片复位
cls

清屏
asfprg

将 ASF 固件编程到 NVRAM 中

dos

描述:执行 DOS 命令。

语法:dos

如果未键入参数,则会进入 DOS 命令解释程序。

reset

描述:使芯片复位。

语法reset -options

选项

操作

c

模拟冷复位

w

等待固件签名

t

显示从复位到固件倒置签名的时间

cls

描述:清屏。

语法cls

asfprg

描述:将 ASF 固件编程到 NVRAM 中

语法asfprg

BCM5702/5703/5704 设备的默认文件名为 Asfeinit.bin、Asfecpua.bin 和 Asfecpub.bin。BCM5705 设备的默认文件名为 Asfe5ini.bin、Asfe5cpa.bin 和 Asfe5cpb.bin。这些文件必须与 B57diag 在相同的目录中。exe 文件。可以通过参数覆盖这些文件。

选项

操作

v <HEX>

冗余级别 (0,1,2) (def=00000001)


诊断测试

诊断测试分为 4 组:寄存器测试、存储器测试、杂项测试和数据测试。它们分别被指定为 A 组、B 组、C 组和 D 组。

测试名称

A 组

A1.间接寄存器测试
A2.控制寄存器测试
A3.中断测试
A4.BIST
A5.PCI 配置寄存器测试

B 组

B1.高速暂存区测试
B2.BD SRAM 测试
B3.DMA SRAM 测试
B4.MBUF SRAM 测试
B5.MBUF SRAM via DMA 测试
B6.外部 SRAM 测试

C 组

C1.EEPROM 测试
C2.CPU 测试
C3.DMA 测试
C4.MII 测试
C5.VPD 测试
C6.ASF 测试
C7.ROM 扩展测试

D 组

D1.MAC 回送测试
D2.PHY 回送测试
D3.RJ-45 回送测试
D4.MII 杂项测试
D5.MSI 测试

测试描述

A1.间接寄存器测试

命令regtest -i

功能:此测试使用间接寻址方法将数据的增量写入 MAC 散列寄存器表,然后重新读取数据以进行验证。递增测试数据,执行 100 次存储器读取/写入操作。

默认值:启用

A2.控制寄存器测试

命令regtest

功能:配置内容中指定的每个寄存器定义只读位和读/写位。此测试将 0 和 1 写入测试位,以确保只读位不变,而读/写位相应地变化。

默认值:启用

默认:寄存器表

此测试尝试读取寄存器配置文件 (Ctrlreg.txt) 以获取寄存器定义。如果该文件不存在,将使用默认寄存器偏移和屏蔽位。

偏移

只读屏蔽

读写屏蔽


0x00000400


0x00000000


0x007FFF8C


0x00000404


0x03800107


0x00000000

A3.中断测试

命令intrtest

功能:此测试验证中断功能。它启用中断并等待 500 ms,等待中断发生,如果不能产生中断则报告错误。

默认值:启用

A4.BIST

命令bist

功能:硬件内置自测 (BIST)。此测试启动 BIST 并等待硬件返回测试结果。

默认值:由于可能出现间歇性故障,当前在默认情况下禁用此测试。

A5.PCI 配置寄存器测试

命令pcicfg

功能:此测试验证 PCI 配置寄存器的存取完整性。

B1.高速暂存区测试

命令memtest -s

功能:此测试对板载高速暂存区 SRAM 进行测试。执行以下测试:

数据模式测试:此测试将测试数据写入 SRAM 并重新读取,以确保数据正确。使用的测试数据为 0x00000000、0xFFFFFFFF、0xAA55AA55 和 0x55AA55AA。

交替数据模式测试:此测试将测试数据写入 SRAM,将测试数据的补码写入下一个地址,然后重新读取这两个数据,以确保数据正确。测试后,程序将多次重新读取数据以确保数据仍然正确。使用的测试数据为 0x00000000、0xFFFFFFFF、0xAA55AA55 和 0x55AA55AA。

地址测试:此测试将唯一数据增量写入每个地址并重新读取,以确保数据正确。将唯一数据填入整个地址后,程序将再次重新读取数据,以确保数据仍然正确。

Walking One 位测试: 对于每个地址,写入第一个数据并重新读取以进行测试。然后将数据左移一位,数据变成第二个数据并重复执行相同测试。重复执行测试 32 次,直到测试位被移出测试地址时为止。对整个测试区域重复执行相同测试。

伪随机数据测试: 使用预先计算的伪随机数据集将唯一数据写入每个测试 RAM。通过测试后,程序将多次重新读取数据以确保数据仍然正确。

默认值: 启用

B2.BD SRAM 测试

命令memtest -b

功能: 此测试对缓冲区描述符 (BD) SRAM 进行测试。此测试的执行方式与 B1 中所述的“高速暂存区测试”的执行方式相同。

默认值:启用

B3.DMA SRAM 测试

命令memtest -d

功能: 此测试通过执行 B1 测试中所述的“高速暂存区测试”对直接存储器存取 (DMA) SRAM 进行测试。

默认值:启用

B4.MBUF SRAM 测试

命令memtest -m

功能: 此测试通过执行 B1 测试中所述的“高速暂存区测试”对存储器存取缓冲器 (MBUF) SRAM 进行测试。

默认值:启用

B5.MBUF SRAM via DMA 测试

命令memtest -x

功能:此测试使用 8 种数据测试模式。此测试使用 0x1000 大小的数据缓冲区。在执行每种模式测试之前,缓冲区被初始化并填入测试模式。然后执行从主机缓冲区到控制器 MBUF 存储器的发送 DMA(大小为 0x1000)。此测试根据主机存储器验证控制器 MBUF 存储器中的数据完整性,并对整个 MBUF 缓冲区重复执行 DMA。然后,测试执行从控制器到主机的接收 DMA 。每次执行接收 DMA 之前,0x1000 字节测试缓冲区清零。测试验证数据完整性之后,对整个 MBUF SRAM 范围重复执行测试。8 种测试模式如下所述。

测试模式

描述

16 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。

默认值:启用

B6.外部 SRAM 测试

命令memtest -e

功能:此测试通过执行 B1 测试中所述的“高速暂存区测试”对外部 SRAM 进行测试。

默认值:禁用

C1.EEPROM 测试

命令setest

功能:电可擦除可编程只读存储器 (EEPROM) 测试中使用递增测试数据。此测试将测试数据填入测试区域并重新读取数据以验证内容。然后,此测试将 0 填入测试区域以清除存储器。

默认值:启用

C2.CPU 测试

命令cputest

功能:此测试打开 Cpu.bin 文件。如果该文件存在并且内容正确,此测试将代码加载到接收 CPU 和发送 CPU 中并验证 CPU 执行。

默认值:启用

C3.DMA 测试

命令dmatest

功能:此测试对高优先级直接存储器存储 (DMA) 和低优先级 DMA 进行测试。此测试将数据从主机存储器移至控制器 SRAM 并验证数据。然后将数据重新移至主机存储器再次验证数据。

默认值:启用

C4.MII 测试

命令miitest

功能:独立于介质的接口 (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 测试

命令vpdtest

功能:执行测试之前,VPD 测试首先保存重要产品数据 (VPD) 存储器中的内容。然后将 5 种测试数据模式(0xFF、0xAA、0x55、递增数据或递减数据)中的一种写入 VPD 存储器。默认情况下,使用递增数据模式。此测试对整个测试区域写入并重新读取数据,然后恢复 VPD 存储器的原始内容。

默认值:禁用

C6.Alert Standard Format (ASF) 测试

命令asftest

功能

复位测试: 此测试设置“复位”位并轮询自清除位。此测试验证寄存器的复位值。

事件映射测试: 此测试设置 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 扩展测试

    命令romtest

    功能:此测试会对启用、禁用和存取设备上的扩展只读存储器 (ROM) 的能力进行测试。

    D1.MAC 回送测试

    命令pkttest -m

    功能:此测试是一种内部回送数据发送/接收测试。它将媒体存取控制 (MAC) 初始化为回送模式并发送 100 个数据包。数据应回送至接收信道并由接收例程接收,从而验证数据完整性。除非启用 Gigabit Ethernet,否则此测试使用 100-Mbit/s 数据率。

    默认值:启用

    D2.PHY 回送测试

    命令pkttest -p

    功能:此测试与 MAC 回送测试 (D1) 相同,所不同的是数据通过物理层 (PHY) 设备送回。除非启用 Gigabit Ethernet,否则此测试使用 100-Mbit/s 数据率。

    默认值:启用

    D3.RJ-45 回送测试

    命令pkttest -e

    功能:此测试是一种外部回送测试。从受测试单元 (UUT) 的角度,未配置回送模式。数据需要由 RJ-45 回送连接器送回。除非启用 Gigabit Ethernet,否则此测试使用 100-Mbit/s 数据率。

    默认值:禁用

    D4.MII 杂项测试

    命令:None

    功能:此测试会对自动轮询和 PHY 中断能力进行测试。这些是 PHY 的功能。

    默认值:启用

    D5.MSI 测试

    命令msitest

    功能:此测试会对设备的消息信号中断 (MSI) 能力进行测试。有关 MSI 定义,请参考 PCI Specification 版本 2.2。

    默认值:禁用


    错误消息

    /* 0 */ 	"通过",
     
    /* 1 */ 	"获得 0x%08X,在 0x%08X 处。预期为 0x%08X",
     
    /* 2 */ 	"在芯片运行时无法执行任务",
     
    /* 3 */ 	"无效的网卡设备",
     
    /* 4 */ 	"在偏移 0x%X 处写入 0 之后,只读位 %s 发生变化",
     
    /* 5 */ 	"在偏移 0x%X 处写入 1 之后,只读位 %s 发生变化",
     
    /* 6 */ 	"在偏移 0x%X 处写入 0 之后,读写位 %s 未被清除",
     
    /* 7 */ 	"在偏移 0x%X 处写入 1 之后,读写位 %s 未被清除",
     
    /* 8 */ 	"BIST 失败",
     
    /* 9 */ 	"无法生成中断",
     
    /* 10 */ 	"被用户中止",
     
    /* 11 */ 	"发送 DMA:获得 0x%08X,在 0x%08X 处。预期为 0x%08X",    
     
    /* 12 */ 	"接收 DMA:获得 0x%08X,在 0x%08X 处。预期为 0x%08X",    
     
    /* 13 */ 	"发送 DMA 失败",
     
    /* 14 */ 	"接收 DMA 失败",
     
    /* 15 */ 	"数据错误,获得 0x%08X,在 0x%08X 处,预期为 0x%08X",
     
    /* 16 */ 	"第二次读错误,获得 0x%08X,在 0x%08X 处,预期为 0x%08X",
     
    /* 17 */ 	"在 0x%04X 处无法写入 EEPROM",
     
    /* 18 */ 	"在 0x%04X 处无法读取 EEPROM",
     
    /* 19 */ 	"EEPROM 数据错误,获得 0x08X,在 0x04X 处,预期为 0x%08X",
     
    /* 20 */ 	"无法打开文件 %s",
     
    /* 21 */ 	"无效的 CPU 映像文件 %s",
     
    /* 22 */ 	"无效的 CPU 映像大小 %d",
     
    /* 23 */ 	"无法分配内存",
     
    /* 24 */ 	"无法使 CPU 复位",    
     
    /* 25 */ 	"无法释放 CPU", 
     
    /* 26 */ 	"CPU 测试失败",       
     
    /* 27 */ 	"无效的测试地址范围\n有效的网卡地址为 0x%08X-0x%08X,不包括 0x%08X-0x%08X",
     
    /* 28 */  "DMA:获得 0x%08X,在 0x%08X。预期为 0x%08X", 
     
    /* 29 */  "不支持的 PhyId %04X:%04X",
     
    /* 30 */  "文件中指定的寄存器太多,最大数量为 %d",
     
    /* 31 */ 	"无法写入 VPD 存储器",
     
    /* 32 */ 	"VPD 数据错误,获得 %08X,在 0x04X 处,预期为 %08X",
     
    /* 33 */ 	"无良好链路!检查回送插件",
     
    /* 34 */ 	"无法发送数据包!", 
     
    /* 35 */ 	"请求发送 %d。仅发送 %d",       
     
    /* 36 */	"预期收到 %d 个数据包。仅收到 %d 个正常数据包\n收到 %d 个未知数据包。\n收到 %d 个坏数据包。",
     
    /* 37 */ 	"%c%d 是无效测试",
     
    /* 38 */ 	"EEPROM 校验和错误",
     
    /* 39 */ 	"读取 WOL/PXE 时出错",
     
    /* 40 */ 	"写入 WOL/PXE 时出错",
     
    /* 41 */ 	"未检测到外部存储器",
     
    /* 42 */ 	"DMA 缓冲区 %04X 很大,大小必须小于 %04X",  
     
    /* 43 */ 	"文件大小 %d 太大,最大值为 %d",
     
    /* 44 */ 	"无效的 %s",
     
    /* 45 */ 	"无法将 0x%x 写入 0x%x",
     
    /* 46 */ 	"",
     
    /* 47 */ 	"不明确的命令",
     
    /* 48 */ 	"未知命令",
     
    /* 49 */ 	"无效选项",
     
    /* 50 */ 	"在芯片运行时无法执行任务。(需要驱动程序)",
     
    /* 51 */ 	"无法打开寄存器定义文件,或者内容错误",
     
    /* 52 */ 	"ASF“复位”位未自清除",
     
    /* 53 */ 	"ATTN_LOC %d 无法映射至 %cX CPU 事件位 %d",
     
    /* 54 */ 	"复位后 %s 寄存器未清零",
     
    /* 55 */ 	"无法启动 poll_ASF 定时器",
     
    /* 56 */ 	"确认后 poll_ASF 位未复位",
     
    /* 57 */ 	"时间戳计数器不计数",
     
    /* 58 */ 	"%s 定时器不工作",
     
    /* 59 */ 	"无法清除 %cx CPU 事件寄存器中的位 %s",
     
    /* 60 */ 	"无效的 "EEPROM_FILENAME" 文件大小,预期大小为 %d,但只能读取 %d 个字节",
     
    /* 61 */ 	"%s 中的 magic 值无效,预期为 %08x,但找到 %08x",
     
    /* 62 */ 	"无效的制造商修订版,预期为 %c,但找到 %c",
     
    /* 63 */ 	"无效的引导代码修订版,预期为 %d.%d,但找到 %d.%d",
     
    /* 64 */ 	"无法写入 EEPROM",
     
    /* 65 */ 	"无法从 EEPROM 中读取",
     
    /* 66 */ 	"无效的校验和",
     
    /* 67 */ 	"无效的 Magic 值",
     
    /* 68 */ 	"无效的 MAC 地址,预期为 %02X-%02X-%02X-%02X-%02X-%02X",
     
    /* 69 */ 	"插槽错误,预期在位置 %02X:%02X:00 处找到 UUT",
     
    /* 70 */ 	"测试块 0x%08x-0x%08x 时,相邻存储器损坏\n获得 0x%08x,在地址 0x%08x 处。预期为 0x%08x",
     
    /* 71 */ 	"此芯片不支持该功能",
     
    /* 72 */ 	"收到数据包但出现 CRC 错误",
     
    /* 73 */ 	"MII 错误位设置:%04x",
     
    /* 74 */ 	"CPU 不能正确地初始化 MAC 地址寄存器",
     
    /* 75 */ 	"无效的固件文件格式",
     
    /* 76 */ 	"使发送 CPU 复位失败",
     
    /* 77 */ 	"使接收 CPU 复位失败",
     
    /* 78 */ 	"无效的 MAC 地址",
     
    /* 79 */ 	"Mac 地址寄存器未正确初始化",
     
    /* 80 */ 	"EEPROM Bootstrap 校验和错误",
    

    请阅读所有限制和免责声明


    返回目录页