Home
Developer Resources
Technical Articles

QNX Technical Articles

Cypress (Broadcom) BCM4359 Wireless Driver for QNX® SDP 7.0 (Build ID 1072): Release Notes

Date of this edition: January 28, 2019

Target OS: This release is compatible with targets that are running the QNX® Neutrino® RTOS 7.0, including x86 32-bit, x86 64-bit, ARMv7 32-bit, and ARMv8 64-bit targets.

Host OS: You can install this release onto a development host that has an installation of the QNX® Software Development Platform (SDP) 7.0 and runs one of the following operating systems:

  • Microsoft Windows 10 Pro 64-bit, Windows 8.1 Pro 64-bit, or Windows 7 Professional 64-bit
  • macOS version 10.10, 10.11, 10.12
  • Linux Red Hat Enterprise Linux 7 64-bit, or Ubuntu Desktop 16.04 LTS 64-bit

Note:
  • QNX SDP 7 isn't supported on Linux on ARM processors.
  • The Cypress (Broadcom) BCM4359 Wireless Driver 1072 supersedes the previous Cypress (Broadcom) BCM4359 Wireless Driver 661.

Contents

Throughout this document, you may see reference keys or reference numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, please quote the relevant key or number. You might also find the keys and numbers useful for tracking issues as they become fixed.

What's in this release?

This release includes the packages listed below, which you'll find in the indicated areas in the QNX Software Center.

Under Available > QNX Software Development Platform > BSP & Drivers:

  • QNX SDP7.0 wireless driver for the Broadcom BCM4359:
    • com.qnx.sdp.target.driver.broadcom_bcm4359 (7.0.1072.S201811091903)
  • QNX SDP7.0 wireless driver for the Broadcom BCM4359 (Debug Symbols):
    • com.qnx.sdp.target.driver.broadcom_bcm4359.dbg (7.0.1072.S201811091903)

Under Updates > QNX Software Development Platform > Networking:

  • QNX SDP7.0 Networking - WPA/WPA2/IEEE 802.1x Supplicant:
    • com.qnx.sdp.target.net.wpa_supplicant (7.0.1072.S201811091903)
  • QNX SDP7.0 Networking - WPA/WPA2/IEEE 802.1x Supplicant (Debug Symbols):
    • com.qnx.sdp.target.net.wpa_supplicant.dbg (7.0.1072.S201811091903)

To see a list of the contents of a package, right-click it in the QNX Software Center, choose Properties, and then click Package Contents.

Overview

This release provides an updated wireless driver for the Broadcom 4359 Wi-Fi chip. The updated version addresses a vulnerability, described in CVE-2018-14526, in which the integrity of EAPOL-Key messages is not checked, allowing an attacker within range of the Access Point and client to recover sensitive information.

The driver supports the Wi-Fi chip using a PCIe physical interface, and works with the common wpa_supplicant and hostapd utilities provided with QNX SDP 7.0. The driver uses a QNX Wi-Fi Driver Integration (QWDI) shim layer, which enables the common wpa_supplicant to be used for multiple Wi-Fi drivers.

A newer version of firmware for the Broadcom 4359 chipset is included: firmware.bcm4359.bcm.default.bin version 9.40.94.16. Notably, the new firmware addresses the elevation of privilege vulnerability described in CVE-2017-0786 and CVE-2017-0791. For more firmware details, please refer to your Cypress contact.

Files included in this release are installed in the target area of your QNX SDP 7.0 installation, $QNX_TARGET/.

Binaries and utilities

This release contains the following library files and utilities:

  • target/qnx7/ARCH/lib/dll/devnp-qwdi-2.5_bcm4359.so
  • target/qnx7/ARCH/usr/sbin/dhd-bcm4359
  • target/qnx7/ARCH/usr/sbin/wl-bcm4359
  • target/qnx7/etc/firmware/4359.default.clm_blob
  • target/qnx7/etc/firmware/bcm_firmware_pkg.tar
  • target/qnx7/etc/firmware/firmware.bcm4359.bcm.default.bin
  • target/qnx7/etc/firmware/nvram-murata-bcm989359_Type1FD_160307.txt
  • target/qnx7/etc/firmware/nvram.bcm4359.bcm.default.txt

where ARCH refers to the supported architecture variants for the target board, which are: x86, x86_64, aarch64le, or armle-v7.

This release uses the following QNX SDP 7.0 library files and utilities:

  • target/qnx7/ARCH/usr/sbin/wpa_supplicant-2.5
  • target/qnx7/ARCH/usr/sbin/wpa_passphrase-2.5
  • target/qnx7/ARCH/usr/sbin/wpa_cli-2.5
  • target/qnx7/ARCH/usr/sbin/hostapd_cli-2.5
  • target/qnx7/ARCH/usr/sbin/hostapd-2.5
  • target/qnx7/ARCH/usr/random (required for WPA/WPA2 security)
  • target/qnx7/ARCH/sbin/brconfig (required for AP mode)

This release uses the following library files and utilities from the Board Support Package (BSP) for the specific host:

  • target/qnx7/ARCH/sbin/pci-server (BSP-specific PCI server version 2.0)

Sample startup commands

Prior to mounting the Wi-Fi driver, you must ensure that the PCIe server is running. You can start the server with this command:

sbin/pci-server --aspace-enable

Now you can mount the Wi-Fi driver. The driver is "added" to io-pkt, the QNX Neutrino TCP/IP stack. For most hardware boards, you can use this command:

mount -T io-pkt -o fw=/etc/firmware/firmware.bcm4359.bcm.default.bin,nvram=/etc/firmware/nvram.bcm4359.bcm.default.txt,qwdi_clm_path=/etc/firmware/4359.default.clm_blob,qwdi_dbg_level=3,dhd_msg_level=0x1 /lib/dll/devnp-qwdi-2.5_bcm4359.so

The qwdi_clm_path=/etc/firmware/4359.default.clm_blob setting is used for country frequency regulatory requirements.

For ARMv8 64-bit boards, you need to add the qwdi_below4g=1 parameter:

mount -T io-pkt -o qwdi_below4g=1,fw=/etc/firmware/firmware.bcm4359.bcm.default.bin,nvram=/etc/firmware/nvram.bcm4359.bcm.default.txt,qwdi_clm_path=/etc/firmware/4359.default.clm_blob,qwdi_dbg_level=3,dhd_msg_level=0x1 /lib/dll/devnp-qwdi-2.5_bcm4359.so

You can run ifconfig to display the interfaces that this startup code creates. For example:

AP only: bcm0
STA only: bcm0
2AP + STA:  
    bcm0 and bcm1 are AP
    bcm2 is STA
STA + P2P: 
    bcm0 is STA
    bcm_p2pdev0 is p2p_dev
    bcm2 is p2p_grp

Fixed issues

This release contains updates and fixes for several Broadcom driver and firmware issues, which are listed below.

Issue key Issue number Summary Resolution
COREOS-109218 1597035 Broadcom 4359 & WTS test case 5.2.53 test case fails because IP layer is not established after association Fixed / Completed
HW-15046 1685243 Broadcom 4359 fails sniffer check on optional test 5.2.16 EAPOL_Request Present Fixed / Completed
HW-15647 2207549 Broadcom 4359 fails Optional P2P WFA test 5.1.11 Fixed / Completed
HW-15648 2207555 Broadcom 4359 fails Optional P2P WFA test 7.1.5 Fixed / Completed
HW-15649 2207569 Broadcom4359 with FW 9_40_38 | AP Mode Test 4.2.8 fails due to low throughput Optional testcase Fixed / Completed
HW-15650 2207591 Broadcom4359 with FW 9_40_38 | AP Mode Test 4.2.10-WPA2PSK fails DTIM Sniffer Check Mandatory testcase Fixed / Completed
HW-15651 2207615 Broadcom4359 with FW 9_40_38 | AP Mode Test 4.2.35_1SS fails 0 RX throughput from Intel STA Optional testcase Fixed / Completed
HW-15652 2207616 Broadcom4359 with FW 9_40_38 | AP Mode Test 4.2.35_2SS fails 0 RX throughput from Intel STA Optional testcase Fixed / Completed
HW-15866 2234015 N-5.2.8 Optional test case fails for Broadcom 4359 fails because throughput rates are low in DT2 phase Fixed / Completed
HW-15868 2234267 N-4.2.20 WMM Mandatory Test Case for Broadcom 4359 Fails in step 5 throughput Fixed / Completed
HW-15869 2234275 N-4.2.21 WMM Mandatory Test Case for Broadcom 4359 Fails in step 4 Phase 2 throughput Fixed / Completed
HW-15875 2235564 N-4.2.22 WMM Mandatory Test Case for Broadcom 4359 Fails in step 5, 8, 10 throughput Cannot Reproduce
HW-15876 2235582 N-4.2.23 WMM Mandatory Test Case for Broadcom 4359 Fails in step 4, 5 throughput Fixed / Completed
HW-15877 2235613 Broadcom 4359 N-4.2.27_AGN (Mandatory) test case Fails because 20/40mhz bandwidth setting is not enabled Fixed / Completed
HW-16107 2369027 Use bcm1 and bcm2 for AP+AP mode Fixed / Completed
HW-16392 2514664 BCM4359: Need to call interface_remove when hostapd on bcm1 is slayed Fixed / Completed
HW-16446 2519936 Update Firmware folder contents to include TAR file of all variations of firmware provided by Cypress Fixed / Completed
HW-16547 2527406 BCM4359: If p2p negotiation failed, running p2p_connect again will return FAIL Fixed / Completed
HW-16565 2529127 BCM4359: AGO+AGO+STA: If two AGOs are removed, can't scan on STA interface Fixed / Completed

Known issues

Wi-Fi Alliance Test Suite compliance

Wi-Fi Alliance pre-certification testing passes at an acceptable rate:

  • 95% pass rate for the test cases in the 11n-STA, 11n-AP, P2P, WPSv2, and WMMPS Wi-Fi Alliance test suites

The following table provides details for test cases that did not pass:

Issue key Issue number Summary Previous or new issue
COREOS-111396 2219293 Add DISABLE and ENABLE to wpa_supplicant control interface Previous
HW-15638 2206249 BCM4359-Murata: 2G AP and 2G AGO does not have any beacon Previous
HW-15770 2221808 bcm4359-qwdi-driver: examine code, identify and fix buffer overflow issue Previous
HW-15937 2245295 BCM4359: AGO: match hostapd config parameters Previous
HW-16266 2497367 wpa_cli-2.5 scan ssid hexstring will start an active scan to find network with SSID=hexstring. This is useful to display the hidden SSID. Previous
HW-16960 2581541 BCM4359: System Test 2 AP with 1 STA, TXFAIL failure on BCM2 interface Previous
HW-17527 2645676 Add pthread id for bcm4359 dhd print New
HW-17541 2646392 BCM4359: escan results: do not reallocate memory if the reported Bssid has already been found New
HW-17660 2650219 BC4359: Repeating the Wifi scenario AP+AP -> AGO+AGO without remounting the driver fails New
HW-17663 2650865 Broadcom 4359 fails mandatory AP mode test N-4.2.22, low throughput step 6 New
HW-17748 2655741 BCM4350: Failed to set vendor IE with the IE length EF and FF New

Technical support

To obtain technical support for any QNX product, visit the Support area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.