devs-qwdi_dhd_pcie-version.so

Updated: April 19, 2023

Driver for Cypress DHD PCIE-based WLAN devices

Syntax:

io-sock -d qwdi_dhd_pcie-version

mount -T io-sock qwdi_dhd_pcie-version

Runs on:

QNX Neutrino

Description:

The devs-qwdi_dhd_pcie-version driver supports Cypress DHD PCIE-based WLAN devices. You install it separately from other io-sock components.

The version in the driver name indicates the WPA supplicant version it supports. For example, devs-qwdi_dhd_pcie-2.9 supports wpa_supplicant-2.9.

Configuration file options:

You specify the driver options in either a driver-specific configuration file (default is /etc/qwdi_wifi.conf) or the io-sock configuration file (the file specified by config when you start io-sock).

Driver configuration file options

The following driver configuration file entries are available. The name and location of your board-specific files may be different than the defaults shown here.
fw_path=name
The name of the firmware file. Default is /etc/fw/firmware.cywchip_id.default.bin.
nvram_path=name
The name of the NVRAM file. Default is /etc/fw/nvram.cywchip_id.default.txt.
clm_path=name
The name of the CLM (Country Locale Matrix) file to load. Default is /etc/fw/cywchip_id.default.clm_blob.
dpc_prio=number
Set the priority of the DPC thread. Default is 21.
wdt_ms=number
The watchdog interval, in milliseconds. Default is 80.
dhd_log=number
Set the verbosity level for DHD (Dongle Host Driver) log messages.

The recommended and default verbosity level is 0x400801, which sets DHD_FWLOG_VAL, DHD_EVENT_VAL, and DHD_ERROR_VAL.

qwdi_log=number
Change the verbosity level of the Wi-Fi driver interface (QWDI) log messages, which are used to communicate with wpa_supplicant. Valid values are from 0 to 11. Default is 0.
mpc=0|1
Set the minimum power configuration (MPC) value in the firmware. Default is 1.
scb_timeout=number
Set the probe timeout value (AP mode) in the SCB (Station Control Block), in seconds. Default is 20.
disassoc_event=0|1
Pass a "fake" QWDI_EVENT_DISASSOC event to sta_deauth() and sta_disassoc() functions. Default is 0.
key_delay=number
Add a delay to set_key(), in milliseconds, to make sure the 4-way handshake packet is sent before the security key. Default is 0 (no delay).
disable_drvver
Prevent the driver from printing software version information. You do not have to specify a value.
mchan_concur=0|1
Enable multi-channel concurrency. Default is 0 (disabled).
icmp_prio_boost=0|1
Enable QoS priority boost for ICMP packets to reduce ping latency. Default is 0 (disabled).
cmd_send_delay=number
Add a delay before sending commands to the firmware, in milliseconds. Valid values are from 0 (the default) to 10. If the value is greater than 10, the delay is 10 ms.
deauth_delay=number
Add the delay the Wi-Fi chip requires after the driver sends WLC_SCB_DEAUTHENTICATE_FOR_REASON with the broadcast MAC address (FF:FF:FF:FF:FF:FF), in milliseconds. Cypress recommends 400 ms. Default is 0.
pcipm_d3
Set the PCI Power Management state of the Wi-Fi chip to D3 when the driver is unloaded (D3hot; the lowest PCI power state). You do not have to specify a value. If this option is not specified, the driver sets the chip state to PCI D0 when it is unloaded.

io-sock configuration file options

The io-sock configuration file supports the same driver options and option values as the driver configuration file. You can include them using the following format:
hw.dhdpcie.fw_path="name"
hw.dhdpcie.nvram_path="name"
hw.dhdpcie.clm_path="name"
hw.dhdpcie.dpc_prio="number"
hw.dhdpcie.wdt_ms="number"
hw.dhdpcie.dhd_log="number"
hw.dhdpcie.qwdi_log="number"
hw.dhdpcie.mpc=0|1
hw.dhdpcie.scb_timeout=number
hw.dhdpcie.disassoc_event=0|1
hw.dhdpcie.key_delay=number
hw.dhdpcie.disable_drvver=
hw.dhdpcie.mchan_concur=0|1
hw.dhdpcie.icmp_prio_boost=0|1
hw.dhdpcie.cmd_send_delay=number
hw.dhdpcie.deauth_delay=number
hw.dhdpcie.pcipm_d3=
Values specified in the driver configuration file override the ones in the io-sock configuration file.

Changing driver options at runtime

You can change the following driver options at runtime using the systctl utility. Examples of changing the options using this method are provided below.
  • hw.dhdpcie.dhd_log
  • hw.dhdpcie.qwdi_log
  • hw.dhdpcie.mpc
  • hw.dhdpcie.scb_timeout
  • hw.dhdpcie.disassoc_event
  • hw.dhdpcie.key_delay
  • hw.dhdpcie.disable_drvver
  • hw.dhdpcie.mchan_concur
  • hw.dhdpcie.icmp_prio_boost
  • hw.dhdpcie.cmd_send_delay
  • hw.dhdpcie.eauth_delay

Examples:

The following lines in the file qwdi_wifi.conf set the verbosity of DHD and QWDI log messages:
dhd_log=0x1f
qwdi_log=6
Adding the following entry to the io-sock configuration file (e.g., /etc/iosock.conf) overrides the default driver configuration file with the specified file:
dev.qwdi_wifi.conf="/developer/config/qwdi_wifi.conf"
The following lines in the io-sock configuration file set the verbosity of DHD and QWDI log messages:
hw.dhdpcie.dhd_log="0x1f"
hw.dhdpcie.qwdi_log="6"
The following example commands use sysctl to display the value of the hw.dhdpcie.dpc_prio option for a loaded driver and change it from 21 to 23:
sysctl -a | grep dpc_prio
hw.dhdpcie.dpc_prio: 21

sysctl -w hw.dhdpcie.dpc_prio=23
hw.dhdpcie.dpc_prio: 21 -> 23