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 direct firmware load failed with error -2

Other Parts Discussed in Thread: WL1837MODCOM8I

Hello

I'm using a Altera Cyclone 5 (HPS) with kernel 4.1.22-ltsi-altera and yoctoproject release morty.
Booting with the WL1837MODCOM8I connected, results in following errors:

[    1.656969] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2
[    1.657010] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl18xx-conf.bin failed with error -2
[    1.657015] wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2
[    1.657017] wlcore: WARNING falling back to default config
...
[    1.888084] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[    1.897368] wlcore: loaded
...
[   12.561339] wlcore: PHY firmware version: Rev 8.2.0.0.237
[   12.660168] wlcore: firmware booted (Rev 8.9.0.0.70)

The w18xx-conf.bin was created with configure-device.sh under /usr/sbin/wlconf.
The wl18xx-fw-4.bin and all the tools are from the TI git tag R8.7_SP1.

root@cyclone5:/lib/firmware/ti-connectivity# ls
wl18xx-conf.bin  wl18xx-fw-4.bin

Is there a solution for this problem?
Best regards
Rico Ganahl

Edit: Thank you for your reply. Try to fix ugly formating of post...

  • hi, seems like firmware gets downloaded ok
    [ 12.561339] wlcore: PHY firmware version: Rev 8.2.0.0.237
    [ 12.660168] wlcore: firmware booted (Rev 8.9.0.0.70)

    You can build wl18xx configuration binary. Run configure-device.sh script : processors.wiki.ti.com/.../WiLink8_WLAN_Demo:_Linux

    Saurabh
  • Hi again,

    I still have some problems respectively weird behavior. As mentioned above in my post, i already used the configure-device.sh and it did not change a thing.
    As i heard from a colleague, it could be a problem to use not the correct versions of firmware and wlconf.
    I use R8.7_SP1 for both, should i use different versions?

    Best regards,
    Rico Ganahl

    Current behavior, seems random:
    1st boot:
    [ 1.679174] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2
    [ 1.696357] wlcore: ERROR configuration binary file size is wrong, expected 1226 got 1229

    2nd boot (> reboot):
    [ 1.625724] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2
    [ 1.625763] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl18xx-conf.bin failed with error -2
    [ 1.625769] wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2
    [ 1.625771] wlcore: WARNING falling back to default config
    ...
    [ 1.862839] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
    [ 1.873064] wlcore: loaded
    ...
    [ 3.065706] wlcore: PHY firmware version: Rev 8.2.0.0.237
    [ 3.164836] wlcore: firmware booted (Rev 8.9.0.0.70)
    ...
    [ 3.320498] wlcore: down

    => WLAN works

    3rd boot (> reboot):
    [ 1.679277] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2
    [ 1.696463] wlcore: ERROR configuration binary file size is wrong, expected 1226 got 1229

    4th boot (> reboot):
    [ 1.689073] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2
    [ 1.706228] wlcore: ERROR configuration binary file size is wrong, expected 1226 got 1229

    5th boot (power off/on):
    [ 1.637744] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2
    [ 1.648365] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl18xx-conf.bin failed with error -2
    [ 1.659037] wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2
    [ 1.667797] wlcore: WARNING falling back to default config
    ...
    [ 1.922669] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
    [ 1.932320] wlcore: loaded
    ...
    [ 3.085282] wlcore: PHY firmware version: Rev 8.2.0.0.237
    ...
    [ 3.184733] wlcore: firmware booted (Rev 8.9.0.0.70)
    ...
    [ 3.339601] wlcore: down

    => WLAN works

    configure-device.sh
    (file wl18xx-conf.bin is identical with the old one)

    6th boot (> reboot):
    [ 1.622101] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2
    [ 1.622141] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl18xx-conf.bin failed with error -2
    [ 1.622146] wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2
    [ 1.622147] wlcore: WARNING falling back to default config
    ...
    [ 1.862608] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
    [ 1.871752] wlcore: loaded
    ...
    [ 2.995436] wlcore: PHY firmware version: Rev 8.2.0.0.237
    [ 3.094572] wlcore: firmware booted (Rev 8.9.0.0.70)
    ...
    [ 3.249295] wlcore: down

    => WLAN works
  • hi , WLAN is working ok at your end . Ignore :  'Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2' unless you intend to configure unique MAC address for WiLink8. Please share output of configure-device.sh

    Saurabh

  • > [ 1.696357] wlcore: ERROR configuration binary file size is wrong, expected 1226 got 1229
    For solve this problem I use wl18xx-conf-default.bin from commit c057ca0 (git://git.ti.com/wilink8-wlan/18xx-ti-utils.git)
  • Follow this link: processors.wiki.ti.com/.../WiLink8_WLAN_Demo:_Linux
    and run configure-device.sh on your target board . This will rebuild wl18xx-conf.bin.
    Saurabh
  • Hi,

    The requested output:

    root@cyclone5:/usr/sbin/wlconf# ./configure-device.sh --version
    Version 1.3
    root@cyclone5:/usr/sbin/wlconf# ./configure-device.sh

    Please provide the following information.

    Are you using a TI module? [y/n] : y
    What is the chip flavor? [1801/1805/1807/1831/1835/1837 or 0 for unknown] : 1837
    Should Japanese standards be applied? [y/n] : n
    How many 2.4GHz antennas are fitted? [1/2] : 2
    How many 5GHz antennas are fitted (using 2 antennas requires a proper switch)? [0/1/2] : 1
    rmmod: can't unload 'wlcore_sdio': unknown symbol in module, or unknown parameter

    The device has been successfully configured.
    TI Module: y
    Chip Flavor: 1837
    Number of 2.4GHz Antennas Fitted: 2
    Number of 5GHz Antennas Fitted: 1
    Diversity Support: y
    SISO40 Support: y
    Japanese Standards Applied: n
    Class 2 Permissive Change (C2PC) Applied: n

    modprobe: can't change directory to '/lib/modules': No such file or directory

    Best regards,
    Rico Ganahl

  • hi , seems like there is an issue with unloading / loading wl8 drivers . do the following
    - cd /lib/firmware/ti-connectivity/
    - rename wl18xx-conf.bin
    - run configure-device.sh again and see if it creates new wl18xx-conf.bin in /lib/firmware/ti-connectivity/

    Saurabh
  • hi,

    A new wl18xx-conf.bin gets created, but still when i reboot, this error could occur:

    [    1.691065] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2
    [    1.704571] wlcore: ERROR configuration binary file size is wrong, expected 1226 got 1229

    Rico

    content of wl18xx-conf.bin:

    header.magic = 0x10e100ca
    header.version = 0x00070007
    header.checksum = 0x00000000
    core.sg.params = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000f, 0x0000001b, 0x00000011, 0x000000aa, 0x00000032, 0x00000064, 0x00000320, 0x000000c8, 0x000000c8, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x0000003c, 0x00001388, 0x000004b0, 0x000003e8, 0x00000001, 0x00000003, 0x00000006, 0x0000000a, 0x0000000a, 0x00000002, 0x00000005, 0x0000001e, 0x00000003, 0x0000000a, 0x00000002, 0x00000000, 0x00000019, 0x00000019, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
    core.sg.state = 0x01
    core.rx.rx_msdu_life_time = 0x0007d000
    core.rx.packet_detection_threshold = 0x00000000
    core.rx.ps_poll_timeout = 0x000f
    core.rx.upsd_timeout = 0x000f
    core.rx.rts_threshold = 0x0931
    core.rx.rx_cca_threshold = 0x0000
    core.rx.irq_blk_threshold = 0xffff
    core.rx.irq_pkt_threshold = 0x0000
    core.rx.irq_timeout = 0x0258
    core.rx.queue_type = 0x00
    core.tx.tx_energy_detection = 0x00
    core.tx.sta_rc_conf.enabled_rates = 0x00000000
    core.tx.sta_rc_conf.short_retry_limit = 0x0a
    core.tx.sta_rc_conf.long_retry_limit = 0x0a
    core.tx.sta_rc_conf.aflags = 0x00
    core.tx.ac_conf_count = 0x04
    core.tx.ac_conf0.ac = 0x00
    core.tx.ac_conf0.cw_min = 0x0f
    core.tx.ac_conf0.cw_max = 0x003f
    core.tx.ac_conf0.aifsn = 0x03
    core.tx.ac_conf0.tx_op_limit = 0x0000
    core.tx.ac_conf1.ac = 0x01
    core.tx.ac_conf1.cw_min = 0x0f
    core.tx.ac_conf1.cw_max = 0x003f
    core.tx.ac_conf1.aifsn = 0x07
    core.tx.ac_conf1.tx_op_limit = 0x0000
    core.tx.ac_conf2.ac = 0x02
    core.tx.ac_conf2.cw_min = 0x0f
    core.tx.ac_conf2.cw_max = 0x003f
    core.tx.ac_conf2.aifsn = 0x01
    core.tx.ac_conf2.tx_op_limit = 0x0bc0
    core.tx.ac_conf3.ac = 0x03
    core.tx.ac_conf3.cw_min = 0x0f
    core.tx.ac_conf3.cw_max = 0x003f
    core.tx.ac_conf3.aifsn = 0x01
    core.tx.ac_conf3.tx_op_limit = 0x05e0
    core.tx.max_tx_retries = 0x64
    core.tx.ap_aging_period = 0x012c
    core.tx.tid_conf_count = 0x04
    core.tx.tid_conf0.queue_id = 0x00
    core.tx.tid_conf0.channel_type = 0x01
    core.tx.tid_conf0.tsid = 0x00
    core.tx.tid_conf0.ps_scheme = 0x00
    core.tx.tid_conf0.ack_policy = 0x00
    core.tx.tid_conf0.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf1.queue_id = 0x01
    core.tx.tid_conf1.channel_type = 0x01
    core.tx.tid_conf1.tsid = 0x01
    core.tx.tid_conf1.ps_scheme = 0x00
    core.tx.tid_conf1.ack_policy = 0x00
    core.tx.tid_conf1.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf2.queue_id = 0x02
    core.tx.tid_conf2.channel_type = 0x01
    core.tx.tid_conf2.tsid = 0x02
    core.tx.tid_conf2.ps_scheme = 0x00
    core.tx.tid_conf2.ack_policy = 0x00
    core.tx.tid_conf2.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf3.queue_id = 0x03
    core.tx.tid_conf3.channel_type = 0x01
    core.tx.tid_conf3.tsid = 0x03
    core.tx.tid_conf3.ps_scheme = 0x00
    core.tx.tid_conf3.ack_policy = 0x00
    core.tx.tid_conf3.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf4.queue_id = 0x00
    core.tx.tid_conf4.channel_type = 0x00
    core.tx.tid_conf4.tsid = 0x00
    core.tx.tid_conf4.ps_scheme = 0x00
    core.tx.tid_conf4.ack_policy = 0x00
    core.tx.tid_conf4.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf5.queue_id = 0x00
    core.tx.tid_conf5.channel_type = 0x00
    core.tx.tid_conf5.tsid = 0x00
    core.tx.tid_conf5.ps_scheme = 0x00
    core.tx.tid_conf5.ack_policy = 0x00
    core.tx.tid_conf5.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf6.queue_id = 0x00
    core.tx.tid_conf6.channel_type = 0x00
    core.tx.tid_conf6.tsid = 0x00
    core.tx.tid_conf6.ps_scheme = 0x00
    core.tx.tid_conf6.ack_policy = 0x00
    core.tx.tid_conf6.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf7.queue_id = 0x00
    core.tx.tid_conf7.channel_type = 0x00
    core.tx.tid_conf7.tsid = 0x00
    core.tx.tid_conf7.ps_scheme = 0x00
    core.tx.tid_conf7.ack_policy = 0x00
    core.tx.tid_conf7.apsd_conf = 0x00000000, 0x00000000
    core.tx.frag_threshold = 0x0930
    core.tx.tx_compl_timeout = 0x015e
    core.tx.tx_compl_threshold = 0x000a
    core.tx.basic_rate = 0x00000001
    core.tx.basic_rate_5 = 0x00000008
    core.tx.tmpl_short_retry_limit = 0x0a
    core.tx.tmpl_long_retry_limit = 0x0a
    core.tx.tx_watchdog_timeout = 0x00001388
    core.tx.slow_link_thold = 0x03
    core.tx.fast_link_thold = 0x1e
    core.conn.wake_up_event = 0x02
    core.conn.listen_interval = 0x01
    core.conn.suspend_wake_up_event = 0x04
    core.conn.suspend_listen_interval = 0x03
    core.conn.bcn_filt_mode = 0x01
    core.conn.bcn_filt_ie_count = 0x03
    core.conn.bcn_filt_ie0.ie = 0x25
    core.conn.bcn_filt_ie0.rule = 0x02
    core.conn.bcn_filt_ie0.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie0.type = 0x00
    core.conn.bcn_filt_ie0.version = 0x00, 0x00
    core.conn.bcn_filt_ie1.ie = 0x3d
    core.conn.bcn_filt_ie1.rule = 0x01
    core.conn.bcn_filt_ie1.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie1.type = 0x00
    core.conn.bcn_filt_ie1.version = 0x00, 0x00
    core.conn.bcn_filt_ie2.ie = 0x2a
    core.conn.bcn_filt_ie2.rule = 0x01
    core.conn.bcn_filt_ie2.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie2.type = 0x00
    core.conn.bcn_filt_ie2.version = 0x00, 0x00
    core.conn.bcn_filt_ie3.ie = 0x00
    core.conn.bcn_filt_ie3.rule = 0x00
    core.conn.bcn_filt_ie3.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie3.type = 0x00
    core.conn.bcn_filt_ie3.version = 0x00, 0x00
    core.conn.bcn_filt_ie4.ie = 0x00
    core.conn.bcn_filt_ie4.rule = 0x00
    core.conn.bcn_filt_ie4.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie4.type = 0x00
    core.conn.bcn_filt_ie4.version = 0x00, 0x00
    core.conn.bcn_filt_ie5.ie = 0x00
    core.conn.bcn_filt_ie5.rule = 0x00
    core.conn.bcn_filt_ie5.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie5.type = 0x00
    core.conn.bcn_filt_ie5.version = 0x00, 0x00
    core.conn.bcn_filt_ie6.ie = 0x00
    core.conn.bcn_filt_ie6.rule = 0x00
    core.conn.bcn_filt_ie6.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie6.type = 0x00
    core.conn.bcn_filt_ie6.version = 0x00, 0x00
    core.conn.bcn_filt_ie7.ie = 0x00
    core.conn.bcn_filt_ie7.rule = 0x00
    core.conn.bcn_filt_ie7.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie7.type = 0x00
    core.conn.bcn_filt_ie7.version = 0x00, 0x00
    core.conn.bcn_filt_ie8.ie = 0x00
    core.conn.bcn_filt_ie8.rule = 0x00
    core.conn.bcn_filt_ie8.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie8.type = 0x00
    core.conn.bcn_filt_ie8.version = 0x00, 0x00
    core.conn.bcn_filt_ie9.ie = 0x00
    core.conn.bcn_filt_ie9.rule = 0x00
    core.conn.bcn_filt_ie9.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie9.type = 0x00
    core.conn.bcn_filt_ie9.version = 0x00, 0x00
    core.conn.bcn_filt_ie10.ie = 0x00
    core.conn.bcn_filt_ie10.rule = 0x00
    core.conn.bcn_filt_ie10.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie10.type = 0x00
    core.conn.bcn_filt_ie10.version = 0x00, 0x00
    core.conn.bcn_filt_ie11.ie = 0x00
    core.conn.bcn_filt_ie11.rule = 0x00
    core.conn.bcn_filt_ie11.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie11.type = 0x00
    core.conn.bcn_filt_ie11.version = 0x00, 0x00
    core.conn.bcn_filt_ie12.ie = 0x00
    core.conn.bcn_filt_ie12.rule = 0x00
    core.conn.bcn_filt_ie12.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie12.type = 0x00
    core.conn.bcn_filt_ie12.version = 0x00, 0x00
    core.conn.bcn_filt_ie13.ie = 0x00
    core.conn.bcn_filt_ie13.rule = 0x00
    core.conn.bcn_filt_ie13.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie13.type = 0x00
    core.conn.bcn_filt_ie13.version = 0x00, 0x00
    core.conn.bcn_filt_ie14.ie = 0x00
    core.conn.bcn_filt_ie14.rule = 0x00
    core.conn.bcn_filt_ie14.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie14.type = 0x00
    core.conn.bcn_filt_ie14.version = 0x00, 0x00
    core.conn.bcn_filt_ie15.ie = 0x00
    core.conn.bcn_filt_ie15.rule = 0x00
    core.conn.bcn_filt_ie15.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie15.type = 0x00
    core.conn.bcn_filt_ie15.version = 0x00, 0x00
    core.conn.bcn_filt_ie16.ie = 0x00
    core.conn.bcn_filt_ie16.rule = 0x00
    core.conn.bcn_filt_ie16.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie16.type = 0x00
    core.conn.bcn_filt_ie16.version = 0x00, 0x00
    core.conn.bcn_filt_ie17.ie = 0x00
    core.conn.bcn_filt_ie17.rule = 0x00
    core.conn.bcn_filt_ie17.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie17.type = 0x00
    core.conn.bcn_filt_ie17.version = 0x00, 0x00
    core.conn.bcn_filt_ie18.ie = 0x00
    core.conn.bcn_filt_ie18.rule = 0x00
    core.conn.bcn_filt_ie18.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie18.type = 0x00
    core.conn.bcn_filt_ie18.version = 0x00, 0x00
    core.conn.bcn_filt_ie19.ie = 0x00
    core.conn.bcn_filt_ie19.rule = 0x00
    core.conn.bcn_filt_ie19.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie19.type = 0x00
    core.conn.bcn_filt_ie19.version = 0x00, 0x00
    core.conn.bcn_filt_ie20.ie = 0x00
    core.conn.bcn_filt_ie20.rule = 0x00
    core.conn.bcn_filt_ie20.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie20.type = 0x00
    core.conn.bcn_filt_ie20.version = 0x00, 0x00
    core.conn.bcn_filt_ie21.ie = 0x00
    core.conn.bcn_filt_ie21.rule = 0x00
    core.conn.bcn_filt_ie21.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie21.type = 0x00
    core.conn.bcn_filt_ie21.version = 0x00, 0x00
    core.conn.bcn_filt_ie22.ie = 0x00
    core.conn.bcn_filt_ie22.rule = 0x00
    core.conn.bcn_filt_ie22.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie22.type = 0x00
    core.conn.bcn_filt_ie22.version = 0x00, 0x00
    core.conn.bcn_filt_ie23.ie = 0x00
    core.conn.bcn_filt_ie23.rule = 0x00
    core.conn.bcn_filt_ie23.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie23.type = 0x00
    core.conn.bcn_filt_ie23.version = 0x00, 0x00
    core.conn.bcn_filt_ie24.ie = 0x00
    core.conn.bcn_filt_ie24.rule = 0x00
    core.conn.bcn_filt_ie24.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie24.type = 0x00
    core.conn.bcn_filt_ie24.version = 0x00, 0x00
    core.conn.bcn_filt_ie25.ie = 0x00
    core.conn.bcn_filt_ie25.rule = 0x00
    core.conn.bcn_filt_ie25.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie25.type = 0x00
    core.conn.bcn_filt_ie25.version = 0x00, 0x00
    core.conn.bcn_filt_ie26.ie = 0x00
    core.conn.bcn_filt_ie26.rule = 0x00
    core.conn.bcn_filt_ie26.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie26.type = 0x00
    core.conn.bcn_filt_ie26.version = 0x00, 0x00
    core.conn.bcn_filt_ie27.ie = 0x00
    core.conn.bcn_filt_ie27.rule = 0x00
    core.conn.bcn_filt_ie27.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie27.type = 0x00
    core.conn.bcn_filt_ie27.version = 0x00, 0x00
    core.conn.bcn_filt_ie28.ie = 0x00
    core.conn.bcn_filt_ie28.rule = 0x00
    core.conn.bcn_filt_ie28.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie28.type = 0x00
    core.conn.bcn_filt_ie28.version = 0x00, 0x00
    core.conn.bcn_filt_ie29.ie = 0x00
    core.conn.bcn_filt_ie29.rule = 0x00
    core.conn.bcn_filt_ie29.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie29.type = 0x00
    core.conn.bcn_filt_ie29.version = 0x00, 0x00
    core.conn.bcn_filt_ie30.ie = 0x00
    core.conn.bcn_filt_ie30.rule = 0x00
    core.conn.bcn_filt_ie30.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie30.type = 0x00
    core.conn.bcn_filt_ie30.version = 0x00, 0x00
    core.conn.bcn_filt_ie31.ie = 0x00
    core.conn.bcn_filt_ie31.rule = 0x00
    core.conn.bcn_filt_ie31.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie31.type = 0x00
    core.conn.bcn_filt_ie31.version = 0x00, 0x00
    core.conn.synch_fail_thold = 0x0000000c
    core.conn.bss_lose_timeout = 0x00000190
    core.conn.beacon_rx_timeout = 0x00002710
    core.conn.broadcast_timeout = 0x00004e20
    core.conn.rx_broadcast_in_ps = 0x01
    core.conn.ps_poll_threshold = 0x0a
    core.conn.sig_weights.rssi_bcn_avg_weight = 0x00
    core.conn.sig_weights.rssi_pkt_avg_weight = 0x00
    core.conn.sig_weights.snr_bcn_avg_weight = 0x00
    core.conn.sig_weights.snr_pkt_avg_weight = 0x00
    core.conn.bet_enable = 0x01
    core.conn.bet_max_consecutive = 0x32
    core.conn.psm_entry_retries = 0x08
    core.conn.psm_exit_retries = 0x10
    core.conn.psm_entry_nullfunc_retries = 0x03
    core.conn.dynamic_ps_timeout = 0x0096
    core.conn.forced_ps = 0x00
    core.conn.keep_alive_interval = 0x0000d6d8
    core.conn.max_listen_interval = 0x14
    core.conn.sta_sleep_auth = 0xff
    core.conn.suspend_rx_ba_activity = 0x00
    core.itrim.enable = 0x00
    core.itrim.timeout = 0x0000c350
    core.pm_config.host_clk_settling_time = 0x00001388
    core.pm_config.host_fast_wakeup_support = 0x01
    core.roam_trigger.trigger_pacing = 0x0001
    core.roam_trigger.avg_weight_rssi_beacon = 0x14
    core.roam_trigger.avg_weight_rssi_data = 0x0a
    core.roam_trigger.avg_weight_snr_beacon = 0x14
    core.roam_trigger.avg_weight_snr_data = 0x0a
    core.scan.min_dwell_time_active = 0x00001d4c
    core.scan.max_dwell_time_active = 0x00007530
    core.scan.min_dwell_time_active_long = 0x000061a8
    core.scan.max_dwell_time_active_long = 0x0000c350
    core.scan.dwell_time_passive = 0x000186a0
    core.scan.dwell_time_dfs = 0x000249f0
    core.scan.num_probe_reqs = 0x0002
    core.scan.split_scan_timeout = 0x0000c350
    core.sched_scan.base_dwell_time = 0x00001d4c
    core.sched_scan.max_dwell_time_delta = 0x000057e4
    core.sched_scan.dwell_time_delta_per_probe = 0x000007d0
    core.sched_scan.dwell_time_delta_per_probe_5 = 0x0000015e
    core.sched_scan.dwell_time_passive = 0x000186a0
    core.sched_scan.dwell_time_dfs = 0x000249f0
    core.sched_scan.num_probe_reqs = 0x02
    core.sched_scan.rssi_threshold = 0xa6
    core.sched_scan.snr_threshold = 0x00
    core.sched_scan.num_short_intervals = 0x0d
    core.sched_scan.long_interval = 0x7530
    core.ht.rx_ba_win_size = 0x20
    core.ht.tx_ba_win_size = 0x40
    core.ht.inactivity_timeout = 0x2710
    core.ht.tx_ba_tid_bitmap = 0x3f
    core.mem.num_stations = 0x01
    core.mem.ssid_profiles = 0x01
    core.mem.rx_block_num = 0x28
    core.mem.tx_min_block_num = 0x28
    core.mem.dynamic_memory = 0x01
    core.mem.min_req_tx_blocks = 0x2d
    core.mem.min_req_rx_blocks = 0x16
    core.mem.tx_min = 0x1b
    core.fm_coex.enable = 0x01
    core.fm_coex.swallow_period = 0x05
    core.fm_coex.n_divider_fref_set_1 = 0xff
    core.fm_coex.n_divider_fref_set_2 = 0x0c
    core.fm_coex.m_divider_fref_set_1 = 0xffff
    core.fm_coex.m_divider_fref_set_2 = 0x0094
    core.fm_coex.coex_pll_stabilization_time = 0xffffffff
    core.fm_coex.ldo_stabilization_time = 0xffff
    core.fm_coex.fm_disturbed_band_margin = 0xff
    core.fm_coex.swallow_clk_diff = 0xff
    core.rx_streaming.duration = 0x00000096
    core.rx_streaming.queues = 0x01
    core.rx_streaming.interval = 0x14
    core.rx_streaming.always = 0x00
    core.fwlog.mode = 0x00
    core.fwlog.mem_blocks = 0x02
    core.fwlog.severity = 0x00
    core.fwlog.timestamp = 0x00
    core.fwlog.output = 0x01
    core.fwlog.threshold = 0x00
    core.rate.rate_retry_score = 0x7d00
    core.rate.per_add = 0x2000
    core.rate.per_th1 = 0x0800
    core.rate.per_th2 = 0x1000
    core.rate.max_per = 0x1fa4
    core.rate.inverse_curiosity_factor = 0x05
    core.rate.tx_fail_low_th = 0x04
    core.rate.tx_fail_high_th = 0x0a
    core.rate.per_alpha_shift = 0x04
    core.rate.per_add_shift = 0x0d
    core.rate.per_beta1_shift = 0x0a
    core.rate.per_beta2_shift = 0x08
    core.rate.rate_check_up = 0x02
    core.rate.rate_check_down = 0x0c
    core.rate.rate_retry_policy = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    core.hangover.recover_time = 0x00000000
    core.hangover.hangover_period = 0x14
    core.hangover.dynamic_mode = 0x01
    core.hangover.early_termination_mode = 0x01
    core.hangover.max_period = 0x14
    core.hangover.min_period = 0x01
    core.hangover.increase_delta = 0x01
    core.hangover.decrease_delta = 0x02
    core.hangover.quiet_time = 0x04
    core.hangover.increase_time = 0x01
    core.hangover.window_size = 0x10
    core.recovery.bug_on_recovery = 0x00
    core.recovery.no_recovery = 0x00
    wl18xx.ht.mode = 0x00
    wl18xx.phy.phy_standalone = 0x00
    wl18xx.phy.spare0 = 0x08
    wl18xx.phy.enable_clpc = 0x00
    wl18xx.phy.enable_tx_low_pwr_on_siso_rdl = 0x00
    wl18xx.phy.auto_detect = 0x00
    wl18xx.phy.dedicated_fem = 0x00
    wl18xx.phy.low_band_component = 0x02
    wl18xx.phy.low_band_component_type = 0x05
    wl18xx.phy.high_band_component = 0x01
    wl18xx.phy.high_band_component_type = 0x0a
    wl18xx.phy.number_of_assembled_ant2_4 = 0x02
    wl18xx.phy.number_of_assembled_ant5 = 0x01
    wl18xx.phy.pin_muxing_platform_options = 0x00, 0x00
    wl18xx.phy.external_pa_dc2dc = 0x00
    wl18xx.phy.tcxo_ldo_voltage = 0x00
    wl18xx.phy.xtal_itrim_val = 0x04
    wl18xx.phy.srf_state = 0x00
    wl18xx.phy.srf1 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    wl18xx.phy.srf2 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    wl18xx.phy.srf3 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    wl18xx.phy.io_configuration = 0x01
    wl18xx.phy.sdio_configuration = 0x00
    wl18xx.phy.settings = 0x00
    wl18xx.phy.rx_profile = 0x00
    wl18xx.phy.per_chan_pwr_limit_arr_11abg = 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0x78, 0x88, 0x18, 0x78, 0x88, 0x88, 0x78, 0x88, 0x82, 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x22, 0x22, 0xff, 0xff, 0xff, 0xf7, 0x22, 0x22, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf4, 0x44, 0xff, 0xf4, 0x44, 0xff, 0xf4, 0x22, 0x22, 0xf4, 0x22, 0x22, 0xf6, 0x44, 0x44, 0xff, 0x44, 0x44, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0xff, 0x44, 0x55, 0xf4, 0xff, 0xff, 0xff, 0x33, 0x22, 0xff, 0x33, 0x22, 0xff, 0x66, 0x66, 0xff, 0x44, 0x66, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff
    wl18xx.phy.pwr_limit_reference_11_abg = 0x55
    wl18xx.phy.per_chan_pwr_limit_arr_11p = 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
    wl18xx.phy.pwr_limit_reference_11p = 0x64
    wl18xx.phy.spare1 = 0x00
    wl18xx.phy.per_chan_bo_mode_11_abg = 0x40, 0x00, 0x04, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x19
    wl18xx.phy.per_chan_bo_mode_11_p = 0x00, 0x00, 0x00, 0x01
    wl18xx.phy.primary_clock_setting_time = 0x05
    wl18xx.phy.clock_valid_on_wake_up = 0x00
    wl18xx.phy.secondary_clock_setting_time = 0x05
    wl18xx.phy.board_type = 0x02
    wl18xx.phy.psat = 0x00
    wl18xx.phy.low_power_val = 0xff
    wl18xx.phy.med_power_val = 0xff
    wl18xx.phy.high_power_val = 0xff
    wl18xx.phy.per_sub_band_tx_trace_loss = 0x08, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10
    wl18xx.phy.per_sub_band_rx_trace_loss = 0x08, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    wl18xx.phy.tx_rf_margin = 0x01
    wl18xx.phy.low_power_val_2nd = 0xff
    wl18xx.phy.med_power_val_2nd = 0xff
    wl18xx.phy.high_power_val_2nd = 0xff
    wl18xx.phy.padding = 0x00
    wl18xx.ap_sleep.idle_duty_cycle = 0x00
    wl18xx.ap_sleep.connected_duty_cycle = 0x00
    wl18xx.ap_sleep.max_stations_thresh = 0x04
    wl18xx.ap_sleep.idle_conn_thresh = 0x08

  • hi , in case you are still seeing the same issue after re-creating wl18xx-conf.bin , i suggest re-checking version of 18xx-ti-utils.git.
    git.ti.com/.../18xx-ti-utils
    tag: R8.7_SP1
    clone / build / install it again . Make sure existing wlconf folder gets replaced with this - rebuild wl18xx-conf.bin and recheck

    Saurabh
  • Hi Saurabh


    the problem seems to be this:

    the firmware is expecting a conf.bin with file size 1226 byte. wlconf is only working with conf.bin of size 1229 byte. Please see the output of wlconf when using a 'wl18xx-conf-default.bin' file of size 1226 byte:

    root@cyclone5:/usr/sbin/wlconf# ./configure-device.sh 
    
    Please provide the following information.
    
    Are you using a TI module? [y/n] : y
    What is the chip flavor? [1801/1805/1807/1831/1835/1837 or 0 for unknown] : 1837
    Should Japanese standards be applied? [y/n] : n
    How many 2.4GHz antennas are fitted? [1/2] : 2
    How many 5GHz antennas are fitted (using 2 antennas requires a proper switch)? [0/1/2] : 1
    Failed to read file 'wl18xx-conf-default.bin'
    
    The device has been successfully configured.
    TI Module: y
    Chip Flavor: 1837
    Number of 2.4GHz Antennas Fitted: 2
    [ 1733.221570] wl1271_sdio: probe of mmc1:0001:1 failed with error -110
    Number of 5GHz Antennas Fitted: 1
    Diversity Support: y
    SISO40 Support: y
    Japanese Standards Applied: n
    Class 2 Permissive Ch[ 1733.235294] wl1271_sdio: probe of mmc1:0001:2 failed with error -110
    ange (C2PC) Applied: n
    
    root@cyclone5:/usr/sbin/wlconf# ls -l
    -rwxr-xr-x    1 root     root          5785 Dec  5 06:31 README
    -rwxr-xr-x    1 root     root          7849 Dec  5 06:31 configure-device.sh
    -rwxr-xr-x    1 root     root         18218 Dec  5 06:31 default.conf
    -rwxr-xr-x    1 root     root          2194 Dec  5 06:31 dictionary.txt
    -rwxr-xr-x    1 root     root         18218 Dec  5 06:31 example.conf
    -rwxr-xr-x    1 root     root          9026 Dec  5 06:31 example.ini
    drwxr-xr-x    2 root     root          4096 Dec  5 08:09 official_inis
    -rwxr-xr-x    1 root     root          9315 Dec  5 06:31 struct.bin
    -rw-r--r--    1 root     root          1226 Dec  5 08:51 wl18xx-conf-default.bin
    -rwxr-xr-x    1 root     root          1229 Dec  5 06:31 wl18xx-conf-default.bin.1229
    -rwxr-xr-x    1 root     root         21976 Dec  5 06:31 wlconf
    

    The installed version of wlconf is simply refusing to work with a default config file of size 1226 byte. According to my colleague, it has been an issue for a long time to find matching versions of firmware, drivers and wlconf. Could TI provide a table with release tags that are compatible with each other? This would help reduce debugging time a lot. This table would need to include kernel version (since we are using the kernel built-in modules of Altera kernel 4.1.22_ltsi), firmware release, wlconf release.

    Please tell me which release of wlconf I need to use with firmware R8.7_SP1 and altera kernel 4.1.22_ltsi.

  • hi ,
    - seems like wl18xx-conf.bin size is ok . R8.7_SP1 drivers expect wl18xx-conf.bin to be 1229 bytes
    - Fimrware MAC/PHY versions are consistent with R8.7_SP1
    - There seems to be mismatch b/w driver / firmware etc.

    I suggest do the the following :
    - Follow link : processors.wiki.ti.com/.../WL18xx_System_Build_Scripts
    - Build everything using R8.7_SP1 tag
    - copy all built binaries to your target filesystem . Also copy binaries in /usr/local/sbin/* and /usr/local/bin/* to /usr/sbin/
    - re-test

    Saurabh
  • Hello, Rico!

    > the firmware is expecting a conf.bin with file size 1226 byte. wlconf is only working with conf.bin of size 1229 byte.

    $ git log --stat wlconf/wl18xx-conf-default.bin
    
    commit 3ca66393c03054536fbe08719e2cda86a65b1bf7
    
    Author: Guy Mishol <guym@ti.com>
    
    Date:   Tue Jun 23 11:23:33 2015 +0300
    
       wlconf: update default conf and bin files
    
       update the default.conf and wl18xx-conf-default.bin
    
       files according to WL1835MOD ini file.
    
       Signed-off-by: Guy Mishol <guym@ti.com>
    
    wlconf/wl18xx-conf-default.bin | Bin 1229 -> 1229 bytes
    
    1 file changed, 0 insertions(+), 0 deletions(-)
    
    commit 95ae09fda73b1abd01b12f87dd40f6ae9e3a25ba
    
    Author: Yaniv Machani <yanivma@ti.com>
    
    Date:   Sun May 17 23:45:41 2015 +0300
    
       wlconf : cleanup some redundant values
    
       Set deafults values to '0' instead of existing values.
    
       most of these fields are not in use anymore,
    
       or thier usage have been updated.
    
       Signed-off-by: Yaniv Machani <yanivma@ti.com>
    
    wlconf/wl18xx-conf-default.bin | Bin 1229 -> 1229 bytes
    
    1 file changed, 0 insertions(+), 0 deletions(-)
    
    commit d4158c081f6c2478c8be21c5aa114e4865d71918
    
    Author: Guy Mishol <guym@ti.com>
    
    Date:   Sun May 10 11:53:23 2015 +0300
    
       wlconf: add sched_scan new parameters
    
       Add sched_scan num_short_intervals
    
       scan cycles before switching to long intervals
    
       and the interval between each long scheduled scan cycle.
    
       Signed-off-by: Guy Mishol <guym@ti.com>
    
    wlconf/wl18xx-conf-default.bin | Bin 1226 -> 1229 bytes
    
    1 file changed, 0 insertions(+), 0 deletions(-)
    
    commit c057ca083bd1f1593fff2aba49d785425ed2f28f
    
    Author: Guy Mishol <guym@ti.com>
    
    Date:   Tue Oct 14 16:36:22 2014 +0300
    
       wlconf: Update wl18xx-conf-default.bin
    
       Signed-off-by: Guy Mishol <guym@ti.com>
    
    wlconf/wl18xx-conf-default.bin | Bin 1221 -> 1226 bytes
    
    1 file changed, 0 insertions(+), 0 deletions(-)

  • Hi

    As mentioned before I am using the build in driver from kernel linux-altera-ltsi 4.1.22. I can not use the build script with yocto, so i decided to take the Tag R8.5 for wlconf and R8.7_SP1 for the firmware. Solution from https://e2e.ti.com/support/wireless_connectivity/wilink_wifi_bluetooth/f/307/t/521915 .

    Kernel Driver wlconf wl18xx_fw works
    linux-altera-ltsi_4.1.22 build in Tag: R8.5 Tag: R8.7_SP1 Yes
    linux-altera-ltsi_4.1.22 build in Tag: R8.6-R8.7 don't care No

    regards, Rico