diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index 45f9e142f5a785e54dee95cec974032aded862b8..a226b4db578cbe1df7aa197a5ff8441e4407b63e 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 0000000000000000000000000000000000000000..cf9545484e46e5dc51e1b939ed3d6b93dd865344
--- /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 a4f11ca2389c4d238f9d65c7ff6be1c0c2388f53..21311882a71017fef8485559e52be99b1d916720 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))