60-SIPT/60-2230C

Introduction

The 60 Series radio supports a feature called Antenna Adjust that can be used by OEMs to reduce the radio transmit power if needed to meet regulatory requirements.

This feature is intended for scenarios where an OEM uses an antenna with higher gain than the antennas used by Ezurio to obtain modular certifications. This feature can also be used in scenarios where an OEM platform with the 60 Series radio module is failing to meet regulatory requirements due to issues such as a high noise floor or other unrelated spurious emission that causes the device to exceed regulatory limits in some part of the band.

Implementation

The Antenna Adjust feature is implemented as a single 32-bit parameter that is divided into bit fields covering 5 channel groups as follows:

Bit Field Channel Group
3:0 1-14 (2.4G)
7:4 36-48 (UNII-1)
11:8 52-64 (UNII-2)
15:12 100-144 (UNII-2e)
19:16 149-165 (UNII-3)
31:20 Reserved (must be zero)

Each bit field specifies the amount of attenuation in dBm that is to be applied when transmitting on any channel in the corresponding channel group. The attenuation is unconditionally applied to all packets transmitted at all rates regardless of regulatory domain. However, the attenuation value has a lower limit which bounds the lowest possible radio power to approximately 1 dBm.

Note: It is not possible to increase the transmit power using this feature.

The Antenna Adjust parameter can be specified either in the device tree (preferred), or as a driver module parameter. Device tree configuration is significantly more resilient against end-user tampering and may be required in order to meet regulatory software security requirements. Module parameter configuration may be easier to use in some test scenarios. If the parameter is specified in both locations, the device tree configuration is used. If the parameter is not specified, then no attenuation is applied.

Note: If the parameter is specified but reserved bits are set, the driver will fail to load.

The dmesg log will contain a string indicating the Antenna Adjust value if it has been configured. This can be used to verify that it has been implemented correctly.

[ 3814.625386] ieee80211 phy0: Antenna gain adjustment in effect: 0x54321

Device Tree Configuration

Antenna Adjust is configured in the device tree node for the desired interface using a 32-bit UINT parameter called ant-gain-adjust.

Note: The compatible string must be set correctly as follows for each interface or the device tree node will not be used. In some cases, if an incorrect compatible string is specified, the driver may fail to load.

SDIO Example

&mmc1 {
    ...
    slot@0 {
        reg = <0>;
        ...
        wifi: wifi {
            compatible = "marvell,sd8997";
            ...
            ant-gain-adjust = <0x00054321>;
        };
    };
};

PCIE Example

&pcie {
    ...
    pcie@0 {
        reg = <0x0000 0 0 0 0>;
        #address-cells = <3>;
        #size-cells = <2>;
        ...
        wifi@1 {
            reg = <0x000000 0 0 0 0>;
            compatible = "pci1b4b,2b42";
            ...
            ant-gain-adjust = <0x00054321>;
        };
    };
};

USB/UART Example

&usb2 {
    #address-cells = <1>;
    #size-cells = <0>;
    ...
    wifi@2{
        compatible = "usb1286,204e";
        reg = <2>;
        ...
        ant-gain-adjust = <0x00054321>;
    };
};

USB/USB Example

&usb2 {
    #address-cells = <1>;
    #size-cells = <0>;
    ...
    st60@2{
        compatible = "usb1286,204e";
        reg = <2>;

        #address-cells = <2>;
        #size-cells = <0>;

        /* Wi-fi functionality is on Configuration 1, Interface 2 */
        wifi@2{
            compatible = "usbif1286,204e.config1.2";
            reg = <2 1>;
            ...
            ant-gain-adjust = <0x00054321>;
        };
    };
};

Module Parameter Configuration

Antenna Adjust can also be configured with a lrdmwl.ko module parameter. The module parameter is called ant_gain_adjust.

Example:

options lrdmwl ant_gain_adjust=0x00054321

Regulatory Testing Issues

The Lightweight Regulatory Utility (LRU) is used in conjunction with special manufacturing firmware to put the radio into various constant transmit modes at full power to verify compliance with regulatory limits. The LRU supports the Antenna Adjust feature using the Antenna Adjust configuration item within the LRU WiFi Configuration Menu.

Note: The manufacturing firmware does not support the Antenna Adjust driver configuration specified in either the device tree or module parameter. Antenna Adjust must be configured in the LRU WiFi Configuration Menu in order for it to be in effect when using the LRU.

There are two typical scenarios where the Antenna Adjust parameter will need to be set when using the LRU. The first is during initial transmit power testing either in development or at a certification laboratory when no Antenna Adjust attenuation limits have yet been determined. If testing shows that regulatory limits are exceeded, the Antenna Adjust configuration option can be set within the LRU WiFi Configuration Menu and the test repeated. Once testing is complete, the Antenna Adjust value that was necessary to pass regulatory testing must be configured in the device tree so it is in effect under normal operating conditions.

The second use case is when testing at a certification lab when there is already an Antenna Adjust value that is known to be required and is already configured in the device tree. That same value must be configured in the LRU WiFi Configuration Menu so it is in effect during testing and matches the attenuation level that will be in effect during normal operation.

Note: If Antenna Adjust is used in the LRU to pass regulatory testing that same value must subsequently be configured in the device tree for use during normal operation. Failure to do so will cause the platform to be in violation of regulatory limits.

See the Vendor Tools app note for details on tool usage.