Use hciattach tool for the RPI3 target
[platform/adaptation/bluetooth-firmware-bcm.git] / scripts / bt-dev-start-rpi3.sh
index a0e952a..aab1b91 100644 (file)
@@ -7,7 +7,6 @@ BT_CHIP_TYPE=bcm43xx
 BT_MAC_FILE=/opt/etc/.bd_addr
 
 BT_PLATFORM_DEFAULT_HCI_NAME="TIZEN-Mobile"
-UART_SPEED=921600
 
 HCI_CONFIG=/usr/bin/hciconfig
 HCI_ATTACH=/usr/bin/hciattach
@@ -18,13 +17,31 @@ then
 fi
 
 GEN_BDADDR(){
-        echo "BT Mac addr generates randomly."
-        MAC_PRE=$(echo "00:02:")
-        MAC_POST=$(/usr/bin/openssl rand -hex 4 | sed 's/\(..\)/\1:/g; s/.$//')
-        echo "Random : $MAC_PRE$MAC_POST"
-        BT_MAC=$MAC_PRE$MAC_POST
+       #echo "BT Mac addr generates randomly."
+       #MAC_PRE=$(echo "00:02:")
+       #MAC_POST=$(/usr/bin/openssl rand -hex 4 | sed 's/\(..\)/\1:/g; s/.$//')
+       #BT_MAC=$MAC_PRE$MAC_POST
+       echo "Generates BT MAC address based on serial number."
+       SERIAL=`cat /proc/device-tree/serial-number | cut -c9-`
+       B1=`echo $SERIAL | cut -c3-4`
+       B2=`echo $SERIAL | cut -c5-6`
+       B3=`echo $SERIAL | cut -c7-8`
+       BT_MAC=`printf b8:27:eb:%02x:%02x:%02x $((0x$B1 ^ 0xaa)) $((0x$B2 ^ 0xaa)) $((0x$B3 ^ 0xaa))`
 }
 
+PIMODEL=`cat /proc/device-tree/model | awk '{print $5}'`
+echo "$PIMODEL"
+
+if [ "$PIMODEL" = "B" ]
+then
+       FLOW_CONTROL=noflow
+       UART_SPEED=460800
+else
+       FLOW_CONTROL=flow
+       UART_SPEED=2000000
+
+fi
+
 if [ ! -e "$BT_MAC_FILE" ]
 then
        # Set BT address
@@ -45,13 +62,20 @@ else
        echo "Registering Bluetooth device"
 
        # Attaching Broadcom device
-       if ($HCI_ATTACH $BT_UART_DEVICE $BT_CHIP_TYPE $UART_SPEED noflow nosleep $BT_MAC); then
-               sleep 0.1
-               $HCI_CONFIG hci0 up
-               $HCI_CONFIG hci0 name $BT_PLATFORM_DEFAULT_HCI_NAME
-               $HCI_CONFIG hci0 sspmode 1
-               echo "HCIATTACH success"
-       else
+       flag=0
+       for ((i=0; i<2; i++))
+       do
+               if ($HCI_ATTACH $BT_UART_DEVICE $BT_CHIP_TYPE $UART_SPEED $FLOW_CONTROL nosleep $BT_MAC -t 5); then
+                       sleep 0.1
+                       $HCI_CONFIG hci0 up
+                       echo "HCIATTACH success"
+                       flag=1
+                       break
+               fi
+       done
+
+       if [ $flag -eq 0 ]
+       then
                echo "HCIATTACH failed"
        fi
 fi