Makefile 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. include $(TOPDIR)/rules.mk
  2. include $(INCLUDE_DIR)/version.mk
  3. PKG_NAME:=ipq-wifi
  4. PKG_RELEASE:=1
  5. PKG_FLAGS:=nonshared
  6. include $(INCLUDE_DIR)/package.mk
  7. define Build/Prepare
  8. mkdir -p $(PKG_BUILD_DIR)
  9. endef
  10. define Build/Compile
  11. endef
  12. #
  13. # This is intended to be used on an interim basis until device-specific
  14. # board data for new devices is available through the upstream compilation
  15. #
  16. # Please send a mail with your device-specific board files upstream.
  17. # You can find instructions and examples on the linux-wireless wiki:
  18. # <https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles>
  19. #
  20. ALLWIFIBOARDS:= \
  21. linksys_ea8300 \
  22. qxwlan_e2600ac
  23. ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
  24. define Package/ipq-wifi-default
  25. SUBMENU:=ath10k Board-Specific Overrides
  26. SECTION:=firmware
  27. CATEGORY:=Firmware
  28. DEPENDS:=@TARGET_ipq40xx
  29. TITLE:=Custom Board
  30. endef
  31. define ipq-wifi-install-one-to
  32. $(INSTALL_DIR) $(2)/lib/firmware/ath10k/$(3)/
  33. $(INSTALL_DATA) $(1) $(2)/lib/firmware/ath10k/$(3)/board-2.bin
  34. endef
  35. # Note: .bin deprecated; supports existing boards
  36. define ipq-wifi-install-one
  37. $(if $(filter $(suffix $(1)),.QCA4019 .qca4019 .bin),\
  38. $(call ipq-wifi-install-one-to,$(1),$(2),QCA4019/hw1.0),\
  39. $(if $(filter $(suffix $(1)),.QCA9888 .qca9888),\
  40. $(call ipq-wifi-install-one-to,$(1),$(2),QCA9888/hw2.0),\
  41. $(if $(filter $(suffix $(1)),.QCA9984 .qca9984),\
  42. $(call ipq-wifi-install-one-to,$(1),$(2),QCA9984/hw1.0),\
  43. $(error Unrecognized board-file suffix '$(suffix $(1))' for '$(1)')\
  44. )))
  45. endef
  46. # Blank line required at end of above define due to foreach context
  47. define generate-ipq-wifi-package
  48. define Package/ipq-wifi-$(1)
  49. $(call Package/ipq-wifi-default)
  50. TITLE:=board-2.bin Overrides for $(2)
  51. CONFLICTS:=$(PREV_BOARD)
  52. endef
  53. define Package/ipq-wifi-$(1)/description
  54. The $(2) requires board-specific, reference ("cal") data
  55. that is not yet present in the upstream wireless firmware distribution.
  56. This package supplies board-2.bin file(s) that, in the interim,
  57. overwrite those supplied by the ath10k-firmware-* packages.
  58. This is package is only necessary for the $(2).
  59. Do not install it for any other device!
  60. endef
  61. define Package/ipq-wifi-$(1)/install-overlay
  62. $$$$(foreach IPQ_WIFI_BOARD_FILE,$$$$(wildcard board-$(1).*),\
  63. $$$$(call ipq-wifi-install-one,$$$$(IPQ_WIFI_BOARD_FILE),$$(1)))
  64. endef
  65. PREV_BOARD+=ipq-wifi-$(1)
  66. endef
  67. # Add board name to ALLWIFIBOARDS
  68. # Place files in this directory as board-<devicename>.<qca4019|qca9888|qca9984>
  69. # Add $(eval $(call generate-ipq-wifi-package,<devicename>,<display name>))
  70. $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300))
  71. $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,Qxwlan E2600AC))
  72. $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))