From 3ef4fc924a88bc998c2a09599fc777ebb250abb8 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 19 Feb 2018 13:56:02 +0000 Subject: [PATCH] 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