# Software

Source: [https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html](https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html)

The following table lists the source code location of components for software with the
            ath11k driver:

| Component | Source code location |
| --- | --- |
| mac80211 | net/mac80211 |
| ath11k driver | <ul class="ul" id="bvc1569159747557__ul_jt5_z41_mcc_navyanka_08-22-24-1616-29-903"><br>                                <li class="li"><span class="ph filepath">drivers/net/wireless/ath/ath11k</span></li><br><br>                                <li class="li"><a href="https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/tree/drivers/net/wireless/ath/ath11k" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/tree/drivers/net/wireless/ath/ath11k')">https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/tree/drivers/net/wireless/ath/ath11k</a></li><br><br>                            </ul> |
| wpa\_supplicant | source: SRC\_URI =<br>                                "git://w1.fi/hostap.git;protocol=https;branch=main" |
| Supplicant configuration file | sources/mdm-init/upstream |

For more information about ath11k, see: 
- ath11k: [https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/](https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/)
- mac80211: [https://wireless.wiki.kernel.org/en/developers/documentation/mac80211](https://wireless.wiki.kernel.org/en/developers/documentation/mac80211)
- cfg80211: [https://wireless.wiki.kernel.org/en/developers/documentation/cfg80211](https://wireless.wiki.kernel.org/en/developers/documentation/cfg80211)

## CLD driver

Source: [https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html](https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html)

By default, Qualcomm Linux enables WLAN functionality through the **ath11k WLAN                    driver** across all chipsets. However, in **RB3 Gen 2**, you have the
                option to use the **Convergence Linux Driver (CLD)**, which offers value-added
                features such as **Wi-Fi Direct mode** and **4K QAM**.

The following table lists the source code location of components for software with
                the CLD driver:

| Component | Source code location |
| --- | --- |
| Wi-Fi subsystem platform driver (icnss) | sources/wlan/platform/ |
| Qualcomm Wi-Fi host driver | <ul class="ul" id="software-cld-driver__ul_ypp_kkc_mcc_navyanka_08-22-24-2217-37-642"><br>                                        <li class="li"><span class="ph filepath">sources/wlan/qcacld-3.0</span></li><br><br>                                        <li class="li"><span class="ph filepath">sources/wlan/qca-wifi-host-cmn</span></li><br><br>                                    </ul> |
| wpa\_supplicant | sources/wlan/wpa\_supplicant\_8 |
| Supplicant configuration file | sources/mdm-init/wlan\_qcm6490/ |

To debug any issues related to the CLD driver, see [Logs for CLD driver](https://docs.qualcomm.com/doc/80-70015-14/topic/report_a_w_fi_issue_to_qualcomm.html#debug-cld-driver).

### Set WLAN MAC address in software with CLD driver

Source: [https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html](https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html)

### About this task

Consider the following points about the WLAN MAC address:

- By default, the factory writes the WLAN MAC address in the OTP memory of the
                    network card.
- You can modify the MAC address, if required using the following procedure. The
                    MAC address that you set persists until a reboot or the next power cycle. It
                    takes precedence over the factory-set MAC address stored in OTP memory.
- If no factory-set MAC address is available, the software generates a random MAC
                    address during each boot cycle.

Before you begin, ensure that the device is connected to the host over UART as
                described in [Connect to a UART shell](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-254/how_to.html#connect-to-a-uart-shell).

To set a unique WLAN MAC address in software with a CLD driver, perform the following
                steps in the debug UART serial console:

### Procedure

1. Allow read/write access by running the following command:
                
mount -o rw,remount /Copy to clipboard
2. Create a wlan\_mac.bin file in the
                        /lib/firmware/wlan/qca\_cld/ directory by running the
                    following commands:
                
cd /lib/firmware/wlan/qca_cld/Copy to clipboard

Note: There is no default
                            wlan\_mac.bin file.
3. Open the wlan\_mac.bin file in a text editor.
                
For example, to open the wlan\_mac.bin file in VI editor,
                        run the following
                        command:

        vi /lib/firmware/wlan/qca_cld/wlan_mac.binCopy to clipboard
4. Enter the MAC address in the wlan\_mac.bin file in the
                    following format:
                
Intf0MacAddress=<IP_0>
                            Intf1MacAddress=<IP_1>
                            Intf2MacAddress=<IP_2>
                            Intf3MacAddress=<IP_3>
                            ENDCopy to clipboard

For example,

        Intf0MacAddress=000AF58989FF
                                Intf1MacAddress=000AF58989FE
                                Intf2MacAddress=000AF58989FD
                                Intf3MacAddress=000AF58989FC
                                ENDCopy to clipboard
5. Save the wlan\_mac.bin file.
6. Get read/write/executable permission for the wlan\_mac.bin
                    file by running the following command:
                
chmod 777 wlan_mac.binCopy to clipboard

![](data:image/png;base64,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)
7. Add the `read_mac_addr_from_mac_file=1` INI parameter in the
                /lib/firmware/wlan/qca\_cld/WCNSS\_qcom\_cfg.ini file. 
            
For more information about updating the INI parameter, see [Customize Wi-Fi parameters in software with CLD driver](https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html#son1569159700009).
8. Reboot the device.

### Customize Wi-Fi parameters in software with CLD driver

Source: [https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html](https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html)

### About this task

You can customize the CLD Wi-Fi host driver with various configurations using the
          `WCNSS_qcom_cfg.ini` file.

The Wi-Fi host driver reads this INI file during its initialization.

Any change made to the INI file is reflected only after the device reboot. The INI file
        used by the Wi-Fi host driver is located in the
          /lib/firmware/wlan/qca\_cld/WCNSS\_qcom\_cfg.ini path.

To customize the Wi-Fi parameters as per your requirements, perform the following
          steps:
Note: Ensure that you enable SSH by following the steps
            mentioned in [Use SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-254/how_to.html#use-ssh).

### Procedure

1. Run the SSH using the following command:
        
ssh root@<device_IP_address>Copy to clipboard

For example, if the IP address of the device is `192.168.1.22`, run the
            following
              command:

        ssh root@192.168.1.22Copy to clipboard

        mount -o remount rw /Copy to clipboard

Note: Ensure that the RB3 Gen 2 device and the peer client device are
              in the Wi-Fi vicinity.
2. To pull the default `WCNSS_qcom_cfg.ini` file from the device, run the
          following commands:
        
scp -r root@192.168.1.22:/lib/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini .Copy to clipboard
3. Modify the `WCNSS_qcom_cfg.ini` file.
4. To push the `WCNSS_qcom_cfg.ini` file to the device, run the following
          commands:
        
scp -r WCNSS_qcom_cfg.ini  root@192.168.1.22:/lib/firmware/wlan/qca_cld
        reboot
        Copy to clipboard
5. Power cycle the device. 
        
The information of all the INI configurations is located at
            sources/wlan/qcacld-3.0/core/hdd/inc/hdd\_config.h. Use the
          following configurations for testing:
    - `gDot11Mode=8` for 11ac only mode support.
    - `gEnableBmps=0` to disable beacon mode power save (bmps).
    - `gEnableDFSChnlScan=0` to avoid scanning the DFS channel.

### Switch to CLD driver

Source: [https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html](https://docs.qualcomm.com/doc/80-70015-14/topic/Check_WLAN_host_and_SS_platform_driver_source_codes.html)

Note: The following step is applicable only when the Qualcomm RB3 Gen 2 Development Kit
                has a WCN6750 Wi-Fi chipset.

To switch from at11k to CLD driver, use the
                following two patches.

- Apply the following patch, for which the source file is at
                            sources/wlan/wlan-devicetree:

        diff --git a/qcm6490-wlan-idp.dtsi b/qcm6490-wlan-idp.dtsi
        index 5a50eda..bb15319 100644
        --- a/qcm6490-wlan-idp.dtsi
        +++ b/qcm6490-wlan-idp.dtsi
        @@ -60,7 +60,6 @@
         		qcom,vdd-1.3-rfa-config = <1256000 1500000 0 0 0>;
         		qcom,smem-states = <&wlan_smp2p_out 0>;
         		qcom,smem-state-names = "wlan-smp2p-out";
        -		status = "disabled";
         
         		icnss_cdev_apss: qcom,icnss_cdev1 {
         				#cooling-cells = <2>;
        diff --git a/qcm6490-wlan-rb3.dtsi b/qcm6490-wlan-rb3.dtsi
        index a716fa2..57f5637 100644
        --- a/qcm6490-wlan-rb3.dtsi
        +++ b/qcm6490-wlan-rb3.dtsi
        @@ -60,7 +60,6 @@
         		qcom,vdd-1.3-rfa-config = <1256000 1500000 0 0 0>;
         		qcom,smem-states = <&wlan_smp2p_out 0>;
         		qcom,smem-state-names = "wlan-smp2p-out";
        -		status = "disabled";
         
         		icnss_cdev_apss: qcom,icnss_cdev1 {
         				#cooling-cells = <2>;
        diff --git a/qcm6490-wlan-upstream.dtsi b/qcm6490-wlan-upstream.dtsi
        index b7f219a..7f81991 100644
        --- a/qcm6490-wlan-upstream.dtsi
        +++ b/qcm6490-wlan-upstream.dtsi
        @@ -4,10 +4,5 @@
          */
         &wifi {
                memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>;
        -       status = "okay";
        -};
        -
        -&remoteproc_wpss {
        -       firmware-name = "ath11k/WCN6750/hw1.0/wpss.mdt";
        -       status = "okay";
        +       status = "disabled";
         };
        diff --git a/qcs5430-wlan-rb3.dtsi b/qcs5430-wlan-rb3.dtsi
        index 0dab35c..f50a644 100644
        --- a/qcs5430-wlan-rb3.dtsi
        +++ b/qcs5430-wlan-rb3.dtsi
        @@ -60,7 +60,6 @@
         		qcom,vdd-1.3-rfa-config = <1256000 1500000 0 0 0>;
         		qcom,smem-states = <&wlan_smp2p_out 0>;
         		qcom,smem-state-names = "wlan-smp2p-out";
        -		status = "disabled";
         
         		icnss_cdev_apss: qcom,icnss_cdev1 {
         				#cooling-cells = <2>;
        diff --git a/qcs5430-wlan-upstream.dtsi b/qcs5430-wlan-upstream.dtsi
        index b7f219a..7f81991 100644
        --- a/qcs5430-wlan-upstream.dtsi
        +++ b/qcs5430-wlan-upstream.dtsi
        @@ -4,10 +4,5 @@
          */
         &wifi {
                memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>;
        -       status = "okay";
        -};
        -
        -&remoteproc_wpss {
        -       firmware-name = "ath11k/WCN6750/hw1.0/wpss.mdt";
        -       status = "okay";
        +       status = "disabled";
         };
        Copy to clipboard
- Revert the following patch, for which the source file is at
                            sources/mdm-init/wlan\_qcm6490

        diff --git a/wlan_qcm6490/wlan b/wlan_qcm6490/wlan
        index 54059ee..d23fdfd 100644
        --- a/wlan_qcm6490/wlan
        +++ b/wlan_qcm6490/wlan
        @@ -32,7 +32,11 @@
        # SPDX-License-Identifier: BSD-3-Clause-Clear
        export MODULE_BASE=/lib/modules/`uname -r`
        -export MODNAME=wlan
        +#To load qcacld driver make MODNAME=wlan
        +#export MODNAME=wlan
        +
        +#MODNAME=ath11k_ahb indicates upstream ath11k driver is being loaded
        +export MODNAME=ath11k_ahb
        export RETRY_LIMIT=20
        HELP="Usage $0 {start | stop | restart} <ap | sta,ap>"
        DUMP_TO_KMSG=/dev/kmsg
        @@ -65,7 +69,6 @@wpa_supplicant -Dnl80211 -iwlan0 -ddd -c /etc/wpa_supplicant.conf -t -f /tmp/wpa_supplicant-log.txt &
        -	dhcpcd wlan0
                 cnt=0
                 while ! [ -d /var/run/wpa_supplicant ]
        @@ -100,8 +103,9 @@
             stop)
                 echo "Stopping WLAN..." > $DUMP_TO_KMSGkillall wpa_supplicant
        -	killall dhcpcd
        -	rmmod $MODNAME
        +        if [ "$MODNAME" = "wlan" ]; then
        +            rmmod $MODNAME
        +        fi
                 ;;
             restart)Copy to clipboard

After applying the patches ensure that you recompile the entire image and flash it
            as described in the [Qualcomm Linux Build Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-254/introduction.html).

Last Published: Oct 14, 2024

[Previous Topic
Architecture](https://docs.qualcomm.com/bundle/publicresource/80-70015-14/topics/wlan_sw_overview.md) [Next Topic
Configure](https://docs.qualcomm.com/bundle/publicresource/80-70015-14/topics/Set_up_and_configure_WLAN_connection.md)