From b0f54dfa6837d5e3011d05b0e2979281e093cf41 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Thu, 16 Apr 2020 20:31:45 +0100 Subject: [PATCH 1/4] kernel-firmware: unpack with copy-firmware.sh --- .../linux-firmware/kernel-firmware/package.mk | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/linux-firmware/kernel-firmware/package.mk b/packages/linux-firmware/kernel-firmware/package.mk index 8c3300954f..321fb14f8c 100644 --- a/packages/linux-firmware/kernel-firmware/package.mk +++ b/packages/linux-firmware/kernel-firmware/package.mk @@ -11,6 +11,18 @@ PKG_NEED_UNPACK="${PROJECT_DIR}/${PROJECT}/packages/${PKG_NAME} ${PROJECT_DIR}/$ PKG_LONGDESC="kernel-firmware: kernel related firmware" PKG_TOOLCHAIN="manual" +configure_package() { + PKG_FW_SOURCE=${PKG_BUILD}/.copied-firmware +} + +post_patch() { + ( + cd ${PKG_BUILD} + mkdir -p "${PKG_FW_SOURCE}" + ./copy-firmware.sh --verbose "${PKG_FW_SOURCE}" + ) +} + # Install additional miscellaneous drivers makeinstall_target() { FW_TARGET_DIR=$INSTALL/$(get_full_firmware_dir) @@ -34,16 +46,16 @@ makeinstall_target() { [[ ${fwline} =~ ^[[:space:]] ]] && continue while read -r fwfile; do - [ -d "${PKG_BUILD}/${fwfile}" ] && continue + [ -d "${PKG_FW_SOURCE}/${fwfile}" ] && continue - if [ -f "${PKG_BUILD}/${fwfile}" ]; then + if [ -f "${PKG_FW_SOURCE}/${fwfile}" ]; then mkdir -p "$(dirname "${FW_TARGET_DIR}/${fwfile}")" - cp -Lv "${PKG_BUILD}/${fwfile}" "${FW_TARGET_DIR}/${fwfile}" + cp -Lv "${PKG_FW_SOURCE}/${fwfile}" "${FW_TARGET_DIR}/${fwfile}" else echo "ERROR: Firmware file ${fwfile} does not exist - aborting" exit 1 fi - done <<< "$(cd ${PKG_BUILD} && eval "find "${fwline}"")" + done <<< "$(cd ${PKG_FW_SOURCE} && eval "find "${fwline}"")" done < "${fwlist}" done From 53f084e18db1c6a8aa911966b340e406ab0f8f76 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Thu, 16 Apr 2020 22:06:38 +0100 Subject: [PATCH 2/4] linux: install copied kernel-firmware --- packages/linux/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 504bf30d16..1b2af45888 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -149,7 +149,7 @@ pre_make_target() { if [ "$TARGET_ARCH" = "x86_64" ]; then # copy some extra firmware to linux tree mkdir -p $PKG_BUILD/external-firmware - cp -a $(get_build_dir kernel-firmware)/{amdgpu,amd-ucode,i915,radeon,e100,rtl_nic} $PKG_BUILD/external-firmware + cp -a $(get_build_dir kernel-firmware)/.copied-firmware/{amdgpu,amd-ucode,i915,radeon,e100,rtl_nic} $PKG_BUILD/external-firmware cp -a $(get_build_dir intel-ucode)/intel-ucode $PKG_BUILD/external-firmware From 8706a792c0b9f6671887811c52a393c4ec804c74 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Thu, 16 Apr 2020 21:32:00 +0100 Subject: [PATCH 3/4] kernel-firmware: drop brcmfmac-43xxx nvram patch - not needed --- ...rmware-02-add-brcmfmac-43xxx-configs.patch | 188 ------------------ 1 file changed, 188 deletions(-) delete mode 100644 packages/linux-firmware/kernel-firmware/patches/kernel-firmware-02-add-brcmfmac-43xxx-configs.patch diff --git a/packages/linux-firmware/kernel-firmware/patches/kernel-firmware-02-add-brcmfmac-43xxx-configs.patch b/packages/linux-firmware/kernel-firmware/patches/kernel-firmware-02-add-brcmfmac-43xxx-configs.patch deleted file mode 100644 index 493745205d..0000000000 --- a/packages/linux-firmware/kernel-firmware/patches/kernel-firmware-02-add-brcmfmac-43xxx-configs.patch +++ /dev/null @@ -1,188 +0,0 @@ -From 1e6e0b28cd5b3e621e012169563d45748734b721 Mon Sep 17 00:00:00 2001 -From: MilhouseVH -Date: Thu, 29 Nov 2018 23:47:02 +0000 -Subject: [PATCH] add missing brcmfmac434[30,55]-sdio.txt config files - ---- - brcm/brcmfmac43430-sdio.txt | 64 ++++++++++++++++++++++++++++++ - brcm/brcmfmac43455-sdio.txt | 97 +++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 161 insertions(+) - create mode 100644 brcm/brcmfmac43430-sdio.txt - create mode 100644 brcm/brcmfmac43455-sdio.txt - -diff --git a/brcm/brcmfmac43430-sdio.txt b/brcm/brcmfmac43430-sdio.txt -new file mode 100644 -index 0000000..e644e6a ---- /dev/null -+++ b/brcm/brcmfmac43430-sdio.txt -@@ -0,0 +1,64 @@ -+# NVRAM file for BCM943430WLSELG -+# 2.4 GHz, 20 MHz BW mode -+ -+# The following parameter values are just placeholders, need to be updated. -+manfid=0x2d0 -+prodid=0x0726 -+vendid=0x14e4 -+devid=0x43e2 -+boardtype=0x0726 -+boardrev=0x1202 -+boardnum=22 -+macaddr=00:90:4c:c5:12:38 -+sromrev=11 -+boardflags=0x00404201 -+boardflags3=0x08000000 -+xtalfreq=37400 -+#xtalfreq=19200 -+nocrc=1 -+ag0=255 -+aa2g=1 -+ccode=ALL -+ -+pa0itssit=0x20 -+extpagain2g=0 -+ -+#PA parameters for 2.4GHz, measured at CHIP OUTPUT -+pa2ga0=-168,7161,-820 -+AvVmid_c0=0x0,0xc8 -+cckpwroffset0=5 -+ -+# PPR params -+maxp2ga0=84 -+txpwrbckof=6 -+cckbw202gpo=0 -+legofdmbw202gpo=0x66111111 -+mcsbw202gpo=0x77711111 -+propbw202gpo=0xdd -+ -+# OFDM IIR : -+ofdmdigfilttype=18 -+ofdmdigfilttypebe=18 -+# PAPD mode: -+papdmode=1 -+papdvalidtest=1 -+pacalidx2g=32 -+papdepsoffset=-36 -+papdendidx=61 -+ -+il0macaddr=00:90:4c:c5:12:38 -+wl0id=0x431b -+ -+deadman_to=0xffffffff -+# muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG -+muxenab=0x1 -+# CLDO PWM voltage settings - 0x4 - 1.1 volt -+#cldo_pwm=0x4 -+ -+#VCO freq 326.4MHz -+spurconfig=0x3 -+ -+# Experimental Bluetooth coexistence parameters from Cypress -+btc_mode=1 -+btc_params8=0x4e20 -+btc_params1=0x7530 -diff --git a/brcm/brcmfmac43455-sdio.txt b/brcm/brcmfmac43455-sdio.txt -new file mode 100644 -index 0000000..04b6570 ---- /dev/null -+++ b/brcm/brcmfmac43455-sdio.txt -@@ -0,0 +1,97 @@ -+# Cloned from bcm94345wlpagb_p2xx.txt -+NVRAMRev=$Rev: 498373 $ -+sromrev=11 -+vendid=0x14e4 -+devid=0x43ab -+manfid=0x2d0 -+prodid=0x06e4 -+#macaddr=00:90:4c:c5:12:38 -+macaddr=b8:27:eb:74:f2:6c -+nocrc=1 -+boardtype=0x6e4 -+boardrev=0x1304 -+ -+#XTAL 37.4MHz -+xtalfreq=37400 -+ -+btc_mode=1 -+#------------------------------------------------------ -+#boardflags: 5GHz eTR switch by default -+# 2.4GHz eTR switch by default -+# bit1 for btcoex -+boardflags=0x00480201 -+boardflags2=0x40800000 -+boardflags3=0x48200100 -+phycal_tempdelta=15 -+rxchain=1 -+txchain=1 -+aa2g=1 -+aa5g=1 -+tssipos5g=1 -+tssipos2g=1 -+femctrl=0 -+AvVmid_c0=1,165,2,100,2,100,2,100,2,100 -+pa2ga0=-129,6525,-718 -+pa2ga1=-149,4408,-601 -+pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818 -+pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575 -+itrsw=1 -+pdoffsetcckma0=2 -+pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0 -+pdoffset2g40ma0=16 -+pdoffset40ma0=0x8888 -+pdoffset80ma0=0x8888 -+extpagain5g=2 -+extpagain2g=2 -+tworangetssi2g=1 -+tworangetssi5g=1 -+# LTECX flags -+# WCI2 -+ltecxmux=0 -+ltecxpadnum=0x0504 -+ltecxfnsel=0x22 -+ltecxgcigpio=0x32 -+ -+maxp2ga0=80 -+ofdmlrbw202gpo=0x0022 -+dot11agofdmhrbw202gpo=0x4442 -+mcsbw202gpo=0x98444422 -+mcsbw402gpo=0x98444422 -+maxp5ga0=82,82,82,82 -+mcsbw205glpo=0xb9555000 -+mcsbw205gmpo=0xb9555000 -+mcsbw205ghpo=0xb9555000 -+mcsbw405glpo=0xb9555000 -+mcsbw405gmpo=0xb9555000 -+mcsbw405ghpo=0xb9555000 -+mcsbw805glpo=0xb9555000 -+mcsbw805gmpo=0xb9555000 -+mcsbw805ghpo=0xb9555000 -+ -+swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff -+swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe -+swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 -+swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 -+ -+vcodivmode=1 -+deadman_to=481500000 -+ -+ed_thresh2g=-54 -+ed_thresh5g=-54 -+eu_edthresh2g=-54 -+eu_edthresh5g=-54 -+ldo1=4 -+rawtempsense=0x1ff -+cckPwrIdxCorr=3 -+cckTssiDelay=150 -+ofdmTssiDelay=150 -+txpwr2gAdcScale=1 -+txpwr5gAdcScale=1 -+dot11b_opts=0x3aa85 -+cbfilttype=1 -+fdsslevel_ch11=6 -+ -+# Experimental Bluetooth coexistence parameters from Cypress -+btc_mode=1 -+btc_params8=0x4e20 -+btc_params1=0x7530 --- -2.14.1 - From 0bfcb5a2abf2a2c38375f1badb704eb3ed06ff69 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sat, 18 Apr 2020 22:08:23 +0100 Subject: [PATCH 4/4] kernel-firmware: die if firmware pattern is not valid --- packages/linux-firmware/kernel-firmware/package.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/linux-firmware/kernel-firmware/package.mk b/packages/linux-firmware/kernel-firmware/package.mk index 321fb14f8c..d00e79a7b4 100644 --- a/packages/linux-firmware/kernel-firmware/package.mk +++ b/packages/linux-firmware/kernel-firmware/package.mk @@ -45,6 +45,8 @@ makeinstall_target() { [[ ${fwline} =~ ^#.* ]] && continue [[ ${fwline} =~ ^[[:space:]] ]] && continue + eval "(cd ${PKG_FW_SOURCE} && find "${fwline}" >/dev/null)" || die "ERROR: Firmware pattern does not exist: ${fwline}" + while read -r fwfile; do [ -d "${PKG_FW_SOURCE}/${fwfile}" ] && continue