Merge "[Feature][T8TSK-80][TCAM_T800_SW_0266]Switch the NDIS outgoing port through the uai mounting mode" into MR3.0-merge
diff --git a/meta-sdk/meta/meta-lynqSDK-T800/conf/machine/auto2735evb-ivt-main.conf b/meta-sdk/meta/meta-lynqSDK-T800/conf/machine/auto2735evb-ivt-main.conf
index e54616a..1f7f9a1 100755
--- a/meta-sdk/meta/meta-lynqSDK-T800/conf/machine/auto2735evb-ivt-main.conf
+++ b/meta-sdk/meta/meta-lynqSDK-T800/conf/machine/auto2735evb-ivt-main.conf
@@ -33,6 +33,9 @@
#UART_CFG value:"PLATFORM","GSW"
MOBILETEK_UART_CFG = "PLATFORM"
+#USB_CFG value:"PLATFORM","GSW"
+MOBILETEK_USB_CFG = "PLATFORM"
+
#ndis_CFG value:"PLATFORM","GSW"
MOBILETEK_NDIS_CFG = "PLATFORM"
diff --git a/meta-sdk/meta/meta-lynqSDK-T800/recipes-core/initial/files/init_usb_gsw b/meta-sdk/meta/meta-lynqSDK-T800/recipes-core/initial/files/init_usb_gsw
new file mode 100755
index 0000000..1fad189
--- /dev/null
+++ b/meta-sdk/meta/meta-lynqSDK-T800/recipes-core/initial/files/init_usb_gsw
@@ -0,0 +1,107 @@
+#!/bin/busybox sh
+
+if [ "$1" == "pre" ]; then
+ echo "=== Initial: USB Configuration Start ===" > /dev/kmsg
+
+ if [ -e "/dev/usb-ffs" ] ; then
+ echo "=== Bypass Pre Configuration ===" > /dev/kmsg
+ else # first boot
+ mkdir -p /dev/usb-ffs
+ mkdir -p /dev/usb-ffs/adb
+ mount none /sys/kernel/config -t configfs
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/ffs.adb
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/rndis.gs4
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/ncm.f0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/ecm.f0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/eem.f0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/acm.gs0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/acm.gs1
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/acm.gs2
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/acm.gs3
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/via_modem.gs0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/via_ets.gs0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/via_atc.gs0
+ mount adb /dev/usb-ffs/adb -t functionfs -o uid=2000,gid=2000
+ fi
+
+elif [ "$1" == "post" ];then
+
+ echo "=== Initial: USB Configuration post Start ===" > /dev/kmsg
+
+ while [[ ! "$( findmnt -M /etc/config)" ]]; do
+ echo "=== Initial: USB Configuration Wait config dir mounted ===" > /dev/kmsg
+ sleep 2
+ done
+
+ echo 0x0e8d > /sys/kernel/config/usb_gadget/g1/idVendor
+ echo 0x0223 > /sys/kernel/config/usb_gadget/g1/bcdDevice
+ echo 0x0200 > /sys/kernel/config/usb_gadget/g1/bcdUSB
+ mkdir -p /sys/kernel/config/usb_gadget/g1/strings/0x409
+
+ if [ "$(cat /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber)" == "" ]; then
+ if [[ "$(cat /etc/hostname)" == "auto2735evb-ivt-vp1" || "$(cat /etc/hostname)" == "auto2735evb-ivt-vp2" ]]; then
+ echo "MT-96533493F01B518C" > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
+ else
+ echo 0123456789ABCDEF > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
+ fi
+ else
+ echo "=== usb serial number exist, keep it ===" > /dev/kmsg
+ fi
+
+ echo MediaTek > /sys/kernel/config/usb_gadget/g1/strings/0x409/manufacturer
+ echo auto2735-ivt > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
+
+ mkdir -p /sys/kernel/config/usb_gadget/g1/configs/b.1
+ mkdir -p /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409
+ echo 500 > /sys/kernel/config/usb_gadget/g1/configs/b.1/MaxPower
+
+ if [ -n "$(cat /proc/boot_mode | grep META)" ] ; then # META mode: META_BOOT_SKIP_PRELOADER
+
+ # ADB + CDC-ACM*2 (META mode)
+ #setprop sys.usb.config adb,meta,elt
+ #################### START ####################
+ sleep 1
+ echo meta_elt_adb > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x2040 > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/ffs.adb /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f3
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs3 /sys/kernel/config/usb_gadget/g1/configs/b.1/f4
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+ #################### END ####################
+ sleep 1
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+
+ else # Normal mode
+
+ # ADB + CDC-ACM*3 (normal mode)
+ #setprop sys.usb.config adb,acm
+ #################### START ####################
+ sleep 1
+ rndis_enabled=`uci get lynq_uci.lynq_rndis.initiate`
+ if [ "$rndis_enabled" == "1" ]; then
+ echo rndis > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x2028 > /sys/kernel/config/usb_gadget/g1/idProduct
+ echo 1 > /sys/devices/platform/soc/mt_usb/saving
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/rndis.gs4 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ else
+ echo gs1gs3_dual_acm > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x202f > /sys/kernel/config/usb_gadget/g1/idProduct
+ echo 1 > /sys/devices/platform/soc/mt_usb/saving
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/ffs.adb /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs1 /sys/kernel/config/usb_gadget/g1/configs/b.1/f3
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs3 /sys/kernel/config/usb_gadget/g1/configs/b.1/f4
+ fi
+ #################### END ####################
+ sleep 1
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+ fi
+
+ if [ -e "/proc/bootprof" ] ; then
+ echo usb_active > /proc/bootprof
+ fi
+
+ echo "=== Initial: USB Configuration End ===" > /dev/kmsg
+fi
diff --git a/meta-sdk/meta/meta-lynqSDK-T800/recipes-core/initial/files/usb_switch_gsw b/meta-sdk/meta/meta-lynqSDK-T800/recipes-core/initial/files/usb_switch_gsw
new file mode 100644
index 0000000..68a7929
--- /dev/null
+++ b/meta-sdk/meta/meta-lynqSDK-T800/recipes-core/initial/files/usb_switch_gsw
@@ -0,0 +1,93 @@
+#!/bin/busybox sh
+#
+# @author Chuanrui Liu
+# modify: Chengzhi Pei 2020-11-19
+#
+
+echo "=== Initial: USB Switch Start ===" > /dev/kmsg
+
+function funCleanConfig(){
+ echo "clean old configuration" > /dev/kmsg
+ systemctl stop init_usb
+ killall adbd
+ killall agetty
+ echo none > /sys/kernel/config/usb_gadget/g1/UDC
+ echo 0 > /sys/kernel/config/usb_gadget/g1/bDeviceClass
+ echo 0 > /sys/kernel/config/usb_gadget/g1/bDeviceSubClass
+ echo 0 > /sys/kernel/config/usb_gadget/g1/bDeviceProtocol
+ rm -f /sys/kernel/config/usb_gadget/g1/configs/b.1/f?
+ sleep 1
+ return 0
+}
+
+if [ ! -z $2 ]; then
+ #echo 0123456789ABCDEF > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
+ echo $2 > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
+fi
+
+echo $1 > /dev/kmsg
+
+if [ $1 = "adb,vcom,ets,elt" ]; then
+ #### For Normal mode in /usr/share/init/init_usb of MTK reference board
+ funCleanConfig
+ ########################################
+ adbd &
+ sleep 1
+ echo adb_vcom_ets_elt > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x202f > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/ffs.adb /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs1 /sys/kernel/config/usb_gadget/g1/configs/b.1/f3
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs3 /sys/kernel/config/usb_gadget/g1/configs/b.1/f4
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "mass,adb,vcom,elt" ]; then
+ #### For META mode in /usr/share/init/init_usb
+ funCleanConfig
+ ########################################
+ adbd &
+ sleep 1
+ echo mass_adb_vcom_elt > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x2040 > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/ffs.adb /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f3
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs3 /sys/kernel/config/usb_gadget/g1/configs/b.1/f4
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "ets" ]; then
+ funCleanConfig
+ ########################################
+ echo ets > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x2035 > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs1 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "adb,vcom" ]; then
+ funCleanConfig
+ ########################################
+ adbd &
+ sleep 1
+ echo adb_vcom > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x200e > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/ffs.adb /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "mass,vcom" ]; then
+ funCleanConfig
+ ########################################
+ echo mass_vcom > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x200f > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "rndis" ]; then
+ funCleanConfig
+ ########################################
+ echo rndis > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x2006 > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/rndis.gs4 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "none" ]; then
+ funCleanConfig
+else
+ echo "=== Illegal input ===" > /dev/kmsg
+fi
+echo "=== Initial: USB Switch End ===" > /dev/kmsg
diff --git a/meta-sdk/meta/meta-lynqSDK-T800/recipes-core/initial/init-2735_1.0.0.bb b/meta-sdk/meta/meta-lynqSDK-T800/recipes-core/initial/init-2735_1.0.0.bb
index 7be31d4..e4e29b6 100755
--- a/meta-sdk/meta/meta-lynqSDK-T800/recipes-core/initial/init-2735_1.0.0.bb
+++ b/meta-sdk/meta/meta-lynqSDK-T800/recipes-core/initial/init-2735_1.0.0.bb
@@ -9,7 +9,8 @@
SRC_URI += "file://init_speech"
SRC_URI += "${@bb.utils.contains("MOBILETEK_OEMAPP_CFG", "GSW", "file://init_mount_nand_gsw", "", d)}"
SRC_URI += "${@bb.utils.contains("MOBILETEK_OEMAPP_CFG", "PLATFORM", "file://init_mount_nand", "", d)}"
-SRC_URI += "file://usb_switch"
+SRC_URI += "${@bb.utils.contains("MOBILETEK_USB_CFG", "PLATFORM", "file://usb_switch", "", d)}"
+SRC_URI += "${@bb.utils.contains("MOBILETEK_USB_CFG", "GSW", "file://usb_switch_gsw", "", d)}"
SRC_URI += "file://init_network.service"
SRC_URI += "file://init_mount.service"
SRC_URI += "file://nvram_daemon.service"
@@ -23,7 +24,8 @@
SRC_URI += "${@bb.utils.contains('BUILD_TYPE', 'user', ' ', ' file://init_atci', d)}"
SRC_URI += "${@bb.utils.contains('BUILD_TYPE', 'user', ' ', ' file://init_atci.service', d)}"
SRC_URI += "file://agps.service"
-SRC_URI += "file://init_usb"
+SRC_URI += "${@bb.utils.contains("MOBILETEK_USB_CFG", "PLATFORM", "file://init_usb", "", d)}"
+SRC_URI += "${@bb.utils.contains("MOBILETEK_USB_CFG", "GSW", "file://init_usb_gsw", "", d)}"
SRC_URI += "file://init_usb.service"
SRC_URI += "file://smp.sh"
SRC_URI += "${@bb.utils.contains("MOBILETEK_OEMAPP_CFG", "GSW", "file://smp.rules", "", d)}"
@@ -123,9 +125,19 @@
fi
install -d ${D}${datadir}/init
install -m 0755 init_network ${D}${datadir}/init/init_network
- install -m 0755 usb_switch ${D}${datadir}/init/usb_switch
+ if [ "${MOBILETEK_USB_CFG}" = "PLATFORM" ]; then
+ install -m 0755 usb_switch ${D}${datadir}/init/usb_switch
+ fi
+ if [ "${MOBILETEK_USB_CFG}" = "GSW" ]; then
+ install -m 0755 usb_switch_gsw ${D}${datadir}/init/usb_switch
+ fi
install -m 0755 init_speech ${D}${datadir}/init/init_speech
- install -m 0755 init_usb ${D}${datadir}/init/init_usb
+ if [ "${MOBILETEK_USB_CFG}" = "PLATFORM" ]; then
+ install -m 0755 init_usb ${D}${datadir}/init/init_usb
+ fi
+ if [ "${MOBILETEK_USB_CFG}" = "GSW" ]; then
+ install -m 0755 init_usb_gsw ${D}${datadir}/init/init_usb
+ fi
install -m 0755 smp.sh ${D}${datadir}/init/smp.sh
#xf.li 2022.11.17 modify for userdata recover start
install -m 0755 lynq_data_recover ${D}${datadir}/init/lynq_data_recover
diff --git a/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-main.conf b/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-main.conf
index fcea836..2cd277c 100755
--- a/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-main.conf
+++ b/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-main.conf
@@ -49,6 +49,9 @@
#UART_CFG value:"PLATFORM","GSW"
MOBILETEK_UART_CFG = "PLATFORM"
+#USB_CFG value:"PLATFORM","GSW"
+MOBILETEK_USB_CFG = "PLATFORM"
+
#ndis_CFG value:"PLATFORM","GSW"
MOBILETEK_NDIS_CFG = "PLATFORM"
@@ -77,4 +80,4 @@
MOBILETEK_BUSYBOX_CFG = "PLATFORM"
#OPENSSH_CFG value:"PLATFORM","GSW"
-MOBILETEK_OPENSSH_CFG = "PLATFORM"
\ No newline at end of file
+MOBILETEK_OPENSSH_CFG = "PLATFORM"
diff --git a/meta/meta-mediatek-mt2735/recipes-core/initial/files/init_usb_gsw b/meta/meta-mediatek-mt2735/recipes-core/initial/files/init_usb_gsw
new file mode 100755
index 0000000..1fad189
--- /dev/null
+++ b/meta/meta-mediatek-mt2735/recipes-core/initial/files/init_usb_gsw
@@ -0,0 +1,107 @@
+#!/bin/busybox sh
+
+if [ "$1" == "pre" ]; then
+ echo "=== Initial: USB Configuration Start ===" > /dev/kmsg
+
+ if [ -e "/dev/usb-ffs" ] ; then
+ echo "=== Bypass Pre Configuration ===" > /dev/kmsg
+ else # first boot
+ mkdir -p /dev/usb-ffs
+ mkdir -p /dev/usb-ffs/adb
+ mount none /sys/kernel/config -t configfs
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/ffs.adb
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/rndis.gs4
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/ncm.f0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/ecm.f0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/eem.f0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/acm.gs0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/acm.gs1
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/acm.gs2
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/acm.gs3
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/via_modem.gs0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/via_ets.gs0
+ mkdir -p /sys/kernel/config/usb_gadget/g1/functions/via_atc.gs0
+ mount adb /dev/usb-ffs/adb -t functionfs -o uid=2000,gid=2000
+ fi
+
+elif [ "$1" == "post" ];then
+
+ echo "=== Initial: USB Configuration post Start ===" > /dev/kmsg
+
+ while [[ ! "$( findmnt -M /etc/config)" ]]; do
+ echo "=== Initial: USB Configuration Wait config dir mounted ===" > /dev/kmsg
+ sleep 2
+ done
+
+ echo 0x0e8d > /sys/kernel/config/usb_gadget/g1/idVendor
+ echo 0x0223 > /sys/kernel/config/usb_gadget/g1/bcdDevice
+ echo 0x0200 > /sys/kernel/config/usb_gadget/g1/bcdUSB
+ mkdir -p /sys/kernel/config/usb_gadget/g1/strings/0x409
+
+ if [ "$(cat /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber)" == "" ]; then
+ if [[ "$(cat /etc/hostname)" == "auto2735evb-ivt-vp1" || "$(cat /etc/hostname)" == "auto2735evb-ivt-vp2" ]]; then
+ echo "MT-96533493F01B518C" > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
+ else
+ echo 0123456789ABCDEF > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
+ fi
+ else
+ echo "=== usb serial number exist, keep it ===" > /dev/kmsg
+ fi
+
+ echo MediaTek > /sys/kernel/config/usb_gadget/g1/strings/0x409/manufacturer
+ echo auto2735-ivt > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
+
+ mkdir -p /sys/kernel/config/usb_gadget/g1/configs/b.1
+ mkdir -p /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409
+ echo 500 > /sys/kernel/config/usb_gadget/g1/configs/b.1/MaxPower
+
+ if [ -n "$(cat /proc/boot_mode | grep META)" ] ; then # META mode: META_BOOT_SKIP_PRELOADER
+
+ # ADB + CDC-ACM*2 (META mode)
+ #setprop sys.usb.config adb,meta,elt
+ #################### START ####################
+ sleep 1
+ echo meta_elt_adb > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x2040 > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/ffs.adb /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f3
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs3 /sys/kernel/config/usb_gadget/g1/configs/b.1/f4
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+ #################### END ####################
+ sleep 1
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+
+ else # Normal mode
+
+ # ADB + CDC-ACM*3 (normal mode)
+ #setprop sys.usb.config adb,acm
+ #################### START ####################
+ sleep 1
+ rndis_enabled=`uci get lynq_uci.lynq_rndis.initiate`
+ if [ "$rndis_enabled" == "1" ]; then
+ echo rndis > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x2028 > /sys/kernel/config/usb_gadget/g1/idProduct
+ echo 1 > /sys/devices/platform/soc/mt_usb/saving
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/rndis.gs4 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ else
+ echo gs1gs3_dual_acm > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x202f > /sys/kernel/config/usb_gadget/g1/idProduct
+ echo 1 > /sys/devices/platform/soc/mt_usb/saving
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/ffs.adb /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs1 /sys/kernel/config/usb_gadget/g1/configs/b.1/f3
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs3 /sys/kernel/config/usb_gadget/g1/configs/b.1/f4
+ fi
+ #################### END ####################
+ sleep 1
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+ fi
+
+ if [ -e "/proc/bootprof" ] ; then
+ echo usb_active > /proc/bootprof
+ fi
+
+ echo "=== Initial: USB Configuration End ===" > /dev/kmsg
+fi
diff --git a/meta/meta-mediatek-mt2735/recipes-core/initial/files/usb_switch_gsw b/meta/meta-mediatek-mt2735/recipes-core/initial/files/usb_switch_gsw
new file mode 100644
index 0000000..68a7929
--- /dev/null
+++ b/meta/meta-mediatek-mt2735/recipes-core/initial/files/usb_switch_gsw
@@ -0,0 +1,93 @@
+#!/bin/busybox sh
+#
+# @author Chuanrui Liu
+# modify: Chengzhi Pei 2020-11-19
+#
+
+echo "=== Initial: USB Switch Start ===" > /dev/kmsg
+
+function funCleanConfig(){
+ echo "clean old configuration" > /dev/kmsg
+ systemctl stop init_usb
+ killall adbd
+ killall agetty
+ echo none > /sys/kernel/config/usb_gadget/g1/UDC
+ echo 0 > /sys/kernel/config/usb_gadget/g1/bDeviceClass
+ echo 0 > /sys/kernel/config/usb_gadget/g1/bDeviceSubClass
+ echo 0 > /sys/kernel/config/usb_gadget/g1/bDeviceProtocol
+ rm -f /sys/kernel/config/usb_gadget/g1/configs/b.1/f?
+ sleep 1
+ return 0
+}
+
+if [ ! -z $2 ]; then
+ #echo 0123456789ABCDEF > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
+ echo $2 > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
+fi
+
+echo $1 > /dev/kmsg
+
+if [ $1 = "adb,vcom,ets,elt" ]; then
+ #### For Normal mode in /usr/share/init/init_usb of MTK reference board
+ funCleanConfig
+ ########################################
+ adbd &
+ sleep 1
+ echo adb_vcom_ets_elt > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x202f > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/ffs.adb /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs1 /sys/kernel/config/usb_gadget/g1/configs/b.1/f3
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs3 /sys/kernel/config/usb_gadget/g1/configs/b.1/f4
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "mass,adb,vcom,elt" ]; then
+ #### For META mode in /usr/share/init/init_usb
+ funCleanConfig
+ ########################################
+ adbd &
+ sleep 1
+ echo mass_adb_vcom_elt > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x2040 > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/ffs.adb /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f3
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs3 /sys/kernel/config/usb_gadget/g1/configs/b.1/f4
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "ets" ]; then
+ funCleanConfig
+ ########################################
+ echo ets > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x2035 > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs1 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "adb,vcom" ]; then
+ funCleanConfig
+ ########################################
+ adbd &
+ sleep 1
+ echo adb_vcom > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x200e > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/ffs.adb /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "mass,vcom" ]; then
+ funCleanConfig
+ ########################################
+ echo mass_vcom > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x200f > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/acm.gs0 /sys/kernel/config/usb_gadget/g1/configs/b.1/f2
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "rndis" ]; then
+ funCleanConfig
+ ########################################
+ echo rndis > /sys/kernel/config/usb_gadget/g1/configs/b.1/strings/0x409/configuration
+ echo 0x2006 > /sys/kernel/config/usb_gadget/g1/idProduct
+ ln -sf /sys/kernel/config/usb_gadget/g1/functions/rndis.gs4 /sys/kernel/config/usb_gadget/g1/configs/b.1/f1
+ echo 11201000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+elif [ $1 = "none" ]; then
+ funCleanConfig
+else
+ echo "=== Illegal input ===" > /dev/kmsg
+fi
+echo "=== Initial: USB Switch End ===" > /dev/kmsg
diff --git a/meta/meta-mediatek-mt2735/recipes-core/initial/init-2735_1.0.0.bb b/meta/meta-mediatek-mt2735/recipes-core/initial/init-2735_1.0.0.bb
index b993b88..25b963f 100755
--- a/meta/meta-mediatek-mt2735/recipes-core/initial/init-2735_1.0.0.bb
+++ b/meta/meta-mediatek-mt2735/recipes-core/initial/init-2735_1.0.0.bb
@@ -9,7 +9,8 @@
SRC_URI += "file://init_speech"
SRC_URI += "${@bb.utils.contains("MOBILETEK_OEMAPP_CFG", "GSW", "file://init_mount_nand_gsw", "", d)}"
SRC_URI += "${@bb.utils.contains("MOBILETEK_OEMAPP_CFG", "PLATFORM", "file://init_mount_nand", "", d)}"
-SRC_URI += "file://usb_switch"
+SRC_URI += "${@bb.utils.contains("MOBILETEK_USB_CFG", "PLATFORM", "file://usb_switch", "", d)}"
+SRC_URI += "${@bb.utils.contains("MOBILETEK_USB_CFG", "GSW", "file://usb_switch_gsw", "", d)}"
SRC_URI += "file://init_network.service"
SRC_URI += "file://init_mount.service"
SRC_URI += "file://nvram_daemon.service"
@@ -23,7 +24,8 @@
SRC_URI += "${@bb.utils.contains('BUILD_TYPE', 'user', ' ', ' file://init_atci', d)}"
SRC_URI += "${@bb.utils.contains('BUILD_TYPE', 'user', ' ', ' file://init_atci.service', d)}"
SRC_URI += "file://agps.service"
-SRC_URI += "file://init_usb"
+SRC_URI += "${@bb.utils.contains("MOBILETEK_USB_CFG", "PLATFORM", "file://init_usb", "", d)}"
+SRC_URI += "${@bb.utils.contains("MOBILETEK_USB_CFG", "GSW", "file://init_usb_gsw", "", d)}"
SRC_URI += "file://init_usb.service"
SRC_URI += "file://smp.sh"
#xf.li 2022.11.17 modify for userdata recover start
@@ -108,9 +110,19 @@
do_install_append() {
install -d ${D}${datadir}/init
install -m 0755 init_network ${D}${datadir}/init/init_network
- install -m 0755 usb_switch ${D}${datadir}/init/usb_switch
+ if [ "${MOBILETEK_USB_CFG}" = "PLATFORM" ]; then
+ install -m 0755 usb_switch ${D}${datadir}/init/usb_switch
+ fi
+ if [ "${MOBILETEK_USB_CFG}" = "GSW" ]; then
+ install -m 0755 usb_switch_gsw ${D}${datadir}/init/usb_switch
+ fi
install -m 0755 init_speech ${D}${datadir}/init/init_speech
- install -m 0755 init_usb ${D}${datadir}/init/init_usb
+ if [ "${MOBILETEK_USB_CFG}" = "PLATFORM" ]; then
+ install -m 0755 init_usb ${D}${datadir}/init/init_usb
+ fi
+ if [ "${MOBILETEK_USB_CFG}" = "GSW" ]; then
+ install -m 0755 init_usb_gsw ${D}${datadir}/init/init_usb
+ fi
install -m 0755 smp.sh ${D}${datadir}/init/smp.sh
#xf.li 2022.11.17 modify for userdata recover start
install -m 0755 lynq_data_recover ${D}${datadir}/init/lynq_data_recover
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb b/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb
index eba2ab7..2f72c2a 100755
--- a/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb
@@ -61,6 +61,6 @@
"
RDEPENDS_packagegroup-lync-mt2735 += "\
- ${@bb.utils.contains('MOBILETEK_UART_CFG', 'GSW', ' lynq-ndis-uevent', '', d)} \
+ ${@bb.utils.contains('MOBILETEK_USB_CFG', 'GSW', ' lynq-ndis-uevent', '', d)} \
"