diff --git a/packages/linux-firmware/brcmfmac_sdio-firmware-rpi/scripts/rpi-btuart b/packages/linux-firmware/brcmfmac_sdio-firmware-rpi/scripts/rpi-btuart index c27c58c152..fb89ef84e6 100755 --- a/packages/linux-firmware/brcmfmac_sdio-firmware-rpi/scripts/rpi-btuart +++ b/packages/linux-firmware/brcmfmac_sdio-firmware-rpi/scripts/rpi-btuart @@ -1,11 +1,18 @@ -#!/bin/bash +#!/bin/sh + +HCIATTACH=/usr/bin/hciattach +SERIAL=$(awk '/^Serial/{ print $3 }' /proc/cpuinfo) +B1=${SERIAL:10:2} +B2=${SERIAL:12:2} +B3=${SERIAL:14:2} +BDADDR=$(printf b8:27:eb:%02x:%02x:%02x $((0x$B1 ^ 0xaa)) $((0x$B2 ^ 0xaa)) $((0x$B3 ^ 0xaa))) if [ "$(cat /proc/device-tree/aliases/uart0)" = "$(cat /proc/device-tree/aliases/serial1)" ] ; then if [ "$(wc -c /proc/device-tree/soc/gpio@7e200000/uart0_pins/brcm\,pins | cut -f 1 -d ' ')" = "16" ] ; then - /usr/bin/hciattach /dev/serial1 bcm43xx 3000000 flow - + $HCIATTACH /dev/serial1 bcm43xx 3000000 flow - $BDADDR else - /usr/bin/hciattach /dev/serial1 bcm43xx 921600 noflow - + $HCIATTACH /dev/serial1 bcm43xx 921600 noflow - $BDADDR fi else - /usr/bin/hciattach /dev/serial1 bcm43xx 460800 noflow - + $HCIATTACH /dev/serial1 bcm43xx 460800 noflow - $BDADDR fi