mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
alarm/firmware-brcm43xx to 1.2
This commit is contained in:
parent
397024cff5
commit
fda0ff63c0
7 changed files with 50 additions and 145 deletions
19
alarm/firmware-brcm43xx/80-brcm43xx-firmware.rules
Normal file
19
alarm/firmware-brcm43xx/80-brcm43xx-firmware.rules
Normal file
|
@ -0,0 +1,19 @@
|
|||
################################################################################
|
||||
# udev rules file for loading brcmfmac_sdio-firmware
|
||||
################################################################################
|
||||
|
||||
ACTION!="add", GOTO="end"
|
||||
SUBSYSTEMS=="sdio", ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4329", GOTO="begin"
|
||||
SUBSYSTEMS=="sdio", ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4330", GOTO="begin"
|
||||
GOTO="end"
|
||||
LABEL="begin"
|
||||
### Broadcom bcm4330 bluetooth device
|
||||
ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4330", \
|
||||
ENV{brcm_device}="bcm4330"
|
||||
### Broadcom bcm4329 bluetooth device
|
||||
ATTRS{vendor}=="0x02d0", ATTRS{device}=="0x4329", \
|
||||
ENV{brcm_device}="bcm4329"
|
||||
|
||||
ENV{brcm_device}=="bcm43*", ACTION=="add", \
|
||||
TAG+="systemd", ENV{SYSTEMD_WANTS}+="brcm43xx-firmware@$env{brcm_device}.service"
|
||||
LABEL="end"
|
|
@ -3,55 +3,39 @@
|
|||
buildarch=4
|
||||
|
||||
pkgname=firmware-brcm43xx
|
||||
pkgdesc="bluetooth firmware and firware loading utility for the bcm43xx bluetooth"
|
||||
pkgver=1.1
|
||||
pkgrel=5
|
||||
pkgdesc="wifi and bluetooth firmware for the bcm43xx"
|
||||
pkgver=1.2
|
||||
pkgrel=1
|
||||
arch=('armv7h')
|
||||
url="https://github.com/OpenBricks/openbricks/tree/master/packages/brcm-patchram-plus"
|
||||
url="https://github.com/OpenBricks/openbricks/"
|
||||
license=('apache' 'custom')
|
||||
depends=('bluez-utils')
|
||||
backup=('etc/conf.d/bcm43xx')
|
||||
source=('https://raw.githubusercontent.com/OpenBricks/openbricks/master/packages/firmware/firmware-wifi-brcm80211/config/bcm4329_nvram.txt'
|
||||
'https://raw.githubusercontent.com/OpenBricks/openbricks/master/packages/firmware/firmware-wifi-brcm80211/config/bcm4330_nvram.txt'
|
||||
'https://raw.githubusercontent.com/OpenBricks/openbricks/master/packages/firmware/firmware-wifi-brcm80211/config/bcm4330_nvram.txt'
|
||||
'https://github.com/OpenBricks/openbricks/raw/master/packages/net/brcm-patchram-plus/sources/bcm4329.hcd'
|
||||
'https://github.com/OpenBricks/openbricks/raw/master/packages/net/brcm-patchram-plus/sources/bcm4330.hcd'
|
||||
'https://raw.githubusercontent.com/OpenBricks/openbricks/master/packages/net/brcm-patchram-plus/sources/brcm_patchram_plus.c'
|
||||
'brcm43xx-firmware-update'
|
||||
'brcm43xx-firmware.service'
|
||||
'brcm43xx.service'
|
||||
'bcm43xx')
|
||||
_commit=194b51d7f61cb05ec735c8afc9854beb692d0d6d
|
||||
_url="https://raw.githubusercontent.com/OpenBricks/openbricks/$_commit/packages"
|
||||
source=("$_url/firmware/firmware-wifi-brcm80211/config/bcm4329_nvram.txt"
|
||||
"$_url/firmware/firmware-wifi-brcm80211/config/bcm4330_nvram.txt"
|
||||
"$_url/net/brcm-patchram-plus/sources/bcm4329.hcd"
|
||||
"$_url/net/brcm-patchram-plus/sources/bcm4330.hcd"
|
||||
"$_url/net/brcm-patchram-plus/sources/brcm_patchram_plus.c"
|
||||
'80-brcm43xx-firmware.rules'
|
||||
'brcm43xx-firmware@.service')
|
||||
md5sums=('bf01292eec17815baa68a83d3d7722ad'
|
||||
'31a9a011ce24707ed3c1024616c9005e'
|
||||
'31a9a011ce24707ed3c1024616c9005e'
|
||||
'ff27325602dc223203adfdd23a89844b'
|
||||
'8e32f9168aaa540467589c153129c57a'
|
||||
'627e9612337e5ef6027a87a79c491446'
|
||||
'c318d1d7cc65e89d5238e7c9ec0f4bfc'
|
||||
'a1bd492bdafced5b41abe4bdebbb07e2'
|
||||
'00873c77c5c080e3a23f7c0853adbfeb'
|
||||
'f21bddcbe8c4e1dedaf31e2959b284d9')
|
||||
'b4ca6a6085eb1c2dd4560a15a178cf0e'
|
||||
'943e67bcb139d37b9b62cec0004ace88')
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/"
|
||||
gcc -c -Wno-implicit-function-declaration brcm_patchram_plus.c -o brcm_patchram_plus
|
||||
gcc -Wno-error=implicit-function-declaration brcm_patchram_plus.c -o brcm_patchram_plus
|
||||
}
|
||||
|
||||
|
||||
package() {
|
||||
cd "${srcdir}/"
|
||||
mkdir -p ${pkgdir}/usr/lib/firmware/brcm
|
||||
mkdir -p ${pkgdir}/usr/bin
|
||||
mkdir -p ${pkgdir}/etc/conf.d
|
||||
mkdir -p ${pkgdir}/usr/lib/systemd/scripts
|
||||
install -D -m0644 bcm4329_nvram.txt "${pkgdir}/usr/lib/firmware/brcm/brcmfmac4329-sdio.txt"
|
||||
install -D -m0644 bcm4330_nvram.txt "${pkgdir}/usr/lib/firmware/brcm/brcmfmac4330-sdio.txt"
|
||||
install -D -m0644 bcm4329.hcd "${pkgdir}/usr/lib/firmware/brcm/bcm4329.hcd"
|
||||
install -D -m0644 bcm4330.hcd "${pkgdir}/usr/lib/firmware/brcm/bcm4330.hcd"
|
||||
install -D -m0755 brcm_patchram_plus "${pkgdir}/usr/bin/brcm_patchram_plus"
|
||||
install -D -m0644 bcm43xx "${pkgdir}/etc/conf.d/bcm43xx"
|
||||
install -D -m0644 brcm43xx.service "${pkgdir}/usr/lib/systemd/system/brcm43xx.service"
|
||||
install -D -m0644 brcm43xx-firmware.service "${pkgdir}/usr/lib/systemd/system/brcm43xx-firmware.service"
|
||||
install -D -m0755 brcm43xx-firmware-update "${pkgdir}/usr/lib/systemd/scripts/brcm43xx-firmware-update"
|
||||
install -D -m0644 "${srcdir}/bcm4329_nvram.txt" "${pkgdir}/usr/lib/firmware/brcm/brcmfmac4329-sdio.txt"
|
||||
install -D -m0644 "${srcdir}/bcm4330_nvram.txt" "${pkgdir}/usr/lib/firmware/brcm/brcmfmac4330-sdio.txt"
|
||||
install -D -m0644 "${srcdir}/bcm4329.hcd" "${pkgdir}/usr/lib/firmware/brcm/bcm4329.hcd"
|
||||
install -D -m0644 "${srcdir}/bcm4330.hcd" "${pkgdir}/usr/lib/firmware/brcm/bcm4330.hcd"
|
||||
install -D -m0755 "${srcdir}/brcm_patchram_plus" "${pkgdir}/usr/bin/brcm_patchram_plus"
|
||||
install -D -m0644 "${srcdir}/80-brcm43xx-firmware.rules" "${pkgdir}/usr/lib/udev/rules.d/80-brcm43xx-firmware.rules"
|
||||
install -D -m0644 "${srcdir}/brcm43xx-firmware@.service" "${pkgdir}/usr/lib/systemd/system/brcm43xx-firmware@.service"
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
MAC_ADDR=
|
||||
HCD=
|
||||
TTY=
|
||||
OPTIONS=
|
|
@ -1,70 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
CACHE=/var/cache/brcm43xx-mac
|
||||
if [ -z "$MAC_ADDR" ]; then
|
||||
if [ ! -f "$CACHE" ]; then
|
||||
echo 43:29:B1$(od -txC -An -N3 /dev/random|tr \ : | tr '[:lower:]' '[:upper:]') >"$CACHE"
|
||||
fi
|
||||
MAC_ADDR=`cat "$CACHE"`
|
||||
echo "Warning: Using self generated MAC address! MAC_ADDR should be defined in /etc/conf.d/bcm43xx."
|
||||
else
|
||||
[ -f "$CACHE" ] && rm "$CACHE"
|
||||
fi
|
||||
OPTIONS="$OPTIONS --bd_addr $MAC_ADDR"
|
||||
|
||||
# Find chip version
|
||||
if [ -z "$HCD" ]; then
|
||||
DEVS=($( cat /sys/class/mmc_host/mmc*/mmc?\:0001/mmc?\:0001:?/device ))
|
||||
for DEV in "${DEVS[@]}"; do
|
||||
if [ "${DEV:0:4}" = "0x43" ]; then
|
||||
HCD="bcm${DEV:2}.hcd"
|
||||
fi
|
||||
done
|
||||
if [ -z "$HCD" ]; then
|
||||
echo "Failed: Unable to locate bluetooth device"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
HCD_BASE=$(basename "$HCD")
|
||||
|
||||
# Device specific options
|
||||
[ "$HCD_BASE" = "bcm4330.hcd" ] && OPTIONS="--no2bytes --tosleep=50000 $OPTIONS"
|
||||
|
||||
[ ! -e "$HCD" ] && HCD="/lib/firmware/brcm/${HCD_BASE}"
|
||||
if [ ! -e "$HCD" ]; then
|
||||
echo "Failed: $HCD does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# UART TTY can be different for each board
|
||||
# FIXME: Possibly test each port with hciattach (-n)?
|
||||
# For now, just use the highest port as it works for current boards
|
||||
if [ -z "$TTY" ]; then
|
||||
TTYS=($( ls -r1 /dev/ttymxc? ))
|
||||
for t in "${TTYS[@]}" ; do
|
||||
ttynum=${t:0-1}
|
||||
if [ $ttynum -eq 0 ]; then
|
||||
echo "Abort: UART ttymcx0 does not seem right."
|
||||
exit 1
|
||||
else
|
||||
TTY=$t
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
[ ! -e "$TTY" ] && TTY="/dev/$(basename $TTY)"
|
||||
if [ ! -e "$TTY" ]; then
|
||||
echo "Failed: $TTY does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Updating bluetooth firmware via $TTY from $HCD."
|
||||
/usr/bin/brcm_patchram_plus --patchram $HCD --baudrate 3000000 --use_baudrate_for_download $TTY $OPTIONS
|
||||
|
||||
# Create a symlink to TTY for hci service
|
||||
if [ $? -eq 0 ]; then
|
||||
ln -sr "$TTY" /dev/brcm43xx
|
||||
else
|
||||
exit 1
|
||||
fi
|
|
@ -1,19 +0,0 @@
|
|||
[Unit]
|
||||
Description=Broadcom 43xx firmware update
|
||||
DefaultDependencies=no
|
||||
Wants=local-fs.target
|
||||
Conflicts=shutdown.target
|
||||
After=systemd-modules-load.service local-fs.target
|
||||
Before=sysinit.target shutdown.target
|
||||
RefuseManualStart=yes
|
||||
RefuseManualStop=yes
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
EnvironmentFile=-/etc/conf.d/bcm43xx
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/lib/systemd/scripts/brcm43xx-firmware-update
|
||||
TimeoutSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=sysinit.target
|
8
alarm/firmware-brcm43xx/brcm43xx-firmware@.service
Normal file
8
alarm/firmware-brcm43xx/brcm43xx-firmware@.service
Normal file
|
@ -0,0 +1,8 @@
|
|||
[Unit]
|
||||
Description=Broadcom sdio firmware update for %I
|
||||
ConditionPathExists=/dev/ttymxc2
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/bin/brcm_patchram_plus --patchram /lib/firmware/brcm/%I.hcd --baudrate 3000000 --use_baudrate_for_download /dev/ttymxc2 --enable_hci --no2bytes --tosleep=50000
|
|
@ -1,13 +0,0 @@
|
|||
[Unit]
|
||||
Description=Broadcom 43xx bluetooth HCI
|
||||
Requires=brcm43xx-firmware.service
|
||||
After=brcm43xx-firmware.service
|
||||
Before=bluetooth.service
|
||||
ConditionPathExists=/dev/brcm43xx
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/btattach -B /dev/brcm43xx -P bcm -S 3000000
|
||||
|
||||
[Install]
|
||||
WantedBy=bluetooth.target
|
Loading…
Reference in a new issue