lede/package/firmware/cypress-nvram/Makefile
Josef Schlehofer 9aee739a16 cypress-firmware: update it to version 5.4.18-2021_0812
- Binary files were renamed to cyfmac from brcmfmac, but the files needs
  to be on the router with the previous naming

[    6.656165] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    6.665182] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.bin failed with error -2
[    6.674928] brcmfmac mmc1:0001:1: Falling back to sysfs fallback for: brcm/brcmfmac43455-sdio.bin

- Cypress were acquired by Infineon Technologies
Thus change the project URL and switch to download files from their
GitHub repository. This is much better than the previous solution, which
requires finding new threads on their community forum about new driver
updates, and it will be necessary to change the URL each time.

Unfortunately, it seems that there is not published changelog, but
according to this forum thread [1], be careful by opening the link from
solution since it contains ending bracket ), it brings fixes for various
security vulnerabilities, which were fixed in 7_45_234.

Fixes:
- FragAttacks
- Kr00k

Also add LICENSE file

Run tested on Seeedstudio router powered by Raspberry Pi 4 CM with
package cypress-firmware-43455-sdio.

Before:
root@OpenWrt:~# dmesg | grep 'Firmware: BCM4345/6'
[    6.895050] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Mar 23 2020 02:20:01 version 7.45.206 (r725000 CY) FWID 01-febaba43

After:
root@OpenWrt:~# dmesg | grep 'Firmware: BCM4345/6'
[    6.829805] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Apr 15 2021 03:03:20 version 7.45.234 (4ca95bb CY) FWID 01-996384e2

[1] https://community.infineon.com/t5/Wi-Fi-Bluetooth-for-Linux/Outdated-brcmfmac-firmware-for-Raspberry-Pi-4-in-OpenWrt-21-02-1/m-p/331593#M2269

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2022-04-25 16:39:16 +08:00

109 lines
3.4 KiB
Makefile

#
# Copyright (C) 2019 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=cypress-nvram
PKG_SOURCE_DATE:=2019-09-03
PKG_SOURCE_VERSION:=e7b78df22f2a0c5f56abb7b5880661611de35e5f
PKG_MIRROR_HASH:=1cb20a749696852be0a512d51961365dd9c031362af0af1a2b9f5a3fb894885f
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/openwrt/cypress-nvram.git
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
define Package/cypress-nvram-default
SECTION:=firmware
CATEGORY:=Firmware
URL:=https://community.cypress.com/community/linux
endef
define Build/Compile
true
endef
# Cypress 43430 SDIO Raspberry Pi 3B NVRAM
define Package/cypress-nvram-43430-sdio-rpi-3b
$(Package/cypress-nvram-default)
TITLE:=CYW43430 NVRAM for Raspberry Pi 3B
DEPENDS:=@TARGET_bcm27xx
PROVIDES:=brcmfmac-firmware-43430-sdio-rpi-3b
CONFLICTS:=brcmfmac-firmware-43430-sdio-rpi-3b
endef
define Package/cypress-nvram-43430-sdio-rpi-3b/install
$(INSTALL_DIR) $(1)/lib/firmware/brcm
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/brcmfmac43430-sdio.raspberrypi,3-model-b.txt \
$(1)/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
endef
$(eval $(call BuildPackage,cypress-nvram-43430-sdio-rpi-3b))
# Cypress 43430 SDIO Raspberry Pi Zero W NVRAM
define Package/cypress-nvram-43430-sdio-rpi-zero-w
$(Package/cypress-nvram-default)
TITLE:=CYW43430 NVRAM for Raspberry Pi Zero W
DEPENDS:=@TARGET_bcm27xx
PROVIDES:=brcmfmac-firmware-43430-sdio-rpi-zero-w
CONFLICTS:=brcmfmac-firmware-43430-sdio-rpi-zero-w
endef
define Package/cypress-nvram-43430-sdio-rpi-zero-w/install
$(INSTALL_DIR) $(1)/lib/firmware/brcm
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt \
$(1)/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt
endef
$(eval $(call BuildPackage,cypress-nvram-43430-sdio-rpi-zero-w))
# Cypress 43455 SDIO Raspberry Pi 3B+ NVRAM
define Package/cypress-nvram-43455-sdio-rpi-3b-plus
$(Package/cypress-nvram-default)
TITLE:=CYW43455 NVRAM for Raspberry Pi 3B+
DEPENDS:=@TARGET_bcm27xx
PROVIDES:=brcmfmac-firmware-43455-sdio-rpi-3b-plus
CONFLICTS:=brcmfmac-firmware-43455-sdio-rpi-3b-plus
endef
define Package/cypress-nvram-43455-sdio-rpi-3b-plus/install
$(INSTALL_DIR) $(1)/lib/firmware/brcm
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt \
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
endef
$(eval $(call BuildPackage,cypress-nvram-43455-sdio-rpi-3b-plus))
# Cypress 43455 SDIO Raspberry Pi 4B NVRAM
define Package/cypress-nvram-43455-sdio-rpi-4b
$(Package/cypress-nvram-default)
TITLE:=CYW43455 NVRAM for Raspberry Pi 4B
DEPENDS:=@TARGET_bcm27xx
PROVIDES:=brcmfmac-firmware-43455-sdio-rpi-4b
CONFLICTS:=brcmfmac-firmware-43455-sdio-rpi-4b
endef
define Package/cypress-nvram-43455-sdio-rpi-4b/install
$(INSTALL_DIR) $(1)/lib/firmware/brcm
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt
endef
$(eval $(call BuildPackage,cypress-nvram-43455-sdio-rpi-4b))