<div dir="ltr"><div><div style="font-size:12.8px">From: Josh Bendavid <<a href="mailto:joshbendavid@gmail.com" target="_blank">joshbendavid@gmail.com</a>><br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Add initial support for Archer C2600 to Makefiles and profiles.  This is sufficient to build a working factory image.  Sysupgrade image is not implemented yet.  Currently wired network is working, but LED's/buttons/wireless are not.  Updated to create a separate dts file for c2600, which is currently identical to the ap148 aside that the sata-related sections have been removed.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Signed-off-by: Josh Bendavid <<a href="mailto:joshbendavid@gmail.com" target="_blank">joshbendavid@gmail.com</a>><br></div><div style="font-size:12.8px">---</div></div><div><br></div><div>diff --git a/include/<a href="http://image.mk">image.mk</a> b/include/<a href="http://image.mk">image.mk</a></div><div>index fd5e3f4..fab3c8a 100644</div><div>--- a/include/<a href="http://image.mk">image.mk</a></div><div>+++ b/include/<a href="http://image.mk">image.mk</a></div><div>@@ -327,6 +327,17 @@ define Build/netgear-dni</div><div> <span class="" style="white-space:pre">  </span>mv $@.new $@</div><div> endef</div><div> </div><div>+define Build/tplink-safe</div><div>+<span class="" style="white-space:pre">       </span>$(STAGING_DIR_HOST)/bin/tplink-safeloader \</div><div>+<span class="" style="white-space:pre">               </span>-B $(TPLINK_BOARD_ID) -V OpenWrt.$(REVISION) \</div><div>+<span class="" style="white-space:pre">            </span>-k $(word 1,$^) \</div><div>+<span class="" style="white-space:pre">         </span>-r $(word 2,$^) \</div><div>+<span class="" style="white-space:pre">         </span>-j \</div><div>+<span class="" style="white-space:pre">              </span>$(if $(findstring sysupgrade,$1),-S) \</div><div>+<span class="" style="white-space:pre">            </span>-o $@.new</div><div>+<span class="" style="white-space:pre"> </span>mv $@.new $@</div><div>+endef</div><div>+</div><div> define Build/fit</div><div> <span class="" style="white-space:pre">       </span>$(TOPDIR)/scripts/mkits.sh \</div><div> <span class="" style="white-space:pre">             </span>-D $(DEVICE_NAME) -o $@.its -k $@ \</div><div>diff --git a/target/linux/ipq806x/base-files/etc/board.d/02_network b/target/linux/ipq806x/base-files/etc/board.d/02_network</div><div>index b054230..e000e3d 100755</div><div>--- a/target/linux/ipq806x/base-files/etc/board.d/02_network</div><div>+++ b/target/linux/ipq806x/base-files/etc/board.d/02_network</div><div>@@ -13,7 +13,8 @@ board=$(ipq806x_board_name)</div><div> </div><div> case "$board" in</div><div> ap148 |\</div><div>-r7500)</div><div>+r7500 |\</div><div>+c2600)</div><div> <span class="" style="white-space:pre">    </span>ucidef_add_switch "switch0" \</div><div> <span class="" style="white-space:pre">          </span>"1:lan" "2:lan" "3:lan" "4:lan" "6@eth1" "5:wan" "0@eth0"</div><div> <span class="" style="white-space:pre">  </span>;;</div><div>diff --git a/target/linux/ipq806x/base-files/lib/ipq806x.sh b/target/linux/ipq806x/base-files/lib/ipq806x.sh</div><div>index 5b27bde..262183f 100644</div><div>--- a/target/linux/ipq806x/base-files/lib/ipq806x.sh</div><div>+++ b/target/linux/ipq806x/base-files/lib/ipq806x.sh</div><div>@@ -23,6 +23,9 @@ ipq806x_board_detect() {</div><div> <span class="" style="white-space:pre"> </span>*"R7500")</div><div> <span class="" style="white-space:pre">              </span>name="r7500"</div><div> <span class="" style="white-space:pre">           </span>;;</div><div>+<span class="" style="white-space:pre">        </span>*"C2600")</div><div>+<span class="" style="white-space:pre">               </span>name="c2600"</div><div>+<span class="" style="white-space:pre">            </span>;;</div><div> <span class="" style="white-space:pre">       </span>esac</div><div> </div><div> <span class="" style="white-space:pre">    </span>[ -z "$name" ] && name="unknown"</div><div>diff --git a/target/linux/ipq806x/image/Makefile b/target/linux/ipq806x/image/Makefile</div><div>index 14cf442..0445914 100644</div><div>--- a/target/linux/ipq806x/image/Makefile</div><div>+++ b/target/linux/ipq806x/image/Makefile</div><div>@@ -85,6 +85,18 @@ define Device/DniImage</div><div> endef</div><div> DEVICE_VARS += KERNEL_SIZE NETGEAR_BOARD_ID NETGEAR_HW_ID DEVICE_BLOCK_SIZE DEVICE_PAGE_SIZE</div><div> </div><div>+define Device/TpSafeImage</div><div>+<span class="" style="white-space:pre">        </span>PROFILES += $$(DEVICE_NAME)</div><div>+<span class="" style="white-space:pre">       </span>FILESYSTEMS := squashfs</div><div>+<span class="" style="white-space:pre">   </span>KERNEL_SUFFIX := -uImage</div><div>+<span class="" style="white-space:pre">  </span>KERNEL = kernel-bin | append-dtb | uImage none</div><div>+<span class="" style="white-space:pre">    </span>KERNEL_NAME := zImage</div><div>+<span class="" style="white-space:pre">     </span>TPLINK_BOARD_ID :=</div><div>+<span class="" style="white-space:pre">        </span>IMAGES := factory.bin</div><div>+<span class="" style="white-space:pre">     </span>IMAGE/factory.bin := tplink-safe</div><div>+endef</div><div>+DEVICE_VARS += TPLINK_BOARD_ID</div><div>+</div><div> define Device/AP148</div><div> <span class="" style="white-space:pre">  </span>$(call Device/FitImage)</div><div> <span class="" style="white-space:pre">  </span>$(call Device/UbiFit)</div><div>@@ -103,6 +115,15 @@ define Device/AP148-legacy</div><div> <span class="" style="white-space:pre">      </span>BOARD_NAME := ap148</div><div> endef</div><div> </div><div>+define Device/C2600</div><div>+<span class="" style="white-space:pre">     </span>$(call Device/TpSafeImage)</div><div>+<span class="" style="white-space:pre">        </span>DEVICE_DTS := qcom-ipq8064-c2600</div><div>+<span class="" style="white-space:pre">  </span>BLOCKSIZE := 128KiB</div><div>+<span class="" style="white-space:pre">       </span>PAGESIZE := 2048</div><div>+<span class="" style="white-space:pre">  </span>BOARD_NAME := ap148</div><div>+<span class="" style="white-space:pre">       </span>TPLINK_BOARD_ID := C2600</div><div>+endef</div><div>+</div><div> define Device/DB149</div><div> <span class="" style="white-space:pre">        </span>$(call Device/FitImage)</div><div> <span class="" style="white-space:pre">  </span>DEVICE_DTS := qcom-ipq8064-db149</div><div>@@ -121,6 +142,6 @@ define Device/R7500</div><div> <span class="" style="white-space:pre">   </span>BOARD_NAME := r7500</div><div> endef</div><div> </div><div>-TARGET_DEVICES += AP148 AP148-legacy DB149 R7500</div><div>+TARGET_DEVICES += AP148 AP148-legacy C2600 DB149 R7500</div><div> </div><div> $(eval $(call BuildImage))</div><div>diff --git a/target/linux/ipq806x/patches-3.18/711-ARM-qcom-add-TP-Link-Archer-C2600-device-tree.patch b/target/linux/ipq806x/patches-3.18/711-ARM-qcom-add-TP-Link-Archer-C2600-device-tree.patch</div><div>index e69de29..e750b98 100644</div><div>--- a/target/linux/ipq806x/patches-3.18/711-ARM-qcom-add-TP-Link-Archer-C2600-device-tree.patch</div><div>+++ b/target/linux/ipq806x/patches-3.18/711-ARM-qcom-add-TP-Link-Archer-C2600-device-tree.patch</div><div>@@ -0,0 +1,246 @@</div><div>+diff -urN a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile</div><div>+--- a/arch/arm/boot/dts/Makefile<span class="" style="white-space:pre">  </span>2015-11-25 22:51:15.148899604 +0100</div><div>++++ b/arch/arm/boot/dts/Makefile<span class="" style="white-space:pre">       </span>2015-12-06 14:33:31.092396982 +0100</div><div>+@@ -362,6 +362,7 @@</div><div>+ <span class="" style="white-space:pre">   </span>qcom-ipq8064-ap148.dtb \</div><div>+ <span class="" style="white-space:pre"> </span>qcom-ipq8064-db149.dtb \</div><div>+ <span class="" style="white-space:pre"> </span>qcom-ipq8064-r7500.dtb \</div><div>++<span class="" style="white-space:pre"> </span>qcom-ipq8064-c2600.dtb \</div><div>+ <span class="" style="white-space:pre"> </span>qcom-msm8660-surf.dtb \</div><div>+ <span class="" style="white-space:pre">  </span>qcom-msm8960-cdp.dtb \</div><div>+ <span class="" style="white-space:pre">   </span>qcom-msm8974-sony-xperia-honami.dtb</div><div>+diff -urN a/arch/arm/boot/dts/qcom-ipq8064-c2600.dts b/arch/arm/boot/dts/qcom-ipq8064-c2600.dts</div><div>+--- a/arch/arm/boot/dts/qcom-ipq8064-c2600.dts<span class="" style="white-space:pre">  </span>1970-01-01 01:00:00.000000000 +0100</div><div>++++ b/arch/arm/boot/dts/qcom-ipq8064-c2600.dts<span class="" style="white-space:pre"> </span>2015-12-06 14:20:05.152365670 +0100</div><div>+@@ -0,0 +1,231 @@</div><div>++#include "qcom-ipq8064-v1.0.dtsi"</div><div>++</div><div>++/ {</div><div>++<span class="" style="white-space:pre">    </span>model = "TP-Link Archer C2600";</div><div>++<span class="" style="white-space:pre">        </span>compatible = "tplink,c2600", "qcom,ipq8064";</div><div>++</div><div>++<span class="" style="white-space:pre">        </span>memory@0 {</div><div>++<span class="" style="white-space:pre">               </span>reg = <0x42000000 0x1e000000>;</div><div>++<span class="" style="white-space:pre">             </span>device_type = "memory";</div><div>++<span class="" style="white-space:pre">        </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">      </span>reserved-memory {</div><div>++<span class="" style="white-space:pre">                </span>#address-cells = <1>;</div><div>++<span class="" style="white-space:pre">              </span>#size-cells = <1>;</div><div>++<span class="" style="white-space:pre">         </span>ranges;</div><div>++<span class="" style="white-space:pre">          </span>rsvd@41200000 {</div><div>++<span class="" style="white-space:pre">                  </span>reg = <0x41200000 0x300000>;</div><div>++<span class="" style="white-space:pre">                       </span>no-map;</div><div>++<span class="" style="white-space:pre">          </span>};</div><div>++<span class="" style="white-space:pre">       </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">      </span>aliases {</div><div>++<span class="" style="white-space:pre">                </span>serial0 = &uart4;</div><div>++<span class="" style="white-space:pre">            </span>mdio-gpio0 = &mdio0;</div><div>++<span class="" style="white-space:pre"> </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">      </span>chosen {</div><div>++<span class="" style="white-space:pre">         </span>linux,stdout-path = "serial0:115200n8";</div><div>++<span class="" style="white-space:pre">        </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">      </span>soc {</div><div>++<span class="" style="white-space:pre">            </span>pinmux@800000 {</div><div>++<span class="" style="white-space:pre">                  </span>i2c4_pins: i2c4_pinmux {</div><div>++<span class="" style="white-space:pre">                         </span>pins = "gpio12", "gpio13";</div><div>++<span class="" style="white-space:pre">                           </span>function = "gsbi4";</div><div>++<span class="" style="white-space:pre">                            </span>bias-disable;</div><div>++<span class="" style="white-space:pre">                    </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                      </span>spi_pins: spi_pins {</div><div>++<span class="" style="white-space:pre">                             </span>mux {</div><div>++<span class="" style="white-space:pre">                                    </span>pins = "gpio18", "gpio19", "gpio21";</div><div>++<span class="" style="white-space:pre">                                       </span>function = "gsbi5";</div><div>++<span class="" style="white-space:pre">                                    </span>drive-strength = <10>;</div><div>++<span class="" style="white-space:pre">                                     </span>bias-none;</div><div>++<span class="" style="white-space:pre">                               </span>};</div><div>++<span class="" style="white-space:pre">                       </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                      </span>nand_pins: nand_pins {</div><div>++<span class="" style="white-space:pre">                           </span>mux {</div><div>++<span class="" style="white-space:pre">                                    </span>pins = "gpio34", "gpio35", "gpio36",</div><div>++<span class="" style="white-space:pre">                                       </span>       "gpio37", "gpio38", "gpio39",</div><div>++<span class="" style="white-space:pre">                                    </span>       "gpio40", "gpio41", "gpio42",</div><div>++<span class="" style="white-space:pre">                                    </span>       "gpio43", "gpio44", "gpio45",</div><div>++<span class="" style="white-space:pre">                                    </span>       "gpio46", "gpio47";</div><div>++<span class="" style="white-space:pre">                                        </span>function = "nand";</div><div>++<span class="" style="white-space:pre">                                     </span>drive-strength = <10>;</div><div>++<span class="" style="white-space:pre">                                     </span>bias-disable;</div><div>++<span class="" style="white-space:pre">                            </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                              </span>pullups {</div><div>++<span class="" style="white-space:pre">                                        </span>pins = "gpio39";</div><div>++<span class="" style="white-space:pre">                                       </span>bias-pull-up;</div><div>++<span class="" style="white-space:pre">                            </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                              </span>hold {</div><div>++<span class="" style="white-space:pre">                                   </span>pins = "gpio40", "gpio41", "gpio42",</div><div>++<span class="" style="white-space:pre">                                       </span>       "gpio43", "gpio44", "gpio45",</div><div>++<span class="" style="white-space:pre">                                    </span>       "gpio46", "gpio47";</div><div>++<span class="" style="white-space:pre">                                        </span>bias-bus-hold;</div><div>++<span class="" style="white-space:pre">                           </span>};</div><div>++<span class="" style="white-space:pre">                       </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                      </span>mdio0_pins: mdio0_pins {</div><div>++<span class="" style="white-space:pre">                         </span>mux {</div><div>++<span class="" style="white-space:pre">                                    </span>pins = "gpio0", "gpio1";</div><div>++<span class="" style="white-space:pre">                                     </span>function = "gpio";</div><div>++<span class="" style="white-space:pre">                                     </span>drive-strength = <8>;</div><div>++<span class="" style="white-space:pre">                                      </span>bias-disable;</div><div>++<span class="" style="white-space:pre">                            </span>};</div><div>++<span class="" style="white-space:pre">                       </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                      </span>rgmii2_pins: rgmii2_pins {</div><div>++<span class="" style="white-space:pre">                               </span>mux {</div><div>++<span class="" style="white-space:pre">                                    </span>pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32",</div><div>++<span class="" style="white-space:pre">                                   </span>       "gpio51", "gpio52", "gpio59", "gpio60", "gpio61", "gpio62" ;</div><div>++<span class="" style="white-space:pre">                                       </span>function = "rgmii2";</div><div>++<span class="" style="white-space:pre">                                   </span>drive-strength = <8>;</div><div>++<span class="" style="white-space:pre">                                      </span>bias-disable;</div><div>++<span class="" style="white-space:pre">                            </span>};</div><div>++<span class="" style="white-space:pre">                       </span>};</div><div>++<span class="" style="white-space:pre">               </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>gsbi@16300000 {</div><div>++<span class="" style="white-space:pre">                  </span>qcom,mode = <GSBI_PROT_I2C_UART>;</div><div>++<span class="" style="white-space:pre">                  </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>serial@16340000 {</div><div>++<span class="" style="white-space:pre">                                </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>};</div><div>++<span class="" style="white-space:pre">                       </span>/*</div><div>++<span class="" style="white-space:pre">                       </span> * The i2c device on gsbi4 should not be enabled.</div><div>++<span class="" style="white-space:pre">                        </span> * On ipq806x designs gsbi4 i2c is meant for exclusive</div><div>++<span class="" style="white-space:pre">                   </span> * RPM usage. Turning this on in kernel manifests as</div><div>++<span class="" style="white-space:pre">                     </span> * i2c failure for the RPM.</div><div>++<span class="" style="white-space:pre">                      </span> */</div><div>++<span class="" style="white-space:pre">              </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>gsbi5: gsbi@1a200000 {</div><div>++<span class="" style="white-space:pre">                   </span>qcom,mode = <GSBI_PROT_SPI>;</div><div>++<span class="" style="white-space:pre">                       </span>status = "ok";</div><div>++</div><div>++<span class="" style="white-space:pre">                        </span>spi4: spi@1a280000 {</div><div>++<span class="" style="white-space:pre">                             </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                         </span>spi-max-frequency = <50000000>;</div><div>++</div><div>++<span class="" style="white-space:pre">                           </span>pinctrl-0 = <&spi_pins>;</div><div>++<span class="" style="white-space:pre">                               </span>pinctrl-names = "default";</div><div>++</div><div>++<span class="" style="white-space:pre">                            </span>cs-gpios = <&qcom_pinmux 20 0>;</div><div>++</div><div>++<span class="" style="white-space:pre">                               </span>flash: m25p80@0 {</div><div>++<span class="" style="white-space:pre">                                        </span>compatible = "s25fl256s1";</div><div>++<span class="" style="white-space:pre">                                     </span>#address-cells = <1>;</div><div>++<span class="" style="white-space:pre">                                      </span>#size-cells = <1>;</div><div>++<span class="" style="white-space:pre">                                 </span>spi-max-frequency = <50000000>;</div><div>++<span class="" style="white-space:pre">                                    </span>reg = <0>;</div><div>++</div><div>++<span class="" style="white-space:pre">                                        </span>linux,part-probe = "qcom-smem";</div><div>++<span class="" style="white-space:pre">                                </span>};</div><div>++<span class="" style="white-space:pre">                       </span>};</div><div>++<span class="" style="white-space:pre">               </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>phy@100f8800 {<span class="" style="white-space:pre">            </span>/* USB3 port 1 HS phy */</div><div>++<span class="" style="white-space:pre">                 </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>phy@100f8830 {<span class="" style="white-space:pre">            </span>/* USB3 port 1 SS phy */</div><div>++<span class="" style="white-space:pre">                 </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>phy@110f8800 {<span class="" style="white-space:pre">            </span>/* USB3 port 0 HS phy */</div><div>++<span class="" style="white-space:pre">                 </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>phy@110f8830 {<span class="" style="white-space:pre">            </span>/* USB3 port 0 SS phy */</div><div>++<span class="" style="white-space:pre">                 </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>usb30@0 {</div><div>++<span class="" style="white-space:pre">                        </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>usb30@1 {</div><div>++<span class="" style="white-space:pre">                        </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>pcie0: pci@1b500000 {</div><div>++<span class="" style="white-space:pre">                    </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>phy-tx0-term-offset = <7>;</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>pcie1: pci@1b700000 {</div><div>++<span class="" style="white-space:pre">                    </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>phy-tx0-term-offset = <7>;</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>nand@1ac00000 {</div><div>++<span class="" style="white-space:pre">                  </span>status = "ok";</div><div>++</div><div>++<span class="" style="white-space:pre">                        </span>pinctrl-0 = <&nand_pins>;</div><div>++<span class="" style="white-space:pre">                      </span>pinctrl-names = "default";</div><div>++</div><div>++<span class="" style="white-space:pre">                    </span>nand-ecc-strength = <4>;</div><div>++<span class="" style="white-space:pre">                   </span>nand-bus-width = <8>;</div><div>++</div><div>++<span class="" style="white-space:pre">                     </span>linux,part-probe = "qcom-smem";</div><div>++<span class="" style="white-space:pre">                </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>mdio0: mdio {</div><div>++<span class="" style="white-space:pre">                    </span>compatible = "virtual,mdio-gpio";</div><div>++<span class="" style="white-space:pre">                      </span>#address-cells = <1>;</div><div>++<span class="" style="white-space:pre">                      </span>#size-cells = <0>;</div><div>++<span class="" style="white-space:pre">                 </span>gpios = <&qcom_pinmux 1 0 &qcom_pinmux 0 0>;</div><div>++<span class="" style="white-space:pre">                       </span>pinctrl-0 = <&mdio0_pins>;</div><div>++<span class="" style="white-space:pre">                     </span>pinctrl-names = "default";</div><div>++</div><div>++<span class="" style="white-space:pre">                    </span>phy0: ethernet-phy@0 {</div><div>++<span class="" style="white-space:pre">                           </span>device_type = "ethernet-phy";</div><div>++<span class="" style="white-space:pre">                          </span>reg = <0>;</div><div>++<span class="" style="white-space:pre">                         </span>qca,ar8327-initvals = <</div><div>++<span class="" style="white-space:pre">                                       </span>0x00004 0x7600000   /* PAD0_MODE */</div><div>++<span class="" style="white-space:pre">                                     </span>0x00008 0x1000000   /* PAD5_MODE */</div><div>++<span class="" style="white-space:pre">                                     </span>0x0000c 0x80        /* PAD6_MODE */</div><div>++<span class="" style="white-space:pre">                                  </span>0x000e4 0xaa545     /* MAC_POWER_SEL */</div><div>++<span class="" style="white-space:pre">                                        </span>0x000e0 0xc74164de  /* SGMII_CTRL */</div><div>++<span class="" style="white-space:pre">                                    </span>0x0007c 0x4e        /* PORT0_STATUS */</div><div>++<span class="" style="white-space:pre">                                       </span>0x00094 0x4e        /* PORT6_STATUS */</div><div>++<span class="" style="white-space:pre">                                       </span>>;</div><div>++<span class="" style="white-space:pre">                    </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                      </span>phy4: ethernet-phy@4 {</div><div>++<span class="" style="white-space:pre">                           </span>device_type = "ethernet-phy";</div><div>++<span class="" style="white-space:pre">                          </span>reg = <4>;</div><div>++<span class="" style="white-space:pre">                 </span>};</div><div>++<span class="" style="white-space:pre">               </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>gmac1: ethernet@37200000 {</div><div>++<span class="" style="white-space:pre">                       </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>phy-mode = "rgmii";</div><div>++<span class="" style="white-space:pre">                    </span>phy-handle = <&phy4>;</div><div>++<span class="" style="white-space:pre">                  </span>qcom,id = <1>;</div><div>++</div><div>++<span class="" style="white-space:pre">                    </span>pinctrl-0 = <&rgmii2_pins>;</div><div>++<span class="" style="white-space:pre">                    </span>pinctrl-names = "default";</div><div>++<span class="" style="white-space:pre">             </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>gmac2: ethernet@37400000 {</div><div>++<span class="" style="white-space:pre">                       </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>phy-mode = "sgmii";</div><div>++<span class="" style="white-space:pre">                    </span>qcom,id = <2>;</div><div>++</div><div>++<span class="" style="white-space:pre">                    </span>fixed-link {</div><div>++<span class="" style="white-space:pre">                             </span>speed = <1000>;</div><div>++<span class="" style="white-space:pre">                            </span>full-duplex;</div><div>++<span class="" style="white-space:pre">                     </span>};</div><div>++<span class="" style="white-space:pre">               </span>};</div><div>++<span class="" style="white-space:pre">       </span>};</div><div>++};</div><div>++</div><div>++&adm_dma {</div><div>++<span class="" style="white-space:pre">    </span>status = "ok";</div><div>++};</div><div>diff --git a/target/linux/ipq806x/patches-4.1/711-ARM-qcom-add-TP-Link-Archer-C2600-device-tree.patch b/target/linux/ipq806x/patches-4.1/711-ARM-qcom-add-TP-Link-Archer-C2600-device-tree.patch</div><div>index e69de29..cd4341e 100644</div><div>--- a/target/linux/ipq806x/patches-4.1/711-ARM-qcom-add-TP-Link-Archer-C2600-device-tree.patch</div><div>+++ b/target/linux/ipq806x/patches-4.1/711-ARM-qcom-add-TP-Link-Archer-C2600-device-tree.patch</div><div>@@ -0,0 +1,246 @@</div><div>+diff -urN a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile</div><div>+--- a/arch/arm/boot/dts/Makefile<span class="" style="white-space:pre">       </span>2015-11-25 22:51:15.148899604 +0100</div><div>++++ b/arch/arm/boot/dts/Makefile<span class="" style="white-space:pre">       </span>2015-12-06 14:33:31.092396982 +0100</div><div>+@@ -453,6 +453,7 @@</div><div>+ <span class="" style="white-space:pre">   </span>qcom-ipq8064-ap148.dtb \</div><div>+ <span class="" style="white-space:pre"> </span>qcom-ipq8064-db149.dtb \</div><div>+ <span class="" style="white-space:pre"> </span>qcom-ipq8064-r7500.dtb \</div><div>++<span class="" style="white-space:pre"> </span>qcom-ipq8064-c2600.dtb \</div><div>+ <span class="" style="white-space:pre"> </span>qcom-msm8660-surf.dtb \</div><div>+ <span class="" style="white-space:pre">  </span>qcom-msm8960-cdp.dtb \</div><div>+ <span class="" style="white-space:pre">   </span>qcom-msm8974-sony-xperia-honami.dtb</div><div>+diff -urN a/arch/arm/boot/dts/qcom-ipq8064-c2600.dts b/arch/arm/boot/dts/qcom-ipq8064-c2600.dts</div><div>+--- a/arch/arm/boot/dts/qcom-ipq8064-c2600.dts<span class="" style="white-space:pre">  </span>1970-01-01 01:00:00.000000000 +0100</div><div>++++ b/arch/arm/boot/dts/qcom-ipq8064-c2600.dts<span class="" style="white-space:pre"> </span>2015-12-06 14:20:05.152365670 +0100</div><div>+@@ -0,0 +1,231 @@</div><div>++#include "qcom-ipq8064-v1.0.dtsi"</div><div>++</div><div>++/ {</div><div>++<span class="" style="white-space:pre">    </span>model = "TP-Link Archer C2600";</div><div>++<span class="" style="white-space:pre">        </span>compatible = "tplink,c2600", "qcom,ipq8064";</div><div>++</div><div>++<span class="" style="white-space:pre">        </span>memory@0 {</div><div>++<span class="" style="white-space:pre">               </span>reg = <0x42000000 0x1e000000>;</div><div>++<span class="" style="white-space:pre">             </span>device_type = "memory";</div><div>++<span class="" style="white-space:pre">        </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">      </span>reserved-memory {</div><div>++<span class="" style="white-space:pre">                </span>#address-cells = <1>;</div><div>++<span class="" style="white-space:pre">              </span>#size-cells = <1>;</div><div>++<span class="" style="white-space:pre">         </span>ranges;</div><div>++<span class="" style="white-space:pre">          </span>rsvd@41200000 {</div><div>++<span class="" style="white-space:pre">                  </span>reg = <0x41200000 0x300000>;</div><div>++<span class="" style="white-space:pre">                       </span>no-map;</div><div>++<span class="" style="white-space:pre">          </span>};</div><div>++<span class="" style="white-space:pre">       </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">      </span>aliases {</div><div>++<span class="" style="white-space:pre">                </span>serial0 = &uart4;</div><div>++<span class="" style="white-space:pre">            </span>mdio-gpio0 = &mdio0;</div><div>++<span class="" style="white-space:pre"> </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">      </span>chosen {</div><div>++<span class="" style="white-space:pre">         </span>linux,stdout-path = "serial0:115200n8";</div><div>++<span class="" style="white-space:pre">        </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">      </span>soc {</div><div>++<span class="" style="white-space:pre">            </span>pinmux@800000 {</div><div>++<span class="" style="white-space:pre">                  </span>i2c4_pins: i2c4_pinmux {</div><div>++<span class="" style="white-space:pre">                         </span>pins = "gpio12", "gpio13";</div><div>++<span class="" style="white-space:pre">                           </span>function = "gsbi4";</div><div>++<span class="" style="white-space:pre">                            </span>bias-disable;</div><div>++<span class="" style="white-space:pre">                    </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                      </span>spi_pins: spi_pins {</div><div>++<span class="" style="white-space:pre">                             </span>mux {</div><div>++<span class="" style="white-space:pre">                                    </span>pins = "gpio18", "gpio19", "gpio21";</div><div>++<span class="" style="white-space:pre">                                       </span>function = "gsbi5";</div><div>++<span class="" style="white-space:pre">                                    </span>drive-strength = <10>;</div><div>++<span class="" style="white-space:pre">                                     </span>bias-none;</div><div>++<span class="" style="white-space:pre">                               </span>};</div><div>++<span class="" style="white-space:pre">                       </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                      </span>nand_pins: nand_pins {</div><div>++<span class="" style="white-space:pre">                           </span>mux {</div><div>++<span class="" style="white-space:pre">                                    </span>pins = "gpio34", "gpio35", "gpio36",</div><div>++<span class="" style="white-space:pre">                                       </span>       "gpio37", "gpio38", "gpio39",</div><div>++<span class="" style="white-space:pre">                                    </span>       "gpio40", "gpio41", "gpio42",</div><div>++<span class="" style="white-space:pre">                                    </span>       "gpio43", "gpio44", "gpio45",</div><div>++<span class="" style="white-space:pre">                                    </span>       "gpio46", "gpio47";</div><div>++<span class="" style="white-space:pre">                                        </span>function = "nand";</div><div>++<span class="" style="white-space:pre">                                     </span>drive-strength = <10>;</div><div>++<span class="" style="white-space:pre">                                     </span>bias-disable;</div><div>++<span class="" style="white-space:pre">                            </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                              </span>pullups {</div><div>++<span class="" style="white-space:pre">                                        </span>pins = "gpio39";</div><div>++<span class="" style="white-space:pre">                                       </span>bias-pull-up;</div><div>++<span class="" style="white-space:pre">                            </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                              </span>hold {</div><div>++<span class="" style="white-space:pre">                                   </span>pins = "gpio40", "gpio41", "gpio42",</div><div>++<span class="" style="white-space:pre">                                       </span>       "gpio43", "gpio44", "gpio45",</div><div>++<span class="" style="white-space:pre">                                    </span>       "gpio46", "gpio47";</div><div>++<span class="" style="white-space:pre">                                        </span>bias-bus-hold;</div><div>++<span class="" style="white-space:pre">                           </span>};</div><div>++<span class="" style="white-space:pre">                       </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                      </span>mdio0_pins: mdio0_pins {</div><div>++<span class="" style="white-space:pre">                         </span>mux {</div><div>++<span class="" style="white-space:pre">                                    </span>pins = "gpio0", "gpio1";</div><div>++<span class="" style="white-space:pre">                                     </span>function = "gpio";</div><div>++<span class="" style="white-space:pre">                                     </span>drive-strength = <8>;</div><div>++<span class="" style="white-space:pre">                                      </span>bias-disable;</div><div>++<span class="" style="white-space:pre">                            </span>};</div><div>++<span class="" style="white-space:pre">                       </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                      </span>rgmii2_pins: rgmii2_pins {</div><div>++<span class="" style="white-space:pre">                               </span>mux {</div><div>++<span class="" style="white-space:pre">                                    </span>pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32",</div><div>++<span class="" style="white-space:pre">                                   </span>       "gpio51", "gpio52", "gpio59", "gpio60", "gpio61", "gpio62" ;</div><div>++<span class="" style="white-space:pre">                                       </span>function = "rgmii2";</div><div>++<span class="" style="white-space:pre">                                   </span>drive-strength = <8>;</div><div>++<span class="" style="white-space:pre">                                      </span>bias-disable;</div><div>++<span class="" style="white-space:pre">                            </span>};</div><div>++<span class="" style="white-space:pre">                       </span>};</div><div>++<span class="" style="white-space:pre">               </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>gsbi@16300000 {</div><div>++<span class="" style="white-space:pre">                  </span>qcom,mode = <GSBI_PROT_I2C_UART>;</div><div>++<span class="" style="white-space:pre">                  </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>serial@16340000 {</div><div>++<span class="" style="white-space:pre">                                </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>};</div><div>++<span class="" style="white-space:pre">                       </span>/*</div><div>++<span class="" style="white-space:pre">                       </span> * The i2c device on gsbi4 should not be enabled.</div><div>++<span class="" style="white-space:pre">                        </span> * On ipq806x designs gsbi4 i2c is meant for exclusive</div><div>++<span class="" style="white-space:pre">                   </span> * RPM usage. Turning this on in kernel manifests as</div><div>++<span class="" style="white-space:pre">                     </span> * i2c failure for the RPM.</div><div>++<span class="" style="white-space:pre">                      </span> */</div><div>++<span class="" style="white-space:pre">              </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>gsbi5: gsbi@1a200000 {</div><div>++<span class="" style="white-space:pre">                   </span>qcom,mode = <GSBI_PROT_SPI>;</div><div>++<span class="" style="white-space:pre">                       </span>status = "ok";</div><div>++</div><div>++<span class="" style="white-space:pre">                        </span>spi4: spi@1a280000 {</div><div>++<span class="" style="white-space:pre">                             </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                         </span>spi-max-frequency = <50000000>;</div><div>++</div><div>++<span class="" style="white-space:pre">                           </span>pinctrl-0 = <&spi_pins>;</div><div>++<span class="" style="white-space:pre">                               </span>pinctrl-names = "default";</div><div>++</div><div>++<span class="" style="white-space:pre">                            </span>cs-gpios = <&qcom_pinmux 20 0>;</div><div>++</div><div>++<span class="" style="white-space:pre">                               </span>flash: m25p80@0 {</div><div>++<span class="" style="white-space:pre">                                        </span>compatible = "s25fl256s1";</div><div>++<span class="" style="white-space:pre">                                     </span>#address-cells = <1>;</div><div>++<span class="" style="white-space:pre">                                      </span>#size-cells = <1>;</div><div>++<span class="" style="white-space:pre">                                 </span>spi-max-frequency = <50000000>;</div><div>++<span class="" style="white-space:pre">                                    </span>reg = <0>;</div><div>++</div><div>++<span class="" style="white-space:pre">                                        </span>linux,part-probe = "qcom-smem";</div><div>++<span class="" style="white-space:pre">                                </span>};</div><div>++<span class="" style="white-space:pre">                       </span>};</div><div>++<span class="" style="white-space:pre">               </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>phy@100f8800 {<span class="" style="white-space:pre">            </span>/* USB3 port 1 HS phy */</div><div>++<span class="" style="white-space:pre">                 </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>phy@100f8830 {<span class="" style="white-space:pre">            </span>/* USB3 port 1 SS phy */</div><div>++<span class="" style="white-space:pre">                 </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>phy@110f8800 {<span class="" style="white-space:pre">            </span>/* USB3 port 0 HS phy */</div><div>++<span class="" style="white-space:pre">                 </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>phy@110f8830 {<span class="" style="white-space:pre">            </span>/* USB3 port 0 SS phy */</div><div>++<span class="" style="white-space:pre">                 </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>usb30@0 {</div><div>++<span class="" style="white-space:pre">                        </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>usb30@1 {</div><div>++<span class="" style="white-space:pre">                        </span>status = "ok";</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>pcie0: pci@1b500000 {</div><div>++<span class="" style="white-space:pre">                    </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>phy-tx0-term-offset = <7>;</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>pcie1: pci@1b700000 {</div><div>++<span class="" style="white-space:pre">                    </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>phy-tx0-term-offset = <7>;</div><div>++<span class="" style="white-space:pre">         </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>nand@1ac00000 {</div><div>++<span class="" style="white-space:pre">                  </span>status = "ok";</div><div>++</div><div>++<span class="" style="white-space:pre">                        </span>pinctrl-0 = <&nand_pins>;</div><div>++<span class="" style="white-space:pre">                      </span>pinctrl-names = "default";</div><div>++</div><div>++<span class="" style="white-space:pre">                    </span>nand-ecc-strength = <4>;</div><div>++<span class="" style="white-space:pre">                   </span>nand-bus-width = <8>;</div><div>++</div><div>++<span class="" style="white-space:pre">                     </span>linux,part-probe = "qcom-smem";</div><div>++<span class="" style="white-space:pre">                </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>mdio0: mdio {</div><div>++<span class="" style="white-space:pre">                    </span>compatible = "virtual,mdio-gpio";</div><div>++<span class="" style="white-space:pre">                      </span>#address-cells = <1>;</div><div>++<span class="" style="white-space:pre">                      </span>#size-cells = <0>;</div><div>++<span class="" style="white-space:pre">                 </span>gpios = <&qcom_pinmux 1 0 &qcom_pinmux 0 0>;</div><div>++<span class="" style="white-space:pre">                       </span>pinctrl-0 = <&mdio0_pins>;</div><div>++<span class="" style="white-space:pre">                     </span>pinctrl-names = "default";</div><div>++</div><div>++<span class="" style="white-space:pre">                    </span>phy0: ethernet-phy@0 {</div><div>++<span class="" style="white-space:pre">                           </span>device_type = "ethernet-phy";</div><div>++<span class="" style="white-space:pre">                          </span>reg = <0>;</div><div>++<span class="" style="white-space:pre">                         </span>qca,ar8327-initvals = <</div><div>++<span class="" style="white-space:pre">                                       </span>0x00004 0x7600000   /* PAD0_MODE */</div><div>++<span class="" style="white-space:pre">                                     </span>0x00008 0x1000000   /* PAD5_MODE */</div><div>++<span class="" style="white-space:pre">                                     </span>0x0000c 0x80        /* PAD6_MODE */</div><div>++<span class="" style="white-space:pre">                                  </span>0x000e4 0xaa545     /* MAC_POWER_SEL */</div><div>++<span class="" style="white-space:pre">                                        </span>0x000e0 0xc74164de  /* SGMII_CTRL */</div><div>++<span class="" style="white-space:pre">                                    </span>0x0007c 0x4e        /* PORT0_STATUS */</div><div>++<span class="" style="white-space:pre">                                       </span>0x00094 0x4e        /* PORT6_STATUS */</div><div>++<span class="" style="white-space:pre">                                       </span>>;</div><div>++<span class="" style="white-space:pre">                    </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">                      </span>phy4: ethernet-phy@4 {</div><div>++<span class="" style="white-space:pre">                           </span>device_type = "ethernet-phy";</div><div>++<span class="" style="white-space:pre">                          </span>reg = <4>;</div><div>++<span class="" style="white-space:pre">                 </span>};</div><div>++<span class="" style="white-space:pre">               </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>gmac1: ethernet@37200000 {</div><div>++<span class="" style="white-space:pre">                       </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>phy-mode = "rgmii";</div><div>++<span class="" style="white-space:pre">                    </span>phy-handle = <&phy4>;</div><div>++<span class="" style="white-space:pre">                  </span>qcom,id = <1>;</div><div>++</div><div>++<span class="" style="white-space:pre">                    </span>pinctrl-0 = <&rgmii2_pins>;</div><div>++<span class="" style="white-space:pre">                    </span>pinctrl-names = "default";</div><div>++<span class="" style="white-space:pre">             </span>};</div><div>++</div><div>++<span class="" style="white-space:pre">              </span>gmac2: ethernet@37400000 {</div><div>++<span class="" style="white-space:pre">                       </span>status = "ok";</div><div>++<span class="" style="white-space:pre">                 </span>phy-mode = "sgmii";</div><div>++<span class="" style="white-space:pre">                    </span>qcom,id = <2>;</div><div>++</div><div>++<span class="" style="white-space:pre">                    </span>fixed-link {</div><div>++<span class="" style="white-space:pre">                             </span>speed = <1000>;</div><div>++<span class="" style="white-space:pre">                            </span>full-duplex;</div><div>++<span class="" style="white-space:pre">                     </span>};</div><div>++<span class="" style="white-space:pre">               </span>};</div><div>++<span class="" style="white-space:pre">       </span>};</div><div>++};</div><div>++</div><div>++&adm_dma {</div><div>++<span class="" style="white-space:pre">    </span>status = "ok";</div><div>++};</div><div>diff --git a/target/linux/ipq806x/profiles/<a href="http://tplink.mk">tplink.mk</a> b/target/linux/ipq806x/profiles/<a href="http://tplink.mk">tplink.mk</a></div><div>index e69de29..d3f5a6c 100644</div><div>--- a/target/linux/ipq806x/profiles/<a href="http://tplink.mk">tplink.mk</a></div><div>+++ b/target/linux/ipq806x/profiles/<a href="http://tplink.mk">tplink.mk</a></div><div>@@ -0,0 +1,20 @@</div><div>+#</div><div>+# Copyright (c) 2014 The Linux Foundation. All rights reserved.</div><div>+# Copyright (C) 2009 OpenWrt.org</div><div>+#</div><div>+# This is free software, licensed under the GNU General Public License v2.</div><div>+# See /LICENSE for more information.</div><div>+#</div><div>+</div><div>+define Profile/C2600</div><div>+<span class="" style="white-space:pre">       </span>NAME:=TP-Link Archer C2600</div><div>+<span class="" style="white-space:pre">        </span>PACKAGES:= \</div><div>+<span class="" style="white-space:pre">              </span>kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev \</div><div>+<span class="" style="white-space:pre">               </span>kmod-usb3 kmod-usb-dwc3-qcom kmod-usb-phy-qcom-dwc3 \</div><div>+<span class="" style="white-space:pre">             </span>kmod-ath10k ath10k-firmware-qca99x0 wpad-mini</div><div>+endef</div><div>+</div><div>+define Profile/C2600/Description</div><div>+<span class="" style="white-space:pre">        </span>Package set for the TP-Link Archer C2600.</div><div>+endef</div><div>+$(eval $(call Profile,C2600))</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 5 December 2015 at 15:08, Jonas Gorski <span dir="ltr"><<a href="mailto:jogo@openwrt.org" target="_blank">jogo@openwrt.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<div><div class="h5"><br>
On Sat, Dec 5, 2015 at 5:13 AM, Josh Bendavid <<a href="mailto:Josh.Bendavid@cern.ch">Josh.Bendavid@cern.ch</a>> wrote:<br>
> From: Josh Bendavid <<a href="mailto:joshbendavid@gmail.com">joshbendavid@gmail.com</a>><br>
><br>
> Add initial support for Archer C2600 to Makefiles and profiles.  This is<br>
> sufficient to build a working factory image.  Sysupgrade image is not<br>
> implemented yet.  Currently wired network is working, but<br>
> LED's/buttons/wireless are not.<br>
><br>
> Signed-off-by: Josh Bendavid <<a href="mailto:joshbendavid@gmail.com">joshbendavid@gmail.com</a>><br>
> ---<br>
><br>
> diff --git a/include/<a href="http://image.mk" rel="noreferrer" target="_blank">image.mk</a> b/include/<a href="http://image.mk" rel="noreferrer" target="_blank">image.mk</a><br>
> index fd5e3f4..9ad2d43 100644<br>
> --- a/include/<a href="http://image.mk" rel="noreferrer" target="_blank">image.mk</a><br>
> +++ b/include/<a href="http://image.mk" rel="noreferrer" target="_blank">image.mk</a><br>
> @@ -327,6 +327,16 @@ define Build/netgear-dni<br>
>   mv $@.new $@<br>
>  endef<br>
><br>
> +define Build/tplink-safe<br>
> + $(STAGING_DIR_HOST)/bin/tplink-safeloader \<br>
> + -B $(TPLINK_BOARD_ID) -V OpenWrt.$(REVISION) \<br>
> + -k $(word 1,$^) \<br>
> + -r $(word 2,$^) \<br>
> + -j \<br>
> + -o $@.new<br>
> + mv $@.new $@<br>
> +endef<br>
> +<br>
>  define Build/fit<br>
>   $(TOPDIR)/scripts/mkits.sh \<br>
>   -D $(DEVICE_NAME) -o $@.its -k $@ \<br>
> diff --git a/target/linux/ipq806x/image/Makefile<br>
> b/target/linux/ipq806x/image/Makefile<br>
> index 14cf442..8e6a174 100644<br>
> --- a/target/linux/ipq806x/image/Makefile<br>
> +++ b/target/linux/ipq806x/image/Makefile<br>
> @@ -85,6 +85,18 @@ define Device/DniImage<br>
>  endef<br>
>  DEVICE_VARS += KERNEL_SIZE NETGEAR_BOARD_ID NETGEAR_HW_ID DEVICE_BLOCK_SIZE<br>
> DEVICE_PAGE_SIZE<br>
><br>
> +define Device/TpSafeImage<br>
> + PROFILES += $$(DEVICE_NAME)<br>
> + FILESYSTEMS := squashfs<br>
> + KERNEL_SUFFIX := -uImage<br>
> + KERNEL = kernel-bin | append-dtb | uImage none<br>
> + KERNEL_NAME := zImage<br>
> + TPLINK_BOARD_ID :=<br>
> + IMAGES := factory.bin<br>
> + IMAGE/factory.bin := tplink-safe<br>
> +endef<br>
> +DEVICE_VARS += TPLINK_BOARD_ID<br>
> +<br>
>  define Device/AP148<br>
>   $(call Device/FitImage)<br>
>   $(call Device/UbiFit)<br>
> @@ -103,6 +115,15 @@ define Device/AP148-legacy<br>
>   BOARD_NAME := ap148<br>
>  endef<br>
><br>
> +define Device/C2600<br>
> + $(call Device/TpSafeImage)<br>
> + DEVICE_DTS := qcom-ipq8064-ap148<br>
<br>
</div></div>The TP-Link doesn't have a eSATA port, so please create its own dts file for it.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
Jonas<br>
</font></span></blockquote></div><br></div>