Commit 2c8d4d2a authored by Guido Gunther's avatar Guido Gunther
Browse files

Initial commit

Based on RS9116.NB0.NL.LNX.PURISM_FW_UPGRADE.1.0.5/
parents
Steps
-----
Release: RS9116.NB0.NL.LNX.PURISM_FW_UPGRADE.1.0.5.tgz
1) untar the release
2) goto 'RS9116.NB0.NL.LNX.PURISM_FW_UPGRADE.1.0.5/rsi' folder and do "make".
3) Keep firmware file which is in "RS9116.NB0.NL.LNX.PURISM_FW_UPGRADE.1.0.5/Firmware" in /lib/firmware/.
4) Insert modules as below
-> insmod rsi_91x.ko dev_oper_mode=13 rsi_zone_enabled=1 feature_bitmap_9116=1 # This is for wlan sta + BT
-> insmod rsi_usb.ko # If interface is USB
or
-> insmod rsi_sdio.ko sdio_clock=<clk_val> # If interface is SDIO
Note: Here "clk_val" is between 1 to 50 (in MHz).
Suggesting to keep low sdio_clock in case of embedded boards.
5) Check dmesg logs, If firmware upgrading or not. Below is the capture log while firmware upgrade is happening.
--- log ---
rsi_91x: rsi_probe: Initialized os intf ops
rsi_91x: rsi_hal_device_init: oper_mode = 13, coex_mode = 2
rsi_91x: rsi_load_firmware: Loading file RS9116_NLINK_WLAN_BT_IMAGE.rps
rsi_91x: FW Length = 314880 bytes
rsi_91x: ================================================
rsi_91x: ================ RSI Version Info ==============
rsi_91x: ================================================
rsi_91x: FW Version : 1.0.5
rsi_91x: Driver Version : RS9116_FW_UPGRADE.1.0.5_PURISM
rsi_91x: Operating mode : 13 [Wi-Fi STA + BT DUAL]
rsi_91x: Firmware file : RS9116_NLINK_WLAN_BT_IMAGE.rps
rsi_91x: ================================================
rsi_91x: rsi_check_crc: CRC_CHECK failed
rsi_91x: Burn Command Pass.. Upgrading the firmware
rsi_91x: Firmware upgradation Done ..... Waiting for Card ready
rsi_91x: ***** Loading Firmware from Flash *****
rsi_91x: ***** Loaded Firmware to RAM *****
usbcore: registered new interface driver RSI-USB WLAN
common dev config params : (length = 48)
20 00 28 00 00 00 00 00 00 00 00 00 00 00 00 00
00 02 00 0f 00 fe 2e e7 00 0d 00 00 00 01 01 02
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
rsi_91x: HCI module init done...
rsi_91x: RSI HCI DEVICE "hci0" open
rsi_91x: Max Stations Allowed = 1
IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
Description:
============
This package contains Redpine open source driver (rsi) package for 9116 Chipset.
This file gives the instruction to load Firmware file to flash, build and install the driver.
For instructions on complete usage of the driver and module,
please refer RSI_OpenSource_Driver_TRM.pdf in documents folder.
Features Supported:
===================
* Wi-Fi Station Mode
* 802.11 Legacy Power save
* 802.11 UAPSD
* Hardware connection monitor
* Back ground scan and roaming
* 802.11d Regulatory
* Wi-Fi AP Mode
* WoWLAN
* Wi-Fi Direct mode
* BT-EDR mode
* BT-LE mode
* Wi-Fi BT Coex mode
* ZIGB end device mode
* Wi-Fi ZIGB end device coex mode
* ZIGB coordinator mode
* ZIGB router mode
Package:
========
Driver : rsi [Source code]
Firmware : RS9116_NLINK_WLAN_BT_IMAGE.rps [Wi-Fi Station + BT Classic + BT LE or BT alone mode]
Release Notes : Change log of the releases
README : Loading Firmware to Flash, Build, Install and Usage guide.
Build:
======
* Copy relevant firmware file(*.rps) to /lib/firmware.
* To build driver from kernel source:
-> copy the driver to <kernel_source_path>/drivers/net/wireless
-> Move Makefile to Makefile_local
-> Move Makefile_ker to Makefile
-> Give 'make menuconfig' from kernel source
$ make menuconfig
-> Go to 'Device Drivers -> Network device support -> Wireless LAN'
-> Select 'Redpine Signals Inc devices'
-> Select required interface (SDIO/USB).
-> Select CONFIG_RSI_COEX_MODE option for Wi-Fi + BT Coex mode.
-> Select CONFIG_RSI_PURISM to disable FW upgrade feature in driver.
-> Build driver using below commands
$ make SUBDIRS=drivers/net/wireless/rsi
* To build driver locally:
-> Edit Makefile and configure option as below:
-> Uncomment 'CONFIG_HW_SCAN_OFFLOAD=y' to use Hardware scan offload feature.
By default this flag is enabled. It is recommened not to comment this flag
[Particularly if you want to use back ground scanning and roaming feature].
-> Uncomment 'CONFIG_CARACALLA_BOARD=y' if you are working on Dell Caracalla
board. By default 'EXTRA_CFLAGS += -DPLATFORM_X86' is enabled. For embedded
platforms please comment this flag.
-> Uncomment 'CONFIG_RSI_PURISM=y' if you want to stop FW upgrade feature.
-> Uncomment 'CONFIG_RSI_WOW=y' if you want to use Wake-on-WLAN feature.
-> Uncomment 'CONFIG_RSI_P2P=y' if you want to use Wi-Fi direct (p2p) mode.
-> Uncomment 'CONFIG_RSI_BT_ALONE=y' in Makefile to run BT alone (classic/LE) mode.
-> Uncomment 'CONFIG_RSI_MULTI_MODE=y' in Makefile to enable multiple opermodes support
in driver.
-> Uncomment 'CONFIG_RSI_COEX_MODE=y' in Makefile to run Wi-Fi + BT Coex mode or
Wi-Fi + ZigB end device coex mode.
-> Uncomment 'CONFIG_RS9116_FLASH_MODE=y' in Makefile to enable FLASH based FW load for 9116 chip.
-> Uncomment 'CONFIG_RSI_NO_SDIO_MULTIBLOCK=y' if your platform's SDIO host controller
does not support multiblock mode. Do not uncomment this if you use USB interface.
-> Build driver using 'make'
$ make
* Binaries prepared:
rsi_91x.ko, rsi_usb.ko and rsi_sdio.ko
Install:
========
* insmod rsi_91x.ko rsi_zone_enabled=0x1f dev_oper_mode=13
where
bit 0 - error zone
bit 1 - info zone (generic debug messages)
bit 2 - init zone
bit 3 - mgmt tx zone
bit 4 - mgmt rx zone
bit 5 - data tx zone
bit 6 - data rx zone
bit 7 - fsm zone
bit 8 - isr zone
To enable error and info zone use below command:
$ insmod rsi_91x.ko rsi_zone_enabled=0x3 dev_oper_mode=<val>
or
To use multiple modules with multiple opermodes, use below command:
$ insmod rsi_91x.ko rsi_zone_enabled=0x3 dev_oper_mode=<val1>,<val2>,<val3>,<val4>,<val5> # Max support for mulltiple dev_oper_modes for multiple modules are 5.
where val:
13 - Wi-Fi station + BT dual mode
14 - Wi-Fi AP + BT dual mode
* device operating mode value can be found in the below 'sysfs' entries:
$ cat /sys/module/rsi_sdio/parameters/dev_oper_mode
13
$ cat /sys/module/rsi_usb/parameters/dev_oper_mode
14
* If any invalid mode is given, the default mode 13 (Wi-Fi sta + BT dual mode) is used.
* insmod rsi_usb.ko
or
* insmod rsi_sdio.ko
While using SDIO interface, To change SDIO clock, User can give their board specific SDIO clock using below command
$ insmod rsi_91x.ko rsi_zone_enabled=0x3 dev_oper_mode=13
$ insmod rsi_sdio.ko sdio_clock=25 # sdio_clock is in the range from 1 to 50.
For wlan_disable(Flight mode), user can enable through module_param while inserting modules. It will be disabled by default.
$ insmod rsi_91x.ko rsi_zone_enabled=0x1 dev_oper_mode=13 feature_bitmap_9116=1
$ insmod rsi_sdio.ko
Remove:
=======
* rmmod rsi_usb
or
* rmmod rsi_sdio
* rmmod rsi_91x
Station Mode
============
* Use wpa_supplicant version 2.6 or above to verify the station connnectivity
* To use stand-alone station mode, add below line in wpa_supplicant configuration
file
p2p_disabled=1
AP Mode
=======
* Run start_ap.sh script in scripts folder to start AP
Configure:
==========
* Use iwconfig or iw to configure different parameters in device.
* Check below sections for individual commands usage
Powersave configuration
=======================
* Powersave can be enabled or disable from command line using iwconfig / iw.
* Use below commad to enable power save
$> iwconfig <intf_name> power on
* Use below command to disable power save
$> iwconfig <intf_name> power off
Background scanning:
====================
Background scanning is not directly supported in mac80211. Hence this feature
is supported in rsi driver through debugfs.
Firmware bgcan alone does not work for roaming. Hence it should be enable with
supplicant bgscan.
* To verify the bgscan status and parameters
$> cat /sys/kernel/debug/phy<X>/bgscan
* To enable back ground scan and configure its parameters from debugfs:
$> echo 1 10 10 20 20 100 1 3 1 6 11 > /sys/kernel/debug/phy<X>/bgscan
1 - Enable background scan.
10 - BGscan threshold (in dBM). This is the upper RSSI threshold.
If the signal strength of connected beacon is less than this
threshold at bgscan interval bgscan will be performed otherwise
not performed. To always do bgscan this value can be given 0.
10 - RSSI tolerence threshold used in roaming. If the difference between
the current RSSI value of the connected Access Point and the RSSI
value of the Access Point from the previous background scan is greater
than the RSSI Tolerance Threshold, then the module performs a
background scan. Assigning a large value to this field will eliminate
this method of triggering background scans.
20 - Periodicity (in seconds). This is the back ground scan interval.
Setting this value to 0 will disable the background scan
20 - active scan duraiton (in msecs). Active scan duration in each channel.
Max value is 255ms.
100 - passive scan duration (in msecs). Passive scan duration in DFS channels.
Max value is 255ms.
1 - two probe enable (directed and undirected probe alternates). 0 indicates
sending only broadcast probe.
3 - number of background scan channels. Max channels supported are 24.
1,6,11 - list of channels
* To enable all valid channels in the current regulatory domain, configure 0 in num of channel field
$> echo 1 10 10 20 20 100 0 > /sys/kernel/debug/phy<X>/bgscan
* To disable back ground scan from debugs:
$> echo 0 > /sys/kernel/debug/phy<X>/bgscan
* For checking the list of bgscan channels configured to device use below command
$> cat /sys/kernel/debug/phy<X>/bgscan
This will display the list of bgscan channels configured to device with DFS indication also
Antenna Selection
=================
To select external antenna use the below command
$> iw phy <phyX> set antenna 1 0
To move back to internal antenna
$> iw phy <phyX> set antenna 0 0
Note: Make sure you put interface down before setting antenna and interface up after setting the antenna.
Country Setting
===============
To set a country use below command
$> iw reg set <country_code>
Eg: iw reg set IN (For India)
To check the current regulatory domain
$> iw reg get
Software RF-Kill verification
=============================
* rfkill package needs to be installed to verify software rfkill
* Use below command to list the wireless interfaces in the system
$> rfkill list
* Use below command to block an interface
$> rfkill block <interface_number_listed_in_rfkill_list>
* Use below command to unblock an interface
$> rfkill unblock <interface_number_listed_in_rfkill_list>
Release : RS9116.NB0.NL.LNX.PURISM_FW_UPGRADE.1.0.5
Date : 10-Dec-2018
_______________________________________________________________
Copyright (C) Redpine Signals, Inc 2018
_______________________________________________________________
Release Status:
===================
Test (X)
Alpha ( )
Beta ( )
Production ( )
________________________________________________________________
Supported Hardware:
=======================
RS9116-NB0-XXX Modules With USB/SDIO Interface
Supported Platform
=======================
X86-32, X86-64, Arm-32, Arm-64
Supported Software:
=======================
Kernel versions from 3.18 to 4.19.0.rc1+
________________________________________________________________
=========================================================
Release PURISM_FW_UPGRADE.1.0.5
=========================================================
--------------------------
Change Log V1.0.5
--------------------------
--------------------------
WLAN
--------------------------
WLAN New Features:
-----------------------------------------
1) Wireless Disable Feature Added
WLAN Bug Fixes:
-------------------
1) Fix to improve WIFI data traffic using Multiple Queues.
2) Fix for BGSCAN simple not working
3) Fix for hidden SSID connection failure
WLAN Limitations/Features NOT Supported:
----------------------------------------
---------------------------
BT
---------------------------
BT New Features:
-----------------------------------------
BT Bug fixes
-----------------------------------------
1) Fix for BTLE connection failure.
2) Fix for BT HID interface failures.
BT Limitations/Features NOT Supported:
----------------------------------------
1. To connect multiple BT slaves, connection should be initiated from rsi module.
2. In coex mode, BT file transfer fails at times with certain mobiles.
---------------------------
ZIGB
---------------------------
ZIGB New Features:
-----------------------------------------
None
ZIGB Bug fixes
-----------------------------------------
ZIGB Limitations/Features NOT Supported:
----------------------------------------
Release : RS9116.NB0.NL.LNX.PURISM_FW_UPGRADE.1.0.4
Date : 26-OCT-2018
_______________________________________________________________
Copyright (C) Redpine Signals, Inc 2018
_______________________________________________________________
Release Status:
===================
Test (X)
Alpha ( )
Beta ( )
Production ( )
Driver SVN tag version : Release_PURISM_FW_UPGRADE.1.0.4
Firmware SVN version : Release_1.0.4
________________________________________________________________
Supported Hardware:
=======================
RS9116-NB0-XXX Modules With USB/SDIO Interface
Supported Platform
=======================
X86-32, X86-64
Supported Software:
=======================
Kernel versions from 3.18 to 4.18.0.rc1+
________________________________________________________________
=========================================================
Release PURISM_FW_UPGRADE.1.0.4
=========================================================
--------------------------
Change Log V1.0.4
--------------------------
--------------------------
WLAN
--------------------------
WLAN New Features:
-----------------------------------------
WLAN Bug Fixes:
-------------------
None
WLAN Limitations/Features NOT Supported:
----------------------------------------
---------------------------
BT
---------------------------
BT New Features:
-----------------------------------------
BT Bug fixes
-----------------------------------------
None
BT Limitations/Features NOT Supported:
----------------------------------------
1. To connect multiple BT slaves, connection should be initiated from rsi module.
2. In coex mode, BT file transfer fails at times with certain mobiles.
---------------------------
ZIGB
---------------------------
ZIGB New Features:
-----------------------------------------
None
ZIGB Bug fixes
-----------------------------------------
ZIGB Limitations/Features NOT Supported:
----------------------------------------
config WLAN_VENDOR_RSI
bool "Redpine Signals Inc devices"
default y
---help---
If you have a wireless card belonging to this class, say Y.
Note that the answer to this question doesn't directly affect the
kernel: saying N will just cause the configurator to skip all
the questions about cards. If you say Y, you will be asked for
your specific card in the following questions.
if WLAN_VENDOR_RSI
config RSI_91X
tristate "Redpine Signals Inc 91x WLAN driver support"
depends on MAC80211
---help---
This option enabes support for RSI 1x1 devices.
Select M (recommended), if you have a RSI 1x1 wireless module.
config RSI_DEBUGFS
bool "Redpine Signals Inc debug support"
depends on RSI_91X
default y
---help---
Say Y, if you would like to enable debug support. This option
creates debugfs entries.
config RSI_SDIO
tristate "Redpine Signals SDIO bus support"
depends on MMC && RSI_91X
default m
---help---
This option enables the SDIO bus support in rsi drivers.
Select M (recommended), if you have a RSI 1x1 wireless module.
config RSI_USB
tristate "Redpine Signals USB bus support"
depends on USB && RSI_91X
default m
---help---
This option enables the USB bus support in rsi drivers.
Select M (recommended), if you have a RSI 1x1 wireless module.
config RSI_BT_ALONE
bool "Redpine Signals BT alone (classic/LE) mode support"
depends on RSI_91X
default n
---help---
This option enables the BT classic alone upport in rsi drivers.
Say Y, if you want to use this feature.
config RSI_COEX_MODE
bool "Redpine Signals Wi-Fi BT Coex support"
depends on RSI_91X
default n
---help---
This option enables the Wi-Fi BT coex support in rsi drivers.
Select Y, if you have to use this feature.
config RSI_WOW
bool "Redpine Signals WoWLAN support"
depends on RSI_91X
default n
---help---
This option enables the WoWLAN support.
Say Y if you want to use this feature.
config RSI_P2P
bool "Redpine Signals Wi-Fi Direct support"
depends on RSI_91X
default n
---help---
This option enables the Wi-Fi Direct support in rsi drivers.
Select Y, if you have to use this feature.
config HW_SCAN_OFFLOAD
bool "Redpine Signals Hardware scan offload feature"
depends on RSI_91X
default n
---help---
This option enables the hardware scan offload option in rsi drivers.
Select Y, if you have to use this feature.
config CARACALLA_BOARD
bool "Redpine device support on Caracalla board"
depends on RSI_91X
default n
---help---
This option is used to support Caracalla board with RSI driver.
Select Y, if you have to use this support.
config RSI_ZIGB
bool "Redpine device support on Zigbee"
depends on RSI_91X && RSI_COEX_MODE
default n
---help---
This option is used to support Zigbee with RSI driver.
Select Y, if you have to use this support.
config RS9116_FLASH_MODE
bool "Redpine Signals RS9116 chip Flash mode FW load support"
depends on RSI_91X && RSI_COEX_MODE
default n
---help---
This option enables the RS9116 chip Flash mode FW load support.
Say Y if you want to use this feature.
config RSI_PURISM
bool "Redpine Signals PURISM FW support"
depends on RSI_91X && RSI_COEX_MODE
default n
---help---
This option enables the PURISM FW support.
Say Y if you want to use this feature.
endif # WLAN_VENDOR_RSI
#/*
# Copyright (c) 2017 Redpine Signals Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS