From 6cd53f35ea7a13945510173af684914b707df3d0 Mon Sep 17 00:00:00 2001 From: John Klug Date: Fri, 2 Sep 2016 14:05:10 -0500 Subject: Add rs9113 bitbake layer --- recipes-kernel/rs9113/rs9113-1.3.0/kthread.patch | 34 ++++ recipes-kernel/rs9113/rs9113-1.3.0/mtcdt/defconfig | 14 ++ recipes-kernel/rs9113/rs9113-1.3.0/rs9113.default | 14 ++ recipes-kernel/rs9113/rs9113-1.3.0/rs9113.init | 64 ++++++++ .../rs9113/rs9113-1.3.0/rs9113_load_modules.sh | 153 ++++++++++++++++++ .../rs9113/rs9113-1.3.0/rs9113_remove_modules.sh | 29 ++++ recipes-kernel/rs9113/rs9113-1.4.3/mtcdt/defconfig | 12 ++ recipes-kernel/rs9113/rs9113-1.4.3/rs9113.default | 48 ++++++ recipes-kernel/rs9113/rs9113-1.4.3/rs9113.init | 93 +++++++++++ .../rs9113/rs9113-1.4.3/rs9113_load_modules.sh | 178 +++++++++++++++++++++ .../rs9113/rs9113-1.4.3/rs9113_remove_modules.sh | 29 ++++ recipes-kernel/rs9113/rs9113_1.3.0.bb | 59 +++++++ recipes-kernel/rs9113/rs9113_1.4.3.bb | 61 +++++++ 13 files changed, 788 insertions(+) create mode 100644 recipes-kernel/rs9113/rs9113-1.3.0/kthread.patch create mode 100644 recipes-kernel/rs9113/rs9113-1.3.0/mtcdt/defconfig create mode 100644 recipes-kernel/rs9113/rs9113-1.3.0/rs9113.default create mode 100755 recipes-kernel/rs9113/rs9113-1.3.0/rs9113.init create mode 100755 recipes-kernel/rs9113/rs9113-1.3.0/rs9113_load_modules.sh create mode 100755 recipes-kernel/rs9113/rs9113-1.3.0/rs9113_remove_modules.sh create mode 100644 recipes-kernel/rs9113/rs9113-1.4.3/mtcdt/defconfig create mode 100644 recipes-kernel/rs9113/rs9113-1.4.3/rs9113.default create mode 100755 recipes-kernel/rs9113/rs9113-1.4.3/rs9113.init create mode 100755 recipes-kernel/rs9113/rs9113-1.4.3/rs9113_load_modules.sh create mode 100755 recipes-kernel/rs9113/rs9113-1.4.3/rs9113_remove_modules.sh create mode 100644 recipes-kernel/rs9113/rs9113_1.3.0.bb create mode 100644 recipes-kernel/rs9113/rs9113_1.4.3.bb diff --git a/recipes-kernel/rs9113/rs9113-1.3.0/kthread.patch b/recipes-kernel/rs9113/rs9113-1.3.0/kthread.patch new file mode 100644 index 0000000..f802c38 --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.3.0/kthread.patch @@ -0,0 +1,34 @@ +diff -ruPN old/source/host/common_hal/osd/linux/onebox_thread.c new/source/host/common_hal/osd/linux/onebox_thread.c +--- old/source/host/common_hal/osd/linux/onebox_thread.c 2016-08-03 10:15:47.000000000 -0500 ++++ new/source/host/common_hal/osd/linux/onebox_thread.c 2016-08-03 12:10:00.000000000 -0500 +@@ -99,11 +99,12 @@ + atomic_inc(&handle->thread_done); + ONEBOX_DEBUG(ONEBOX_ZONE_INFO,(TEXT("In %s Before setting event\n"),__func__)); + rsi_set_event(&handle->thread_event); +- wait_for_completion(&handle->thread_complete); ++ //wait_for_completion(&handle->thread_complete); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) + //handle->thread_id = NULL; + kthread_stop(handle->thread_id); + #else ++ wait_for_completion(&handle->thread_complete); + handle->thread_id = 0; + #endif + #endif +diff -ruPN old/source/host/wlan/wlan_hal/osd_wlan/linux/onebox_wlan_osd_ops.c new/source/host/wlan/wlan_hal/osd_wlan/linux/onebox_wlan_osd_ops.c +--- old/source/host/wlan/wlan_hal/osd_wlan/linux/onebox_wlan_osd_ops.c 2016-08-03 10:15:48.000000000 -0500 ++++ new/source/host/wlan/wlan_hal/osd_wlan/linux/onebox_wlan_osd_ops.c 2016-08-03 12:10:00.000000000 -0500 +@@ -244,11 +244,12 @@ + atomic_inc(&w_adapter->txThreadDone); + ONEBOX_DEBUG(ONEBOX_ZONE_INFO,(TEXT("In %s Before setting event\n"),__func__)); + os_intf_ops->onebox_set_event(&(w_adapter->sdio_scheduler_event)); +- wait_for_completion(&w_adapter->txThreadComplete); ++ //wait_for_completion(&w_adapter->txThreadComplete); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) + //handle->thread_id = NULL; + kthread_stop(handle->thread_id); + #else ++ wait_for_completion(&w_adapter->txThreadComplete); + handle->thread_id = 0; + #endif + return ONEBOX_STATUS_SUCCESS; diff --git a/recipes-kernel/rs9113/rs9113-1.3.0/mtcdt/defconfig b/recipes-kernel/rs9113/rs9113-1.3.0/mtcdt/defconfig new file mode 100644 index 0000000..e8dd6a7 --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.3.0/mtcdt/defconfig @@ -0,0 +1,14 @@ +# +# Automatically generated by make menuconfig: don't edit +# +# CONFIG_SDIO is not set +CONFIG_USB=y +CONFIG_LINUX=y +# CONFIG_ANDROID is not set +ONEBOX_CONFIG_NL80211=y +# HOSTAPD_SUPPORT is not set +ENABLE_WLAN=y +ENABLE_BT=y +# ENABLE_ZIGB is not set +ONEBOX_DEBUG_ENABLE=y +# RSI_SDIO_MULTI_BLOCK_SUPPORT is not set diff --git a/recipes-kernel/rs9113/rs9113-1.3.0/rs9113.default b/recipes-kernel/rs9113/rs9113-1.3.0/rs9113.default new file mode 100644 index 0000000..4b4a62b --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.3.0/rs9113.default @@ -0,0 +1,14 @@ +# COEX_MODE options: +# 1 WLAN STATION /WIFI-Direct/WLAN PER +# 2 WLAN ACCESS POINT(including muliple APs on different vaps) +# 3 WLAN ACCESS POINT + STATION MODE(on multiple vaps) +# 4 BT CLASSIC MODE/BT CLASSIC PER MODE +# 5 WLAN STATION + BT CLASSIC MODE +# 6 WLAN ACCESS POINT + BT CLASSIC MODE +# 8 BT LE MODE /BT LE PER MODE +# 9 WLAN STATION + BT LE MODE +# 12 BT CLASSIC + BT LE MODE +# 14 WLAN ACCESS POINT + BT CLASSIC MODE+ BT LE MODE +# +COEXISTENCE=6 + diff --git a/recipes-kernel/rs9113/rs9113-1.3.0/rs9113.init b/recipes-kernel/rs9113/rs9113-1.3.0/rs9113.init new file mode 100755 index 0000000..91ea057 --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.3.0/rs9113.init @@ -0,0 +1,64 @@ +#!/bin/bash +# Note that none of the INIT stuff below works in the current open-embedded. +### BEGIN INIT INFO +# Provides: rs9113 +# Required-Start: mts-io +# Default-Start: S +# Default-Stop: 0 6 +# X-Start-Before: networking +# Short-Description: load the rs9113 drivers +# Description: rs9113 drivers are used to provide access to Bluetooth +# and WiFi. +### END INIT INFO + +CONFIG=/etc/default/rs9113 + +[ -f $CONFIG ] || exit 1 + +. $CONFIG + +case "$1" in + start) + /usr/bin/logger -t "rs9113" -p info -s "Loading rs9113 modules" + /usr/sbin/rs9113_load_modules.sh $COEXISTENCE + RETVAL=$? + if [ $RETVAL -eq 0 ] ; then + echo "OK" + else + echo "FAIL" + fi + ;; + + stop) + /usr/bin/logger -t "rs9113" -p info -s "Unloading rs9113 modules" + /usr/sbin/rs9113_remove_modules.sh + RETVAL=$? + if [ $RETVAL -eq 0 ] ; then + echo "OK" + else + echo "FAIL" + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + status) + for dir in /sys/class/net/rpine[0-9]* ; do + if [[ -d ${dir} ]] ; then + echo Driver is loaded + exit 0 + fi + done + echo Driver is not loaded + exit 3 + ;; + *) + "Usage: $0 {start|stop|status|restart}" + exit 2 + ;; +esac + +exit 0 + diff --git a/recipes-kernel/rs9113/rs9113-1.3.0/rs9113_load_modules.sh b/recipes-kernel/rs9113/rs9113-1.3.0/rs9113_load_modules.sh new file mode 100755 index 0000000..0a16db0 --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.3.0/rs9113_load_modules.sh @@ -0,0 +1,153 @@ +#!/bin/bash + +if [ $# -ne 1 ]; then + echo "Usage: $(basename $0) COEX_MODE" + echo "" + echo "COEX_MODE options: + 1 WLAN STATION /WIFI-Direct/WLAN PER + 2 WLAN ACCESS POINT(including muliple APs on different vaps) + 3 WLAN ACCESS POINT + STATION MODE(on multiple vaps) + + 4 BT CLASSIC MODE/BT CLASSIC PER MODE + 5 WLAN STATION + BT CLASSIC MODE + 6 WLAN ACCESS POINT + BT CLASSIC MODE + 8 BT LE MODE /BT LE PER MODE + 9 WLAN STATION + BT LE MODE + 12 BT CLASSIC + BT LE MODE + 14 WLAN ACCESS POINT + BT CLASSIC MODE+ BT LE MODE + " + exit 1 +fi + +COEX_MODE=$1 + +cd /opt/rs9113 + +modprobe mac80211 +modprobe bluetooth + +insmod onebox_common_gpl.ko + +insmod wlan.ko +insmod wlan_wep.ko +insmod wlan_tkip.ko +insmod wlan_ccmp.ko +insmod wlan_acl.ko +insmod wlan_xauth.ko +insmod wlan_scan_sta.ko +insmod onebox_wlan_nongpl.ko +insmod onebox_wlan_gpl.ko + +#Power_mode type +# 0 - HIGH POWER MODE +# 1 - MEDIUM POWER MODE +# 2 - LOW POWER MODE +BT_RF_TX_POWER_MODE=0 +BT_RF_RX_POWER_MODE=0 + +PARAMS=$PARAMS" bt_rf_tx_power_mode=$BT_RF_TX_POWER_MODE" +PARAMS=$PARAMS" bt_rf_rx_power_mode=$BT_RF_RX_POWER_MODE" + +insmod onebox_bt_nongpl.ko $PARAMS +insmod onebox_bt_gpl.ko + +#Driver Mode 1 END-TO-END mode, +# 2 RF Evaluation Mode + +DRIVER_MODE=1 + +# COEX MODE: +# 1 WLAN STATION /WIFI-Direct/WLAN PER +# 2 WLAN ACCESS POINT(including muliple APs on different vaps) +# 3 WLAN ACCESS POINT + STATION MODE(on multiple vaps) + +# 4 BT CLASSIC MODE/BT CLASSIC PER MODE +# 5 WLAN STATION + BT CLASSIC MODE +# 6 WLAN ACCESS POINT + BT CLASSIC MODE +# 8 BT LE MODE /BT LE PER MODE +# 9 WLAN STATION + BT LE MODE +# 12 BT CLASSIC + BT LE MODE +# 14 WLAN ACCESS POINT + BT CLASSIC MODE+ BT LE MODE + +# 16 ZIGBEE MODE/ ZIGBEE PER MODE +# 17 WLAN STATION + ZIGBEE + +#COEX_MODE=3 + +#To enable TA-level SDIO aggregation set 1 else set 0 to disable it. +TA_AGGR=4 + +#Disable Firmware load set 1 to skip FW loading through Driver else set to 0. +SKIP_FW_LOAD=0 + +#FW Download Mode +# 1 - Full Flash mode with Secondary Boot Loader +# 2 - Full RAM mode with Secondary Boot Loader +# 3 - Flash + RAM mode with Secondary Boot Loader +# 4 - Firmware loading WITHOUT Secondary Boot Loader +# Recommended to use the default mode 1 +FW_LOAD_MODE=1 + +#ps_handshake_mode +# 1 - No hand shake Mode +# 2 - Packet hand shake Mode +# 3 - GPIO Hand shake Mode +###########Default is Packet handshake mode=2 +HANDSHAKE_MODE=2 + +#SDIO Clock speed +SDIO_CLOCK_SPEED=50000 + +#Antenna diversity enable +RSI_ANTENNA_DIVERSITY=0 + +#Antenna Selection +ANT_SEL_VAL=2 # 2 Internal Antenna Selection + # 3 External Antenna Selection + +####RF_POWER_MODE Selection + +# 0x00 For Both TX and RX High Power +# 0x11 For Both TX and RX Medium Power +# 0x22 For Both TX and RX LOW Power + +# 0x10 For High Power TX and Medium RX Power +# 0x20 For High Power TX and LOW RX Power + +# 0x01 For Medium TX and RX High Power +# 0x21 For Medium Power TX and LOW RX Power + +# 0x02 For Low Power TX and RX High Power +# 0x12 For LOW Power TX and Medium RX Power + + +WLAN_RF_PWR_MODE=0x00 +BT_RF_PWR_MODE=0x00 +ZIGB_RF_PWR_MODE=0x00 + +#COUNTRY Selection +# 0 World Domain +# 840 US Domain Maps to US Region +# 276 Germany Maps to EU Region +# 392 Japan Maps to Japan Region +SET_COUNTRY_CODE=0 + +PARAMS=" driver_mode=$DRIVER_MODE" +PARAMS=$PARAMS" firmware_path=/opt/rs9113/firmware/" +PARAMS=$PARAMS" onebox_zone_enabled=0x1" +PARAMS=$PARAMS" ta_aggr=$TA_AGGR" +PARAMS=$PARAMS" skip_fw_load=$SKIP_FW_LOAD" +PARAMS=$PARAMS" fw_load_mode=$FW_LOAD_MODE" +PARAMS=$PARAMS" sdio_clock=$SDIO_CLOCK_SPEED" +PARAMS=$PARAMS" enable_antenna_diversity=$RSI_ANTENNA_DIVERSITY" +PARAMS=$PARAMS" coex_mode=$COEX_MODE" +#PARAMS=$PARAMS" ps_handshake_mode=$HANDSHAKE_MODE" +PARAMS=$PARAMS" obm_ant_sel_val=$ANT_SEL_VAL" +PARAMS=$PARAMS" wlan_rf_power_mode=$WLAN_RF_PWR_MODE" +PARAMS=$PARAMS" bt_rf_power_mode=$BT_RF_PWR_MODE" +PARAMS=$PARAMS" zigb_rf_power_mode=$ZIGB_RF_PWR_MODE" +PARAMS=$PARAMS" country_code=$SET_COUNTRY_CODE" + +insmod onebox_nongpl.ko $PARAMS +insmod onebox_gpl.ko + diff --git a/recipes-kernel/rs9113/rs9113-1.3.0/rs9113_remove_modules.sh b/recipes-kernel/rs9113/rs9113-1.3.0/rs9113_remove_modules.sh new file mode 100755 index 0000000..bcd885a --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.3.0/rs9113_remove_modules.sh @@ -0,0 +1,29 @@ +killall -9 wpa_supplicant +killall -9 hostapd +rm -rf /var/run/wpa_supplicant/ +sleep 2 + +### COMMON HAL MODULES +rmmod onebox_gpl.ko +rmmod onebox_nongpl.ko + +###WLAN MODULES +rmmod onebox_wlan_gpl.ko +rmmod onebox_wlan_nongpl.ko +rmmod wlan_scan_sta.ko +rmmod wlan_xauth.ko +rmmod wlan_acl.ko +rmmod wlan_tkip.ko +rmmod wlan_ccmp.ko +rmmod wlan_wep.ko +rmmod wlan.ko + +###BT MODULES +rmmod onebox_bt_gpl.ko +rmmod onebox_bt_nongpl.ko + +###ZIGB MODULES +#rmmod onebox_zigb_gpl.ko +#rmmod onebox_zigb_nongpl.ko + +rmmod onebox_common_gpl.ko diff --git a/recipes-kernel/rs9113/rs9113-1.4.3/mtcdt/defconfig b/recipes-kernel/rs9113/rs9113-1.4.3/mtcdt/defconfig new file mode 100644 index 0000000..84437a6 --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.4.3/mtcdt/defconfig @@ -0,0 +1,12 @@ +# +# Automatically generated by make menuconfig: don't edit +# +ENABLE_USB=y +# ENABLE_SDIO is not set +CONFIG_LINUX=y +# CONFIG_ANDROID is not set +ONEBOX_CONFIG_NL80211=y +# HOSTAPD_SUPPORT is not set +ENABLE_WLAN=y +ENABLE_BT=y +# ENABLE_ZIGB is not set diff --git a/recipes-kernel/rs9113/rs9113-1.4.3/rs9113.default b/recipes-kernel/rs9113/rs9113-1.4.3/rs9113.default new file mode 100644 index 0000000..c05357d --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.4.3/rs9113.default @@ -0,0 +1,48 @@ +# Parameters for rs9113 driver +# +# Enable Antenna Diversity (1) +RSI_ANTENNA_DIVERSITY=0 + +# COEX_MODE options: +# 1 WLAN STATION /WIFI-Direct/WLAN PER +# 2 WLAN ACCESS POINT(including muliple APs on different vaps) +# 3 WLAN ACCESS POINT + STATION MODE(on multiple vaps) +# 4 BT CLASSIC MODE/BT CLASSIC PER MODE +# 6 WLAN ACCESS POINT + BT CLASSIC MODE +# 8 BT LE MODE /BT LE PER MODE +# 9 WLAN STATION + BT LE MODE +# 12 BT CLASSIC + BT LE MODE +# 14 WLAN ACCESS POINT + BT CLASSIC MODE+ BT LE MODE +COEX_MODE=6 + +# Power selection +# 0x00 - For Both TX and RX High Power +# 0x11 - For Both TX and RX Medium Power +# 0x22 - For Both TX and RX LOW Power +# 0x10 - For High Power TX and Medium RX Power +# 0x20 - For High Power TX and LOW RX Power +# 0x01 - For Medium TX and RX High Power +# 0x21 - For Medium Power TX and LOW RX Power +# 0x02 - For Low Power TX and RX High Power +# 0x12 - For LOW Power TX and Medium RX Power +WLAN_RF_PWR_MODE=0x00 +BT_RF_PWR_MODE=0x00 + +#Power_mode type +# 0 - HIGH POWER MODE +# 1 - MEDIUM POWER MODE +# 2 - LOW POWER MODE +BT_RF_TX_POWER_MODE=0 +BT_RF_RX_POWER_MODE=0 + +# Country Selection +# 0 World Domain +# 840 US Domain Maps to US Region +# 276 Germany Maps to EU Region +# 392 Japan Maps to Japan Region +# from ISO 3166-1 +SET_COUNTRY_CODE=0 + +# 2 – Select internal antenna +# 3 – Select external antenna +ANT_SEL_VAL=2 diff --git a/recipes-kernel/rs9113/rs9113-1.4.3/rs9113.init b/recipes-kernel/rs9113/rs9113-1.4.3/rs9113.init new file mode 100755 index 0000000..2351ae4 --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.4.3/rs9113.init @@ -0,0 +1,93 @@ +#!/bin/bash +# Note that none of the INIT stuff below works in the current open-embedded. +### BEGIN INIT INFO +# Provides: rs9113 +# Required-Start: mts-io +# Default-Start: S +# Default-Stop: 0 6 +# X-Start-Before: networking +# Short-Description: load the rs9113 drivers +# Description: rs9113 drivers are used to provide access to Bluetooth +# and WiFi. +### END INIT INFO + +CONFIG=/etc/default/rs9113 +MTS_IODIR=/sys/devices/platform/mts-io +RS9113_RESET=${MTS_IODIR}/wifi-bt-reset +RS9113_INT=${MTS_IODIR}/wifi-bt-int +RS9113_WKUP=${MTS_IODIR}/wifi-bt-lpwkup + +[ -f $CONFIG ] || exit 1 + +. $CONFIG + +case "$1" in + start) + # Reset the RS9113 chip is ready, and + # wait for it to settle. + if [ -f "$RS9113_RESET" ] ; then + echo 1 >$RS9113_RESET + usleep 100 + echo 0 >$RS9113_RESET + usleep 100 + echo 1 >$RS9113_RESET + N=1 + while [ $N -lt 20 ] ; do + INT=$(cat $RS9113_INT) + WKUP=$(cat $RS9113_WKUP) + if [ $INT -ne 1 -o $WKUP -ne 1 ] ; then + usleep 100 + else + break + fi + done + if [ $INT -ne 1 ] ; then + logger -t rs9113 -p error -s "$RS9113_INT is $INT" + fi + if [ $WKUP -ne 1 ] ; then + logger -t rs9113 -p error -s "$RS9113_WKUP is $WKUP" + fi + fi + /usr/bin/logger -t "rs9113" -p info -s "Loading rs9113 modules with COEX=$COEX_MODE and Country=$SET_COUNTRY_CODE" + /usr/sbin/rs9113_load_modules.sh $CONFIG + RETVAL=$? + if [ $RETVAL -eq 0 ] ; then + echo "OK" + else + echo "FAIL" + fi + ;; + + stop) + /usr/bin/logger -t "rs9113" -p info -s "Unloading rs9113 modules" + /usr/sbin/rs9113_remove_modules.sh + RETVAL=$? + if [ $RETVAL -eq 0 ] ; then + echo "OK" + else + echo "FAIL" + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + status) + for dir in /sys/class/net/rpine[0-9]* ; do + if [[ -d ${dir} ]] ; then + echo Driver is loaded + exit 0 + fi + done + echo Driver is not loaded + exit 3 + ;; + *) + "Usage: $0 {start|stop|status|restart}" + exit 2 + ;; +esac + +exit 0 + diff --git a/recipes-kernel/rs9113/rs9113-1.4.3/rs9113_load_modules.sh b/recipes-kernel/rs9113/rs9113-1.4.3/rs9113_load_modules.sh new file mode 100755 index 0000000..4f293dd --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.4.3/rs9113_load_modules.sh @@ -0,0 +1,178 @@ +#!/bin/bash +defaults=/etc/default/rs9113 +usage() +{ + echo "Configuration values:" + echo " COEX_MODE" + echo " RSI_ANTENNA_DIVERSITY" + echo " ANT_SEL_VAL" + echo " SET_COUNTRY_CODE" + echo " WLAN_RF_PWR_MODE" + echo " BT_RF_PWR_MODE" + echo " COEX_MODE" + echo " BT_RF_TX_POWER_MODE" + echo " BT_RF_RX_POWER_MODE" + echo "Usage: $(basename $0) [config file]" + echo "" + echo "Config file is typically + /etc/default/rs9113 with the above parameters." + exit 1 +} +if (($# > 1)); then + usage +fi + +if ((${#COEX_MODE}==0)) && [[ -r $defaults ]]; then + set -e + . $defaults + set +e +fi + +if (($# > 0)) && [[ -r $1 ]]; then + set -e + . $1 + set +e +fi + +err=0 +for x in COEX_MODE RSI_ANTENNA_DIVERSITY ANT_SEL_VAL SET_COUNTRY_CODE WLAN_RF_PWR_MODE \ + BT_RF_PWR_MODE COEX_MODE BT_RF_TX_POWER_MODE BT_RF_RX_POWER_MODE ; do + eval var=\$$x + if ((${#var} < 1)) ; then + echo Need to provide ${x} for configuration + err=1 + fi +done +if((err)) ; then + usage +fi +cd /opt/rs9113 + +modprobe mac80211 +modprobe bluetooth + +insmod onebox_common_gpl.ko + +insmod wlan.ko +insmod wlan_wep.ko +insmod wlan_tkip.ko +insmod wlan_ccmp.ko +insmod wlan_acl.ko +insmod wlan_xauth.ko +insmod wlan_scan_sta.ko +insmod onebox_wlan_nongpl.ko +insmod onebox_wlan_gpl.ko + +#BT Power_mode type +# 0 - HIGH POWER MODE +# 1 - MEDIUM POWER MODE +# 2 - LOW POWER MODE + +PARAMS=$PARAMS" bt_rf_tx_power_mode=$BT_RF_TX_POWER_MODE" +PARAMS=$PARAMS" bt_rf_rx_power_mode=$BT_RF_RX_POWER_MODE" + +insmod onebox_bt_nongpl.ko $PARAMS +insmod onebox_bt_gpl.ko + +#Driver Mode 1 END-TO-END mode, +# 2 RF Evaluation Mode + +DRIVER_MODE=1 + +# COEX MODE: +# 1 WLAN STATION /WIFI-Direct/WLAN PER +# 2 WLAN ACCESS POINT(including muliple APs on different vaps) +# 3 WLAN ACCESS POINT + STATION MODE(on multiple vaps) + +# 4 BT CLASSIC MODE/BT CLASSIC PER MODE +# 5 WLAN STATION + BT CLASSIC MODE +# 6 WLAN ACCESS POINT + BT CLASSIC MODE +# 8 BT LE MODE /BT LE PER MODE +# 9 WLAN STATION + BT LE MODE +# 12 BT CLASSIC + BT LE MODE +# 14 WLAN ACCESS POINT + BT CLASSIC MODE+ BT LE MODE + +# 16 ZIGBEE MODE/ ZIGBEE PER MODE +# 17 WLAN STATION + ZIGBEE + +#COEX_MODE=3 + +#To enable TA-level SDIO aggregation set 1 else set 0 to disable it. +TA_AGGR=4 + +#Disable Firmware load set 1 to skip FW loading through Driver else set to 0. +SKIP_FW_LOAD=0 + +#FW Download Mode +# 1 - Full Flash mode with Secondary Boot Loader +# 2 - Full RAM mode with Secondary Boot Loader +# 3 - Flash + RAM mode with Secondary Boot Loader +# 4 - Firmware loading WITHOUT Secondary Boot Loader +# Recommended to use the default mode 1 +FW_LOAD_MODE=1 + +#ps_handshake_mode +# 1 - No hand shake Mode +# 2 - Packet hand shake Mode +# 3 - GPIO Hand shake Mode +###########Default is Packet handshake mode=2 +HANDSHAKE_MODE=2 + +#SDIO Clock speed +SDIO_CLOCK_SPEED=50000 + +#Antenna diversity enable +#RSI_ANTENNA_DIVERSITY=0 + +#Antenna Selection +#ANT_SEL_VAL=2 # 2 Internal Antenna Selection + # 3 External Antenna Selection + +####RF_POWER_MODE Selection + +# 0x00 For Both TX and RX High Power +# 0x11 For Both TX and RX Medium Power +# 0x22 For Both TX and RX LOW Power + +# 0x10 For High Power TX and Medium RX Power +# 0x20 For High Power TX and LOW RX Power + +# 0x01 For Medium TX and RX High Power +# 0x21 For Medium Power TX and LOW RX Power + +# 0x02 For Low Power TX and RX High Power +# 0x12 For LOW Power TX and Medium RX Power + + +#WLAN_RF_PWR_MODE=0x00 +#BT_RF_PWR_MODE=0x00 +#ZIGB_RF_PWR_MODE=0x00 + +#COUNTRY Selection +# 0 World Domain +# 840 US Domain Maps to US Region +# 276 Germany Maps to EU Region +# 392 Japan Maps to Japan Region +#SET_COUNTRY_CODE=0 + +PARAMS=" driver_mode=$DRIVER_MODE" +PARAMS=$PARAMS" firmware_path=/opt/rs9113/firmware/" +PARAMS=$PARAMS" onebox_zone_enabled=0x1" +PARAMS=$PARAMS" ta_aggr=$TA_AGGR" +PARAMS=$PARAMS" skip_fw_load=$SKIP_FW_LOAD" +PARAMS=$PARAMS" fw_load_mode=$FW_LOAD_MODE" +PARAMS=$PARAMS" sdio_clock=$SDIO_CLOCK_SPEED" +PARAMS=$PARAMS" enable_antenna_diversity=$RSI_ANTENNA_DIVERSITY" +PARAMS=$PARAMS" coex_mode=$COEX_MODE" +#PARAMS=$PARAMS" ps_handshake_mode=$HANDSHAKE_MODE" +PARAMS=$PARAMS" obm_ant_sel_val=$ANT_SEL_VAL" +PARAMS=$PARAMS" wlan_rf_power_mode=$WLAN_RF_PWR_MODE" +PARAMS=$PARAMS" bt_rf_power_mode=$BT_RF_PWR_MODE" +# PARAMS=$PARAMS" zigb_rf_power_mode=$ZIGB_RF_PWR_MODE" +PARAMS=$PARAMS" country_code=$SET_COUNTRY_CODE" + +if ! insmod onebox_nongpl.ko $PARAMS ; then + echo onebox_nongpl.ko $PARAMS +fi +insmod onebox_gpl.ko + diff --git a/recipes-kernel/rs9113/rs9113-1.4.3/rs9113_remove_modules.sh b/recipes-kernel/rs9113/rs9113-1.4.3/rs9113_remove_modules.sh new file mode 100755 index 0000000..bcd885a --- /dev/null +++ b/recipes-kernel/rs9113/rs9113-1.4.3/rs9113_remove_modules.sh @@ -0,0 +1,29 @@ +killall -9 wpa_supplicant +killall -9 hostapd +rm -rf /var/run/wpa_supplicant/ +sleep 2 + +### COMMON HAL MODULES +rmmod onebox_gpl.ko +rmmod onebox_nongpl.ko + +###WLAN MODULES +rmmod onebox_wlan_gpl.ko +rmmod onebox_wlan_nongpl.ko +rmmod wlan_scan_sta.ko +rmmod wlan_xauth.ko +rmmod wlan_acl.ko +rmmod wlan_tkip.ko +rmmod wlan_ccmp.ko +rmmod wlan_wep.ko +rmmod wlan.ko + +###BT MODULES +rmmod onebox_bt_gpl.ko +rmmod onebox_bt_nongpl.ko + +###ZIGB MODULES +#rmmod onebox_zigb_gpl.ko +#rmmod onebox_zigb_nongpl.ko + +rmmod onebox_common_gpl.ko diff --git a/recipes-kernel/rs9113/rs9113_1.3.0.bb b/recipes-kernel/rs9113/rs9113_1.3.0.bb new file mode 100644 index 0000000..80be133 --- /dev/null +++ b/recipes-kernel/rs9113/rs9113_1.3.0.bb @@ -0,0 +1,59 @@ +DESCRIPTION = "USB Driver for Redpine RS9113" +SECTION = "base" +PRIORITY = "optional" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28" +SRCREV = "${AUTOREV}" +SRC_URI = " \ + git://git@gitlab.multitech.net/mlinux/Redpine.git;protocol=ssh;branch=1.3.0 \ + file://kthread.patch;patch=1;pnum=3 \ + file://defconfig \ + file://rs9113_load_modules.sh \ + file://rs9113_remove_modules.sh \ + file://rs9113.init \ + file://rs9113.default \ +" + +S = "${WORKDIR}/git/source/host" +FILESEXTRAPATHS_prepend := "${WORKDIR}/git/patches:" + +EXTRA_OEMAKE = " KERNELDIR=${STAGING_KERNEL_DIR} \ + CROSS_COMPILE=${TARGET_PREFIX} \ + ARCH=arm \ + WLAN_COMPILE_FLAGS='' \ + " + +inherit update-rc.d +INITSCRIPT_NAME = "rs9113" +INITSCRIPT_PARAMS = "start 00 2 3 4 5 . stop 81 0 6 1 ." + +do_configure() { + cp ${WORKDIR}/defconfig .config +} + +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + oe_runmake +} + +FILES_${PN} = "/opt/rs9113 ${sbindir} ${sysconfdir}" +FILES_${PN}-dbg = "/opt/rs9113/.debug/" + +PARALLEL_MAKE = "" + +do_install() { + install -m 0755 -d ${D}/opt/rs9113 + install -d ${D}${sysconfdir}/init.d/ + install -d ${D}${sysconfdir}/default/ + cp -r ${S}/release/* ${D}/opt/rs9113/ + + install -m 0755 -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/rs9113_load_modules.sh ${D}${sbindir}/ + install -m 0755 ${WORKDIR}/rs9113_remove_modules.sh ${D}${sbindir}/ + install -m 0755 ${WORKDIR}/rs9113.init ${D}${sysconfdir}/init.d/rs9113 + install -m 0644 ${WORKDIR}/rs9113.default ${D}${sysconfdir}/default/rs9113 +} + +python do_clean() { + bb.note("Skipping clean in rs9113 recipe.") +} diff --git a/recipes-kernel/rs9113/rs9113_1.4.3.bb b/recipes-kernel/rs9113/rs9113_1.4.3.bb new file mode 100644 index 0000000..32df0cf --- /dev/null +++ b/recipes-kernel/rs9113/rs9113_1.4.3.bb @@ -0,0 +1,61 @@ +DESCRIPTION = "USB Driver for Redpine RS9113" +SECTION = "base" +PRIORITY = "optional" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28" +SRCREV = "${AUTOREV}" +SRC_URI = " \ + git://git@gitlab.multitech.net/mlinux/Redpine.git;protocol=ssh;branch=1.4.3 \ + file://defconfig \ + file://rs9113_load_modules.sh \ + file://rs9113_remove_modules.sh \ + file://rs9113.init \ + file://rs9113.default \ +" + +# file://kthread.patch;patch=1;pnum=3 + +S = "${WORKDIR}/git/source/host" +FILESEXTRAPATHS_prepend := "${WORKDIR}/git/patches:" + +EXTRA_OEMAKE = " KERNELDIR=${STAGING_KERNEL_DIR} \ + CROSS_COMPILE=${TARGET_PREFIX} \ + ARCH=arm \ + WLAN_COMPILE_FLAGS='' \ + V=1 \ + " + +inherit update-rc.d +INITSCRIPT_NAME = "rs9113" +INITSCRIPT_PARAMS = "start 00 2 3 4 5 . stop 81 0 6 1 ." + +do_configure() { + cp ${WORKDIR}/defconfig .config +} + +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + oe_runmake +} + +FILES_${PN} = "/opt/rs9113 ${sbindir} ${sysconfdir}" +FILES_${PN}-dbg = "/opt/rs9113/.debug/" + +PARALLEL_MAKE = "" + +do_install() { + install -m 0755 -d ${D}/opt/rs9113 + install -d ${D}${sysconfdir}/init.d/ + install -d ${D}${sysconfdir}/default/ + cp -r ${S}/release/* ${D}/opt/rs9113/ + + install -m 0755 -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/rs9113_load_modules.sh ${D}${sbindir}/ + install -m 0755 ${WORKDIR}/rs9113_remove_modules.sh ${D}${sbindir}/ + install -m 0755 ${WORKDIR}/rs9113.init ${D}${sysconfdir}/init.d/rs9113 + install -m 0644 ${WORKDIR}/rs9113.default ${D}${sysconfdir}/default/rs9113 +} + +python do_clean() { + bb.note("Skipping clean in rs9113 recipe.") +} -- cgit v1.2.3