[U-Boot-Users] Device tree question for 85xx

robert lazarski robertlazarski at gmail.com
Tue Aug 14 23:43:46 CEST 2007


Hi all, please excuse if device tree questions are off topic for this
list - I already tried linuxppc-embedded2 on usenet with no luck. I've
also been reading booting-without-of.txt .

I'm trying to define the 'mdio' and 'ethernet' nodes for my mpc8548e
board that arrives soon, using cds for my reference. The cds reference
has a Quad PHY of either a CIS8204 or a 88E1145 - swappable as a
mezzanine I believe. Our board has two dual PHY's - 88E1111 and a
88E1121R . Our hardware engineer has simply defined four external
interrupts:

IRQ0 : PHY 0 - TSEC 1 (P0 of the 88E1121R)
IRQ1 : PHY 1 - TSEC 2 (P1 of the 88E1121R)
IRQ2 : PHY 2 - TSEC 3 (88E1111)
IRQ3 : PHY 3 - TSEC 4 (88E1111)

The docs say the interrupts depend on the 'type of interrupt
controller' - which is on chip I believe for the 8548.  Here's how cds
has it in the linux-2.6.22/arch/powerpc/boot/dts/mpc8548cds.dts - Can
anyone please help me understand how to define a dts for my board?
I've been struggling to understand how this works - any help
appreciated.

  mdio at 24520 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        device_type = "mdio";
                        compatible = "gianfar";
                        reg = <24520 20>;
                        phy0: ethernet-phy at 0 {
                                interrupt-parent = <&mpic>;
                                interrupts = <35 0>;
                                reg = <0>;
                                device_type = "ethernet-phy";
                        };
                        phy1: ethernet-phy at 1 {
                                interrupt-parent = <&mpic>;
                                interrupts = <35 0>;
                                reg = <1>;
                                device_type = "ethernet-phy";
                        };
                        phy2: ethernet-phy at 2 {
                                interrupt-parent = <&mpic>;
                                interrupts = <35 0>;
                                reg = <2>;
                                device_type = "ethernet-phy";
                        };
                        phy3: ethernet-phy at 3 {
                                interrupt-parent = <&mpic>;
                                interrupts = <35 0>;
                                reg = <3>;
                                device_type = "ethernet-phy";
                        };
                };
     ethernet at 24000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        device_type = "network";
                        model = "eTSEC";
                        compatible = "gianfar";
                        reg = <24000 1000>;
                        local-mac-address = [ 00 E0 0C 00 73 00 ];
                        interrupts = <d 2 e 2 12 2>;
                        interrupt-parent = <&mpic>;
                        phy-handle = <&phy0>;
                };

                ethernet at 25000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        device_type = "network";
                        model = "eTSEC";
                        compatible = "gianfar";
                        reg = <25000 1000>;
                        local-mac-address = [ 00 E0 0C 00 73 01 ];
                        interrupts = <13 2 14 2 18 2>;
                        interrupt-parent = <&mpic>;
                        phy-handle = <&phy1>;
                };

/* eTSEC 3/4 are currently broken
                ethernet at 26000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        device_type = "network";
                        model = "eTSEC";
                        compatible = "gianfar";
                        reg = <26000 1000>;
                        local-mac-address = [ 00 E0 0C 00 73 02 ];
                        interrupts = <f 2 10 2 11 2>;
                        interrupt-parent = <&mpic>;
                        phy-handle = <&phy2>;
                };
            ethernet at 27000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        device_type = "network";
                        model = "eTSEC";
                        compatible = "gianfar";
                        reg = <27000 1000>;
                        local-mac-address = [ 00 E0 0C 00 73 03 ];
                        interrupts = <15 2 16 2 17 2>;
                        interrupt-parent = <&mpic>;
                        phy-handle = <&phy3>;
                };
 */

Thanks,
Robert




More information about the U-Boot mailing list