openwrt/package/firmware/ipq-wifi/Makefile

55 lines
1.4 KiB
Makefile
Raw Normal View History

firmware: add custom IPQ wifi board definitions On the ath10k-devel ML Michael Kazior stated: "board-2 is a key-value store of actual board files. Some devices, notably qca61x4 hw3+ and qca4019 need distinct board files to be uploaded. Otherwise they fail in various ways." [0]. Later on Rajkumar Manoharan explained: "In QCA4019 platform, only radio specific calibration (pre-cal-data) is stored in flash. Board specific contents are read from board-2.bin. For each radio appropriate board data should be loaded. To fetch correct board data from board-2.bin bundle, pre-cal/radio specific caldata should be loaded first to get proper board id. |My understanding until now was that: | | * pre-cal data + board-2.bin info == actual calibration data Correct." [1]. The standard board-2.bin from the ath10k-firmware-qca4019 barely works on the RT-AC58U. Especially 5GHz clients fail to connect at all and if they do, they have very low throughput even right next to the router. Currently, the solution for this problem is to supply a custom board-2.bin for every device. To implement this feature, this method makes use of: Rafał Miłecki's "base-files: add support for overlaying rootfs content". This comes with a few limitations: 1. Since there can only be one board-2.bin at the right location, there can only one board overwrite installed at any time. (All packages CONFLICT with each other. It's also not possible to "builtin" multiple package.) 2. updating ath10k-firmware-qca4019 will also replace the board-2.bin. For this cases the user needs to manually reinstall the wifi-board package once the ath10k-firmware-qca4019 is updated. To create the individual board-2.bin: Use the ath10k-bdencoder utility from the qca-swiss-army-knife repository: <https://github.com/qca/qca-swiss-army-knife> The raw board.bin files have to be extracted from the vendor's source GPL.tar archieves. Signed-off-by: Alexis Green <agreen@cococorp.com> Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
2017-03-15 10:49:14 +00:00
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/version.mk
PKG_NAME:=ipq-wifi
firmware: add custom IPQ wifi board definitions On the ath10k-devel ML Michael Kazior stated: "board-2 is a key-value store of actual board files. Some devices, notably qca61x4 hw3+ and qca4019 need distinct board files to be uploaded. Otherwise they fail in various ways." [0]. Later on Rajkumar Manoharan explained: "In QCA4019 platform, only radio specific calibration (pre-cal-data) is stored in flash. Board specific contents are read from board-2.bin. For each radio appropriate board data should be loaded. To fetch correct board data from board-2.bin bundle, pre-cal/radio specific caldata should be loaded first to get proper board id. |My understanding until now was that: | | * pre-cal data + board-2.bin info == actual calibration data Correct." [1]. The standard board-2.bin from the ath10k-firmware-qca4019 barely works on the RT-AC58U. Especially 5GHz clients fail to connect at all and if they do, they have very low throughput even right next to the router. Currently, the solution for this problem is to supply a custom board-2.bin for every device. To implement this feature, this method makes use of: Rafał Miłecki's "base-files: add support for overlaying rootfs content". This comes with a few limitations: 1. Since there can only be one board-2.bin at the right location, there can only one board overwrite installed at any time. (All packages CONFLICT with each other. It's also not possible to "builtin" multiple package.) 2. updating ath10k-firmware-qca4019 will also replace the board-2.bin. For this cases the user needs to manually reinstall the wifi-board package once the ath10k-firmware-qca4019 is updated. To create the individual board-2.bin: Use the ath10k-bdencoder utility from the qca-swiss-army-knife repository: <https://github.com/qca/qca-swiss-army-knife> The raw board.bin files have to be extracted from the vendor's source GPL.tar archieves. Signed-off-by: Alexis Green <agreen@cococorp.com> Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
2017-03-15 10:49:14 +00:00
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
endef
define Build/Compile
endef
#ALLWIFIBOARDS:=<devicename>
ipq40xx: add support for ZyXEL WRE6606 Specifications: SOC: Qualcomm IPQ4018 (DAKOTA) ARM Quad-Core RAM: 128 MB Nanya NT5CC64M16GP-DI FLASH: 16 MiB Macronix MX25L12845EMI-12G ETH: Qualcomm QCA8072 WLAN1: Qualcomm Atheros QCA4018 2.4GHz 802.11b/g/n 2x2 WLAN2: Qualcomm Atheros QCA4018 5GHz 802.11n/ac W2 2x2 INPUT: WPS, Mode-toggle-switch LED: Power, WLAN 2.4GHz, WLAN 5GHz, LAN, WPS (LAN not controllable by software) (WLAN each green / red) SERIAL: Header next to eth-phy. VCC, TX, GND, RX (Square hole is VCC) The Serial setting is 115200-8-N-1. Tested and working: - Ethernet (Correct MAC-address) - 2.4 GHz WiFi (Correct MAC-address) - 5 GHz WiFi (Correct MAC-address) - Factory installation from tftp - OpenWRT sysupgrade - LEDs - WPS Button Not Working: - Mode-toggle-switch Install via TFTP: Connect to the devices serial. Hit Enter-Key in bootloader to stop autobooting. Command `tftpboot` will pull an initramfs image named `C0A86302.img` from a tftp server at `192.168.99.08/24`. After successfull transfer, boot the image with `bootm`. To persistently write the firmware, flash an openwrt sysupgrade image from inside the initramfs, for example transfer via `scp <sysupgrade> root@192.168.1.1:/tmp` and flash on the device with `sysupgrade -n /tmp/<sysupgrade>`. append-cmdline patch taken from chunkeeys work on the NBG6617. Signed-off-by: Magnus Frühling <skorpy@frankfurt.ccc.de> Co-authored-by: David Bauer <mail@david-bauer.net> Co-authored-by: Christian Lamparter <chunkeey@googlemail.com> (cherry picked from commit 4b280ad91a6b155ac71c417aaa7bb5f4e328712f)
2018-06-11 21:10:43 +00:00
ALLWIFIBOARDS:=zyxel_wre6606
firmware: add custom IPQ wifi board definitions On the ath10k-devel ML Michael Kazior stated: "board-2 is a key-value store of actual board files. Some devices, notably qca61x4 hw3+ and qca4019 need distinct board files to be uploaded. Otherwise they fail in various ways." [0]. Later on Rajkumar Manoharan explained: "In QCA4019 platform, only radio specific calibration (pre-cal-data) is stored in flash. Board specific contents are read from board-2.bin. For each radio appropriate board data should be loaded. To fetch correct board data from board-2.bin bundle, pre-cal/radio specific caldata should be loaded first to get proper board id. |My understanding until now was that: | | * pre-cal data + board-2.bin info == actual calibration data Correct." [1]. The standard board-2.bin from the ath10k-firmware-qca4019 barely works on the RT-AC58U. Especially 5GHz clients fail to connect at all and if they do, they have very low throughput even right next to the router. Currently, the solution for this problem is to supply a custom board-2.bin for every device. To implement this feature, this method makes use of: Rafał Miłecki's "base-files: add support for overlaying rootfs content". This comes with a few limitations: 1. Since there can only be one board-2.bin at the right location, there can only one board overwrite installed at any time. (All packages CONFLICT with each other. It's also not possible to "builtin" multiple package.) 2. updating ath10k-firmware-qca4019 will also replace the board-2.bin. For this cases the user needs to manually reinstall the wifi-board package once the ath10k-firmware-qca4019 is updated. To create the individual board-2.bin: Use the ath10k-bdencoder utility from the qca-swiss-army-knife repository: <https://github.com/qca/qca-swiss-army-knife> The raw board.bin files have to be extracted from the vendor's source GPL.tar archieves. Signed-off-by: Alexis Green <agreen@cococorp.com> Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
2017-03-15 10:49:14 +00:00
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
define Package/ipq-wifi-default
SUBMENU:=ath10k IPQ4019 Boarddata
SECTION:=firmware
CATEGORY:=Firmware
DEPENDS:=@TARGET_ipq40xx
firmware: add custom IPQ wifi board definitions On the ath10k-devel ML Michael Kazior stated: "board-2 is a key-value store of actual board files. Some devices, notably qca61x4 hw3+ and qca4019 need distinct board files to be uploaded. Otherwise they fail in various ways." [0]. Later on Rajkumar Manoharan explained: "In QCA4019 platform, only radio specific calibration (pre-cal-data) is stored in flash. Board specific contents are read from board-2.bin. For each radio appropriate board data should be loaded. To fetch correct board data from board-2.bin bundle, pre-cal/radio specific caldata should be loaded first to get proper board id. |My understanding until now was that: | | * pre-cal data + board-2.bin info == actual calibration data Correct." [1]. The standard board-2.bin from the ath10k-firmware-qca4019 barely works on the RT-AC58U. Especially 5GHz clients fail to connect at all and if they do, they have very low throughput even right next to the router. Currently, the solution for this problem is to supply a custom board-2.bin for every device. To implement this feature, this method makes use of: Rafał Miłecki's "base-files: add support for overlaying rootfs content". This comes with a few limitations: 1. Since there can only be one board-2.bin at the right location, there can only one board overwrite installed at any time. (All packages CONFLICT with each other. It's also not possible to "builtin" multiple package.) 2. updating ath10k-firmware-qca4019 will also replace the board-2.bin. For this cases the user needs to manually reinstall the wifi-board package once the ath10k-firmware-qca4019 is updated. To create the individual board-2.bin: Use the ath10k-bdencoder utility from the qca-swiss-army-knife repository: <https://github.com/qca/qca-swiss-army-knife> The raw board.bin files have to be extracted from the vendor's source GPL.tar archieves. Signed-off-by: Alexis Green <agreen@cococorp.com> Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
2017-03-15 10:49:14 +00:00
TITLE:=Custom Board
endef
define generate-ipq-wifi-package
define Package/ipq-wifi-$(1)
$(call Package/ipq-wifi-default)
TITLE:=Board for $(3)
CONFLICTS:=$(PREV_BOARD)
endef
define Package/ipq-wifi-$(1)/description
This device custom package board-2.bin overwrites the board-2.bin
file which is supplied by the ath10k-firmware-qca4019 package.
This is package is only necessary for the $(3).
Don't install it for any other device!
endef
define Package/ipq-wifi-$(1)/install-overlay
$(INSTALL_DIR) $$(1)/lib/firmware/ath10k/QCA4019/hw1.0
$(INSTALL_DATA) ./$(2) $$(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin
endef
PREV_BOARD+=ipq-wifi-$(1)
endef
ipq40xx: add support for ZyXEL WRE6606 Specifications: SOC: Qualcomm IPQ4018 (DAKOTA) ARM Quad-Core RAM: 128 MB Nanya NT5CC64M16GP-DI FLASH: 16 MiB Macronix MX25L12845EMI-12G ETH: Qualcomm QCA8072 WLAN1: Qualcomm Atheros QCA4018 2.4GHz 802.11b/g/n 2x2 WLAN2: Qualcomm Atheros QCA4018 5GHz 802.11n/ac W2 2x2 INPUT: WPS, Mode-toggle-switch LED: Power, WLAN 2.4GHz, WLAN 5GHz, LAN, WPS (LAN not controllable by software) (WLAN each green / red) SERIAL: Header next to eth-phy. VCC, TX, GND, RX (Square hole is VCC) The Serial setting is 115200-8-N-1. Tested and working: - Ethernet (Correct MAC-address) - 2.4 GHz WiFi (Correct MAC-address) - 5 GHz WiFi (Correct MAC-address) - Factory installation from tftp - OpenWRT sysupgrade - LEDs - WPS Button Not Working: - Mode-toggle-switch Install via TFTP: Connect to the devices serial. Hit Enter-Key in bootloader to stop autobooting. Command `tftpboot` will pull an initramfs image named `C0A86302.img` from a tftp server at `192.168.99.08/24`. After successfull transfer, boot the image with `bootm`. To persistently write the firmware, flash an openwrt sysupgrade image from inside the initramfs, for example transfer via `scp <sysupgrade> root@192.168.1.1:/tmp` and flash on the device with `sysupgrade -n /tmp/<sysupgrade>`. append-cmdline patch taken from chunkeeys work on the NBG6617. Signed-off-by: Magnus Frühling <skorpy@frankfurt.ccc.de> Co-authored-by: David Bauer <mail@david-bauer.net> Co-authored-by: Christian Lamparter <chunkeey@googlemail.com> (cherry picked from commit 4b280ad91a6b155ac71c417aaa7bb5f4e328712f)
2018-06-11 21:10:43 +00:00
$(eval $(call generate-ipq-wifi-package,zyxel_wre6606,board-zyxel_wre6606.bin,ZyXEL WRE6606))
#$(eval $(call generate-ipq-wifi-package,<devicename>,<filename>,<displayname>))
firmware: add custom IPQ wifi board definitions On the ath10k-devel ML Michael Kazior stated: "board-2 is a key-value store of actual board files. Some devices, notably qca61x4 hw3+ and qca4019 need distinct board files to be uploaded. Otherwise they fail in various ways." [0]. Later on Rajkumar Manoharan explained: "In QCA4019 platform, only radio specific calibration (pre-cal-data) is stored in flash. Board specific contents are read from board-2.bin. For each radio appropriate board data should be loaded. To fetch correct board data from board-2.bin bundle, pre-cal/radio specific caldata should be loaded first to get proper board id. |My understanding until now was that: | | * pre-cal data + board-2.bin info == actual calibration data Correct." [1]. The standard board-2.bin from the ath10k-firmware-qca4019 barely works on the RT-AC58U. Especially 5GHz clients fail to connect at all and if they do, they have very low throughput even right next to the router. Currently, the solution for this problem is to supply a custom board-2.bin for every device. To implement this feature, this method makes use of: Rafał Miłecki's "base-files: add support for overlaying rootfs content". This comes with a few limitations: 1. Since there can only be one board-2.bin at the right location, there can only one board overwrite installed at any time. (All packages CONFLICT with each other. It's also not possible to "builtin" multiple package.) 2. updating ath10k-firmware-qca4019 will also replace the board-2.bin. For this cases the user needs to manually reinstall the wifi-board package once the ath10k-firmware-qca4019 is updated. To create the individual board-2.bin: Use the ath10k-bdencoder utility from the qca-swiss-army-knife repository: <https://github.com/qca/qca-swiss-army-knife> The raw board.bin files have to be extracted from the vendor's source GPL.tar archieves. Signed-off-by: Alexis Green <agreen@cococorp.com> Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
2017-03-15 10:49:14 +00:00
$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))