User can run b44diag in two different modes, Manufacturing mode and Engineering mode.
In manufacture mode, user can have the following options.
1. -l <file> :Log data to file.
2. -c <num> :Specify the card to be tested.
3. -I <num> :Iteration number
4. -t <id> :Disable tests
5. -T <id> :Enable tests
6. -com <value> :Comm port enable (internal use only)
7. -r <num> : Input radix
8. -n : Run in manufacture loop
9. -e : Run program in engineering mode
10. -m : Program mac address
11. -f<filename> : Program eeprom content from bin before test
12. -mac : Program MAC address from command line
13. -fmac <filename> : Program MAC address from text file through command line.
14. -b <num> : Enable/Disable BootRom; 0 = disable; 1 = 16KB, 2 = 32KB, 3 = 64KB, 4 = 128KB.
15. -lbm : Option to specify number of packets in Mac Loopback test;
16. -lbp : Option to specify number of packets in Phy Loopback test;
17. -lbh : Option to specify number of packets in 100BT External Loopback test;
18. -lbt : Option to specify number of packets in 10BT External Loopback test;
19. -info : Option to display Dev ID Ven ID SVen ID SSystem ID
20. -mc <filename> : Force to only accept full length (6 bytes) Mac address with prefix matches with prefix provided in input file.
21. -elog : Produces a log file with only error information
22. -ppxe : Program PXE from file (B0 only)
23. -x : Force to search device by using Vendor ID
Example:
>b44diag -e XXXXXX -c 0 -f eeprom.bin -fmac macaddr.txt -b 3 -t abc
-e: enter password
XXXXXX: Password.
-c: card select
-f: program srom with eeprom.bin. Basic information will be loaded to the
srom. Mac address will not be updated. Error if file name missing.
-fmac: program MAC address from Mac address file. Only Mac address will be
updated. Error if file name missing.
-b: enable 64KB Boot Rom. 0 = disable; 1 = 16KB, 2 = 32KB, 3 = 64KB, 4 =
128KB.
-t: disable Test Group A, B and C.
After programming srom with the bin file (-f option is entered), no long need to power cycle the system to have the new SROM configuration loaded.
Software will run all tests after SROM being programmed.
Mac address programming option:
Instead of entering -fmac option, Mac address in the srom can also be
programmed by entering either -m and -mac options.
By entering -m option, user will be asked to enter Mac address. In order to
use -mac option, user need to provide the Mac address after entering -mac
option.
Example: b44diag -e XXXXXX -c 0 -f eeprom.bin -mac 001018112240 -b 3
> b44diag -e XXXXX -c 0 -fmac macaddr.txt
XXXXX = password.
If password is valid, mac address will be programmed according to the mac
address range specified in macaddr.txt
> b44diag -e XXXXX -m
XXXXX = password.
If password is valid, user will be prompted to enter 6 bytes mac address.
Nic card will be programmed with new mac address before running any test.
> b44diag -e XXXXX -mc prefix.txt
XXXXX = password.
prefix.txt will provide matching prefix. Please see PREFIX.txt for ref.
If password is valid, user will be prompted to enter 6 bytes mac address.
Software will only accept full length mac address.
If the 6 byte input mac address matches the prefix with the prefix.txt,
Nic card will be programmed with new mac address before running any test.
> b44diag -e XXXXX -f eeprom.bin
Nic card will be programmed with new content from eeprom.bin before test.
> b44diag -l test.log -c 1 -I 2 -t A3
> b44diag -l test.log -c 1 -I 2 -t A3 -lbm 3000 -lbp 3000 -lbh 3000 -lbt 3000
> b44diag -info -t abc
This will display information stored in SPROM
Information included Mac address, Vender ID, SubSystem Vendor ID, SubSystem Device ID
and bootrom size.
> b44diag -e XXXXXX -c 0 -ppxe b44pxe.lom
In order to program pxe, SPROM should have valid pxe enable and pxe boot rom size.
-ppxe and -f CANNOT be used at the same time. After SPROM being programmed, system
need to reboot before PXE can be program. It may take a few minutes to complete programming.
> b44diag -b44eng -x
When the Device ID gets changed to something unrecognized, -x option switch allow
b44diag to search device by vendor ID.
There are 3 groups of test. Each group has a few sub tests.
Group A
A1. Indirect Control Register Test
A2. Direct Control Register Test
A3. Interrupt test
A4. Built In Self Test
A5. CAM Read/Write Test
Group B
B1. LEDs test
B2. EEPROM Test
B3. MII Test
B4. Link Status Test
Group C
C1. MAC Loopback Test.
C2. PHY Loopback Test.
C3. External Loopback Test 100BT.
C4. External Loopback Test 10BT.
C5. PHY Loopback Test w/ CAM Enabled.
C6. External Loopback Test 100BT w/ CAM Enabled.
C7. External Loopback Test 10BT w/ CAM Enabled.
C8 MIB MAC Loopback Test
Test Descriptions
A1.
Indirect Register Test
Command: regtest -i
Function: Each Register specified in the configuration contents read only bit and
read/write bit defines. The test writing zero and one by using indirect addressing method into the test bits to insure the read
only bits are not changed, and read/write bits are changed accordingly.
Default: Enabled
A2
Control Register Test
Command: regtest
Function: Each Register specified in the configuration contents read only bit and
read/write bit defines. The test writing zero and one into the test bits to insure the read
only bits are not changed, and read/write bits are changed accordingly.
Default: Enabled
A3
Interrupt Test
Command: intrtest
Function: This test verifies the interrupt functionality. It enables interrupt and waits for
interrupt to occur. It waits for 500ms and reports error if could not generate interrupts.
Default: Enabled
A4
Built In Self Test
Command: bist
Function: This test will run the Built In Self Test
Default: Enabled
A5
CAM Read/Write Test
Command: camtest
Function: This test will run the CAM Read/Write Test. 48 Bit patterns will be written to 64 entries of the CAM space.
Test will read back the 64 entries and check. It will be tested against 5 patterns such as FFFF, 0000, 5555, AAAA, 55AA, AA55.
Default: Enabled
B1
LED Test
Command: ledtest
Function: Tests forcing of the link state for each link speed/duplex.
Default: Enabled
B2
EEPROM Test
Command: setest
Function: Reads Serial Prom and verifies integrity by checking CRC.
Default: Enabled
B3
MII Test
Command: miitest
Function: Each Register specified in the configuration contents read only bit and
read/write bit defines. The test writing zero and one into the test bits to insure the
read only bits value are not changed, and read/write bits are changed
accordingly.
Default: Enabled
B4
Command: linkstatus
Function: Report current link status.
Default: Enabled
C1
Mac Loopback Test
Command: lbtest -m
Function: Transmits a 2000 or specified by -lbm option of 1514-byte packets with incrementing data pattern, and
checks tx and rx flags and data integrity.
Default: Enabled
C2
Phy Loopback Test
Command: lbtest -p
Function: This test is same as C1. Mac Loopback Test except, the data is routed
back via physical layer device.
Default: Enabled
C3
External Loopback Test 100BT
Command: lbtest -e
Function: This test is same as C1. Mac Loopback Test except, the data is routed
back via loopback device.
Default: Disabled
C4
External Loopback Test 10BT
Command: lbtest -a
Function: This test is same as C1. Mac Loopback Test except, the data is routed
back via loopback device.
Default: Disabled
C5
Phy Loopback Test with CAM Enabled
Command: camlbtest -p
Function: This test is same as C2. Phy Loopback Test except, the data is routed
back via physical layer device with CAM matching enabled.
Default: Enabled
C6
External Loopback Test 100BT with CAM Enabled
Command: camlbtest -e
Function: This test is same as C5. Phy Loopback Test except, the data is routed
back via loopback device with CAM matching enabled.
Default: Disabled
C7
External Loopback Test 10BT with CAM Enabled
Command: camlbtest -a
Function: This test is same as C5. Phy Loopback Test except, the data is routed
back via loopback device with CAM matching enabled.
Default: Disabled
C8
MIB MAC Loopback Test
Command: mibtest
Function: Test each bit of the MIB counters. By mac looping back a back to test
if MIB counter bit will get incremented.
Default: Enabled
By default, all tests except C3, C4, C6 and C7 will be covered in manufacture mode unless disabled by user.
User can select Engineering mode by option -b44eng
Example:
> b44diag -b44eng
When the program is in engineering mode, it prompts user to enter commands.
All commands are covered below.
lbtest
cmd: lbtest
Syntax: lbtest [n|c|t] [m|p|a|e|]
'n' = iteration.
'c' = max packet count.
't' = packet type: 0 = all 0s, 1 = all 1s, 2 = 5555, 3 = AAAA,
4 = 0F0F, 5 = F0F0, 6 = FF00, 7 = 00FF,
8 = FFFF0000, 9 = 0000FFFF, 10 = Inc, 11 = Random
'm' = Mac Loopback
'p' = Phy Loopback
'e' = 100BT External Loopback.
'a' = 10BT External Loopback.
Default max packet count = 2000
Default iteration = 1
Default pattern = inc.
Example:
0:>lbtest -e -n=10 -c=2500 -t=3 (10 times external loopback test with 2500 packets and pattern is AAAA)
camlbtest
cmd: camlbtest
Syntax: camlbtest [n|c|t] [m|p|a|e|]
'n' = iteration.
'c' = max packet count.
't' = packet type: 0 = all 0s, 1 = all 1s, 2 = 5555, 3 = AAAA,
4 = 0F0F, 5 = F0F0, 6 = FF00, 7 = 00FF,
8 = FFFF0000, 9 = 0000FFFF, 10 = Inc, 11 = Random
'p' = Phy Loopback
'e' = 100BT External Loopback.
'a' = 10BT External Loopback.
Default max packet count = 40
Default iteration = 1
Default pattern = inc.
Example:
0:>camlbtest -e -n=10 -t=3 (10 times external loopback test with 2500 packets and pattern is AAAA)
phyctrl
cmd: phyctrl
Description: Configure Speeds/Duplex of PHY
Syntax: phyctrl [s][h][r][f]
's' = 0:10 Mbps, 1:100 Mbps
'h' = half duplex
'r' = reset phy
'c' = force
'f' = write phy initialization scripts
Example:
0:> phyctrl -s=0 -h (10Mbps half duplex)
initialization scripts
0:> phyctrl -s=1 -h -c (force 100 BT half duplex)
loadd
cmd: loadd
Description: Load default chip setting before blast
Syntax: loadd
blast
cmd: blast
Description: Blast Packets in Poll Mode
Syntax: blast [t|r|h] [n] [l] [i] [e]
't' = tx
'r' = rx
'h' = host loop back ( with min 17.6 usec ipg with random packet size; 14.6 usec ipg with Max packet size )
'H' = host loop back with optimized performance. ( with min 17 usec ipg with random packet size; 14 usec ipg with Max packet size )
'n' = number of packets to transmit.
'l' = transmit packets size (min = 60)
'i' = increment transmit packets length
'e' = Upper Limit of Tx buffer in incremental packet size
'p' = packet type: 0 = all 0s, 1 = all 1s, 2 = 5555, 3 = AAAA,
4 = 0F0F, 5 = F0F0, 6 = FF00, 7 = 00FF,
8 = FFFF0000, 9 = 0000FFFF, 10 = Inc, 11 = Random
'd' = Interpacket GAP in microseconds
Default pattern = inc.
Press ESC Key to stop.
Example:
0:> blast -t -r -p=11 -l=1514 (RX and TX packet with 1514 bytes of random data)
0:> blast -t -n=10000 -l=1514 (TX 10000 packets with size of 1514 bytes of default pattern)
0:> blast -t -n=10000 -l=1514 -p=3 (TX 10000 packets with size of 1514 bytes of AAAA pattern)
0:> blast -t -n=10000 -i -e=1514 (TX 10000 packets with inc size of default pattern)
0:> blast -t (TX packets with size of 64 bytes of default pattern until stop)
0:> blast -r (RX packets until stop)
0:> blast -h (host loop back with min 14.6 usec ipg)
0:> blast -H (host loop back with optimized performance, with min 14 usec ipg)
* When software is running in host loop back mode, user need to provide enough IPGs or else packets will be dropped or result in interrupt errors.
* When software is running optimized performance host loop back mode, on-screen countes will not be updated.
User can use 'qstat' or 'nicstat' to read counters.
* blast cmd will not reset the chip. User needs to use "reset" cmd to reset chip.
* User also needs to use "loadd" cmd to set up the chip to default state before run blast
Example:
0:> reset (reset chip)
0:> loadd (set chip to default state)
0:> do abc.do (run script or write register if needed)
0:> blast -t -r -p=11 -l=1514 (RX and TX packet with 1514 bytes of random data)
To stop, press Esc key.
nicstats
cmd: nicstats
Description: Display NIC Statistics
Syntax: nicstats [c]
'c' = reset counters
Example:
0:> nicstats (display NIC statistics)
0:> nicstats -c (reset counters)
woltest
cmd: woltest
Description: Setup chip to wake up from wake on lan packet
Syntax: woltest
Example:
0:> woltest
intptest
cmd: intptest
Description: Setup chip to wake up from interesting packet
Syntax: intptest
Example:
0:> intptest
setest
cmd: setest
Description: Serial EEPROM read write test. Serial EEPROM test dumps the
contents of the serial EEPROM to the screen and verifies the data with a CRC
check.
Syntax: setest [iteration]
Example:
1. Display Help.
0:> setest ?
Usage : setest [iteration]
Description:
The default iteration is 1. 0 means run forever
camtest
cmd: camtest
Description: This test will run the CAM Read/Write Test. 48 Bit patterns will be
written to 64 entries of the CAM space. Test will read back the 64 entries and check.
It will be tested against 5 patterns such as FFFF, 0000, 5555, AAAA, 55AA, AA55.
Syntax: camtest [iteration]
Example:
1. Display Help.
0:> camtest ?
Usage : camtest [iteration]
Description:
The default iteration is 1. 0 means run forever
mread
cmd: mread
Description: Read PHY registers via MII
Syntax: mread <begin_addr>[ | <len>]
Address range: 0x00 – 0x1F
Example:
1. Read MII register 0
0:> mread 0
00: 1100
2. Read MII registers 0 to 10
0:> mread 0-10
00: 1100 7949 0020 6051 01e1 0000 0004 2001
08: 0000 0300 0000 0000 0000 0000 0000 3000
10: 0002
3. Read 5 MII registers start from register
0:> mread 0 5
00: 1100 7949 0020 6051 01e1
mwrite
cmd: mwrite
Description: Write PHY registers via MII
Syntax: mwrtie <addr > <value>
Address range: 0x00 – 0x1F
Example:
1. Write 0x15 to MII register 2
0:> mwrite 2 15
miitest
cmd: miitest [itereation]
Description: PHY registers read write test
Syntax: miitest
read
cmd: read
Description: Generic Memory Read
Syntax: read [!|S|X|#|m|$|l|s|x]<begin_addr> [- end_addr | num_bytes]
! = Configuration space (address range: 0x00 – 0xFF) (32)
S = Configuration space (address range: 0x00 – 0xFF) (16)
X = Configuration space (address range: 0x00 – 0xFF) (08)
$ = Serial EEPROM
m = MII Registers
l = direct access (dword)
s = direct access (word)
x = direct access (byte)
write
cmd: write
Description: Generic Memory Write
Syntax: write [!|S|X|#|$|l|s|x]<begin_addr> [- end_addr ] <value>
! = Configuration space (address range: 0x00 – 0xFF) (32)
S = Configuration space (address range: 0x00 – 0xFF) (16)
X = Configuration space (address range: 0x00 – 0xFF) (08)
$ = Serial EEPROM
l = direct access (dword)
s = direct access (word)
x = direct access (byte)
intrtest
cmd: intrtest
Description: Interrupt Test
Syntax: intrtest
regtest
cmd: regtest
Description: MAC registers read write test.
Syntax: regtest [<iteration>]
pciscan
cmd: pciscan
Description: Scan for all PCI Devices
Syntax: pciscan
Example:
0:> pciscan
Scanning PCI devices ...
Bus Dev Func Vendor ID Device ID Class Base/IO Address IRQ
=== === ==== ========= ========= ========== ================= ===
0 0 0 8086 7190 06:00:00 00000000:F8000008 0
0 1 0 8086 7191 06:04:00 00000000:00000000 0
0 7 0 8086 7110 06:01:00 00000000:00000000 0
0 7 1 8086 7111 01:01:80 00000000:00000000 0
0 7 2 8086 7112 0C:03:00 00000000:00000000 9
0 7 3 8086 7113 06:80:00 00000000:00000000 0
0 14 0 12AE 0003 02:00:00 00000000:F4000004 10
1 0 0 1002 4742 03:00:00 00009001:F5000000 11
dos
cmd: dos
Description: Enter to Dos shell
Syntax: dos
Example:
0:> dos
pciinit
cmd: pciinit
Description: Initialize PCI configuration registers
Syntax: pciinit
Example:
0:misc> pciinit
Initializing PCI Configuration Space
Bus Number : 0
Device/Funtion : 14/0
Base Address : 0xf4000004
q
cmd: q
Description: Exit
Syntax: q
exit
cmd: exit
Description: Exit
Syntax: exit
help
cmd :help
Description: Display help
Systax: help
log
cmd : log
Description: Log data to file
Syntax: log <filename>
Example:
0:> log test.log
started logfile 'test.log'
nolog
cmd : nolog
Description: Close current log file
Syntax: nolog
Example:
0:> nolog
logfile closed at Mon Mar 4 15:25:11 2002
reset
cmd : reset
Description: Reset chip
Syntax: reset
Example:
0:> reset
teste
cmd : teste
Description: Enable tests in test configuration
Syntax: teste <group><tests index>
Example:
0:> teste A23
Enabled Tests:
A2 Control Register Test
A3 Interrupt Test
testd
cmd : testd
Description: Disable tests in test configuration
Syntax: testd <group><tests index>
Example:
0:> testd A23
Disabled Tests:
A2 Control Register Test
A3 Interrupt Test
nictest
cmd : nictest
Description: Run tests in configuration
Syntax: nictest
cls
cmd : cls
Description: Clear screen
Syntax: cls
loop
cmd : loop
Description: Running cmd n times
Syntax: loop [iteration] <cmd> [<parameter> ...]
Enample:
0:> loop 3 miitest (run miitest 3 times)
mrloop
cmd : mrloop
Description: This is special test routine for MII read.
It loops on MII register read until user abort or if value is zero
Syntax: mrloop <addr>
Example:
0:> mrloop 02 (Loop on MII read at reg 02)
inp
cmd : inp
Description: Read port input
Syntax: inp <addr>
outp
cmd : outp
Description: Write to port
Syntax: outp <addr> <data>
linkstatus
cmd : linkstatus
Description: Report link status
Syntax: linkstatus
sleep
cmd : sleep
Description: Suspense process for Execute command from a file
Syntax: sleep <ms>
version
cmd : version
Description: Display current software version
Syntax: version
dev
cmd : dev
Description: Display and select device
Syntax: dev <device index>
sromutil
cmd: sromutil
Description: Provide SROM access.
Syntax: sromultil [b<n>] [m <macaddr> <devID> <vedID> <subID>] [c|C|d] [w<location> <value>]
'b'= Enable bootrom, size encoding: 0=Disable, 1=16KB, 2=32KB, 3=64KB, 4=128KB
'm'= program mac addr
'v'= program subvenID
's'= program subdevID
'C'= check_crc
'c'= fix crc
'd'= just dump
'w'= program word; location in hex; word in hex;
'f'= out put image to eeprom.bin and eeprom.txt or filename.bin and filename.txt.
Example:
sromutil -b=1 (Enable 16KB bootrom)
sromutil -b1 (Enable 16KB bootrom)
sromutil -m=xxxxxxxxxxxx (Program mac addr)
sromutil -mxxxxxxxxxxxx (Program mac addr)
sromutil -v=xxxx (Program sub vendor ID)
sromutil -vxxxx (Program sub vendor ID)
sromutil -s=xxxx (Program sub device ID)
sromutil -sxxxx (Program sub device ID)
sromutil -C (Check crc)
sromutil -c (Fix crc)
sromutil -d (Dumping data to screen)
sromutil -f<filename> (Dumping data to screen, eeprom.bin and eeprom.txt or filename.bin and filename.txt)
sromutil -w 35 1235 (Write 0x1234 to offset 0x35)
setbit
cmd: setbit
Description: Set Bit of Generic Memory
Syntax: setbit [!|S|X|#|m|$|l|s|x]<addr> <bit#> [<bit#>] ....
! = Configuration space (address range: 0x00 – 0xFF) (32)
S = Configuration space (address range: 0x00 – 0xFF) (16)
X = Configuration space (address range: 0x00 – 0xFF) (08)
$ = Serial EEPROM
m = MII Registers
l = direct access (dword)
s = direct access (word)
x = direct access (byte)
clearbit
cmd: clearbit
Description: Clear Bit of Generic Memory
Syntax: clearbit [!|S|X|#|m|$|l|s|x]<addr> <bit#> [<bit#>] ....
! = Configuration space (address range: 0x00 – 0xFF) (32)
S = Configuration space (address range: 0x00 – 0xFF) (16)
X = Configuration space (address range: 0x00 – 0xFF) (08)
$ = Serial EEPROM
m = MII Registers
l = direct access (dword)
s = direct access (word)
x = direct access (byte)
seprg
cmd: seprg
Description: The function reads data from file and program into seeprom.
The file name must be specified in the parameter. Mac address will remain unchanged.
Syntax: seprg <f><file name> [|o] [|l]
'f' = filename
'o' = offset of serial eeprom
'l' = length in bytes (Default = size of input file)
Example:
seprg -f=c:\eeprom.bin
pxeprg
cmd: pxeprg
Description: The function reads data from file and program into pxe expansion rom.
The file name must be specified in the parameter.
Syntax: pxeprg <f><file name> [|o] [|l]
'f' = filename
Example:
0:>pxeprg -f=c:\b44pxe.lom
chkpxe
cmd: chkpxe
Description: The function reads data pxe expansion rom and exam checksum.
Syntax: chkpxe
Example:
0:>chkpxe
do
cmd : do
Description: Execute command from a script file
Syntax: do <filename.do>
Script file example:
reset
linkstatus
mwrite 0 8000
sleep 1000
mread 02
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.