ramips: add preliminary support for DIR-860L B1
authorFelix Fietkau <nbd@openwrt.org>
Sat, 17 Jan 2015 21:20:05 +0000 (21:20 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 17 Jan 2015 21:20:05 +0000 (21:20 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 44016

target/linux/ramips/base-files/etc/board.d/02_network
target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header
target/linux/ramips/base-files/lib/ramips.sh
target/linux/ramips/base-files/lib/upgrade/platform.sh
target/linux/ramips/dts/DIR-860L-B1.dts [new file with mode: 0644]
target/linux/ramips/image/Makefile

index 70b369de6aa30fa7458d17ed721ab211de0503b0..b440fb388a9755946a30bfd3c8895f6c1d3b0887 100755 (executable)
@@ -146,6 +146,7 @@ ramips_setup_interfaces()
        awm003-evb | \
        argus-atp52b | \
        dir-645 | \
+       dir-860l-b1 | \
        f5d8235-v1 | \
        f5d8235-v2 | \
        hg255d | \
index a6c392c6ba61f8ff5e2195be12af4385c16e376e..35167f1adc22ab9370075af103a22fa06a45b80b 100755 (executable)
@@ -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
index 5918640985cc57d6d00909c80c97632c57bed99c..720b13790d7371b91adf22ffa6b440a36d7c7c09 100755 (executable)
@@ -133,6 +133,9 @@ ramips_board_detect() {
        *"DIR-810L")
                name="dir-810l"
                ;;
+       *"DIR-860L B1")
+               name="dir-860l-b1"
+               ;;
        *"DAP-1350")
                name="dap-1350"
                ;;
index 2c423443c7c7264141083734884de6550cb83679..7c172119f4be12301bc05fca30b0e8bbff5e7f94 100755 (executable)
@@ -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 (file)
index 0000000..fd1e044
--- /dev/null
@@ -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>;
+       };
+};
index 5e4cea35acf3fb2548a8165a69be4ef121d6af24..f935a95d3b3455c2d83681561adca56de46817a4 100644 (file)
@@ -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))