openwrt/package/firmware/ipq-wifi/Makefile

64 lines
2.2 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
PKG_FLAGS:=nonshared
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 $(INCLUDE_DIR)/package.mk
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
endef
define Build/Compile
endef
#ALLWIFIBOARDS:=<devicename>
# Please send a mail with your device-specific board files upstream.
# You can find instructions and examples on the linux-wireless wiki:
# <https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles>
ipq40xx: add support for FritzBox 7530 Hardware -------- CPU: Qualcomm IPQ4019 RAM: 256M FLASH: 128M NAND ETH: QCA8075 VDSL: Intel/Lantiq VRX518 PCIe attached currently not supported DECT: Dialog SC14448 currently not supported WiFi2: IPQ4019 2T2R 2SS b/g/n WiFi5: IPQ4019 2T2R 2SS n/ac LED: - Power/DSL green - WLAN green - FON/DECT green - Connect/WPS green - Info green - Info red BTN: - WLAN - FON - WPS/Connect UART: 115200n8 3.3V (located under the Dialog chip) VCC - RX - TX - GND (Square is VCC) Installation ------------ 1. Grab the uboot for the Device from the 'u-boot-fritz7530' subdirectory. Place it in the same directory as the 'eva_ramboot.py' script. It is located in the 'scripts/flashing' subdirectory of the OpenWRT tree. 2. Assign yourself the IP address 192.168.178.10/24. Connect your Computer to one of the boxes LAN ports. 3. Connect Power to the Box. As soon as the LAN port of your computer shows link, load the U-Boot to the box using following command. > ./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz7530.bin 4. The U-Boot will now start. Now assign yourself the IP address 192.168.1.70/24. Copy the OpenWRT initramfs (!) image to a TFTP server root directory and rename it to 'FRITZ7530.bin'. 5. The Box will now boot OpenWRT from RAM. This can take up to two minutes. 6. Copy the U-Boot and the OpenWRT sysupgrade (!) image to the Box using scp. SSH into the Box and first write the Bootloader to both previous kernel partitions. > mtd write /path/to/uboot-fritz7530.bin uboot0 > mtd write /path/to/uboot-fritz7530.bin uboot1 7. Remove the AVM filesystem partitions to make room for our kernel + rootfs + overlayfs. > ubirmvol /dev/ubi0 --name=avm_filesys_0 > ubirmvol /dev/ubi0 --name=avm_filesys_1 8. Flash OpenWRT peristently using sysupgrade. > sysupgrade -n /path/to/openwrt-sysupgrade.bin Signed-off-by: David Bauer <mail@david-bauer.net> [removed pcie-dts range node, refreshed on top of AP120-AC/E2600AC] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2019-02-18 22:58:34 +00:00
ALLWIFIBOARDS:=alfa-network_ap120c-ac asus_map-ac2200 avm_fritzbox-7530 engenius_eap1300 linksys_ea6350v3 qxwlan_e2600ac
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
#$(eval $(call generate-ipq-wifi-package,<devicename>,<filename>,<displayname>))
$(eval $(call generate-ipq-wifi-package,alfa-network_ap120c-ac,board-alfa-network_ap120c-ac.bin,ALFA Network AP120C-AC))
$(eval $(call generate-ipq-wifi-package,asus_map-ac2200,board-map-ac2200.bin,ASUS MAP-AC2200))
ipq40xx: add support for EnGenius EAP1300 SOC: IPQ4018 / QCA Dakota CPU: Quad-Core ARMv7 Processor rev 5 (v7l) Cortex-A7 DRAM: 256 MiB NOR: 32 MiB ETH: Qualcomm Atheros QCA8072 WLAN1: Qualcomm Atheros QCA4018 2.4GHz 802.11bgn 2:2x2 WLAN2: Qualcomm Atheros QCA4018 5GHz 802.11a/n/ac 2:2x2 INPUT: RESET Button LEDS: Power, LAN, MESH, WLAN 2.4GHz, WLAN 5GHz 1. Load Ramdisk via U-Boot To set up the flash memory environment, do the following: a. As a preliminary step, ensure that the board console port is connected to the PC using these RS232 parameters: * 115200bps * 8N1 b. Confirm that the PC is connected to the board using one of the Ethernet ports. Set a static ip 192.168.99.8 for Ethernet that connects to board. The PC must have a TFTP server launched and listening on the interface to which the board is connected. At this stage power up the board and, after a few seconds, press 4 and then any key during the countdown. U-BOOT> set serverip 192.168.99.8 && set ipaddr 192.168.99.9 && tftpboot 0x84000000 openwrt.itb && bootm 2. Load image via GUI a. Upgrade EAP1300 to FW v3.5.3.2 In the GUI, System Manager > Firmware > Firmware Upgrade, to do upgrade. b. Transfer to OpenWrt from EnGenius. In Firmware Upgrade page, to upgrade yours openwrt-ipq40xx-engenius_eap1300-squashfs-sysupgrade.bin. 3. Revert to EnGenius EAP1300 To flash openwrt-ipq40xx-engenius_eap1300-squashfs-factory.bin by using sysupgrade command and "DO NOT" keep configuration. $ sysupgrade –n openwrt-ipq40xx-engenius_eap1300-squashfs-factory.bin Signed-off-by: Steven Lin <steven.lin@senao.com>
2018-10-19 08:55:08 +00:00
$(eval $(call generate-ipq-wifi-package,engenius_eap1300,board-engenius_eap1300.bin,EnGenius EAP1300))
ipq40xx: add support for FritzBox 7530 Hardware -------- CPU: Qualcomm IPQ4019 RAM: 256M FLASH: 128M NAND ETH: QCA8075 VDSL: Intel/Lantiq VRX518 PCIe attached currently not supported DECT: Dialog SC14448 currently not supported WiFi2: IPQ4019 2T2R 2SS b/g/n WiFi5: IPQ4019 2T2R 2SS n/ac LED: - Power/DSL green - WLAN green - FON/DECT green - Connect/WPS green - Info green - Info red BTN: - WLAN - FON - WPS/Connect UART: 115200n8 3.3V (located under the Dialog chip) VCC - RX - TX - GND (Square is VCC) Installation ------------ 1. Grab the uboot for the Device from the 'u-boot-fritz7530' subdirectory. Place it in the same directory as the 'eva_ramboot.py' script. It is located in the 'scripts/flashing' subdirectory of the OpenWRT tree. 2. Assign yourself the IP address 192.168.178.10/24. Connect your Computer to one of the boxes LAN ports. 3. Connect Power to the Box. As soon as the LAN port of your computer shows link, load the U-Boot to the box using following command. > ./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz7530.bin 4. The U-Boot will now start. Now assign yourself the IP address 192.168.1.70/24. Copy the OpenWRT initramfs (!) image to a TFTP server root directory and rename it to 'FRITZ7530.bin'. 5. The Box will now boot OpenWRT from RAM. This can take up to two minutes. 6. Copy the U-Boot and the OpenWRT sysupgrade (!) image to the Box using scp. SSH into the Box and first write the Bootloader to both previous kernel partitions. > mtd write /path/to/uboot-fritz7530.bin uboot0 > mtd write /path/to/uboot-fritz7530.bin uboot1 7. Remove the AVM filesystem partitions to make room for our kernel + rootfs + overlayfs. > ubirmvol /dev/ubi0 --name=avm_filesys_0 > ubirmvol /dev/ubi0 --name=avm_filesys_1 8. Flash OpenWRT peristently using sysupgrade. > sysupgrade -n /path/to/openwrt-sysupgrade.bin Signed-off-by: David Bauer <mail@david-bauer.net> [removed pcie-dts range node, refreshed on top of AP120-AC/E2600AC] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2019-02-18 22:58:34 +00:00
$(eval $(call generate-ipq-wifi-package,avm_fritzbox-7530,board-avm_fritzbox-7530.bin,AVM FRITZ!Box 7530))
$(eval $(call generate-ipq-wifi-package,linksys_ea6350v3,board-linksys_ea6350v3.bin,Linksys EA6350v3))
ipq40xx: add support for Qxwlan E2600AC C1 and C2 Qxwlan E2600AC C1 based on IPQ4019 Specifications: SOC: Qualcomm IPQ4019 DRAM: 256 MiB FLASH: 32 MiB Winbond W25Q256 ETH: Qualcomm QCA8075 WLAN: 5G + 5G/2.4G * 2T2R 2.4/5 GHz - QCA4019 hw1.0 (SoC) * 2T2R 5 GHz - QCA4019 hw1.0 (SoC) INPUT: Reset buutton LED: 1x Power ,6 driven by gpio SERIAL: UART (J5) UUSB: USB3.0 POWER: 1x DC jack for main power input (9-24 V) SLOT: Pcie (J25), sim card (J11), SD card (J51) Flash instruction (using U-Boot CLI and tftp server): - Configure PC with static IP 192.168.1.10 and tftp server. - Rename "sysupgrade" filename to "firmware.bin" and place it in tftp server directory. - Connect PC with one of RJ45 ports, power up the board and press "enter" key to access U-Boot CLI. - Use the following command to update the device to OpenWrt: "run lfw". Flash instruction (using U-Boot web-based recovery): - Configure PC with static IP 192.168.1.xxx(2-254)/24. - Connect PC with one of RJ45 ports, press the reset button, power up the board and keep button pressed for around 6-7 seconds, until LEDs start flashing. - Open your browser and enter 192.168.1.1, select "sysupgrade" image and click the upgrade button. Qxwlan E2600AC C2 based on IPQ4019 Specifications: SOC: Qualcomm IPQ4019 DRAM: 256 MiB NOR: 16 MiB Winbond W25Q128 NAND: 128MiB Micron MT29F1G08ABAEAWP ETH: Qualcomm QCA8075 WLAN: 5G + 5G/2.4G * 2T2R 2.4/5 GHz - QCA4019 hw1.0 (SoC) * 2T2R 5 GHz - QCA4019 hw1.0 (SoC) INPUT: Reset buutton LED: 1x Power, 6 driven by gpio SERIAL: UART (J5) USB: USB3.0 POWER: 1x DC jack for main power input (9-24 V) SLOT: Pcie (J25), sim card (J11), SD card (J51) Flash instruction (using U-Boot CLI and tftp server): - Configure PC with static IP 192.168.1.10 and tftp server. - Rename "ubi" filename to "ubi-firmware.bin" and place it in tftp server directory. - Connect PC with one of RJ45 ports, power up the board and press "enter" key to access U-Boot CLI. - Use the following command to update the device to OpenWrt: "run lfw". Flash instruction (using U-Boot web-based recovery): - Configure PC with static IP 192.168.1.xxx(2-254)/24. - Connect PC with one of RJ45 ports, press the reset button, power up the board and keep button pressed for around 6-7 seconds, until LEDs start flashing. - Open your browser and enter 192.168.1.1, select "ubi" image and click the upgrade button. Signed-off-by: 张鹏 <sd20@qxwlan.com> [ added rng node. whitespace fixes, ported 02_network, ipq-wifi Makefile, misc dts fixes, trivial message changes ] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2019-01-21 05:28:32 +00:00
$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,board-qxwlan-e2600ac.bin,Qxwlan E2600AC))
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))))