summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2013-04-11 19:18:07 +0000
committerJohn Crispin <john@openwrt.org>2013-04-11 19:18:07 +0000
commitd5f87e193cb45d2067bd5667d7c6fb567bc34a56 (patch)
treefec850025dfba480abd632b663b019d86f1e3605
parentfbc1e3732b86a0f88ca3db3689de61cad276a387 (diff)
downloadmtk-20170518-d5f87e193cb45d2067bd5667d7c6fb567bc34a56.zip
mtk-20170518-d5f87e193cb45d2067bd5667d7c6fb567bc34a56.tar.gz
mtk-20170518-d5f87e193cb45d2067bd5667d7c6fb567bc34a56.tar.bz2
add VG3503J support
this adds basic support. the bootloader on these units is locked down. until we have a replacement we can do basic testing with these env variables in uboot. set update_openwrt erase 0xb0020000 0xb073ffff \;tftp 0x81000000 openwrt-lantiq-xway-VG3503J-squashfs.image\;cp.b 0x81000000 0xb0020000 \$(filesize) set bootcmd cp.b 0xb0020000 0x80002000 0x400000\; go 0x80002000 unfortunatley the bootloader ignores the bootcmd, so autobooting is not possible yet. you need to call "run bootcmd" by hand after each power cycle. please note that the vdsl firmware is non redistributable. you can find it in the GPL drop that BT provides. Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 36315
-rw-r--r--target/linux/lantiq/image/Makefile20
-rw-r--r--target/linux/lantiq/image/VG3503J.dts189
-rw-r--r--target/linux/lantiq/xway/profiles/arv.mk8
3 files changed, 217 insertions, 0 deletions
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index 45f9e14..a226b4d 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -25,6 +25,12 @@ define PatchKernelLzma
$(call CompressLzma,$(KDIR)/vmlinux-$(1),$(KDIR)/vmlinux-$(1).lzma)
endef
+define PatchKernelRaw
+ cp $(KDIR)/vmlinux $(KDIR)/vmlinux-$(1)
+ $(LINUX_DIR)/scripts/dtc/dtc -O dtb -o $(KDIR)/$(1).dtb ./$(1).dts
+ $(STAGING_DIR_HOST)/bin/patch-dtb $(KDIR)/vmlinux-$(1) $(KDIR)/$(1).dtb
+endef
+
define MkBrnImage
mkbrncmdline -i $(KDIR)/vmlinux-$(4) -o $(KDIR)/vmlinux-$(4)-brn BRN-BOOT $(6)
$(call CompressLzma,$(KDIR)/vmlinux-$(4)-brn,$(KDIR)/vmlinux-$(4)-brn.lzma)
@@ -70,6 +76,12 @@ define Image/BuildEVA/squashfs
$(call prepare_generic_squashfs,$(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).image.eva)
endef
+define Image/BuildRaw/squashfs
+ dd if=$(KDIR)/vmlinux-$(2) of=$(KDIR)/vmlinux-$(2)-$(1) bs=1M conv=sync
+ cat $(KDIR)/vmlinux-$(2)-$(1) $(KDIR)/root.$(1) > $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).image
+ $(call prepare_generic_squashfs,$(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).image)
+endef
+
define Image/BuildNANDEVA/jffs2-128k
cp $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).rootfs
endef
@@ -95,6 +107,11 @@ define Image/BuildKernel/Template
$(CP) $(KDIR)/uImage-$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1)-uImage
endef
+define Image/BuildKernelRaw/Template
+ $(call PatchKernelRaw,$(1))
+ $(CP) $(KDIR)/vmlinux-$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1)-vmlinux
+endef
+
define Image/BuildKernelEVA/Template
$(call PatchKernelLzma,$(1),$(if $(2),$(2) machtype=$(1),))
$(call MkImageEVA,$(1))
@@ -196,6 +213,9 @@ Image/Build/Profile/EASY80920NOR=$(call Image/Build/$(1),$(1),EASY80920NOR)
Image/BuildKernel/Profile/FRITZ3370=$(call Image/BuildKernelEVA/Template,FRITZ3370)
Image/Build/Profile/FRITZ3370=$(call Image/BuildNANDEVA/$(1),$(1),FRITZ3370)
+Image/BuildKernel/Profile/VG3503J=$(call Image/BuildKernelRaw/Template,VG3503J)
+Image/Build/Profile/VG3503J=$(call Image/BuildRaw/$(1),$(1),VG3503J)
+
endif
diff --git a/target/linux/lantiq/image/VG3503J.dts b/target/linux/lantiq/image/VG3503J.dts
new file mode 100644
index 0000000..cf95454
--- /dev/null
+++ b/target/linux/lantiq/image/VG3503J.dts
@@ -0,0 +1,189 @@
+/dts-v1/;
+
+/include/ "vr9.dtsi"
+
+/ {
+ model = "VG3503J - BT OpenReach VDSL Modem";
+
+ chosen {
+ bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+ };
+
+ memory@0 {
+ reg = <0x0 0x2000000>;
+ };
+
+ fpi@10000000 {
+ localbus@0 {
+ ranges = <0 0 0x0 0x3ffffff>;
+ nor-boot@0 {
+ compatible = "lantiq,nor";
+ bank-width = <2>;
+ reg = <0 0x0 0x2000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x00000 0x20000>;
+ };
+
+ partition@20000 {
+ label = "kernel";
+ reg = <0x20000 0x400000>;
+ };
+
+ partition@420000 {
+ label = "rootfs";
+ reg = <0x420000 0x320000>;
+ };
+
+ partition@740000 {
+ label = "btagent";
+ reg = <0x740000 0x80000>;
+ };
+
+ partition@7c0000 {
+ label = "pri_bfocus_cfg";
+ reg = <0x7c0000 0x10000>;
+ };
+
+ partition@7d0000 {
+ label = "sec_bfocus_cfg";
+ reg = <0x7d0000 0x10000>;
+ };
+
+ partition@7e0000 {
+ label = "sysconfig";
+ reg = <0x7e0000 0x10000>;
+ };
+
+ partition@7f0000 {
+ label = "misc_cfg";
+ reg = <0x7f0000 0x10000>;
+ };
+ };
+ };
+
+ gpio: pinmux@E100B10 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&state_default>;
+
+ state_default: pinmux {
+ mdio {
+ lantiq,groups = "mdio";
+ lantiq,function = "mdio";
+ };
+ };
+ };
+
+ eth@E108000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-net";
+ reg = < 0xE108000 0x3000 /* switch */
+ 0xE10B100 0x70 /* mdio */
+ 0xE10B1D8 0x30 /* mii */
+ 0xE10B308 0x30 /* pmac */
+ >;
+ interrupt-parent = <&icu0>;
+ interrupts = <73 72>;
+
+ lan: interface@0 {
+ compatible = "lantiq,xrx200-pdi";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+ mac-address = [ 00 11 22 33 44 55 ];
+
+ ethernet@2 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <2>;
+ phy-mode = "mii";
+ phy-handle = <&phy11>;
+ };
+ ethernet@4 {
+ compatible = "lantiq,xrx200-pdi-port";
+ reg = <4>;
+ phy-mode = "mii";
+ phy-handle = <&phy13>;
+ };
+ };
+
+ mdio@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "lantiq,xrx200-mdio";
+ phy11: ethernet-phy@11 {
+ reg = <0x11>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ lantiq,c45-reg-init = <1 0 0 0>;
+ };
+ phy13: ethernet-phy@13 {
+ reg = <0x13>;
+ compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+ lantiq,c45-reg-init = <1 0 0 0>;
+ };
+ };
+ };
+ };
+
+ gphy-xrx200 {
+ compatible = "lantiq,phy-xrx200";
+ firmware = "lantiq/vr9_phy22f_a1x.bin";
+ phys = [ 00 01 ];
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio 6 1>;
+ linux,code = <0x198>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ port2green {
+ label = "bt:green:port2";
+ gpios = <&gpio 2 0>;
+ };
+ lan2 {
+ label = "bt:green:lan2";
+ gpios = <&gpio 5 0>;
+ };
+ port2orange {
+ label = "bt:orange:port2";
+ gpios = <&gpio 7 0>;
+ };
+ power2 {
+ label = "power2";
+ gpios = <&gpio 14 1>;
+ };
+ dsl {
+ label = "dsl";
+ gpios = <&gpio 19 1>;
+ };
+ power {
+ label = "power";
+ gpios = <&gpio 28 1>;
+ };
+ lan1 {
+ label = "bt:green:lan1";
+ gpios = <&gpio 44 0>;
+ };
+ port1green {
+ label = "bt:green:port1";
+ gpios = <&gpio 45 0>;
+ };
+ port1orange {
+ label = "bt:orange:port1";
+ gpios = <&gpio 47 0>;
+ };
+ };
+};
diff --git a/target/linux/lantiq/xway/profiles/arv.mk b/target/linux/lantiq/xway/profiles/arv.mk
index a4f11ca23..2131188 100644
--- a/target/linux/lantiq/xway/profiles/arv.mk
+++ b/target/linux/lantiq/xway/profiles/arv.mk
@@ -114,3 +114,11 @@ define Profile/ARV752DPW22
endef
$(eval $(call Profile,ARV752DPW22))
+
+define Profile/VG3503J
+ NAME:=BT Openreach - ECI VDSL Modem
+ PACKAGES:=kmod-ltq-vdsl-vr9-mei kmod-ltq-vdsl-vr9 \
+ kmod-ltq-ptm-vr9 ltq-vdsl-app
+endef
+
+$(eval $(call Profile,VG3503J))