summaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq
diff options
context:
space:
mode:
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-04-11 19:18:07 +0000
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-04-11 19:18:07 +0000
commitd57b78252f51b0e7b237ef6d66cd7fc65209dab2 (patch)
treecfa5a679a307b3c34f96c59ca9881e4b2feef117 /target/linux/lantiq
parentc2e22cbf46013f5e5983f6f742c8e7209f435a44 (diff)
[lantiq] 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> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36315 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/lantiq')
-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 45f9e142f..a226b4db5 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 000000000..cf9545484
--- /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..21311882a 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))