本章提供以下資訊:
本文件所提供的資訊將說明如何在 Broadcom NetXtreme Ethernet Controller 上,使用 DOS 診斷程式公用程式。
可由 DOS 提示或指令行介面 (CLI) 提示,輸入所有的指令。若在沒有參數下執行程式,會進入 CLI 模式。否則,系統會將相關參數當成要執行的指令來使用,完成後就會離開程式。
在 CLI 模式下,假設系統內有三個裝置,而各裝置的資訊一律都在每個提示之前顯示,如下所示:
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 或開機碼
顯示 NVRAM 中的檔案目錄
啟用 / 停用 WOL
啟用 / 停用 PXE
啟用 / 停用 ASF
啟動 Multiple Boot Agent
執行一組網路卡測試
結束程式
顯示或切換裝置
顯示程式版本
顯示可用的指令
執行 DOS 指令
重設晶片
清除畫面
為 NVRA 設計 ASF 韌體程式
upgfrm
指令: upgfrm
說明:從檔案更新 PXE 或開機碼。
語法:upgfrm [-options]
這個指令會從檔案讀取開機碼,並將其設計為 pxe 或開機區域的程式。必須指定程式設計目標 pxe 或 boot 和檔案名稱這兩個參數。
選項:
-f <string>
輸入檔案
-p
升級 PXE 碼
-b
升級開機碼
-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 [ -options]
|
選項: |
|
|
-e |
啟用 WOL |
|
-d |
停用 WOL |
setpxe
指令: set pxe
說明:啟用 / 停用 PXE 和設定 PXE 速度。
語法:setpxe [ -options]
選項:
-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 [-options]
選項:
-e
啟用 ASF
-d
停用 ASF
setmba
指令: setmba
說明:啟用 / 停用 Multiple Boot Agent。
語法:setmba [ -options]
選項:
-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
說明:執行一組網路卡測試。
語法:nictest [test list]
範例:如果需要測試說明的詳細資料,請參閱診斷程式測試。
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 [ -options]
|
選項: |
|
|
-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 或開機碼 |
|
|
顯示 NVRAM 中的檔案目錄 |
|
|
啟用 / 停用 WOL |
|
|
啟用 / 停用 PXE |
|
|
啟用 / 停用 ASF |
|
|
執行一組網路卡測試 |
|
|
結束程式 |
|
|
顯示或切換裝置 |
|
|
顯示程式版本 |
|
|
顯示可用的指令 |
|
|
執行 DOS 指令 |
|
|
重設晶片 |
|
|
清除畫面 |
|
|
為 NVRA 設計 ASF 韌體程式 |
dos
指令: dos
說明:執行 DOS 指令。
語法:dos <dos command>
如果沒有輸入參數,則會進入 DOS shell。
指令: reset
說明:重設晶片。
語法:reset
|
選項: |
|
|
-c
|
模擬冷開機。 |
|
-w
|
等候韌體識別 |
|
-t
|
顯示由重新設定至韌體轉換識別的時間 |
指令: cls
說明:清除畫面。
語法:cls
asfprg
指令: asfprg
說明:為 NVRAM 設計 asf 韌體程式
語法: asfprg [init_img [rx_img [tx_img]]]
預設檔案名稱為 asfinit.bin、asfcpua.bin 和 asfcpub.bin,都可由參數覆寫。
選項:
-v<HEX> Verbose leverl (0、1、2) (預設值=00000001)
測試分為四大組別:暫存器測試、記憶體測試、雜項測試及資料測試。並分別以 A、B、C 及 D 來分組。
A 組
A1.間接式暫存器測試
A2.控制暫存器測試
A3.中斷測試
A4.BIST
A5.PCI Cfg 暫存器測試
B 組
B1.封包臨時組合及拆解測試
B2.BD SRAM 測試
B3.DMA SRAM 測試
B4.MBUF SRAM 測試
B5.MBUF SRAM 透過 DMA 的測試
B6.外部 SRAM 測試
C 組
D 組
A1.間接式暫存器測試
指令: regtest -i
功能:採用間接式定址法,將增加的資料寫入 MAC 雜湊暫存器 (hash register) 表中,並再讀取這些資料,以作驗證。增加測試資料時,已進行了 100 次記憶體的讀取 / 寫入動作。
預設:啟用測試
A2.控制暫存器測試
指令: regtest
功能:組態內容中所指定的每個暫存器,都會定義唯讀位元及讀取 / 寫入的位元。本測試會將零及壹值寫入測試位元中,以確保不會變動唯讀位元,而讀取 / 寫入位元能作出相應的變動。
預設:啟用測試。
預設的暫存器表
本測試會嘗試讀取暫存器的組態檔 ctrlreg.txt,以便暫存器進行定義的工作。若檔案不存在,那麼就會採用預設的暫存器位移遮罩位元。
Offset R/O Mask R/W Mask
0x00000400 0x00000000 0x007fff8c
0x00000404 0x03800107 0x00000000A3.中斷測試
指令: 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。
位址測試:將獨有的增量資料寫入每一個位址內。然後再讀取這些資料,以確定資料正確。將全部位址填滿獨有的資料後,程式會再讀取這些資料,使資料維持不變。
逐一位元 (WalkingOne bit) 測試:針對每個位址,先寫入資料再讀取進行測試。然後將資料向左移動一個位元,如此變成資料 2,並進行相同的測試。將重複 32 次,直到測試位元都已由測試位址使用完畢。針對整個測試範圍進行相同的測試。
隨機擬似 (Pseudo Random) 資料測試:若要將獨有的資料寫入每個測試的 RAM,就可使用預先計算好的隨機擬似資料。資料通過測試後,程式會再次讀取資料,以維持資料的正確性。
預設:啟用
B2.BD SRAM 測試
指令:memtest -b
功能: 本測試可測驗 BD SRAM。本測試的執行方式與 B1 描述的封包臨時組合及拆解測試相同。
預設:啟用
B3.DMA SRAM 測試
指令: memtest -d
功能:本測試是以 B1 描述的封包臨時組合及拆解測試的方式,來檢驗 DMA SRAM。
預設:啟用
B4.MBUF SRAM 測試
指令: memtest -m
功能:本測試是以 B1 描述的封包臨時組合及拆解測試的方式,來檢驗 DMA SRAM。
預設:啟用
B5.MBUF SRAM 透過 DMA 測試
指令: memtest -x
功能:使用八種資料測試型態。本測試會使用一個 0x1000 大小的資料緩衝器。進行每種型態的測試前,會先初始化緩衝器,並將測試型態填入緩衝器。然後就會進行 0x1000 大小的傳送動作,將 DMA 由主機緩衝器傳送至網路卡的 MBUF 記憶體。依據主機記憶體來檢驗 MBUF 內的資料完整性,然後為整個 MBUF 緩衝器重覆該 DMA。接著就會從網路卡接收 DMA 至主機。每次接收 DMA 前,都會先將 0x1000 位元組的測試緩衝器歸零。檢查資料的完整性後,並為整個 MBUF SRAM 範圍而重覆本測試。測試型態說明如下。
測試型態
說明
16 00 與 16 FF
先以 00 的 16 位元組,再以 FF 的 16 位元組來填滿整個主機的 DMA 緩衝器。
16 FF 與 16 0
先以 00 的 16 位元,再以 FF 的 16 位元來填滿整個主機的 DMA 緩衝器。
32 00 與 32 FF
先以 00 的 32 位元組,再以 FF 的 32 位元組來填滿整個主機的 DMA 緩衝器。
32 00 與 32 FF
先以 FF 的 32 位元組,然後以 00 的 32 位元組填滿整個主機的 DMA 緩衝器。
00000000
完全以零來填滿整個主機的 DMA 緩衝器。
FFFFFFFF
完全以 FF 來填滿整個主機的 DMA 緩衝器。
AA55AA55
以 0xAA55AA55 來填滿整個主機的 DMA 緩衝器。
55AA55AA
以 0xAA55AA55 來填滿整個主機的 DMA 緩衝器。
預設:啟用
B6.外部 SRAM 測試
指令: memtest -e
功能:本測試是以 B1 描述的封包臨時組合及拆解測試的方式,來檢驗 DMA SRAM。
預設:停用
C1.EEPROM 測試
指令: setest
功能:EEPROM 測試是採用增量測試的資料。本測試會將測試資料填入至測試範圍,然後再讀取這些資料,以檢驗其內容。測試後,資料會填入零值,以便清除記憶體。
預設:啟用
C2.CPU 測試
指令: cputest
功能:本測試會開啟 cpu.bin 檔案。如果檔案存在且內容為正確,會將密碼載入 Rx 與 Tx CPU 並確認 CPU 的執行。
預設:啟用
C3.DMA 測試
指令: dmatest
功能:同時測試擁有高低優先權的 DMA。測試時,資料會由主機記憶體傳送至網路卡的 SRAM,並對資料進行檢驗。然後資料會送回主機記憶體,並再次對資料進行檢驗。
預設:啟用
C4.MII 測試
指令: miitest
功能:本功能與 A2 中的「控制暫存器測試」相同。組態內容中所指定的每個暫存器,都會定義唯讀位元及讀取 / 寫入的位元。本測試會將零及壹值寫入測試位元中,以確保不會變動唯讀位元值,而讀取 / 寫入位元能作出相應的變動。
預設:啟用測試。
預設的暫存器表
本測試會嘗試讀取暫存器的組態檔 miireg.txt,以便暫存器進行定義的工作。若該檔案不存在,便會使用下表:
位移 R/O 遮罩 R/W 遮罩 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 測試
指令: vpdtest
功能:進行測試前,會先儲存 VPD 的內容。儲存好後,就會將五種型態測試資料 (0xff、0xaa、0x55、增量資料或減量資料) 之一種寫入 VPD 記憶體內。預設是使用增量資料型態。整個測試範圍的資料會寫入及再讀取,然後恢復原來的內容。
預設:停用
C6.ASF 測試
指令: asftest
功能:m
設定重設位元,並輪詢以便進行自我清除程序。確認暫存器重設的值。
設定 SMB_ATTN 位元。更改 ASF_ATTN LOC 位元,以檢驗 TX_CPU 或 RX_CPU 事件位元內的對應位元。
C7.ROM 擴充測試
指令: romtest
功能:本功能測試啟用 / 停用 /存取裝置上的擴充 ROM 的功能。
D1.Mac 迴圈測試
指令: pkttest -m
功能:本測試是針對內部迴圈資料傳送 / 接收的功能。本測試會將 MAC 初始化,並將其轉為內部迴圈模式,然後傳送 100 個封包。接收的例行程序會引導相關資料返回接收通道,並檢查資料的完整性。除非啟用 Gigabit,否則本測試會使用 100 megabit 的速率。
預設:啟用
D2.實體迴圈測試
指令: pkttest -p
功能:此測試和 D1 描述的 Mac 迴圈測試相同,但是這項測試將透過實體層裝置回傳資料。除非啟用 Gigabit,否則本測試會使用 100 megabit 的速率。
預設:啟用
D3.RJ-45 迴圈測試
指令: pkttest -e
功能: 此為外部迴圈測試。以 UUT 的觀點而言,不會設定迴圈模式。RJ45 迴圈接頭預期會引導相關資料返回。除非啟用 Gigabit,否則本測試會使用 100 megabit 的速率。
預設:停用
D4.MII 雜項測試
指令:無
功能:本功能測試自動輪詢和實體中斷功能。這些是實體 (PHY) 的功能。
預設:啟用
D5.MSI 測試
指令: msitest
功能:本功能測試設備的「訊息訊號中斷」能力。請參照 PCI 規格 2.2 版的 MSI 定義。
預設:停用
/* 0 */ "通過", /* 1 */ "已取得 0x%08X @ 0x%08X。預期 0x%08x", /* 2 */ "晶片執行時無法執行工作", /* 3 */ "無效的網路卡裝置", /* 4 */ "在位移為 0x%X 的條件下寫入零值後,變更唯讀位元 %s", /* 5 */ "在位移為 0x%X 的條件下寫入壹值後,變更唯讀位元 %s", /* 6 */ "在位移為 0x%X 的條件下寫入零值後,無法清除讀取 / 寫入位元 %s", /* 7 */ "在位移為 0x%X 的條件下寫入零值後,無法設定讀取 / 寫入位元 %s", /* 8 */ "BIST 失敗", /* 9 */ "無法產生中斷功能", /* 10 */ "使用者中止", /* 11 */ "Tx DMA:已取得 0x%08x @ 0x%08x。預期 0x%08x", /* 12 */ "Rx DMA:已取得 0x%08X @ 0x%08X。預期 0x%08x", /* 13 */ "Tx DMA 失敗", /* 14 */ "Rx 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 資料錯誤,已在 0x04X 取得 0x08X,預期 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 */ "無法 Tx 封包!", /* 35 */ "已要求 Tx %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 value),預期 %08x,但找到 %08x", /* 62 */ "無效的生產修訂,預期 %c,但找到 %c", /* 63 */ "無效的開機代碼修訂,預期 %d. %d,但找到 %d.%d", /* 64 */ "無法寫入 EEPROM", /* 65 */ "無法讀取 EEPROM", /* 66 */ "無效的總和檢查", /* 67 */ "無效的神奇值", /* 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 */ "重設 TX CPU 失敗", /* 77 */ "重設 RX CPU 失敗", /* 78 */ "無效的 MAC 位址", /* 79 */ "未正確初始化 MAC 位址暫存器", /* 80 */ "EEPROM 啟動載入程式總和檢查錯誤",
請閱讀所有的限制與免責聲明。