Add the rpi3 firmware script 59/146859/3 accepted/tizen/unified/20170901.030100 submit/tizen/20170831.025311
authorHyuk Lee <hyuk0512.lee@samsung.com>
Thu, 31 Aug 2017 01:52:57 +0000 (10:52 +0900)
committerHyuk Lee <hyuk0512.lee@samsung.com>
Thu, 31 Aug 2017 02:50:18 +0000 (11:50 +0900)
Change-Id: Iffed665c8edfa6692be2728baa9c017b8def4bf7
Signed-off-by: Hyuk Lee <hyuk0512.lee@samsung.com>
firmware/CMakeLists.txt
firmware/rpi3/BCM43430A1.hcd [new file with mode: 0755]
packaging/bluetooth-firmware-bcm.spec
scripts/CMakeLists.txt
scripts/bt-dev-start-rpi3.sh [new file with mode: 0644]

index b38095d..b7502f2 100755 (executable)
@@ -11,3 +11,6 @@ INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/bcm4343w/BCM4343A1_001.002.009.0022.00
 
 # TW2
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/bcm43012/BCM43012B0_002.001.021.0081.0087.hex DESTINATION /lib/firmware/bcm43012/)
+
+# RPI3
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/rpi3/BCM43430A1.hcd DESTINATION ${PLUGIN_INSTALL_PREFIX}/etc/bluetooth)
diff --git a/firmware/rpi3/BCM43430A1.hcd b/firmware/rpi3/BCM43430A1.hcd
new file mode 100755 (executable)
index 0000000..162275a
Binary files /dev/null and b/firmware/rpi3/BCM43430A1.hcd differ
index 7085472..fb77b03 100644 (file)
@@ -41,6 +41,14 @@ Provides:   bluetooth-scripts
 %description exynos7270
 BT firmware and tools for exynos7270
 
+%package rpi3
+Summary:    bcm firmware and tools for rpi3
+Group:      Hardware Support/Handset
+Provides:   bluetooth-scripts
+
+%description rpi3
+BT firmware and tools for rpi3
+
 %prep
 %setup -q
 
@@ -129,3 +137,16 @@ ln -s /lib/firmware/bcm43012/BCM43012B0_002.001.021.0081.0087.hex /lib/firmware/
 %{_libdir}/systemd/system/bluetooth-hciattach@.service
 %{_libdir}/systemd/system/bluetooth-hci-device.service
 %manifest %{name}.manifest
+
+%post rpi3
+rm -rf %{_prefix}/etc/bluetooth/bt-dev-start.sh
+ln -s %{_prefix}/etc/bluetooth/bt-dev-start-rpi3.sh %{_prefix}/etc/bluetooth/bt-dev-start.sh
+
+%files rpi3
+%manifest %{name}.manifest
+%license LICENSE.APLv2 LICENSE.Broadcom
+%defattr(-,root,root,-)
+%{_prefix}/etc/bluetooth/BCM43430A1.hcd
+%attr(755,-,-) %{_prefix}/etc/bluetooth/bt-dev-end.sh
+%attr(755,-,-) %{_prefix}/etc/bluetooth/bt-dev-start-rpi3.sh
+%manifest %{name}.manifest
index bb3fea1..45b184c 100755 (executable)
@@ -8,3 +8,6 @@ INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bt-dev-start-exynos3250.sh DESTINAT
 INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bt-dev-start-exynos7270.sh DESTINATION ${PLUGIN_INSTALL_PREFIX}/etc/bluetooth)
 INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bt-dev-start-artik.sh DESTINATION ${PLUGIN_INSTALL_PREFIX}/etc/bluetooth)
 #ENDIF (TIZEN_WEARABLE)
+
+# RPI3
+INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bt-dev-start-rpi3.sh DESTINATION ${PLUGIN_INSTALL_PREFIX}/etc/bluetooth)
diff --git a/scripts/bt-dev-start-rpi3.sh b/scripts/bt-dev-start-rpi3.sh
new file mode 100644 (file)
index 0000000..a0e952a
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/sh
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+# Script for registering Broadcom UART BT device
+BT_UART_DEVICE=/dev/ttyAMA0
+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
+
+if [ ! -e "$BT_UART_DEVICE" ]
+then
+       mknod $BT_UART_DEVICE c 204 64
+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
+}
+
+if [ ! -e "$BT_MAC_FILE" ]
+then
+       # Set BT address
+       GEN_BDADDR
+       echo $BT_MAC > ${BT_MAC_FILE}
+else
+       BT_MAC=$(cat ${BT_MAC_FILE})
+fi
+
+echo $BT_MAC
+
+echo "Check for Bluetooth device status"
+if ($HCI_CONFIG | grep hci); then
+       echo "Bluetooth device is UP"
+       $HCI_CONFIG hci0 up
+else
+       echo "Bluetooth device is DOWN"
+       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
+               echo "HCIATTACH failed"
+       fi
+fi