From 40b740b23234574115225bf8bde7bc679f8034e1 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sat, 17 Jan 2015 21:20:05 +0000 Subject: [PATCH] ramips: add preliminary support for DIR-860L B1 Signed-off-by: Felix Fietkau SVN-Revision: 44016 --- .../ramips/base-files/etc/board.d/02_network | 1 + .../etc/uci-defaults/09_fix-seama-header | 3 +- target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 3 +- target/linux/ramips/dts/DIR-860L-B1.dts | 107 ++++++++++++++++++ target/linux/ramips/image/Makefile | 43 ++++++- 6 files changed, 157 insertions(+), 3 deletions(-) create mode 100644 target/linux/ramips/dts/DIR-860L-B1.dts diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index 70b369de6a..b440fb388a 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -146,6 +146,7 @@ ramips_setup_interfaces() awm003-evb | \ argus-atp52b | \ dir-645 | \ + dir-860l-b1 | \ f5d8235-v1 | \ f5d8235-v2 | \ hg255d | \ diff --git a/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header b/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header index a6c392c6ba..35167f1adc 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header +++ b/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header @@ -15,7 +15,8 @@ board=$(ramips_board_name) case "$board" in cy-swr1100 | \ -dir-645) +dir-645 | \ +dir-860l-b1) fix_seama_header kernel ;; esac diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 5918640985..720b13790d 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -133,6 +133,9 @@ ramips_board_detect() { *"DIR-810L") name="dir-810l" ;; + *"DIR-860L B1") + name="dir-860l-b1" + ;; *"DAP-1350") name="dap-1350" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 2c423443c7..7c172119f4 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -133,7 +133,8 @@ platform_check_image() { ;; cy-swr1100 |\ dir-610-a1 |\ - dir-645) + dir-645 |\ + dir-860l-b1) [ "$magic" != "5ea3a417" ] && { echo "Invalid image type." return 1 diff --git a/target/linux/ramips/dts/DIR-860L-B1.dts b/target/linux/ramips/dts/DIR-860L-B1.dts new file mode 100644 index 0000000000..fd1e044bda --- /dev/null +++ b/target/linux/ramips/dts/DIR-860L-B1.dts @@ -0,0 +1,107 @@ +/dts-v1/; + +/include/ "mt7621.dtsi" + +/ { + compatible = "ralink,mt7621-eval-board", "ralink,mt7621-soc"; + model = "D-Link DIR-860L B1"; + + memory@0 { + reg = <0x0 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,57600"; + }; + + palmbus@1E000000 { + spi@b00 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "mx25l12805d"; + reg = <0 0>; + linux,modalias = "m25p80"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x4000>; + read-only; + }; + + radio: partition@34000 { + label = "radio"; + reg = <0x34000 0x4000>; + read-only; + }; + + factory: partition@38000 { + label = "factory"; + reg = <0x38000 0x8000>; + read-only; + }; + + partition@40000 { + label = "defaults"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + label = "firmware"; + reg = <0x50000 0xfb0000>; + }; + }; + }; + }; + + pcie@1e140000 { + status = "okay"; + + pcie0 { + mt76@0,0 { + reg = <0x0000 0 0 0 0>; + device_type = "pci"; + mediatek,mtd-eeprom = <&radio 0>; + mediatek,2ghz = <0>; + }; + }; + pcie1 { + mt76@1,0 { + reg = <0x0000 0 0 0 0>; + device_type = "pci"; + mediatek,mtd-eeprom = <&radio 0x2000>; + mediatek,5ghz = <0>; + }; + }; + }; + + pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "i2c", "uart2", "uart3", "rgmii2", "sdhci"; + ralink,function = "gpio"; + }; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + }; +}; diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index 5e4cea35ac..f935a95d3b 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -51,6 +51,24 @@ define Build/trx -a 4 -f $(word 2,$^) endef +define Build/seama + $(STAGING_DIR_HOST)/bin/seama -i $@ $(1) + mv $@.seama $@ +endef + +define Build/seama-seal + $(call Build/seama,-s $@.seama $(1)) +endef + +define Build/relocate-kernel + ( \ + dd if=$(KDIR)/relocate/loader.bin bs=32 conv=sync && \ + perl -e '@s = stat("$@"); print pack("V", @s[7])' && \ + cat $@ \ + ) > $@.new + mv $@.new $@ +endef + define MkCombineduImage $(call PatchKernelLzma,$(2),$(3)) if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt `expr $(4) - 64` ]; then \ @@ -875,7 +893,7 @@ endif # ifeq ($(SUBTARGET),mt7621) - TARGET_DEVICES += mt7621 wsr-600 wsr-1166 + TARGET_DEVICES += mt7621 wsr-600 wsr-1166 dir-860l-b1 endif define Device/mt7621 @@ -892,6 +910,21 @@ define Device/wsr-1166 IMAGE/sysupgrade.bin := trx | pad-rootfs endef +define Device/dir-860l-b1 + DTS := DIR-860L-B1 + IMAGES += factory.bin + KERNEL := kernel-bin | patch-dtb | relocate-kernel | lzma | uImage lzma + IMAGE/sysupgrade.bin := \ + append-kernel | pad-offset 65536 64 | append-rootfs | \ + seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \ + pad-rootfs | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := \ + append-kernel | pad-offset 65536 64 | append-rootfs | pad-rootfs -x 64 | \ + seama -m "dev=/dev/mtdblock/2" -m "type=firmware" | \ + check-size $$$$(IMAGE_SIZE) | \ + seama-seal -m "signature=wrgac13_dlink.2013gui_dir860lb" +endef + # # MT7628 Profiles # @@ -932,4 +965,12 @@ define Image/Build endef endif +ifeq ($(SUBTARGET),mt7621) +define Build/Compile + rm -rf $(KDIR)/relocate + $(CP) ./relocate $(KDIR) + $(MAKE) -C $(KDIR)/relocate KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS) +endef +endif + $(eval $(call BuildImage))