This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

calibrator PLT tests show zero "Good Packets" with WiLink8 (wl18xx-fw-2.bin)

    Hello,
I am trying to get the "calibrator" PLT (Production Line Test) mode to work, as per:

    http://processors.wiki.ti.com/index.php/WL18xx_TX_Testing
    http://processors.wiki.ti.com/index.php/WL18xx_RX_Testing

I have two identical devices with WiLink8 chips in them. I am using one for TX (with the "start_tx" command), and another for RX (with the "start_rx" and "get_rx_stats" commands). Here are the actual commands I am running:


#
# On the RX device:
#
svc wifi disable # To stop the Android OS from using the WiLink8
calibrator wlan0 plt power_mode on
calibrator wlan0 wl18xx_plt tune_channel 1 0 0
calibrator wlan0 wl18xx_plt start_rx 00:11:22:33:44:55 01:02:03:04:05:06
calibrator wlan0 wl18xx_plt get_rx_stats # ...after start_tx on the other device...
# (Finally, when done running tests:)
calibrator wlan0 wl18xx_plt stop_rx

#
# On the TX device
#
svc wifi disable # To stop the Android OS from using the WiLink8
calibrator wlan0 plt power_mode on
calibrator wlan0 wl18xx_plt tune_channel 1 0 0
calibrator wlan0 wl18xx_plt set_tx_power 16125 0 0 1 0 0 0 0 0 0 0 0
calibrator wlan0 wl18xx_plt start_tx 400 1 100 1000 0 1 0 0 00:11:22:33:44:55 01:02:03:04:05:06 0
# (Finally, when done running tests:)
calibrator wlan0 wl18xx_plt stop_tx


There are several problems with the output reported by "get_rx_stats".

First, the "MAC Mismatch" numbers usually don't start at zero. Instead, they will start with random, negative values for "MAC Mismatch", such as -2, -5, or -7662. For example:


root@android:/ # calibrator wlan0 wl18xx_plt get_rx_stats
test.id = 0x2a
RX statistics (status 0)
Total Received Packets: 0
FCS Errors: 2
MAC Mismatch: -2
Good Packets: 0
PER: N/A # PER = Total Bad / Total Received
root@android:/ #

I notice that even though the MAC Mismatch values start as negative, they always go up over time (as ambient 802.11 packets are received). Also, the following formula still holds true, even with the negative numbers:

    "FCS Errors" + "MAC Mismatch" + "Good Packets" = "Total Received Packets"

Thus, this looks like an uninitialized value problem. (Fortunately I can work around this bug by doing a few "start_rx"/"stop_rx" cycles, because eventually all numbers start at zero.)


More seriously, the value for "Good Packets" is always zero. I am unable to get any successful packets to transfer in PLT mode. All the packets get logged under "MAC Mismatch" instead.

When I do a "start_tx" of 1000 packets on the TX device, then 1000 new packets get logged by the RX device in the category "MAC Mismatch".

Things I have tried:

- Triple-checked that the Source and Destination addresses are identical between the "start_tx" and "start_rx" commands. I am literally using copy'n'paste of the commands shown above.

- I tried using the hardware MAC addresses of the chips, instead of the arbitrary values shown above. I also tried swapping the order on the command line.

- I tried another pair of WiLink8 hardware devices.

- I also tried other channels, stronger TX power, using set_antenna_mode_24G, and doing a conducted test instead of over-the-air.

The user-mode TCP/IP works fine with the WiLink8 (e.g., web browsing, IPerf tests, etc.), so I know the chips are working. So this appears to be a problem with calibrator.

Roughly 5% of the time that I run "get_rx_stats", I will see a value of "Good Packets" that is either 1 or 2, but then it immediately goes back to zero (which should never happen).

The O.S. is Android Jelly Bean running Linux kernel 3.4.34. Calibrator version 0.78:

root@android:/ # calibrator --version
calibrator version 0.78
root@android:/ #

I have verified that my calibrator source files "calibrator.c", "plt.c", and "wl18xx_plt.c" are the same code found at:

     https://github.com/TI-OpenLink/18xx-ti-utils/ [branch "master"]

We are using the driver "wl18xx-fw-2.bin" from here:

     https://github.com/TI-OpenLink/wl18xx_fw/

We are using the the tagged version "ol_r8.a8.10". Here is the MD5sum:

md5sum wl18xx-fw-2.bin
758a6b5f61748f1d7dbce104278250f7 wl18xx-fw-2.bin


Please advise.


Thank You,
Derek Simkowiak
Sr. Software Engineer