ath79: add support for Qihoo C301
Specifications: - SoC: AR9344 - RAM: 128MB - Flash: 2 * 16MB (MX25L12845) - Ethernet: 2 * FE LAN & 1 * FE WAN - WiFi: 2.4G: AR9344 5G: QCA9882 Flash instruction: 1. Hold reset and power up the router 2. Set your IP to 192.168.1.x 3. Open 192.168.1.1 and upload the generated *factory* firmware Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
This commit is contained in:
		| @@ -29,6 +29,9 @@ openmesh,om5p-ac-v2|\ | |||||||
| yuncore,a770) | yuncore,a770) | ||||||
| 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000" | 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000" | ||||||
| 	;; | 	;; | ||||||
|  | qihoo,c301) | ||||||
|  | 	ubootenv_add_uci_config "/dev/mtd9" "0x0" "0x10000" "0x10000" | ||||||
|  | 	;; | ||||||
| esac | esac | ||||||
|  |  | ||||||
| config_load ubootenv | config_load ubootenv | ||||||
|   | |||||||
| @@ -104,6 +104,9 @@ pcs,cr3000) | |||||||
| 	ucidef_set_led_switch "lan3" "LAN3" "pcs:blue:lan3" "switch0" "0x10" | 	ucidef_set_led_switch "lan3" "LAN3" "pcs:blue:lan3" "switch0" "0x10" | ||||||
| 	ucidef_set_led_switch "lan4" "LAN4" "pcs:blue:lan4" "switch0" "0x02" | 	ucidef_set_led_switch "lan4" "LAN4" "pcs:blue:lan4" "switch0" "0x02" | ||||||
| 	;; | 	;; | ||||||
|  | qihoo,c301) | ||||||
|  | 	ucidef_set_led_wlan "wlan" "WLAN" "$boardname:green:wlan" "phy0tpt" | ||||||
|  | 	;; | ||||||
| tplink,archer-a7-v5|\ | tplink,archer-a7-v5|\ | ||||||
| tplink,archer-c7-v4|\ | tplink,archer-c7-v4|\ | ||||||
| tplink,archer-c7-v5) | tplink,archer-c7-v5) | ||||||
|   | |||||||
| @@ -184,6 +184,11 @@ ath79_setup_interfaces() | |||||||
| 		ucidef_add_switch "switch0" \ | 		ucidef_add_switch "switch0" \ | ||||||
| 			"0@eth0" "3:lan:1" "5:lan:2" "4:wan" | 			"0@eth0" "3:lan:1" "5:lan:2" "4:wan" | ||||||
| 		;; | 		;; | ||||||
|  | 	qihoo,c301) | ||||||
|  | 		ucidef_set_interface_wan "eth1" | ||||||
|  | 		ucidef_add_switch "switch0" \ | ||||||
|  | 			"0@eth0" "2:lan" "3:lan" | ||||||
|  | 		;; | ||||||
| 	rosinson,wr818) | 	rosinson,wr818) | ||||||
| 		ucidef_add_switch "switch0" \ | 		ucidef_add_switch "switch0" \ | ||||||
| 			"0@eth0" "1:lan" "2:lan" "3:wan" | 			"0@eth0" "1:lan" "2:lan" "3:wan" | ||||||
| @@ -328,6 +333,10 @@ ath79_setup_macs() | |||||||
| 		lan_mac=$(k2t_get_mac "lan_mac") | 		lan_mac=$(k2t_get_mac "lan_mac") | ||||||
| 		wan_mac=$(k2t_get_mac "wan_mac") | 		wan_mac=$(k2t_get_mac "wan_mac") | ||||||
| 		;; | 		;; | ||||||
|  | 	qihoo,c301) | ||||||
|  | 		lan_mac=$(mtd_get_mac_ascii devdata lanmac) | ||||||
|  | 		wan_mac=$(mtd_get_mac_ascii devdata wanmac) | ||||||
|  | 		;; | ||||||
| 	rosinson,wr818) | 	rosinson,wr818) | ||||||
| 		wan_mac=$(mtd_get_mac_binary factory 0) | 		wan_mac=$(mtd_get_mac_binary factory 0) | ||||||
| 		lan_mac=$(macaddr_setbit_la "$wan_mac") | 		lan_mac=$(macaddr_setbit_la "$wan_mac") | ||||||
|   | |||||||
| @@ -127,6 +127,10 @@ case "$FIRMWARE" in | |||||||
| 		ath9k_eeprom_extract "art" 4096 1088 | 		ath9k_eeprom_extract "art" 4096 1088 | ||||||
| 		ath9k_patch_fw_mac $(mtd_get_mac_text board_data 1664) 2 | 		ath9k_patch_fw_mac $(mtd_get_mac_text board_data 1664) 2 | ||||||
| 		;; | 		;; | ||||||
|  | 	qihoo,c301) | ||||||
|  | 		ath9k_eeprom_extract "radiocfg" 4096 1088 | ||||||
|  | 		ath9k_patch_fw_mac $(mtd_get_mac_ascii devdata "wlan24mac") 2 | ||||||
|  | 		;; | ||||||
| 	*) | 	*) | ||||||
| 		ath9k_eeprom_die "board $board is not supported yet" | 		ath9k_eeprom_die "board $board is not supported yet" | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -138,6 +138,10 @@ case "$FIRMWARE" in | |||||||
| 		ath10kcal_extract "art" 20480 2116 | 		ath10kcal_extract "art" 20480 2116 | ||||||
| 		ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16) | 		ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16) | ||||||
| 		;; | 		;; | ||||||
|  | 	qihoo,c301) | ||||||
|  | 		ath10kcal_extract "radiocfg" 20480 2116 | ||||||
|  | 		ath10kcal_patch_mac_crc $(mtd_get_mac_ascii devdata wlan5mac) | ||||||
|  | 		;; | ||||||
| 	tplink,archer-a7-v5|\ | 	tplink,archer-a7-v5|\ | ||||||
| 	tplink,archer-c2-v3|\ | 	tplink,archer-c2-v3|\ | ||||||
| 	tplink,archer-c7-v4|\ | 	tplink,archer-c7-v4|\ | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								target/linux/ath79/base-files/etc/init.d/bootcount
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								target/linux/ath79/base-files/etc/init.d/bootcount
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | #!/bin/sh /etc/rc.common | ||||||
|  | START=99 | ||||||
|  |  | ||||||
|  | boot() { | ||||||
|  | 	case $(board_name) in | ||||||
|  | 	qihoo,c301) | ||||||
|  | 		local n=$(fw_printenv activeregion | cut -d = -f 2) | ||||||
|  | 		fw_setenv "image${n}trynum" 0 | ||||||
|  | 		;; | ||||||
|  | 	esac | ||||||
|  | } | ||||||
| @@ -167,6 +167,7 @@ CONFIG_MTD_PARSER_CYBERTAN=y | |||||||
| CONFIG_MTD_PHYSMAP=y | CONFIG_MTD_PHYSMAP=y | ||||||
| CONFIG_MTD_SPI_NOR=y | CONFIG_MTD_SPI_NOR=y | ||||||
| CONFIG_MTD_SPLIT_LZMA_FW=y | CONFIG_MTD_SPLIT_LZMA_FW=y | ||||||
|  | CONFIG_MTD_SPLIT_SEAMA_FW=y | ||||||
| CONFIG_MTD_SPLIT_TPLINK_FW=y | CONFIG_MTD_SPLIT_TPLINK_FW=y | ||||||
| CONFIG_MTD_SPLIT_UIMAGE_FW=y | CONFIG_MTD_SPLIT_UIMAGE_FW=y | ||||||
| CONFIG_MTD_TPLINK_PARTS=y | CONFIG_MTD_TPLINK_PARTS=y | ||||||
|   | |||||||
							
								
								
									
										236
									
								
								target/linux/ath79/dts/ar9344_qihoo_c301.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								target/linux/ath79/dts/ar9344_qihoo_c301.dts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,236 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  | /dts-v1/; | ||||||
|  |  | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  |  | ||||||
|  | #include "ar9344.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	model = "Qihoo 360 C301"; | ||||||
|  | 	compatible = "qihoo,c301"; | ||||||
|  |  | ||||||
|  | 	aliases { | ||||||
|  | 		led-boot = &led_wlan_g; | ||||||
|  | 		led-failsafe = &led_wlan_o; | ||||||
|  | 		led-upgrade = &led_wlan_o; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  | 		pinctrl-names = "default"; | ||||||
|  | 		pinctrl-0 = <&jtag_disable_pins>; | ||||||
|  |  | ||||||
|  | 		led_wlan_g: wlan_g { | ||||||
|  | 			label = "c301:green:wlan"; | ||||||
|  | 			gpios = <&gpio 0 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		led_wlan_o: wlan_o { | ||||||
|  | 			label = "c301:orange:wlan"; | ||||||
|  | 			gpios = <&gpio 11 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,default-trigger = "phy1tpt"; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys"; | ||||||
|  |  | ||||||
|  | 		reset { | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 			gpios = <&gpio 16 GPIO_ACTIVE_LOW>; | ||||||
|  | 			debounce-interval = <60>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	reg_eth_led_vbus { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "eth_led_vbus"; | ||||||
|  | 		regulator-min-microvolt = <3300000>; | ||||||
|  | 		regulator-max-microvolt = <3300000>; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 		gpio = <&gpio 18 GPIO_ACTIVE_LOW>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	reg_usb_vbus { | ||||||
|  | 		compatible = "regulator-fixed"; | ||||||
|  | 		regulator-name = "usb_vbus"; | ||||||
|  | 		regulator-min-microvolt = <5000000>; | ||||||
|  | 		regulator-max-microvolt = <5000000>; | ||||||
|  | 		enable-active-high; | ||||||
|  | 		regulator-always-on; | ||||||
|  | 		gpio = <&gpio 19 GPIO_ACTIVE_HIGH>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pinmux { | ||||||
|  | 	pmx_spi_cs1: pinmux_spi_cs1 { | ||||||
|  | 		pinctrl-single,bits = <0xc 0x07 0xff>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	pmx_led_switch: pinmux_led_switch { | ||||||
|  | 		pinctrl-single,bits = <0x0 0x2b2a2d00 0xffffff00>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &ref { | ||||||
|  | 	clock-frequency = <40000000>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &uart { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &gpio { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	gpio_ext_lna0 { | ||||||
|  | 		gpio-hog; | ||||||
|  | 		gpios = <14 0>; | ||||||
|  | 		output-high; | ||||||
|  | 		line-name = "c301:ext:lna0"; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	gpio_ext_lna1 { | ||||||
|  | 		gpio-hog; | ||||||
|  | 		gpios = <15 0>; | ||||||
|  | 		output-high; | ||||||
|  | 		line-name = "c301:ext:lna1"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &builtin_switch { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&pmx_led_switch>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &spi { | ||||||
|  | 	pinctrl-names = "default"; | ||||||
|  | 	pinctrl-0 = <&pmx_spi_cs1>; | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	num-cs = <2>; | ||||||
|  | 	cs-gpios= <0>, <0>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <25000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			uboot: partition@0 { | ||||||
|  | 				label = "u-boot"; | ||||||
|  | 				reg = <0x0 0x40000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@40000 { | ||||||
|  | 				label = "u-boot-env"; | ||||||
|  | 				reg = <0x40000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@50000 { | ||||||
|  | 				label = "devdata"; | ||||||
|  | 				reg = <0x50000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@60000 { | ||||||
|  | 				label = "devconf"; | ||||||
|  | 				reg = <0x60000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@70000 { | ||||||
|  | 				compatible = "seama"; | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x70000 0xf60000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@fd0000 { | ||||||
|  | 				label = "warm_start"; | ||||||
|  | 				reg = <0xfd0000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@fe0000 { | ||||||
|  | 				label = "action_image_config"; | ||||||
|  | 				reg = <0xfe0000 0x10000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@ff0000 { | ||||||
|  | 				label = "radiocfg"; | ||||||
|  | 				reg = <0xff0000 0x10000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	flash@1 { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 		compatible = "jedec,spi-nor"; | ||||||
|  | 		reg = <1>; | ||||||
|  | 		spi-max-frequency = <25000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "firmware2"; | ||||||
|  | 				reg = <0x0 0xf00000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@f00000 { | ||||||
|  | 				label = "privatedata"; | ||||||
|  | 				reg = <0xf00000 0x100000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	wifi@0,0 { | ||||||
|  | 		compatible = "qcom,ath10k"; | ||||||
|  | 		reg = <0 0 0 0 0>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wmac { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	qca,no-eeprom; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ð1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	gmac-config { | ||||||
|  | 		device = <&gmac>; | ||||||
|  | 		switch-phy-swap = <1>; | ||||||
|  | 		switch-only-mode = <1>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ð0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	phy-handle = <&swphy0>; | ||||||
|  | }; | ||||||
| @@ -728,6 +728,18 @@ define Device/phicomm_k2t | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += phicomm_k2t | TARGET_DEVICES += phicomm_k2t | ||||||
|  |  | ||||||
|  | define Device/qihoo_c301 | ||||||
|  |   $(Device/seama) | ||||||
|  |   ATH_SOC := ar9344 | ||||||
|  |   DEVICE_VENDOR := Qihoo | ||||||
|  |   DEVICE_MODEL := C301 | ||||||
|  |   DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct uboot-envtools | ||||||
|  |   IMAGE_SIZE := 15744k | ||||||
|  |   SEAMA_SIGNATURE := wrgac26_qihoo360_360rg | ||||||
|  |   SUPPORTED_DEVICES += qihoo-c301 | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += qihoo_c301 | ||||||
|  |  | ||||||
| define Device/rosinson_wr818 | define Device/rosinson_wr818 | ||||||
|   ATH_SOC := qca9563 |   ATH_SOC := qca9563 | ||||||
|   DEVICE_VENDOR := Rosinson |   DEVICE_VENDOR := Rosinson | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Chuanhong Guo
					Chuanhong Guo