From ba81a8ebac146b001b6795751359ddb728156428 Mon Sep 17 00:00:00 2001 From: Adam Green Date: Wed, 13 Dec 2017 00:45:45 +0000 Subject: [PATCH] brcmfmac_sdio-firmware-all-aml: new firmware package --- .../brcmfmac_sdio-firmware-all-aml/package.mk | 40 +++++++++++++++++++ ...aml-all-0001-install-firmware-in-usr.patch | 14 +++++++ .../brcmfmac_sdio-firmware-aml.service | 8 ++++ .../system.d/brcmfmac_sdio-firmware@.service | 8 ++++ .../udev.d/80-brcmfmac_sdio.rules | 12 ++++++ 5 files changed, 82 insertions(+) create mode 100644 packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/package.mk create mode 100644 packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/patches/brcmfmac_sdio-firmware-aml-all-0001-install-firmware-in-usr.patch create mode 100644 packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/system.d/brcmfmac_sdio-firmware-aml.service create mode 100644 packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/system.d/brcmfmac_sdio-firmware@.service create mode 100644 packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/udev.d/80-brcmfmac_sdio.rules diff --git a/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/package.mk b/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/package.mk new file mode 100644 index 0000000000..909b97d768 --- /dev/null +++ b/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/package.mk @@ -0,0 +1,40 @@ +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2017-present Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +PKG_NAME="brcmfmac_sdio-firmware-all-aml" +PKG_VERSION="f9d6101" +PKG_SHA256="4676dfb1053795fd4c3c3ba59430da251d273202f016a9fdc13f22e12ac34947" +PKG_ARCH="arm aarch64" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/kszaq/brcmfmac_sdio-firmware-aml" +PKG_URL="https://github.com/kszaq/brcmfmac_sdio-firmware-aml/archive/$PKG_VERSION.tar.gz" +PKG_SOURCE_DIR="brcmfmac_sdio-firmware-aml-$PKG_VERSION*" +PKG_DEPENDS_TARGET="toolchain" +PKG_SECTION="firmware" +PKG_SHORTDESC="brcmfmac_sdio-firmware: firmware for brcm bluetooth chips used in some Amlogic based devices" +PKG_LONGDESC="Firmware for Broadcom Bluetooth devices used in some Amlogic based devices, and brcm-patchram-plus that downloads a patchram files in the HCD format to the Bluetooth based silicon and combo chips and other utility functions." + +post_makeinstall_target() { + cd $INSTALL/$(get_full_firmware_dir)/brcm + for f in *.hcd; do + ln -sr $f $(grep --text -o 'BCM\S*' $f).hcd 2>/dev/null || true + ln -sr $f $(grep --text -o 'BCM\S*' $f | cut -c4-).hcd 2>/dev/null || true + ln -sr $f $(echo $f | sed -r 's/[^.]*/\U&/') 2>/dev/null || true + ln -sr bcm4335_V0343.0353.hcd BCM4335A0.hcd 2>/dev/null || true + done +} diff --git a/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/patches/brcmfmac_sdio-firmware-aml-all-0001-install-firmware-in-usr.patch b/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/patches/brcmfmac_sdio-firmware-aml-all-0001-install-firmware-in-usr.patch new file mode 100644 index 0000000000..254be5a23c --- /dev/null +++ b/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/patches/brcmfmac_sdio-firmware-aml-all-0001-install-firmware-in-usr.patch @@ -0,0 +1,14 @@ +diff -Naur a/Makefile b/Makefile +--- a/Makefile 2014-10-07 14:00:34.000000000 -0700 ++++ b/Makefile 2016-12-06 11:24:34.855522455 -0800 +@@ -15,8 +15,8 @@ + install: + mkdir -p $(DESTDIR)/usr/bin + cp -P $(PROG) $(DESTDIR)/usr/bin +- mkdir -p $(DESTDIR)/lib/firmware +- cp -PR firmware/brcm $(DESTDIR)/lib/firmware/ ++ mkdir -p $(DESTDIR)/usr/lib/kernel-overlays/base/lib/firmware ++ cp -PR firmware/brcm $(DESTDIR)/usr/lib/kernel-overlays/base/lib/firmware/ + + clean: + rm -f $(PROG) diff --git a/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/system.d/brcmfmac_sdio-firmware-aml.service b/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/system.d/brcmfmac_sdio-firmware-aml.service new file mode 100644 index 0000000000..d9353648f3 --- /dev/null +++ b/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/system.d/brcmfmac_sdio-firmware-aml.service @@ -0,0 +1,8 @@ +[Unit] +Description=Broadcom sdio firmware update + +[Service] +Type=simple +RemainAfterExit=yes +EnvironmentFile=/usr/share/bttty.conf +ExecStart=/usr/bin/hciattach -n -s 115200 ${BTTTY} bcm43xx 2000000 diff --git a/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/system.d/brcmfmac_sdio-firmware@.service b/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/system.d/brcmfmac_sdio-firmware@.service new file mode 100644 index 0000000000..0d5fa2cc95 --- /dev/null +++ b/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/system.d/brcmfmac_sdio-firmware@.service @@ -0,0 +1,8 @@ +[Unit] +Description=Broadcom sdio firmware update for %I + +[Service] +Type=simple +RemainAfterExit=yes +EnvironmentFile=/usr/share/bttty.conf +ExecStart=/usr/bin/brcm_patchram_plus --patchram /usr/lib/kernel-overlays/base/lib/firmware/brcm/%I.hcd --baudrate 2000000 --use_baudrate_for_download ${BTTTY} --enable_hci --no2bytes --tosleep=50000 diff --git a/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/udev.d/80-brcmfmac_sdio.rules b/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/udev.d/80-brcmfmac_sdio.rules new file mode 100644 index 0000000000..f119bd2779 --- /dev/null +++ b/packages/linux-firmware/brcmfmac_sdio-firmware-all-aml/udev.d/80-brcmfmac_sdio.rules @@ -0,0 +1,12 @@ +################################################################################ +# udev rules file for loading brcmfmac_sdio-firmware +################################################################################ + +### Broadcom bcm43362/bcm20710a1 bluetooth device +SUBSYSTEMS=="sdio", ATTRS{vendor}=="0x02d0", ATTRS{device}=="0xa962", ACTION=="add", \ + TAG+="systemd", ENV{SYSTEMD_WANTS}+="brcmfmac_sdio-firmware@bcm20710a1.service", GOTO="end" + +SUBSYSTEMS=="sdio", ATTRS{vendor}=="0x02d0", ACTION=="add", \ + TAG+="systemd", ENV{SYSTEMD_WANTS}+="brcmfmac_sdio-firmware-aml.service" + +LABEL="end"