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.

wl18xx and calibrator do not work



Hello. I use wl18xx (kernel 3.2 but WiFi driver backported from kernel 3.5) driver (JORJIN WG7831-B0ES WiFi module) and it work good. But I need use calibrator tool (I use lasted version from https://github.com/TI-OpenLink/18xx-ti-utils). I cross compile it but it not work (all command return -95 error):

#  calibrator --debug wlan0 plt power_mode on
-- Debug: Received Message:
--------------------------   BEGIN NETLINK MESSAGE ---------------------------
  [HEADER] 16 octets
    .nlmsg_len = 68
    .nlmsg_type = 2 <ERROR>
    .nlmsg_flags = 0 <>
    .nlmsg_seq = 946684936
    .nlmsg_pid = 864
  [ERRORMSG] 20 octets
    .error = -95 "Operation not supported"
  [ORIGINAL MESSAGE] 16 octets
    .nlmsg_len = 16
    .nlmsg_type = 17 <0x11>
    .nlmsg_flags = 5 <REQUEST,ACK>
    .nlmsg_seq = 946684936
    .nlmsg_pid = 864
---------------------------  END NETLINK MESSAGE   ---------------------------
command failed: Operation not supported (-95)
#

  • Hi Andrei,

    Can you please confirm if you are following the calibration procedure as mentioned in the below wiki page?

    http://processors.wiki.ti.com/index.php/WL18xx_Calibration_Process

    Regards,

    Gigi Joseph.

  • Hi Gigi. Thank you for answer. Need I use wlconf before use calibrator?

  • Hi Andrei,

    Yes, as per the wiki:

    http://processors.wiki.ti.com/index.php/WL18xx_Calibration_Process#Calibration_Steps

    1. Select the ini file based on the WL18xx module
    2. Use wlconf to create a binary file to be loaded on the WL18xx module
    3. Use wlconf to configure settings on the WL18xx device
    4. Configure the device for PLT mode and test as needed

    Regards,

    Gigi Joseph.

  • Thank you for answer.

    My wlconf generate wl18xx-conf.bin that have size 1177 bytes, but driver load firmware with size 1221 bytes.

  • Andrei,

    can you confirm you see the diff when doing the "modprobe wlcore_sdio" or when doing something else ?

    did you use the following line to generate the bin ?

    ./wlconf -i /lib/firmware/ti-connectivity/wl18xx-conf.bin		\
    		-o /lib/firmware/ti-connectivity/wl18xx-conf.bin	\
    		-s wl18xx.ht.mode=0x01

    where is generated the new firmware ?

    In short : please try to provide exact steps you have followed so that we can comment at best these steps and help you as accurately as possible

    Thanks

    Nicolas
  • When I try to patch wl18xx-conf.bin i see something like this:

    ./wlconf -i /tmp/wl18xx-conf.bin -s wl18xx.ht.mode=0x1 -o ./wl18xx-conf2.bin
    incompatible binary file
    expected 0x10e100ca 0x00010003
    got 0x10e100ca 0x00050006

  • Thanks Andrei,

    few ideas that you might have tried already :

    - try to have input & output file being the same (save original bin somwhere else 1st)

    ./wlconf -i /tmp/wl18xx-conf.bin -s wl18xx.ht.mode=0x1 -o  /tmp/wl18xx-conf.bin

    - can you confirm the wl18xx-conf.bin is the original one (and haven't been modified)?

    Thanks

    Nicolas

  • try to have input & output file being the same (save original bin somwhere else 1st)

    ./wlconf -i /tmp/wl18xx-conf.bin -s wl18xx.ht.mode=0x1 -o  /tmp/wl18xx-conf.bin

    ./wlconf -i /tmp/wl18xx-conf.bin -s wl18xx.ht.mode=0x1 -o  /tmp/wl18xx-conf.bin
    incompatible binary file
    expected 0x10e100ca 0x00010003
    got 0x10e100ca 0x00050006

    - can you confirm the wl18xx-conf.bin is the original one (and haven't been modified)?

    Yes, its original firmware file. Can you send patched wl18xx-conf.bin ?

  • Hi Andrei,

    can you confirm where you got the wlconf (which release tag) and can you confirm that the wl18xx-conf.bin comes from same "release" tag and if not , from where comes the wl18xx-conf.bin

    wlconf should have the CRC hardcoded so if he gets presented with another firmware , there's a good chance you get this error.

    I'm not sure that providing  a bin is good idea as we would expose even more divergence between binaries & eventual dependencies on your platform that may fix immediate concern and create later ones ..

    i would strongly suggest we understand the origin of each binary in use in the command line

    - which tag release for wlconf

    - which release comes from the *.bin 

    Thanks 

    Nicolas

  • My wl18xx-conf.bin come with wireless driver version:

    cat ./wl18xx/version.h
    static const char *wl18xx_timestamp = __TIMESTAMP__;
    static const char *wl18xx_git_head = "ol_r8.a6.02";

    My wlconf come from https://github.com/TI-OpenLink/18xx-ti-utils (I use lastest reversion (c73cfa113bf03cf6177b4340026eee9153e2b0bf)). Can I use other revision ?

  • Thanks for the details,

    Another idea would be to generate a new wl18xx-conf.bin file by referring to a specific ini file (assuming you have one) 

    Do you have  WL8_System_parameters.ini in you system that would help generate a .bin that should be compatible with the wlconf version ? 

    	#cd /usr/sbin/wlconf
    	#./wlconf -o /lib/firmware/ti-connectivity/wl18xx-conf.bin
    		-I official_inis/WL8_System_parameters.ini

    Thanks

    Nicolas


  • No, I do not have WL8_System_parameters.ini . I only have binaries and wl18xx-fw.ili and wl18xx-fw-pg1.1.ili

  • ok,

    then it depends wich wilink8 based solutions you are using .

    Sure it's TI WL8 but certainly on a module so maybe the module vendor has a specific ini (?)

    The “official” TI one (ie for AM335x is a6.02) is at : 

    https://github.com/TI-OpenLink/18xx-ti-utils/blob/ol_r8.a6.02/wlconf/official_inis/WL8_System_parameters.ini

    maybe you can give a try with that one but i would encourage to get the one associated with the module vendor

    best Regards

    Nicolas

  • Nicolas. Thank you very mach for support!

    I checkout wlconf with my revision tag, rebuild wlconf, generate wl18xx-conf.bin and load. I run:

    ./wlconf -I official_inis/WL8_System_parameters.ini -o /tmp/wl18xx-conf.bin

    ./wlconf -i /tmp/wl18xx-conf.bin -s wl18xx.ht.mode=0x01 -o /tmp/wl18xx-conf.bin

    Then I integrate it into device firmware, run linux, driver load this firmware without any errors, but calibrator also do not work:

    # calibrator wlan0 plt power_mode on
    command failed: Operation not supported (-95)

    I use wl18xx driver into linux kernel, not as modules. Is it OK?

  • Hi Andrei, 

    Did you take the wlan0 interface down before issuing calibrator command ? 

    ifconfig wlan0 down

  • Hi Greg. Thank you very much for answer.

    I try with up and down wlan0 interface:

    # ifconfig wlan0 up
    [   77.372680] wlcore: PHY firmware version: Rev 8.2.0.0.168
    [   77.463378] wlcore: firmware booted (Rev 8.6.0.0.5)
    #  calibrator wlan0 plt power_mode on
    command failed: Operation not supported (-95)
    # ifconfig wlan0 down
    [   84.030670] wlcore: down
    #  calibrator wlan0 plt power_mode on
    command failed: Operation not supported (-95)
    #

    How can I check that wl18xx-conf is good for calibrator? May be read something from sysfs ot procfs?

  • Problem is fixed be enabling CONFIG_NL80211_TESTMODE kernel