add VG3503J support
authorJohn Crispin <john@openwrt.org>
Thu, 11 Apr 2013 19:18:07 +0000 (19:18 +0000)
committerJohn Crispin <john@openwrt.org>
Thu, 11 Apr 2013 19:18:07 +0000 (19:18 +0000)
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

target/linux/lantiq/image/Makefile
target/linux/lantiq/image/VG3503J.dts [new file with mode: 0644]
target/linux/lantiq/xway/profiles/arv.mk

index 45f9e142f5a785e54dee95cec974032aded862b8..a226b4db578cbe1df7aa197a5ff8441e4407b63e 100644 (file)
@@ -25,6 +25,12 @@ define PatchKernelLzma
        $(call CompressLzma,$(KDIR)/vmlinux-$(1),$(KDIR)/vmlinux-$(1).lzma)
 endef
 
        $(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)
 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
 
        $(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
 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
 
        $(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))
 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/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
 
 
 endif
 
 
diff --git a/target/linux/lantiq/image/VG3503J.dts b/target/linux/lantiq/image/VG3503J.dts
new file mode 100644 (file)
index 0000000..cf95454
--- /dev/null
@@ -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>;
+               };
+       };
+};
index a4f11ca2389c4d238f9d65c7ff6be1c0c2388f53..21311882a71017fef8485559e52be99b1d916720 100644 (file)
@@ -114,3 +114,11 @@ define Profile/ARV752DPW22
 endef
 
 $(eval $(call 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))