From f960b33f6d53f6f21f9c73a74b3700e724dc0fed Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Tue, 28 Dec 2021 01:08:39 +0100 Subject: ARM: dts: ixp4xx: Fix up the Netgear WG302 device tree The version we can support (because of access to the hardware) is WG302v1, so rename the file and make the following modifications: - We have 32MB memory not 16MB - The default console speed is 9600 baud so use this - The device has no ATA disk nor USB so drop the /dev/sda1 default mount, this needs to mount ramdisk or NFS - Both serial0 and serial1 cannot be assigned with aliases, just assign serial0 - The Flash is just 8MB so augment the size - The Flash FIS index is at eraseblock 0x3f - The PHY is at MDIO address 30 Tested by bringing the Netgear WG302v1 up to userspace using initramfs appended to the kernel and downloaded over TFTP, then ifconfig to bring up eth0 and pinging the host. All works fine including SSH into the device from the host. Cc: Zoltan HERPAI Signed-off-by: Linus Walleij --- arch/arm/boot/dts/Makefile | 2 +- arch/arm/boot/dts/intel-ixp42x-netgear-wg302v1.dts | 96 +++++++++++++++++++++ arch/arm/boot/dts/intel-ixp42x-netgear-wg302v2.dts | 97 ---------------------- 3 files changed, 97 insertions(+), 98 deletions(-) create mode 100644 arch/arm/boot/dts/intel-ixp42x-netgear-wg302v1.dts delete mode 100644 arch/arm/boot/dts/intel-ixp42x-netgear-wg302v2.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 235ad559acb2..dea29395c9a4 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -269,7 +269,7 @@ dtb-$(CONFIG_ARCH_IXP4XX) += \ intel-ixp42x-dlink-dsm-g600.dtb \ intel-ixp42x-gateworks-gw2348.dtb \ intel-ixp43x-gateworks-gw2358.dtb \ - intel-ixp42x-netgear-wg302v2.dtb \ + intel-ixp42x-netgear-wg302v1.dtb \ intel-ixp42x-arcom-vulcan.dtb \ intel-ixp42x-gateway-7001.dtb dtb-$(CONFIG_ARCH_KEYSTONE) += \ diff --git a/arch/arm/boot/dts/intel-ixp42x-netgear-wg302v1.dts b/arch/arm/boot/dts/intel-ixp42x-netgear-wg302v1.dts new file mode 100644 index 000000000000..df2ca6d95ee5 --- /dev/null +++ b/arch/arm/boot/dts/intel-ixp42x-netgear-wg302v1.dts @@ -0,0 +1,96 @@ +// SPDX-License-Identifier: ISC +/* + * Device Tree file for Netgear WG302v2 based on IXP422BB + * Derived from boardfiles written by Imre Kaloz + */ + +/dts-v1/; + +#include "intel-ixp42x.dtsi" +#include + +/ { + model = "Netgear WG302 v1"; + compatible = "netgear,wg302v1", "intel,ixp42x"; + #address-cells = <1>; + #size-cells = <1>; + + memory@0 { + /* 32 MB SDRAM according to boot arguments */ + device_type = "memory"; + reg = <0x00000000 0x02000000>; + }; + + chosen { + /* The RedBoot comes up in 9600 baud so let's keep this */ + bootargs = "console=ttyS0,9600n8"; + stdout-path = "uart1:9600n8"; + }; + + aliases { + /* These are switched around */ + serial0 = &uart1; + }; + + soc { + bus@c4000000 { + flash@0,0 { + compatible = "intel,ixp4xx-flash", "cfi-flash"; + bank-width = <2>; + /* + * 8 MB of Flash in 64 0x20000 sized blocks + * mapped in at CS0. + */ + reg = <0 0x00000000 0x800000>; + + /* Configure expansion bus to allow writes */ + intel,ixp4xx-eb-write-enable = <1>; + + partitions { + compatible = "redboot-fis"; + fis-index-block = <0x3f>; + }; + }; + }; + + pci@c0000000 { + status = "ok"; + + /* + * Taken from WG302 v2 PCI boardfile (wg302v2-pci.c) + * We have slots (IDSEL) 1 and 2 with one assigned IRQ + * each handling all IRQs. + */ + #interrupt-cells = <1>; + interrupt-map-mask = <0xf800 0 0 7>; + interrupt-map = + /* IDSEL 1 */ + <0x0800 0 0 1 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 1 is irq 8 */ + <0x0800 0 0 2 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 1 is irq 8 */ + <0x0800 0 0 3 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 1 is irq 8 */ + <0x0800 0 0 4 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 1 is irq 8 */ + /* IDSEL 2 */ + <0x1000 0 0 1 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 2 is irq 9 */ + <0x1000 0 0 2 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 2 is irq 9 */ + <0x1000 0 0 3 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 2 is irq 9 */ + <0x1000 0 0 4 &gpio0 9 IRQ_TYPE_LEVEL_LOW>; /* INT D on slot 2 is irq 9 */ + }; + + ethernet@c8009000 { + status = "ok"; + queue-rx = <&qmgr 3>; + queue-txready = <&qmgr 20>; + phy-mode = "rgmii"; + phy-handle = <&phy30>; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + phy30: ethernet-phy@30 { + reg = <30>; + }; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/intel-ixp42x-netgear-wg302v2.dts b/arch/arm/boot/dts/intel-ixp42x-netgear-wg302v2.dts deleted file mode 100644 index a57009436ed8..000000000000 --- a/arch/arm/boot/dts/intel-ixp42x-netgear-wg302v2.dts +++ /dev/null @@ -1,97 +0,0 @@ -// SPDX-License-Identifier: ISC -/* - * Device Tree file for Netgear WG302v2 based on IXP422BB - * Derived from boardfiles written by Imre Kaloz - */ - -/dts-v1/; - -#include "intel-ixp42x.dtsi" -#include - -/ { - model = "Netgear WG302 v2"; - compatible = "netgear,wg302v2", "intel,ixp42x"; - #address-cells = <1>; - #size-cells = <1>; - - memory@0 { - /* 16 MB SDRAM according to OpenWrt database */ - device_type = "memory"; - reg = <0x00000000 0x01000000>; - }; - - chosen { - bootargs = "console=ttyS0,115200n8 root=/dev/sda1 rw rootwait"; - stdout-path = "uart1:115200n8"; - }; - - aliases { - /* These are switched around */ - serial0 = &uart1; - serial1 = &uart0; - }; - - soc { - bus@c4000000 { - flash@0,0 { - compatible = "intel,ixp4xx-flash", "cfi-flash"; - bank-width = <2>; - /* - * 32 MB of Flash in 128 0x20000 sized blocks - * mapped in at CS0 and CS1 - */ - reg = <0 0x00000000 0x2000000>; - - /* Configure expansion bus to allow writes */ - intel,ixp4xx-eb-write-enable = <1>; - - partitions { - compatible = "redboot-fis"; - /* CHECKME: guess this is Redboot FIS */ - fis-index-block = <0xff>; - }; - }; - }; - - pci@c0000000 { - status = "ok"; - - /* - * Taken from WG302 v2 PCI boardfile (wg302v2-pci.c) - * We have slots (IDSEL) 1 and 2 with one assigned IRQ - * each handling all IRQs. - */ - #interrupt-cells = <1>; - interrupt-map-mask = <0xf800 0 0 7>; - interrupt-map = - /* IDSEL 1 */ - <0x0800 0 0 1 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 1 is irq 8 */ - <0x0800 0 0 2 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 1 is irq 8 */ - <0x0800 0 0 3 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 1 is irq 8 */ - <0x0800 0 0 4 &gpio0 8 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 1 is irq 8 */ - /* IDSEL 2 */ - <0x1000 0 0 1 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 2 is irq 9 */ - <0x1000 0 0 2 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 2 is irq 9 */ - <0x1000 0 0 3 &gpio0 9 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 2 is irq 9 */ - <0x1000 0 0 4 &gpio0 9 IRQ_TYPE_LEVEL_LOW>; /* INT D on slot 2 is irq 9 */ - }; - - ethernet@c8009000 { - status = "ok"; - queue-rx = <&qmgr 3>; - queue-txready = <&qmgr 20>; - phy-mode = "rgmii"; - phy-handle = <&phy8>; - - mdio { - #address-cells = <1>; - #size-cells = <0>; - - phy8: ethernet-phy@8 { - reg = <8>; - }; - }; - }; - }; -}; -- cgit v1.2.3