From 3ef4fc924a88bc998c2a09599fc777ebb250abb8 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 19 Feb 2018 13:56:02 +0000 Subject: [PATCH 1/4] kernel-firmware: use project specific firmwares and cleanup --- .../linux-firmware/kernel-firmware/package.mk | 19 +++++++++++++------ .../kernel-firmware/firmwares/any.dat | 18 ++++++++++++++++++ .../kernel-firmware/firmwares/any.dat | 0 .../kernel-firmware/scripts/cleanup.sh | 9 +++++++++ 4 files changed, 40 insertions(+), 6 deletions(-) rename packages/linux-firmware/kernel-firmware/firmwares/x86_64.dat => projects/Generic/packages/kernel-firmware/firmwares/any.dat (51%) rename {packages/linux-firmware => projects/RPi/packages}/kernel-firmware/firmwares/any.dat (100%) create mode 100755 projects/RPi/packages/kernel-firmware/scripts/cleanup.sh diff --git a/packages/linux-firmware/kernel-firmware/package.mk b/packages/linux-firmware/kernel-firmware/package.mk index d20e0273fc..05964c7234 100644 --- a/packages/linux-firmware/kernel-firmware/package.mk +++ b/packages/linux-firmware/kernel-firmware/package.mk @@ -24,6 +24,7 @@ PKG_LICENSE="other" PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/" PKG_URL="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/$PKG_VERSION.tar.gz" PKG_SOURCE_DIR="$PKG_VERSION" +PKG_NEED_UNPACK="${PROJECT_DIR}/${PROJECT}/packages/${PKG_NAME} ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/packages/${PKG_NAME}" PKG_DEPENDS_TARGET="toolchain" PKG_SECTION="linux-firmware" PKG_SHORTDESC="kernel-firmware: kernel related firmware" @@ -34,9 +35,16 @@ PKG_TOOLCHAIN="manual" makeinstall_target() { FW_TARGET_DIR=$INSTALL/$(get_full_firmware_dir) - FW_LISTS="${PKG_DIR}/firmwares/any.dat ${PKG_DIR}/firmwares/${TARGET_ARCH}.dat" - FW_LISTS+=" ${PROJECT_DIR}/${PROJECT}/${PKG_NAME}/firmwares/any.dat" - [ -n "${DEVICE}" ] && FW_LISTS+=" ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/${PKG_NAME}/firmwares/any.dat" + # Install all firmwares found in hierarchy + FW_LISTS= + for dir in ${PKG_DIR} \ + ${PROJECT_DIR}/${PROJECT}/packages/${PKG_NAME} \ + ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/packages/${PKG_NAME} \ + ; do + for fmware in any.dat ${TARGET_ARCH}.dat; do + [ -f "${dir}/firmwares/${fmware}" ] && FW_LISTS+=" ${dir}/firmwares/${fmware}" + done + done for fwlist in ${FW_LISTS}; do [ -f ${fwlist} ] || continue @@ -59,7 +67,6 @@ makeinstall_target() { done < ${fwlist} done - # The following file is installed by brcmfmac_sdio-firmware-rpi - rm -fr $FW_TARGET_DIR/brcm/brcmfmac43430*-sdio.bin - rm -fr $FW_TARGET_DIR/brcm/brcmfmac43455*-sdio.bin + # Cleanup - which may be project or device specific + find_file_path scripts/cleanup.sh && ${FOUND_PATH} ${FW_TARGET_DIR} || true } diff --git a/packages/linux-firmware/kernel-firmware/firmwares/x86_64.dat b/projects/Generic/packages/kernel-firmware/firmwares/any.dat similarity index 51% rename from packages/linux-firmware/kernel-firmware/firmwares/x86_64.dat rename to projects/Generic/packages/kernel-firmware/firmwares/any.dat index 26c30ab11b..b78dee76b5 100644 --- a/packages/linux-firmware/kernel-firmware/firmwares/x86_64.dat +++ b/projects/Generic/packages/kernel-firmware/firmwares/any.dat @@ -1,3 +1,21 @@ +#aarch64 +htc_7010.fw +htc_9271.fw + +ath3k-1.fw +ar5523.bin +carl9170-1.fw +mt7601u.bin +rt2870.bin +rt73.bin +vntwusb.fw + +ath6k/AR6004/hw1.?/bdata.bin +ath9k_htc/* +brcm/* +rtl_bt/*_fw.bin +rtlwifi/* + ath10k/* ctefx.bin lbtf_usb.bin diff --git a/packages/linux-firmware/kernel-firmware/firmwares/any.dat b/projects/RPi/packages/kernel-firmware/firmwares/any.dat similarity index 100% rename from packages/linux-firmware/kernel-firmware/firmwares/any.dat rename to projects/RPi/packages/kernel-firmware/firmwares/any.dat diff --git a/projects/RPi/packages/kernel-firmware/scripts/cleanup.sh b/projects/RPi/packages/kernel-firmware/scripts/cleanup.sh new file mode 100755 index 0000000000..8b0348706f --- /dev/null +++ b/projects/RPi/packages/kernel-firmware/scripts/cleanup.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +FW_TARGET_DIR=$1 + +# The following files will be installed by brcmfmac_sdio-firmware-rpi instead +rm -fr $FW_TARGET_DIR/brcm/brcmfmac43430*-sdio.bin +rm -fr $FW_TARGET_DIR/brcm/brcmfmac43455*-sdio.bin + +exit 0 From 7ea3bc93bf3584181cb95fb802d0699e61ef1b70 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sat, 3 Mar 2018 20:48:31 +0000 Subject: [PATCH 2/4] kernel-firmware: use project/device firmware if configured, otherwise use common default --- .../kernel-firmware/firmwares/any.dat | 0 .../kernel-firmware/firmwares/x86_64.dat | 18 ------------------ .../linux-firmware/kernel-firmware/package.mk | 15 +++++---------- .../firmwares/kernel-firmware.dat | 0 .../firmwares/kernel-firmware.dat | 0 .../firmwares/kernel-firmware.dat | 0 6 files changed, 5 insertions(+), 28 deletions(-) rename {projects/RPi/packages => packages/linux-firmware}/kernel-firmware/firmwares/any.dat (100%) rename projects/Generic/packages/kernel-firmware/firmwares/any.dat => packages/linux-firmware/kernel-firmware/firmwares/x86_64.dat (51%) create mode 100644 projects/Amlogic/packages/kernel-firmware/firmwares/kernel-firmware.dat create mode 100644 projects/WeTek_Core/packages/kernel-firmware/firmwares/kernel-firmware.dat create mode 100644 projects/WeTek_Play/packages/kernel-firmware/firmwares/kernel-firmware.dat diff --git a/projects/RPi/packages/kernel-firmware/firmwares/any.dat b/packages/linux-firmware/kernel-firmware/firmwares/any.dat similarity index 100% rename from projects/RPi/packages/kernel-firmware/firmwares/any.dat rename to packages/linux-firmware/kernel-firmware/firmwares/any.dat diff --git a/projects/Generic/packages/kernel-firmware/firmwares/any.dat b/packages/linux-firmware/kernel-firmware/firmwares/x86_64.dat similarity index 51% rename from projects/Generic/packages/kernel-firmware/firmwares/any.dat rename to packages/linux-firmware/kernel-firmware/firmwares/x86_64.dat index b78dee76b5..26c30ab11b 100644 --- a/projects/Generic/packages/kernel-firmware/firmwares/any.dat +++ b/packages/linux-firmware/kernel-firmware/firmwares/x86_64.dat @@ -1,21 +1,3 @@ -#aarch64 -htc_7010.fw -htc_9271.fw - -ath3k-1.fw -ar5523.bin -carl9170-1.fw -mt7601u.bin -rt2870.bin -rt73.bin -vntwusb.fw - -ath6k/AR6004/hw1.?/bdata.bin -ath9k_htc/* -brcm/* -rtl_bt/*_fw.bin -rtlwifi/* - ath10k/* ctefx.bin lbtf_usb.bin diff --git a/packages/linux-firmware/kernel-firmware/package.mk b/packages/linux-firmware/kernel-firmware/package.mk index 05964c7234..22776849ef 100644 --- a/packages/linux-firmware/kernel-firmware/package.mk +++ b/packages/linux-firmware/kernel-firmware/package.mk @@ -35,16 +35,11 @@ PKG_TOOLCHAIN="manual" makeinstall_target() { FW_TARGET_DIR=$INSTALL/$(get_full_firmware_dir) - # Install all firmwares found in hierarchy - FW_LISTS= - for dir in ${PKG_DIR} \ - ${PROJECT_DIR}/${PROJECT}/packages/${PKG_NAME} \ - ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/packages/${PKG_NAME} \ - ; do - for fmware in any.dat ${TARGET_ARCH}.dat; do - [ -f "${dir}/firmwares/${fmware}" ] && FW_LISTS+=" ${dir}/firmwares/${fmware}" - done - done + if find_file_path firmwares/kernel-firmware.dat; then + FW_LISTS="${FOUND_FILE}" + else + FW_LISTS="${PKG_DIR}/firmwares/any.dat ${PKG_DIR}/firmwares/${TARGET_ARCH}.dat" + fi for fwlist in ${FW_LISTS}; do [ -f ${fwlist} ] || continue diff --git a/projects/Amlogic/packages/kernel-firmware/firmwares/kernel-firmware.dat b/projects/Amlogic/packages/kernel-firmware/firmwares/kernel-firmware.dat new file mode 100644 index 0000000000..e69de29bb2 diff --git a/projects/WeTek_Core/packages/kernel-firmware/firmwares/kernel-firmware.dat b/projects/WeTek_Core/packages/kernel-firmware/firmwares/kernel-firmware.dat new file mode 100644 index 0000000000..e69de29bb2 diff --git a/projects/WeTek_Play/packages/kernel-firmware/firmwares/kernel-firmware.dat b/projects/WeTek_Play/packages/kernel-firmware/firmwares/kernel-firmware.dat new file mode 100644 index 0000000000..e69de29bb2 From 0abcbb13239b08e24792e09fd8af17944be71f92 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sat, 3 Mar 2018 23:32:26 +0000 Subject: [PATCH 3/4] kernel-firmware: drop WeTek_Core/WeTek_Play config --- .../packages/kernel-firmware/firmwares/kernel-firmware.dat | 0 .../packages/kernel-firmware/firmwares/kernel-firmware.dat | 0 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 projects/WeTek_Core/packages/kernel-firmware/firmwares/kernel-firmware.dat delete mode 100644 projects/WeTek_Play/packages/kernel-firmware/firmwares/kernel-firmware.dat diff --git a/projects/WeTek_Core/packages/kernel-firmware/firmwares/kernel-firmware.dat b/projects/WeTek_Core/packages/kernel-firmware/firmwares/kernel-firmware.dat deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/projects/WeTek_Play/packages/kernel-firmware/firmwares/kernel-firmware.dat b/projects/WeTek_Play/packages/kernel-firmware/firmwares/kernel-firmware.dat deleted file mode 100644 index e69de29bb2..0000000000 From 266d6be5fac3ad02d8aeecb14be5fa421ca1cc7b Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sun, 4 Mar 2018 14:52:29 +0000 Subject: [PATCH 4/4] Drop Amlogic config, don't install RPi sdio files --- packages/linux-firmware/kernel-firmware/package.mk | 4 ++++ .../kernel-firmware/firmwares/kernel-firmware.dat | 0 projects/RPi/packages/kernel-firmware/scripts/cleanup.sh | 9 --------- 3 files changed, 4 insertions(+), 9 deletions(-) delete mode 100644 projects/Amlogic/packages/kernel-firmware/firmwares/kernel-firmware.dat delete mode 100755 projects/RPi/packages/kernel-firmware/scripts/cleanup.sh diff --git a/packages/linux-firmware/kernel-firmware/package.mk b/packages/linux-firmware/kernel-firmware/package.mk index 22776849ef..c7b97d8085 100644 --- a/packages/linux-firmware/kernel-firmware/package.mk +++ b/packages/linux-firmware/kernel-firmware/package.mk @@ -62,6 +62,10 @@ makeinstall_target() { done < ${fwlist} done + # The following files are RPi specific and installed by brcmfmac_sdio-firmware-rpi instead + rm -fr $FW_TARGET_DIR/brcm/brcmfmac43430*-sdio.bin + rm -fr $FW_TARGET_DIR/brcm/brcmfmac43455*-sdio.bin + # Cleanup - which may be project or device specific find_file_path scripts/cleanup.sh && ${FOUND_PATH} ${FW_TARGET_DIR} || true } diff --git a/projects/Amlogic/packages/kernel-firmware/firmwares/kernel-firmware.dat b/projects/Amlogic/packages/kernel-firmware/firmwares/kernel-firmware.dat deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/projects/RPi/packages/kernel-firmware/scripts/cleanup.sh b/projects/RPi/packages/kernel-firmware/scripts/cleanup.sh deleted file mode 100755 index 8b0348706f..0000000000 --- a/projects/RPi/packages/kernel-firmware/scripts/cleanup.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -FW_TARGET_DIR=$1 - -# The following files will be installed by brcmfmac_sdio-firmware-rpi instead -rm -fr $FW_TARGET_DIR/brcm/brcmfmac43430*-sdio.bin -rm -fr $FW_TARGET_DIR/brcm/brcmfmac43455*-sdio.bin - -exit 0