ipq40xx: add support for AVM FRITZ!Repeater 3000
Hardware
--------
CPU:   Qualcomm IPQ4019
RAM:   256M (NANYA NT5CC128M16JR-EK)
FLASH: 128M NAND (Macronix MX30LF1G18AC-XKI)
ETH:   Qualcomm QCA8072
WiFi2: IPQ4019 2T2R 2SS b/g/n
WiFi5: IPQ4019 2T2R 2SS n/ac
WiFi5: QCA9984 4T4R 4SS n/ac
LED:    - Connect green/blue/red
        - Power green
BTN:   WPS/Connect
UART:  115200n8 3.3V
       VCC - RX - TX - GND (Square is VCC)
Installation
------------
1. Grab the uboot for the Device from the 'u-boot-fritz3000'
   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-fritz3000.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 'FRITZ3000.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-fritz3000.bin uboot0
   > mtd write /path/to/uboot-fritz3000.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>
			
			
This commit is contained in:
		 David Bauer
					David Bauer
				
			
				
					committed by
					
						 Christian Lamparter
						Christian Lamparter
					
				
			
			
				
	
			
			
			 Christian Lamparter
						Christian Lamparter
					
				
			
						parent
						
							5389db72e3
						
					
				
				
					commit
					148d29d47b
				
			| @@ -25,6 +25,11 @@ define U-Boot/Default | |||||||
|   UBOOT_IMAGE:=uboot-$(1).bin |   UBOOT_IMAGE:=uboot-$(1).bin | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | define U-Boot/fritz3000 | ||||||
|  |   NAME:=FritzRepeater 3000 | ||||||
|  |   BUILD_DEVICES:=avm_fritzrepeater-3000 | ||||||
|  | endef | ||||||
|  |  | ||||||
| define U-Boot/fritz4040 | define U-Boot/fritz4040 | ||||||
|   NAME:=FritzBox 4040 |   NAME:=FritzBox 4040 | ||||||
|   BUILD_DEVICES:=avm_fritzbox-4040 |   BUILD_DEVICES:=avm_fritzbox-4040 | ||||||
| @@ -61,6 +66,6 @@ define Package/u-boot/install | |||||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/upload-to-f4040.sh $(1)/ | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/upload-to-f4040.sh $(1)/ | ||||||
| endef | endef | ||||||
|  |  | ||||||
| UBOOT_TARGETS := fritz4040 fritz7530 | UBOOT_TARGETS := fritz3000 fritz4040 fritz7530 | ||||||
|  |  | ||||||
| $(eval $(call BuildPackage/U-Boot)) | $(eval $(call BuildPackage/U-Boot)) | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ endef | |||||||
| # Please send a mail with your device-specific board files upstream. | # Please send a mail with your device-specific board files upstream. | ||||||
| # You can find instructions and examples on the linux-wireless wiki: | # You can find instructions and examples on the linux-wireless wiki: | ||||||
| # <https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles> | # <https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles> | ||||||
| ALLWIFIBOARDS:=alfa-network_ap120c-ac asus_map-ac2200 avm_fritzbox-7530 engenius_eap1300 linksys_ea6350v3 qxwlan_e2600ac | ALLWIFIBOARDS:=alfa-network_ap120c-ac asus_map-ac2200 avm_fritzbox-7530 avm_fritzrepeater-3000 engenius_eap1300 linksys_ea6350v3 qxwlan_e2600ac | ||||||
| ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) | ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) | ||||||
|  |  | ||||||
| define Package/ipq-wifi-default | define Package/ipq-wifi-default | ||||||
| @@ -57,6 +57,7 @@ $(eval $(call generate-ipq-wifi-package,alfa-network_ap120c-ac,board-alfa-networ | |||||||
| $(eval $(call generate-ipq-wifi-package,asus_map-ac2200,board-map-ac2200.bin,ASUS MAP-AC2200)) | $(eval $(call generate-ipq-wifi-package,asus_map-ac2200,board-map-ac2200.bin,ASUS MAP-AC2200)) | ||||||
| $(eval $(call generate-ipq-wifi-package,engenius_eap1300,board-engenius_eap1300.bin,EnGenius EAP1300)) | $(eval $(call generate-ipq-wifi-package,engenius_eap1300,board-engenius_eap1300.bin,EnGenius EAP1300)) | ||||||
| $(eval $(call generate-ipq-wifi-package,avm_fritzbox-7530,board-avm_fritzbox-7530.bin,AVM FRITZ!Box 7530)) | $(eval $(call generate-ipq-wifi-package,avm_fritzbox-7530,board-avm_fritzbox-7530.bin,AVM FRITZ!Box 7530)) | ||||||
|  | $(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-3000,board-avm_fritzrepeater-3000.bin,AVM FRITZ!Repeater 3000)) | ||||||
| $(eval $(call generate-ipq-wifi-package,linksys_ea6350v3,board-linksys_ea6350v3.bin,Linksys EA6350v3)) | $(eval $(call generate-ipq-wifi-package,linksys_ea6350v3,board-linksys_ea6350v3.bin,Linksys EA6350v3)) | ||||||
| $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,board-qxwlan-e2600ac.bin,Qxwlan E2600AC)) | $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,board-qxwlan-e2600ac.bin,Qxwlan E2600AC)) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								package/firmware/ipq-wifi/board-avm_fritzrepeater-3000.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								package/firmware/ipq-wifi/board-avm_fritzrepeater-3000.bin
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -37,6 +37,7 @@ ipq40xx_setup_interfaces() | |||||||
| 		ucidef_add_switch "switch0" \ | 		ucidef_add_switch "switch0" \ | ||||||
| 			"0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" | 			"0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" | ||||||
| 		;; | 		;; | ||||||
|  | 	avm,fritzrepeater-3000|\ | ||||||
| 	compex,wpj428) | 	compex,wpj428) | ||||||
| 		ucidef_set_interface_lan "eth0 eth1" | 		ucidef_set_interface_lan "eth0 eth1" | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -111,6 +111,10 @@ case "$FIRMWARE" in | |||||||
| 		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ | 		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ | ||||||
| 			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin | 			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin | ||||||
| 		;; | 		;; | ||||||
|  | 	avm,fritzrepeater-3000) | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
|  | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") | ||||||
|  | 		;; | ||||||
| 	openmesh,a62) | 	openmesh,a62) | ||||||
| 		ath10kcal_extract "0:ART" 36864 12064 | 		ath10kcal_extract "0:ART" 36864 12064 | ||||||
| 		;; | 		;; | ||||||
| @@ -135,7 +139,8 @@ case "$FIRMWARE" in | |||||||
| 	avm,fritzbox-4040) | 	avm,fritzbox-4040) | ||||||
| 		/usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config") | 		/usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config") | ||||||
| 		;; | 		;; | ||||||
| 	avm,fritzbox-7530) | 	avm,fritzbox-7530 |\ | ||||||
|  | 	avm,fritzrepeater-3000) | ||||||
| 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
| 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") | ||||||
| 		;; | 		;; | ||||||
| @@ -183,7 +188,8 @@ case "$FIRMWARE" in | |||||||
| 	avm,fritzbox-4040) | 	avm,fritzbox-4040) | ||||||
| 		/usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config") | 		/usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config") | ||||||
| 		;; | 		;; | ||||||
| 	avm,fritzbox-7530) | 	avm,fritzbox-7530 |\ | ||||||
|  | 	avm,fritzrepeater-3000) | ||||||
| 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ | ||||||
| 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") | 		/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -49,6 +49,7 @@ platform_do_upgrade() { | |||||||
| 	8dev,jalapeno |\ | 	8dev,jalapeno |\ | ||||||
| 	alfa-network,ap120c-ac |\ | 	alfa-network,ap120c-ac |\ | ||||||
| 	avm,fritzbox-7530 |\ | 	avm,fritzbox-7530 |\ | ||||||
|  | 	avm,fritzrepeater-3000|\ | ||||||
| 	qxwlan,e2600ac-c2) | 	qxwlan,e2600ac-c2) | ||||||
| 		nand_do_upgrade "$ARGV" | 		nand_do_upgrade "$ARGV" | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -0,0 +1,260 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "AVM FRITZ!Repeater 3000"; | ||||||
|  | 	compatible = "avm,fritzrepeater-3000"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &power_led; | ||||||
|  | 		led-failsafe = &power_led; | ||||||
|  | 		led-running = &power_led; | ||||||
|  | 		led-upgrade = &power_led; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			switch_lan_bmp = <0x10>; | ||||||
|  | 			switch_wan_bmp = <0x20>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	key { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		connect { | ||||||
|  | 			label = "Connect"; | ||||||
|  | 			gpios = <&tlmm 10 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_WPS_BUTTON>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		connect_red { | ||||||
|  | 			label = "fritzwlan-3000:red:connect"; | ||||||
|  | 			gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		connect_green { | ||||||
|  | 			label = "fritzwlan-3000:green:connect"; | ||||||
|  | 			gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		connect_blue { | ||||||
|  | 			label = "fritzwlan-3000:blue:connect"; | ||||||
|  | 			gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		power_led: power { | ||||||
|  | 			label = "fritzwlan-3000:green:power"; | ||||||
|  | 			gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_0_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio16", "gpio17"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	nand_pins: nand_pins { | ||||||
|  | 		pullups { | ||||||
|  | 			pins = "gpio53", "gpio58", "gpio59"; | ||||||
|  | 			function = "qpic"; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		pulldowns { | ||||||
|  | 			pins = "gpio54", "gpio55", "gpio56", | ||||||
|  | 				"gpio57", "gpio60", "gpio61", | ||||||
|  | 				"gpio62", "gpio63", "gpio64", | ||||||
|  | 				"gpio65", "gpio66", "gpio67", | ||||||
|  | 				"gpio68", "gpio69"; | ||||||
|  | 			function = "qpic"; | ||||||
|  | 			bias-pull-down; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &nand { | ||||||
|  | 	pinctrl-0 = <&nand_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	nand@0 { | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x000000 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@80000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x080000 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@100000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x100000 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@180000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0x180000 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@1c0000 { | ||||||
|  | 				label = "QSEE_B"; | ||||||
|  | 				reg = <0x1c0000 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@240000 { | ||||||
|  | 				label = "urlader0"; | ||||||
|  | 				reg = <0x240000 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@280000 { | ||||||
|  | 				label = "urlader1"; | ||||||
|  | 				reg = <0x280000 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@2c0000 { | ||||||
|  | 				label = "nand-tffs"; | ||||||
|  | 				reg = <0x2c0000 0x840000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@b00000 { | ||||||
|  | 				/* 'kernel1' in AVM firmware */ | ||||||
|  | 				label = "uboot0"; | ||||||
|  | 				reg = <0xb00000 0x400000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@f00000 { | ||||||
|  | 				/* 'kernel2' in AVM firmware */ | ||||||
|  | 				label = "uboot1"; | ||||||
|  | 				reg = <0xf00000 0x400000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@1300000 { | ||||||
|  | 				label = "ubi"; | ||||||
|  | 				reg = <0x1300000 0x6d00000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &qpic_bam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	/* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ | ||||||
|  | 	qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	ieee80211-freq-limit = <5170000 5350000>; | ||||||
|  | 	/* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ | ||||||
|  | 	qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>; | ||||||
|  | 	wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; | ||||||
|  |  | ||||||
|  | 	bridge@0,0 { | ||||||
|  | 		reg = <0x00000000 0 0 0 0>; | ||||||
|  | 		#address-cells = <3>; | ||||||
|  | 		#size-cells = <2>; | ||||||
|  | 		ranges; | ||||||
|  |  | ||||||
|  | 		wifi@1,0 { | ||||||
|  | 			/* QCA9984 */ | ||||||
|  | 			compatible = "qcom,ath10k"; | ||||||
|  | 			status = "okay"; | ||||||
|  | 			reg = <0x00010000 0 0 0 0>; | ||||||
|  | 			ieee80211-freq-limit = <5470000 5875000>; | ||||||
|  | 			/* Uses the reference BDF */ | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -0,0 +1,264 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  |  | ||||||
|  | #include "qcom-ipq4019.dtsi" | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  | #include <dt-bindings/soc/qcom,tcsr.h> | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "AVM FRITZ!Repeater 3000"; | ||||||
|  | 	compatible = "avm,fritzrepeater-3000"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &power_led; | ||||||
|  | 		led-failsafe = &power_led; | ||||||
|  | 		led-running = &power_led; | ||||||
|  | 		led-upgrade = &power_led; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	soc { | ||||||
|  | 		rng@22000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		mdio@90000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-psgmii@98000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1949000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1949000 0x100>; | ||||||
|  | 			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess_tcsr@1953000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1953000 0x1000>; | ||||||
|  | 			qcom,ess-interface-select = <TCSR_ESS_PSGMII>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		tcsr@1957000 { | ||||||
|  | 			compatible = "qcom,tcsr"; | ||||||
|  | 			reg = <0x1957000 0x100>; | ||||||
|  | 			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		crypto@8e3a000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		watchdog@b017000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		ess-switch@c000000 { | ||||||
|  | 			status = "okay"; | ||||||
|  |  | ||||||
|  | 			switch_lan_bmp = <0x10>; | ||||||
|  | 			switch_wan_bmp = <0x20>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		edma@c080000 { | ||||||
|  | 			status = "okay"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	key { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		connect { | ||||||
|  | 			label = "Connect"; | ||||||
|  | 			gpios = <&tlmm 10 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,code = <KEY_WPS_BUTTON>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		connect_red { | ||||||
|  | 			label = "fritzwlan-3000:red:connect"; | ||||||
|  | 			gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		connect_green { | ||||||
|  | 			label = "fritzwlan-3000:green:connect"; | ||||||
|  | 			gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		connect_blue { | ||||||
|  | 			label = "fritzwlan-3000:blue:connect"; | ||||||
|  | 			gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		power_led: power { | ||||||
|  | 			label = "fritzwlan-3000:green:power"; | ||||||
|  | 			gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &tlmm { | ||||||
|  | 	serial_0_pins: serial_pinmux { | ||||||
|  | 		mux { | ||||||
|  | 			pins = "gpio16", "gpio17"; | ||||||
|  | 			function = "blsp_uart0"; | ||||||
|  | 			bias-disable; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	nand_pins: nand_pins { | ||||||
|  | 		pullups { | ||||||
|  | 			pins = "gpio53", "gpio58", "gpio59"; | ||||||
|  | 			function = "qpic"; | ||||||
|  | 			bias-pull-up; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		pulldowns { | ||||||
|  | 			pins = "gpio54", "gpio55", "gpio56", | ||||||
|  | 				"gpio57", "gpio60", "gpio61", | ||||||
|  | 				"gpio62", "gpio63", "gpio64", | ||||||
|  | 				"gpio65", "gpio66", "gpio67", | ||||||
|  | 				"gpio68", "gpio69"; | ||||||
|  | 			function = "qpic"; | ||||||
|  | 			bias-pull-down; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &nand { | ||||||
|  | 	pinctrl-0 = <&nand_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	nand@0 { | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "SBL1"; | ||||||
|  | 				reg = <0x000000 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@80000 { | ||||||
|  | 				label = "MIBIB"; | ||||||
|  | 				reg = <0x080000 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@100000 { | ||||||
|  | 				label = "QSEE"; | ||||||
|  | 				reg = <0x100000 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@180000 { | ||||||
|  | 				label = "CDT"; | ||||||
|  | 				reg = <0x180000 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@1c0000 { | ||||||
|  | 				label = "QSEE_B"; | ||||||
|  | 				reg = <0x1c0000 0x80000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@240000 { | ||||||
|  | 				label = "urlader0"; | ||||||
|  | 				reg = <0x240000 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@280000 { | ||||||
|  | 				label = "urlader1"; | ||||||
|  | 				reg = <0x280000 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@2c0000 { | ||||||
|  | 				label = "nand-tffs"; | ||||||
|  | 				reg = <0x2c0000 0x840000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@b00000 { | ||||||
|  | 				/* 'kernel1' in AVM firmware */ | ||||||
|  | 				label = "uboot0"; | ||||||
|  | 				reg = <0xb00000 0x400000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@f00000 { | ||||||
|  | 				/* 'kernel2' in AVM firmware */ | ||||||
|  | 				label = "uboot1"; | ||||||
|  | 				reg = <0xf00000 0x400000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@1300000 { | ||||||
|  | 				label = "ubi"; | ||||||
|  | 				reg = <0x1300000 0x6d00000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &cryptobam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp_dma { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &blsp1_uart1 { | ||||||
|  | 	pinctrl-0 = <&serial_0_pins>; | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &qpic_bam { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	/* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ | ||||||
|  | 	qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wifi1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	ieee80211-freq-limit = <5170000 5350000>; | ||||||
|  | 	/* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ | ||||||
|  | 	qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>; | ||||||
|  | 	wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; | ||||||
|  |  | ||||||
|  | 	bridge@0,0 { | ||||||
|  | 		reg = <0x00000000 0 0 0 0>; | ||||||
|  | 		#address-cells = <3>; | ||||||
|  | 		#size-cells = <2>; | ||||||
|  | 		ranges; | ||||||
|  |  | ||||||
|  | 		wifi@1,0 { | ||||||
|  | 			/* QCA9984 */ | ||||||
|  | 			compatible = "qcom,ath10k"; | ||||||
|  | 			status = "okay"; | ||||||
|  | 			reg = <0x00010000 0 0 0 0>; | ||||||
|  | 			ieee80211-freq-limit = <5470000 5875000>; | ||||||
|  | 			/* Uses the reference BDF */ | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -130,6 +130,15 @@ define Device/avm_fritzbox-7530 | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += avm_fritzbox-7530 | TARGET_DEVICES += avm_fritzbox-7530 | ||||||
|  |  | ||||||
|  | define Device/avm_fritzrepeater-3000 | ||||||
|  | 	$(call Device/FitImageLzma) | ||||||
|  | 	DEVICE_DTS := qcom-ipq4019-fritzrepeater-3000 | ||||||
|  | 	DEVICE_TITLE := AVM Fritz!Repeater 3000 | ||||||
|  | 	DEVICE_PACKAGES := ath10k-firmware-qca9984-ct fritz-caldata fritz-tffs-nand ipq-wifi-avm_fritzrepeater-3000 | ||||||
|  | 	IMAGES := sysupgrade.bin | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += avm_fritzrepeater-3000 | ||||||
|  |  | ||||||
| define Device/compex_wpj428 | define Device/compex_wpj428 | ||||||
| 	$(call Device/FitImage) | 	$(call Device/FitImage) | ||||||
| 	DEVICE_DTS := qcom-ipq4028-wpj428 | 	DEVICE_DTS := qcom-ipq4028-wpj428 | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/arch/arm/boot/dts/Makefile | --- a/arch/arm/boot/dts/Makefile | ||||||
| +++ b/arch/arm/boot/dts/Makefile | +++ b/arch/arm/boot/dts/Makefile | ||||||
| @@ -697,7 +697,27 @@ dtb-$(CONFIG_ARCH_QCOM) += \ | @@ -697,7 +697,28 @@ dtb-$(CONFIG_ARCH_QCOM) += \ | ||||||
|  	qcom-apq8074-dragonboard.dtb \ |  	qcom-apq8074-dragonboard.dtb \ | ||||||
|  	qcom-apq8084-ifc6540.dtb \ |  	qcom-apq8084-ifc6540.dtb \ | ||||||
|  	qcom-apq8084-mtp.dtb \ |  	qcom-apq8084-mtp.dtb \ | ||||||
| @@ -29,6 +29,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
| +	qcom-ipq4019-a62.dtb \ | +	qcom-ipq4019-a62.dtb \ | ||||||
| +	qcom-ipq4019-ap.dk04.1-c1.dtb \ | +	qcom-ipq4019-ap.dk04.1-c1.dtb \ | ||||||
| +	qcom-ipq4019-fritzbox-7530.dtb \ | +	qcom-ipq4019-fritzbox-7530.dtb \ | ||||||
|  | +	qcom-ipq4019-fritzrepeater-3000.dtb \ | ||||||
| +	qcom-ipq4019-map-ac2200.dtb \ | +	qcom-ipq4019-map-ac2200.dtb \ | ||||||
| +	qcom-ipq4019-qxwlan-e2600ac-c1.dtb \ | +	qcom-ipq4019-qxwlan-e2600ac-c1.dtb \ | ||||||
| +	qcom-ipq4019-qxwlan-e2600ac-c2.dtb \ | +	qcom-ipq4019-qxwlan-e2600ac-c2.dtb \ | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/arch/arm/boot/dts/Makefile | --- a/arch/arm/boot/dts/Makefile | ||||||
| +++ b/arch/arm/boot/dts/Makefile | +++ b/arch/arm/boot/dts/Makefile | ||||||
| @@ -785,11 +785,30 @@ dtb-$(CONFIG_ARCH_QCOM) += \ | @@ -785,11 +785,31 @@ dtb-$(CONFIG_ARCH_QCOM) += \ | ||||||
|  	qcom-apq8074-dragonboard.dtb \ |  	qcom-apq8074-dragonboard.dtb \ | ||||||
|  	qcom-apq8084-ifc6540.dtb \ |  	qcom-apq8084-ifc6540.dtb \ | ||||||
|  	qcom-apq8084-mtp.dtb \ |  	qcom-apq8084-mtp.dtb \ | ||||||
| @@ -32,6 +32,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  	qcom-ipq4019-ap.dk07.1-c2.dtb \ |  	qcom-ipq4019-ap.dk07.1-c2.dtb \ | ||||||
| +	qcom-ipq4019-a62.dtb \ | +	qcom-ipq4019-a62.dtb \ | ||||||
| +	qcom-ipq4019-fritzbox-7530.dtb \ | +	qcom-ipq4019-fritzbox-7530.dtb \ | ||||||
|  | +	qcom-ipq4019-fritzrepeater-3000.dtb \ | ||||||
| +	qcom-ipq4019-map-ac2200.dtb \ | +	qcom-ipq4019-map-ac2200.dtb \ | ||||||
| +	qcom-ipq4019-qxwlan-e2600ac-c1.dtb \ | +	qcom-ipq4019-qxwlan-e2600ac-c1.dtb \ | ||||||
| +	qcom-ipq4019-qxwlan-e2600ac-c2.dtb \ | +	qcom-ipq4019-qxwlan-e2600ac-c2.dtb \ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user