ath79: add D-Link DIR-615 E4
Specifications:
- FCC ID: KA2IR615E3
- SoC: MIPS32 24K 400 MHz Atheros AR7240
- RAM: 32 MiB DDR SDRAM ESMT M13S2561616A-5T
- Flash: 4 MiB NOR SPI Macronix MX25L3208E
- Wireless: AR9287 2.4 GHz 802.11n 2T2R, 2x RP-SMA connectors
- Ethernet: 5x 100BASE-TX Fast Ethernet
- LEDs: 9x GPIO, 1x ath9k
- Buttons: 2x tactile switches
- UART: 3.3 V, 115200 8n1
- USB: simple hardware modification required, 1x USB 1.1 Full Speed
Partitioning notes:
Vendor firmware (based on CameoAP99) defines two additional partitions:
"mac" @0x3b0000, size 0x10000 and "lp" @0x3c0000, size 0x30000.
The "mac" partition stores LAN MAC address and hardware board name.
However, the vendor firmware uses addresses from "nvram" partition, and
the board name is used only for informational purposes in the Web
interface (included in the pages' header), not affecting the firmware
image check.
The "lp" partition is supposed to contain a "language pack" (which can
be used to add an additional language support to the Web interface) and
is flashed separately, using the vendor firmware upgrade page.
Since these partitions are absolutely useless for OpenWrt and
overwriting them doesn't prevent downgrading to obsolete vendor
firmware, this patch appends the valueable space to "firmware".
Installation instructions:
- Upgrade from OpenWrt ar71xx with "sysupgrade -f -n"
or
- Upload as a firmware update via the vendor Web-interface
or
- Connect UART and use "loady" to upload and run OpenWrt initramfs
  image, then sysupgrade from it (TFTP client doesn't work)
or
- Before powering up hold "reset" button and keep it pressed for about
  15 seconds after, then access fail safe Web server on 192.168.0.1 (the
  old uIP TCP/IP protocol stack is not compatible with modern Linux, the
  kernel, so you'll need to use some other OS to do this). Can be
  performed without a Web-browser too:
    curl http://192.168.0.1/cgi/index \
      -F Send=@openwrt-ath79-tiny-dlink_dir-615-e4-squashfs-factory.bin
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
			
			
This commit is contained in:
		 Paul Fertser
					Paul Fertser
				
			
				
					committed by
					
						 Petr Štetiar
						Petr Štetiar
					
				
			
			
				
	
			
			
			 Petr Štetiar
						Petr Štetiar
					
				
			
						parent
						
							ad6c6361f9
						
					
				
				
					commit
					b14e529dd7
				
			
							
								
								
									
										170
									
								
								target/linux/ath79/dts/ar7240_dlink_dir-615-e4.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								target/linux/ath79/dts/ar7240_dlink_dir-615-e4.dts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,170 @@ | ||||
| // 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 "ar7240.dtsi" | ||||
|  | ||||
| / { | ||||
| 	model = "D-Link DIR-615 E4"; | ||||
| 	compatible = "dlink,dir-615-e4", "qca,ar7240"; | ||||
|  | ||||
| 	aliases { | ||||
| 		led-boot = &led_power_amber; | ||||
| 		led-failsafe = &led_power_amber; | ||||
| 		led-running = &led_power_green; | ||||
| 		led-upgrade = &led_power_amber; | ||||
| 	}; | ||||
|  | ||||
| 	keys { | ||||
| 		compatible = "gpio-keys"; | ||||
|  | ||||
| 		reset { | ||||
| 			label = "reset"; | ||||
| 			linux,code = <KEY_RESTART>; | ||||
| 			gpios = <&gpio 8 GPIO_ACTIVE_LOW>; | ||||
| 			debounce-interval = <60>; | ||||
| 		}; | ||||
|  | ||||
| 		wps { | ||||
| 			label = "wps"; | ||||
| 			linux,code = <KEY_WPS_BUTTON>; | ||||
| 			gpios = <&gpio 12 GPIO_ACTIVE_LOW>; | ||||
| 			debounce-interval = <60>; | ||||
| 		}; | ||||
| 	}; | ||||
|  | ||||
| 	leds { | ||||
| 		compatible = "gpio-leds"; | ||||
| 		pinctrl-names = "default"; | ||||
| 		pinctrl-0 = <&switch_led_pins>; | ||||
|  | ||||
| 		led_power_green: power_green { | ||||
| 			label = "d-link:green:power"; | ||||
| 			gpios = <&gpio 6 GPIO_ACTIVE_HIGH>; | ||||
| 		}; | ||||
|  | ||||
| 		led_power_amber: power_amber { | ||||
| 			label = "d-link:amber:power"; | ||||
| 			gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; | ||||
| 		}; | ||||
|  | ||||
| 		wps { | ||||
| 			label = "d-link:blue:wps"; | ||||
| 			gpios = <&gpio 0 GPIO_ACTIVE_LOW>; | ||||
| 		}; | ||||
|  | ||||
| 		lan1 { | ||||
| 			label = "d-link:green:lan1"; | ||||
| 			gpios = <&gpio 13 GPIO_ACTIVE_LOW>; | ||||
| 		}; | ||||
|  | ||||
| 		lan2 { | ||||
| 			label = "d-link:green:lan2"; | ||||
| 			gpios = <&gpio 14 GPIO_ACTIVE_LOW>; | ||||
| 		}; | ||||
|  | ||||
| 		lan3 { | ||||
| 			label = "d-link:green:lan3"; | ||||
| 			gpios = <&gpio 15 GPIO_ACTIVE_LOW>; | ||||
| 		}; | ||||
|  | ||||
| 		lan4 { | ||||
| 			label = "d-link:green:lan4"; | ||||
| 			gpios = <&gpio 16 GPIO_ACTIVE_LOW>; | ||||
| 		}; | ||||
|  | ||||
| 		wan_amber { | ||||
| 			label = "d-link:amber:wan"; | ||||
| 			gpios = <&gpio 7 GPIO_ACTIVE_HIGH>; | ||||
| 		}; | ||||
|  | ||||
| 		wan_green { | ||||
| 			label = "d-link:green:wan"; | ||||
| 			gpios = <&gpio 17 GPIO_ACTIVE_LOW>; | ||||
| 		}; | ||||
| 	}; | ||||
|  | ||||
| 	ath9k-leds { | ||||
| 		compatible = "gpio-leds"; | ||||
|  | ||||
| 		wlan { | ||||
| 			label = "d-link:green:wlan"; | ||||
| 			gpios = <&ath9k 1 GPIO_ACTIVE_LOW>; | ||||
| 			linux,default-trigger = "phy0tpt"; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
|  | ||||
| &spi { | ||||
| 	status = "okay"; | ||||
|  | ||||
| 	num-cs = <1>; | ||||
|  | ||||
| 	flash@0 { | ||||
| 		compatible = "jedec,spi-nor"; | ||||
| 		reg = <0>; | ||||
| 		spi-max-frequency = <33000000>; | ||||
|  | ||||
| 		partitions { | ||||
| 			compatible = "fixed-partitions"; | ||||
| 			#address-cells = <1>; | ||||
| 			#size-cells = <1>; | ||||
|  | ||||
| 			partition@0 { | ||||
| 				reg = <0x0 0x30000>; | ||||
| 				label = "u-boot"; | ||||
| 				read-only; | ||||
| 			}; | ||||
|  | ||||
| 			partition@30000 { | ||||
| 				reg = <0x30000 0x10000>; | ||||
| 				label = "nvram"; | ||||
| 				read-only; | ||||
| 			}; | ||||
|  | ||||
| 			partition@40000 { | ||||
| 				compatible = "denx,uimage"; | ||||
| 				reg = <0x40000 0x3b0000>; | ||||
| 				label = "firmware"; | ||||
| 			}; | ||||
|  | ||||
| 			partition@3f0000 { | ||||
| 				reg = <0x3f0000 0x10000>; | ||||
| 				label = "art"; | ||||
| 				read-only; | ||||
| 			}; | ||||
| 		}; | ||||
| 	}; | ||||
| }; | ||||
|  | ||||
| ð0 { | ||||
| 	status = "okay"; | ||||
| }; | ||||
|  | ||||
| ð1 { | ||||
| 	status = "okay"; | ||||
| }; | ||||
|  | ||||
| &pcie { | ||||
| 	status = "okay"; | ||||
|  | ||||
| 	ath9k: wifi@0,0 { | ||||
| 		compatible = "pci168c,002b"; | ||||
| 		reg = <0x0000 0 0 0 0>; | ||||
| 		qca,no-eeprom; | ||||
| 		#gpio-cells = <2>; | ||||
| 		gpio-controller; | ||||
| 	}; | ||||
| }; | ||||
|  | ||||
| &pinmux { | ||||
| 	switch_led_pins: pinmux_switch_led_pins { | ||||
| 		pinctrl-single,bits = <0x0 0x0 0xf8>; | ||||
| 	}; | ||||
| }; | ||||
|  | ||||
| &uart { | ||||
| 	status = "okay"; | ||||
| }; | ||||
| @@ -13,6 +13,22 @@ define Device/buffalo_whr-g301n | ||||
| endef | ||||
| TARGET_DEVICES += buffalo_whr-g301n | ||||
|  | ||||
| define Device/dlink_dir-615-e4 | ||||
|   ATH_SOC := ar7240 | ||||
|   DEVICE_VENDOR := D-Link | ||||
|   DEVICE_MODEL := DIR-615 | ||||
|   DEVICE_VARIANT := E4 | ||||
|   IMAGE_SIZE := 3776k | ||||
|   FACTORY_IMAGE_SIZE := 3456k | ||||
|   IMAGES += factory.bin | ||||
|   IMAGE/default := append-kernel | append-rootfs | pad-rootfs | ||||
|   IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE) | ||||
|   IMAGE/factory.bin := $$(IMAGE/default) | check-size $$$$(FACTORY_IMAGE_SIZE) | \ | ||||
|     pad-to $$$$(FACTORY_IMAGE_SIZE) | append-string "AP99-AR7240-RT-091105-05" | ||||
|   SUPPORTED_DEVICES += dir-615-e4 | ||||
| endef | ||||
| TARGET_DEVICES += dlink_dir-615-e4 | ||||
|  | ||||
| define Device/pqi_air-pen | ||||
|   ATH_SOC := ar9330 | ||||
|   DEVICE_VENDOR := PQI | ||||
|   | ||||
| @@ -15,6 +15,13 @@ buffalo,whr-g301n) | ||||
| 	ucidef_set_led_switch "lan3" "LAN3" "$boardname:green:lan3" "switch0" "0x08" | ||||
| 	ucidef_set_led_switch "lan4" "LAN4" "$boardname:green:lan4" "switch0" "0x10" | ||||
| 	;; | ||||
| dlink,dir-615-e4) | ||||
| 	ucidef_set_led_netdev "wan" "WAN" "d-link:green:wan" "eth0" | ||||
| 	ucidef_set_led_switch "lan1" "LAN1" "d-link:green:lan1" "switch0" "0x02" | ||||
| 	ucidef_set_led_switch "lan2" "LAN2" "d-link:green:lan2" "switch0" "0x04" | ||||
| 	ucidef_set_led_switch "lan3" "LAN3" "d-link:green:lan3" "switch0" "0x08" | ||||
| 	ucidef_set_led_switch "lan4" "LAN4" "d-link:green:lan4" "switch0" "0x10" | ||||
| 	;; | ||||
| netgear,wnr1000-v2|\ | ||||
| netgear,wnr2000-v3) | ||||
| 	ucidef_set_led_netdev "wan-amber" "WAN (amber)" "netgear:amber:wan" "eth0" | ||||
|   | ||||
| @@ -13,6 +13,7 @@ ath79_setup_interfaces() | ||||
| 		ucidef_add_switch "switch0" \ | ||||
| 			"0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" | ||||
| 		;; | ||||
| 	dlink,dir-615-e4|\ | ||||
| 	netgear,wnr1000-v2|\ | ||||
| 	netgear,wnr2000-v3|\ | ||||
| 	netgear,wnr612-v2|\ | ||||
| @@ -75,6 +76,11 @@ ath79_setup_macs() | ||||
| 	local board="$1" | ||||
|  | ||||
| 	case "$board" in | ||||
| 	dlink,dir-615-e4) | ||||
| 		lan_mac=$(mtd_get_mac_ascii "nvram" "lan_mac") | ||||
| 		wan_mac=$(mtd_get_mac_ascii "nvram" "wan_mac") | ||||
| 		label_mac=$wan_mac | ||||
| 		;; | ||||
| 	tplink,tl-wr941-v2|\ | ||||
| 	tplink,tl-wr941n-v7-cn) | ||||
| 		base_mac=$(mtd_get_mac_binary u-boot 0x1fc00) | ||||
|   | ||||
| @@ -14,6 +14,10 @@ case "$FIRMWARE" in | ||||
| 	tplink,tl-wr941-v4) | ||||
| 		caldata_extract "art" 0x1000 0xeb8 | ||||
| 		;; | ||||
| 	dlink,dir-615-e4) | ||||
| 		caldata_extract "art" 0x1000 0x1000 | ||||
| 		ath9k_patch_mac_crc $(mtd_get_mac_ascii "nvram" "lan_mac") 0x10c | ||||
| 		;; | ||||
| 	netgear,wnr1000-v2|\ | ||||
| 	netgear,wnr2000-v3|\ | ||||
| 	netgear,wnr612-v2|\ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user