aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xtarget/linux/ramips/base-files/etc/board.d/02_network1
-rwxr-xr-xtarget/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header3
-rwxr-xr-xtarget/linux/ramips/base-files/lib/ramips.sh3
-rwxr-xr-xtarget/linux/ramips/base-files/lib/upgrade/platform.sh3
-rw-r--r--target/linux/ramips/dts/DIR-860L-B1.dts107
-rw-r--r--target/linux/ramips/image/Makefile43
6 files changed, 157 insertions, 3 deletions
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))