Date: Thu, 19 Sep 2013 08:24:49 -0400 From: Randall Stewart <rrs@lakerest.net> To: ARM <freebsd-arm@freebsd.org> Subject: Trouble with a dream plug... Message-ID: <3D3276E2-7436-4E98-A37D-1529C1752158@lakerest.net>
next in thread | raw e-mail | index | archive | help
Hi all: I am playing with a DreamPlug which has the marvell 88F6281 chip set in it: http://www.globalscaletechnologies.com/p-54-dreamplug-devkit.aspx The version number of this seems to be 3. When I first tried to bring it up following the wiki: https://wiki.freebsd.org/FreeBSDMarvell I had no joy, the system would boot up until it tried to find the = ethernet and die=85 So with a bit of playing I figured out that the miiphy was incorrect, it = was trying to use 8 and I found with a bit of poking that the two phys are on 0 and = 1 (There are two Marvell Gig-E's on this critter). Now after I got it to boot, I wanted to find a way to get the second = ethernet up. Linux (which comes with it of course) finds both of them so why can't I? So after digging some and learning about the flattened device tree, I = find that the layout of this in respect to the ether-net is as follows (reported by a modified ofwdump.. I had = to make it so that=20 it did not exit when it sees a next-prop return an error, evidently this = little arm just gives you an error, not a 0 back when you hit the end of the properties). = Anyway here is my=20 ethernet description: ********************************* Node 0x840: ethernet@72000 #address-cells: 00 00 00 01 #size-cells: 00 00 00 01 model: 56 32 00 'V2' compatible: 6d 72 76 6c 2c 67 65 00 'mrvl,ge' reg: 00 07 20 00 00 00 20 00 ranges: =20 00 00 00 00 00 07 20 00 00 00 20 00 local-mac-address: 00 00 00 00 00 00 interrupts: 00 00 00 0c 00 00 00 0d 00 00 00 0e 00 00 00 0b 00 00 00 2e interrupt-parent:=20 00 00 00 01 =20 phy-handle: =20 00 00 00 02 ------------Child of the E-net ------------ Node 0x918: mdio@0 #address-cells: 00 00 00 01 #size-cells: 00 00 00 00 compatible: 6d 72 76 6c 2c 6d 64 69 6f 00 'mrvl,mdio' ---------Child of the mdio ----------- Node 0x95c: ethernet-phy@0 reg: 00 00 00 08 phandle: 00 00 00 02 **************************** =46rom this you can see where the idea of the phy being at 8 is coming = from. Its sure enough is in the ethernet-phy. Now I am *not* sure what an mdio is = supposed to do for us, and even more strange is how does linux seem to be able to bring = up both ports on this? The spec's say that the first port is at 72000 - 73fff and the second is = at 76000 - 77fff. And of course with no FDT description we won't see it. Is our friend linux just assuming that its at those addresses? We end up = with a list of IRQ's there as well 0xb, 0xc, 0xd, 0xe an 0x2e. Linux uses 0xb = for eth0 and 0xf for eth1. Anyone out there familiar with why I can't see the second network? Is = this a bad fdt that came from the vendor? or do we need to just have driver = hacks in that "assume" the second one is there? If so I am not sure how to deal = with the IRQ's can we just allocate one? Linux seems fine with doing that unless there = is something I am missing in my limited understanding of the FDT stuff. Any pointers or hints would be appreciated. R ------------------------------ Randall Stewart 803-317-4952 (cell)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D3276E2-7436-4E98-A37D-1529C1752158>