Start removing linux,network-index in favour of aliases
Sean MacLennan
smaclennan at pikatech.com
Tue Feb 26 14:00:02 EST 2008
David Gibson wrote:
> This patch alters the bootwrapper for a number of machines (roubhly
> all 4xx based cuboot or treeboot platforms) to use aliases instead of
> the linux,network-index hack to work out which MAC address to attach
> to which ethernet device node.
>
> The now obsolete linux,network-index properties are removed from the
> corresponding device trees. This won't break backwards compatiblity,
> because in cases where this fixup code is relevant, the device tree is
> part of the kernel image.
>
> The references to linux,network-index are removed from
> booting-without-of.txt. Not only is it now deprecated, but as a hack
> applicable only when the device tree blob and fixup code were in the
> same image, this property never belonged in booting-without-of.txt
> which describes the interface between the kernel and firmware or
> bootloaders which produce a device tree. By the time the device tree
> reaches the kernel, all the MAC addresses must be fully filled in.
>
> Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
>
> ---
>
> Subsumes my earlier Ebony-only patch. Tested on Ebony, could do with
> testing on Taishan, Bamboo, Sequoia, Warp, Rainier and Walnut.
>
> Index: working-2.6/arch/powerpc/boot/ebony.c
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/ebony.c 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/ebony.c 2008-02-26 11:34:26.000000000 +1100
> @@ -75,7 +75,8 @@ static void ebony_fixups(void)
>
> ibm440gp_fixup_clocks(sysclk, 6 * 1843200);
> ibm4xx_sdram_fixup_memsize();
> - dt_fixup_mac_addresses(ebony_mac0, ebony_mac1);
> + dt_fixup_mac_address_by_alias("ethernet0", ebony_mac0);
> + dt_fixup_mac_address_by_alias("ethernet1", ebony_mac1);
> ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
> ebony_flashsel_fixup();
> }
> Index: working-2.6/arch/powerpc/boot/dts/ebony.dts
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/dts/ebony.dts 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/dts/ebony.dts 2008-02-26 11:34:26.000000000 +1100
> @@ -243,7 +243,6 @@
> };
>
> EMAC0: ethernet at 40000800 {
> - linux,network-index = <0>;
> device_type = "network";
> compatible = "ibm,emac-440gp", "ibm,emac";
> interrupt-parent = <&UIC1>;
> @@ -263,7 +262,6 @@
> zmii-channel = <0>;
> };
> EMAC1: ethernet at 40000900 {
> - linux,network-index = <1>;
> device_type = "network";
> compatible = "ibm,emac-440gp", "ibm,emac";
> interrupt-parent = <&UIC1>;
> Index: working-2.6/arch/powerpc/boot/cuboot-taishan.c
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/cuboot-taishan.c 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/cuboot-taishan.c 2008-02-26 11:34:26.000000000 +1100
> @@ -38,7 +38,8 @@ static void taishan_fixups(void)
>
> ibm4xx_sdram_fixup_memsize();
>
> - dt_fixup_mac_addresses(bd.bi_enetaddr, bd.bi_enet1addr);
> + dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr);
> + dt_fixup_mac_address_by_alias("ethernet1", bd.bi_enet1addr);
>
> ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
> }
> Index: working-2.6/arch/powerpc/boot/dts/taishan.dts
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/dts/taishan.dts 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/dts/taishan.dts 2008-02-26 11:34:26.000000000 +1100
> @@ -239,7 +239,6 @@
>
> EMAC0: ethernet at 40000800 {
> unused = <1>;
> - linux,network-index = <2>;
> device_type = "network";
> compatible = "ibm,emac-440gx", "ibm,emac4";
> interrupt-parent = <&UIC1>;
> @@ -260,7 +259,6 @@
> };
> EMAC1: ethernet at 40000900 {
> unused = <1>;
> - linux,network-index = <3>;
> device_type = "network";
> compatible = "ibm,emac-440gx", "ibm,emac4";
> interrupt-parent = <&UIC1>;
> @@ -281,7 +279,6 @@
> };
>
> EMAC2: ethernet at 40000c00 {
> - linux,network-index = <0>;
> device_type = "network";
> compatible = "ibm,emac-440gx", "ibm,emac4";
> interrupt-parent = <&UIC2>;
> @@ -304,7 +301,6 @@
> };
>
> EMAC3: ethernet at 40000e00 {
> - linux,network-index = <1>;
> device_type = "network";
> compatible = "ibm,emac-440gx", "ibm,emac4";
> interrupt-parent = <&UIC2>;
> Index: working-2.6/arch/powerpc/boot/bamboo.c
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/bamboo.c 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/bamboo.c 2008-02-26 11:34:26.000000000 +1100
> @@ -33,7 +33,8 @@ static void bamboo_fixups(void)
> ibm440ep_fixup_clocks(sysclk, 11059200, 25000000);
> ibm4xx_sdram_fixup_memsize();
> ibm4xx_quiesce_eth((u32 *)0xef600e00, (u32 *)0xef600f00);
> - dt_fixup_mac_addresses(bamboo_mac0, bamboo_mac1);
> + dt_fixup_mac_address_by_alias("ethernet0", bamboo_mac0);
> + dt_fixup_mac_address_by_alias("ethernet1", bamboo_mac1);
> }
>
> void bamboo_init(void *mac0, void *mac1)
> Index: working-2.6/arch/powerpc/boot/cuboot-sequoia.c
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/cuboot-sequoia.c 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/cuboot-sequoia.c 2008-02-26 11:34:26.000000000 +1100
> @@ -42,7 +42,8 @@ static void sequoia_fixups(void)
> ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
> ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
> ibm4xx_denali_fixup_memsize();
> - dt_fixup_mac_addresses(&bd.bi_enetaddr, &bd.bi_enet1addr);
> + dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr);
> + dt_fixup_mac_address_by_alias("ethernet1", bd.bi_enet1addr);
> }
>
> void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
> Index: working-2.6/arch/powerpc/boot/cuboot-warp.c
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/cuboot-warp.c 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/cuboot-warp.c 2008-02-26 11:34:26.000000000 +1100
> @@ -23,7 +23,7 @@ static void warp_fixups(void)
> ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
> ibm4xx_sdram_fixup_memsize();
> ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
> - dt_fixup_mac_addresses(&bd.bi_enetaddr);
> + dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr);
> }
>
>
> Index: working-2.6/arch/powerpc/boot/dts/bamboo.dts
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/dts/bamboo.dts 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/dts/bamboo.dts 2008-02-26 11:34:26.000000000 +1100
> @@ -207,7 +207,6 @@
> };
>
> EMAC0: ethernet at ef600e00 {
> - linux,network-index = <0>;
> device_type = "network";
> compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
> interrupt-parent = <&UIC1>;
> @@ -228,7 +227,6 @@
> };
>
> EMAC1: ethernet at ef600f00 {
> - linux,network-index = <1>;
> device_type = "network";
> compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
> interrupt-parent = <&UIC1>;
> Index: working-2.6/arch/powerpc/boot/dts/warp.dts
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/dts/warp.dts 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/dts/warp.dts 2008-02-26 11:34:26.000000000 +1100
> @@ -204,7 +204,6 @@
> };
>
> EMAC0: ethernet at ef600e00 {
> - linux,network-index = <0>;
> device_type = "network";
> compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
> interrupt-parent = <&UIC1>;
> Index: working-2.6/arch/powerpc/boot/dts/sequoia.dts
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/dts/sequoia.dts 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/dts/sequoia.dts 2008-02-26 11:34:26.000000000 +1100
> @@ -273,7 +273,6 @@
> };
>
> EMAC0: ethernet at ef600e00 {
> - linux,network-index = <0>;
> device_type = "network";
> compatible = "ibm,emac-440epx", "ibm,emac4";
> interrupt-parent = <&EMAC0>;
> @@ -303,7 +302,6 @@
> };
>
> EMAC1: ethernet at ef600f00 {
> - linux,network-index = <1>;
> device_type = "network";
> compatible = "ibm,emac-440epx", "ibm,emac4";
> interrupt-parent = <&EMAC1>;
> Index: working-2.6/arch/powerpc/boot/cuboot-rainier.c
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/cuboot-rainier.c 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/cuboot-rainier.c 2008-02-26 11:34:26.000000000 +1100
> @@ -42,7 +42,8 @@ static void rainier_fixups(void)
> ibm440ep_fixup_clocks(sysclk, 11059200, 50000000);
> ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
> ibm4xx_denali_fixup_memsize();
> - dt_fixup_mac_addresses(&bd.bi_enetaddr, &bd.bi_enet1addr);
> + dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr);
> + dt_fixup_mac_address_by_alias("ethernet1", bd.bi_enet1addr);
> }
>
> void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
> Index: working-2.6/arch/powerpc/boot/dts/rainier.dts
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/dts/rainier.dts 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/dts/rainier.dts 2008-02-26 11:34:26.000000000 +1100
> @@ -258,7 +258,6 @@
> };
>
> EMAC0: ethernet at ef600e00 {
> - linux,network-index = <0>;
> device_type = "network";
> compatible = "ibm,emac-440grx", "ibm,emac-440epx", "ibm,emac4";
> interrupt-parent = <&EMAC0>;
> @@ -288,7 +287,6 @@
> };
>
> EMAC1: ethernet at ef600f00 {
> - linux,network-index = <1>;
> device_type = "network";
> compatible = "ibm,emac-440grx", "ibm,emac-440epx", "ibm,emac4";
> interrupt-parent = <&EMAC1>;
> Index: working-2.6/arch/powerpc/boot/dts/walnut.dts
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/dts/walnut.dts 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/dts/walnut.dts 2008-02-26 11:34:26.000000000 +1100
> @@ -125,7 +125,6 @@
> };
>
> EMAC: ethernet at ef600800 {
> - linux,network-index = <0>;
> device_type = "network";
> compatible = "ibm,emac-405gp", "ibm,emac";
> interrupt-parent = <&UIC0>;
> Index: working-2.6/arch/powerpc/boot/treeboot-walnut.c
> ===================================================================
> --- working-2.6.orig/arch/powerpc/boot/treeboot-walnut.c 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/arch/powerpc/boot/treeboot-walnut.c 2008-02-26 11:34:26.000000000 +1100
> @@ -68,7 +68,7 @@ static void walnut_fixups(void)
> ibm4xx_quiesce_eth((u32 *)0xef600800, NULL);
> ibm4xx_fixup_ebc_ranges("/plb/ebc");
> walnut_flashsel_fixup();
> - dt_fixup_mac_addresses((u8 *) WALNUT_OPENBIOS_MAC_OFF);
> + dt_fixup_mac_address_by_alias("ethernet0", (u8 *) WALNUT_OPENBIOS_MAC_OFF);
> }
>
> void platform_init(void)
> Index: working-2.6/Documentation/powerpc/booting-without-of.txt
> ===================================================================
> --- working-2.6.orig/Documentation/powerpc/booting-without-of.txt 2008-02-26 11:30:30.000000000 +1100
> +++ working-2.6/Documentation/powerpc/booting-without-of.txt 2008-02-26 11:34:26.000000000 +1100
> @@ -1269,10 +1269,6 @@ platforms are moved over to use the flat
>
> Recommended properties:
>
> - - linux,network-index : This is the intended "index" of this
> - network device. This is used by the bootwrapper to interpret
> - MAC addresses passed by the firmware when no information other
> - than indices is available to associate an address with a device.
> - phy-connection-type : a string naming the controller/PHY interface type,
> i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id", "sgmii",
> "tbi", or "rtbi". This property is only really needed if the connection
> @@ -1667,10 +1663,6 @@ platforms are moved over to use the flat
> - phy-handle : The phandle for the PHY connected to this controller.
>
> Recommended properties:
> - - linux,network-index : This is the intended "index" of this
> - network device. This is used by the bootwrapper to interpret
> - MAC addresses passed by the firmware when no information other
> - than indices is available to associate an address with a device.
> - phy-connection-type : a string naming the controller/PHY interface type,
> i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id" (Internal
> Delay), "rgmii-txid" (delay on TX only), "rgmii-rxid" (delay on RX only),
> @@ -1995,7 +1987,6 @@ platforms are moved over to use the flat
> interrupts = <20 8>;
> interrupt-parent = <&PIC>;
> phy-handle = <&PHY0>;
> - linux,network-index = <0>;
> fsl,cpm-command = <12000300>;
> };
>
> @@ -2217,12 +2208,6 @@ platforms are moved over to use the flat
> EMAC, that is the content of the current (bogus) "phy-port"
> property.
>
> - Recommended properties:
> - - linux,network-index : This is the intended "index" of this
> - network device. This is used by the bootwrapper to interpret
> - MAC addresses passed by the firmware when no information other
> - than indices is available to associate an address with a device.
> -
> Optional properties:
> - phy-address : 1 cell, optional, MDIO address of the PHY. If absent,
> a search is performed.
> @@ -2246,7 +2231,6 @@ platforms are moved over to use the flat
> Example:
>
> EMAC0: ethernet at 40000800 {
> - linux,network-index = <0>;
> device_type = "network";
> compatible = "ibm,emac-440gp", "ibm,emac";
> interrupt-parent = <&UIC1>;
>
>
Worked for me on the warp.
Cheers,
Sean
More information about the Linuxppc-dev
mailing list