From mboxrd@z Thu Jan 1 00:00:00 1970 From: thomas.petazzoni@free-electrons.com (Thomas Petazzoni) Date: Thu, 23 Oct 2014 11:20:02 +0200 Subject: ARMADA 370 - Distributed Switch Architecture (dsa) - device tree In-Reply-To: <20141013111904.GD14147@titan.lakedaemon.net> References: <20141013111904.GD14147@titan.lakedaemon.net> Message-ID: <20141023112002.228d8a17@free-electrons.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hello all, I'm catching up on some past e-mails. Has this DSA issue been resolved? I thought Andrew has done some DSA related work at some point? If not, we could also involve Florian Fainelli in the loop, as he has done quite a bit of DSA related stuff if I remember correctly. Best regards, Thomas On Mon, 13 Oct 2014 07:19:04 -0400, Jason Cooper wrote: > Tormod, > > Sorry, I don't have time to reply atm. However, I'm adding the mvebu > devs and maintainers to the Cc. You can also hit us up at #mvlinux on > freenode. > > thx, > > Jason. > > On Mon, Oct 13, 2014 at 12:14:41PM +0200, post at twien.net wrote: > > Dear all, > > I have a custom board equipped with an ARMADA 370 SoC (88f6W11) and > > a Marvell switch chip (88e6352) (I have written a device driver for > > the latter). > > My question is how to set up a proper device tree specification for > > the board. The device tree specification is listed below. This is > > based on a similar .dts-file for the kirkwood SoC. > > Further down is a excerpt of the start up sequence. I would imagine > > the switch would be installed as the "PHY" for eth0 (which seems not > > to be the case). I added some additional printout messages, and from > > what I can see a generic device driver is loaded, and eventually the > > mvneta_open/-probe function states that the PHY can not be found. I > > have read the "examples" in the ../boot/dts directory and also read > > the documentation. There are some confusing things, for example the > > "dsa,mii-bus;" specification where I eventually put in "dsa,mii-bus > > = <&mdio_bus>;". From both the examples and the documentation it > > seemed I should specify a device on the mdio_bus, e.g. "phy0", but > > when I did the whole thing crashed. > > So specifying "mdio_bus" at least got me running a bit further, and > > the dsa driver was detected and the proper switch device was > > identified. > > What I would like to achieve is to get eth0 to connect to port 5 on > > the switch using SGMII. > > Any advice on how to proceed would be appreciated. > > > > > > +---------+ > > | | +--------+ > > | | SGMII | |----- p0 > > | eth0|-----------|p5 | . . > > | | | |----- p4 > > +---------+ +--------+ > > ARMADA 370 88e6352 > > > > > > Tormod > > > > > > > > /* > > * Device Tree file for Marvell Armada 370 Ethernet Prototype board > > * () > > * > > * Copied from arch/arm/boot/dts/armada-370-rd.dts > > * > > * Copyright (C) 2014 ... > > * > > * This file is licensed under the terms of the GNU General Public > > * License version 2. This program is licensed "as is" without any > > * warranty of any kind, whether express or implied. > > */ > > > > /dts-v1/; > > #include > > #include > > #include "armada-370.dtsi" > > > > / { > > model = "Marvell Armada 370 Ethernet Prototype"; > > compatible = "marvell,armada370", "marvell,armada-370-xp"; > > > > chosen { > > bootargs = "console=ttyS0,115200 earlyprintk"; > > }; > > > > memory { > > device_type = "memory"; > > reg = <0x00000000 0x40000000>; /* 1 GB */ > > }; > > > > soc { > > ranges = > MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>; > > > > > > pcie-controller { > > status = "okay"; > > > > /* Internal mini-PCIe connector */ > > pcie at 1,0 { > > /* Port 0, Lane 0 */ > > status = "okay"; > > }; > > > > /* Internal mini-PCIe connector */ > > pcie at 2,0 { > > /* Port 1, Lane 0 */ > > status = "okay"; > > }; > > }; > > > > internal-regs { > > serial at 12000 { > > status = "okay"; > > }; > > > > mdio_bus: mdio { > > phy0: ethernet-phy at ff { > > /* compatible = "ethernet-phy-id5043.0eb0", > > "ethernet-phy-ieee802.3-c22"; > > */ > > reg = <0xff>; /* no PHY connected */ > > speed = <1000>; > > duplex = <1>; > > }; > > > > /* phy1: ethernet-phy at 1 { > > reg = <0x1>; > > }; > > */ > > }; > > > > ethernet at 70000 { > > status = "okay"; > > phy = <&phy0>; > > phy-mode = "sgmii"; > > }; > > > > /* ethernet at 74000 { > > status = "okay"; > > phy = <&phy1>; > > phy-mode = "rgmii-id"; > > }; > > */ > > mvsdio at d4000 { > > pinctrl-0 = <&sdio_pins1>; > > pinctrl-names = "default"; > > status = "okay"; > > /* No CD or WP GPIOs */ > > broken-cd; > > }; > > > > usb at 50000 { > > status = "okay"; > > }; > > > > > > /* usb at 51000 { > > status = "okay"; > > }; > > */ > > spi0: spi at 10600 { > > status = "okay"; > > }; > > > > i2c at 11000 { > > pinctrl-0 = <&i2c0_pins>; > > pinctrl-names = "default"; > > clock-frequency = <100000>; > > status = "okay"; > > }; > > > > nand at d0000 { > > status = "okay"; > > num-cs = <1>; > > marvell,nand-keep-config; > > marvell,nand-enable-arbiter; > > nand-on-flash-bbt; > > > > partition at 0 { > > label = "U-Boot"; > > reg = <0 0x800000>; > > }; > > partition at 800000 { > > label = "Linux"; > > reg = <0x800000 0x800000>; > > }; > > partition at 1000000 { > > label = "Filesystem"; > > reg = <0x1000000 0x3f000000>; > > }; > > }; > > }; > > }; > > > > dsa at 0 { > > compatible = "marvell,dsa"; > > #address-cells = <2>; > > #size-cells = <0>; > > dsa,ethernet = <ð0>; > > dsa,mii-bus = <&mdio_bus>; > > > > switch at 0 { > > #address-cells = <1>; > > #size-cells = <0>; > > > > reg = <0 0>; > > > > port at 0 { > > reg = <0>; > > label = "lan1"; > > }; > > > > port at 1 { > > reg = <1>; > > label = "lan2"; > > }; > > > > port at 2 { > > reg = <2>; > > label = "lan3"; > > }; > > > > port at 3 { > > reg = <3>; > > label = "lan4"; > > }; > > > > port at 5 { > > reg = <5>; > > label = "cpu"; > > }; > > > > port at 6 { > > reg = <6>; > > label = "lan6"; > > }; > > }; > > }; > > > > }; > > > > > > nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x38 > > nand: Micron MT29F8G08ABABAWP > > nand: 1024MiB, SLC, page size: 4096, OOB size: 224 > > pxa3xx-nand f10d0000.nand: ECC strength 16, ECC step size 2048 > > Bad block table found at page 262016, version 0x01 > > Bad block table found at page 261888, version 0x01 > > 3 ofpart partitions found on MTD device pxa3xx_nand-0 > > Creating 3 MTD partitions on "pxa3xx_nand-0": > > 0x000000000000-0x000000800000 : "U-Boot" > > 0x000000800000-0x000001000000 : "Linux" > > 0x000001000000-0x000040000000 : "Filesystem" > > mdiobus register device_node: mdio > > libphy: orion_mdio_bus: probed > > mdio_bus f1072004.mdio-mi: /soc/internal-regs/mdio/ethernet-phy at ff > > PHY address 255 is too large > > mvneta_probe: ethernet device: eth%d > > mvneta_probe: phy_node: ethernet-phy > > mvneta f1070000.ethernet eth0: Using hardware mac address > > 00:50:43:02:02:00 > > ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver > > ehci-pci: EHCI PCI platform driver > > ehci-orion: EHCI orion driver > > orion-ehci f1050000.usb: EHCI Host Controller > > orion-ehci f1050000.usb: new USB bus registered, assigned bus number 1 > > orion-ehci f1050000.usb: irq 26, io mem 0xf1050000 > > orion-ehci f1050000.usb: USB 2.0 started, EHCI 1.00 > > hub 1-0:1.0: USB hub found > > hub 1-0:1.0: 1 port detected > > usbcore: registered new interface driver usb-storage > > mousedev: PS/2 mouse device common for all mice > > rtc-mv f1010300.rtc: internal RTC not ticking > > orion_wdt: Initial timeout 229 sec > > usbcore: registered new interface driver usbhid > > usbhid: USB HID core driver > > TCP: cubic registered > > Distributed Switch Architecture driver version 0.1 > > eth0[0]: detected a Marvell 88E6352 switch > > libphy: dsa slave smi: probed > > ThumbEE CPU extension supported. > > drivers/rtc/hctosys.c: unable to open rtc device (rtc0) > > mvneta_mdio_probe: mvneta_probe: ethernet-phy > > mvneta f1070000.ethernet eth0: could not find the PHY > > mvneta f1070000.ethernet eth0: cannot probe MDIO bus > > IP-Config: Failed to open eth0 > > IP-Config: Failed to open lan1 > > IP-Config: Failed to open lan2 > > IP-Config: Failed to open lan3 > > IP-Config: Failed to open lan4 > > IP-Config: Failed to open lan6 > > IP-Config: No network devices available > > > > > > > > > > > > > > _______________________________________________ > > linux-arm-kernel mailing list > > linux-arm-kernel at lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > > -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com