Re: [U-Boot] [PATCH 1/2] fdt: Add new fdt_set_node_status fdt_set_status_by_alias helpers
On Oct 23, 2011, at 3:49 AM, Wolfgang Denk wrote: Dear Kumar Gala, In message 1318619444-2059-1-git-send-email-ga...@kernel.crashing.org you wrote: From: Shengzhou Liu shengzhou@freescale.com Add common function fdt_set_node_status() to assist in various locations that we set a nodes status. This function utilizes the status values that are part of the EPAPR spec (on power.org). fdt_set_status_by_alias() is based on fdt_set_node_status() but uses an alias string to identify the node to update. We also add some shortcut functions to help the common cases of setting okay and disabled: fdt_status_okay() fdt_status_disabled() fdt_status_okay_by_alias() fdt_status_disabled_by_alias() Finally, we fixup the corenet_ds ethernet code which previously had a function by the same name that can be replaced with the new helpers. Signed-off-by: Shengzhou Liu shengzhou@freescale.com Signed-off-by: Kumar Gala ga...@kernel.crashing.org This patch breaks a number of boards by growing the code size even for boards which never make use of this new stuff. Affected boards: TQM8555 TQM8541 [Building with ELDK 4.2]: + ./MAKEALL TQM8555 Configuring for TQM8555 - Board: TQM85xx, Options: MPC8555,TQM8555=y,HOSTNAME=tqm8555,BOARDNAME=TQM8555 ppc_6xx-ld: warning: dot moved backwards before `.bss' ppc_6xx-ld: warning: dot moved backwards before `.bss' ppc_6xx-ld: u-boot: section .text lma 0xfffc overlaps previous sections ppc_6xx-ld: u-boot: section .rodata lma 0xfffef388 overlaps previous sections ppc_6xx-ld: u-boot: section .reloc lma 0xa400 overlaps previous sections ppc_6xx-ld: u-boot: section .data lma 0xcd3c overlaps previous sections ppc_6xx-ld: u-boot: section .u_boot_cmd lma 0xea68 overlaps previous sections ppc_6xx-ld: u-boot: section .bootpg lma 0xf0dc overlaps previous sections Is part of our issue with older gcc-4.2 toolchain that the linker doesn't garbage collect unused functions? - k ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 1/2] fdt: Add new fdt_set_node_status fdt_set_status_by_alias helpers
Dear Kumar Gala, In message 8d0c487d-8573-4556-ad02-60daf1104...@kernel.crashing.org you wrote: [Building with ELDK 4.2]: ... Is part of our issue with older gcc-4.2 toolchain that the linker doesn't garbage collect unused functions? Which binutils version is minimally needed? ElDK 4.2 uses GNU ld version 2.17.50.0.12 20070128 ... Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de I am more bored than you could ever possibly be. Go back to work. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 1/2] fdt: Add new fdt_set_node_status fdt_set_status_by_alias helpers
Dear Kumar Gala, In message 1318619444-2059-1-git-send-email-ga...@kernel.crashing.org you wrote: From: Shengzhou Liu shengzhou@freescale.com Add common function fdt_set_node_status() to assist in various locations that we set a nodes status. This function utilizes the status values that are part of the EPAPR spec (on power.org). fdt_set_status_by_alias() is based on fdt_set_node_status() but uses an alias string to identify the node to update. We also add some shortcut functions to help the common cases of setting okay and disabled: fdt_status_okay() fdt_status_disabled() fdt_status_okay_by_alias() fdt_status_disabled_by_alias() Finally, we fixup the corenet_ds ethernet code which previously had a function by the same name that can be replaced with the new helpers. Signed-off-by: Shengzhou Liu shengzhou@freescale.com Signed-off-by: Kumar Gala ga...@kernel.crashing.org This patch breaks a number of boards by growing the code size even for boards which never make use of this new stuff. Affected boards: TQM8555 TQM8541 [Building with ELDK 4.2]: + ./MAKEALL TQM8555 Configuring for TQM8555 - Board: TQM85xx, Options: MPC8555,TQM8555=y,HOSTNAME=tqm8555,BOARDNAME=TQM8555 ppc_6xx-ld: warning: dot moved backwards before `.bss' ppc_6xx-ld: warning: dot moved backwards before `.bss' ppc_6xx-ld: u-boot: section .text lma 0xfffc overlaps previous sections ppc_6xx-ld: u-boot: section .rodata lma 0xfffef388 overlaps previous sections ppc_6xx-ld: u-boot: section .reloc lma 0xa400 overlaps previous sections ppc_6xx-ld: u-boot: section .data lma 0xcd3c overlaps previous sections ppc_6xx-ld: u-boot: section .u_boot_cmd lma 0xea68 overlaps previous sections ppc_6xx-ld: u-boot: section .bootpg lma 0xf0dc overlaps previous sections Please fix. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de Each honest calling, each walk of life, has its own elite, its own aristocracy based on excellence of performance. - James Bryant Conant ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 1/2] fdt: Add new fdt_set_node_status fdt_set_status_by_alias helpers
On Oct 15, 2011, at 8:04 AM, Jerry Van Baren wrote: Hi Kumar, Shengzhou, On 10/14/2011 03:10 PM, Kumar Gala wrote: From: Shengzhou Liushengzhou@freescale.com Add common function fdt_set_node_status() to assist in various locations that we set a nodes status. This function utilizes the status values that are part of the EPAPR spec (on power.org). fdt_set_status_by_alias() is based on fdt_set_node_status() but uses an alias string to identify the node to update. We also add some shortcut functions to help the common cases of setting okay and disabled: fdt_status_okay() fdt_status_disabled() fdt_status_okay_by_alias() fdt_status_disabled_by_alias() Finally, we fixup the corenet_ds ethernet code which previously had a function by the same name that can be replaced with the new helpers. Signed-off-by: Shengzhou Liushengzhou@freescale.com Signed-off-by: Kumar Galaga...@kernel.crashing.org --- board/freescale/corenet_ds/eth_hydra.c | 26 ++ board/freescale/corenet_ds/eth_p4080.c | 36 +-- common/fdt_support.c | 60 +++- include/fdt_support.h | 28 +++ 4 files changed, 101 insertions(+), 49 deletions(-) While this touches fdt_support.[ch] which is nominally mine, it is coupled with the Freescale support. I could make you break it into two, but then I would have to do more work and you (and wd) would have to make sure they went into u-boot in the right order. That sounds ugly, so I would prefer Kumar apply it to his subrepo to feed into u-boot. Acked-by: Gerald Van Baren vanba...@cideas.com Best regards, gvb applied to 85xx - k ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH 1/2] fdt: Add new fdt_set_node_status fdt_set_status_by_alias helpers
Hi Kumar, Shengzhou, On 10/14/2011 03:10 PM, Kumar Gala wrote: From: Shengzhou Liushengzhou@freescale.com Add common function fdt_set_node_status() to assist in various locations that we set a nodes status. This function utilizes the status values that are part of the EPAPR spec (on power.org). fdt_set_status_by_alias() is based on fdt_set_node_status() but uses an alias string to identify the node to update. We also add some shortcut functions to help the common cases of setting okay and disabled: fdt_status_okay() fdt_status_disabled() fdt_status_okay_by_alias() fdt_status_disabled_by_alias() Finally, we fixup the corenet_ds ethernet code which previously had a function by the same name that can be replaced with the new helpers. Signed-off-by: Shengzhou Liushengzhou@freescale.com Signed-off-by: Kumar Galaga...@kernel.crashing.org --- board/freescale/corenet_ds/eth_hydra.c | 26 ++ board/freescale/corenet_ds/eth_p4080.c | 36 +-- common/fdt_support.c | 60 +++- include/fdt_support.h | 28 +++ 4 files changed, 101 insertions(+), 49 deletions(-) While this touches fdt_support.[ch] which is nominally mine, it is coupled with the Freescale support. I could make you break it into two, but then I would have to do more work and you (and wd) would have to make sure they went into u-boot in the right order. That sounds ugly, so I would prefer Kumar apply it to his subrepo to feed into u-boot. Acked-by: Gerald Van Baren vanba...@cideas.com Best regards, gvb [snip] ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH 1/2] fdt: Add new fdt_set_node_status fdt_set_status_by_alias helpers
From: Shengzhou Liu shengzhou@freescale.com Add common function fdt_set_node_status() to assist in various locations that we set a nodes status. This function utilizes the status values that are part of the EPAPR spec (on power.org). fdt_set_status_by_alias() is based on fdt_set_node_status() but uses an alias string to identify the node to update. We also add some shortcut functions to help the common cases of setting okay and disabled: fdt_status_okay() fdt_status_disabled() fdt_status_okay_by_alias() fdt_status_disabled_by_alias() Finally, we fixup the corenet_ds ethernet code which previously had a function by the same name that can be replaced with the new helpers. Signed-off-by: Shengzhou Liu shengzhou@freescale.com Signed-off-by: Kumar Gala ga...@kernel.crashing.org --- board/freescale/corenet_ds/eth_hydra.c | 26 ++ board/freescale/corenet_ds/eth_p4080.c | 36 +-- common/fdt_support.c | 60 +++- include/fdt_support.h | 28 +++ 4 files changed, 101 insertions(+), 49 deletions(-) diff --git a/board/freescale/corenet_ds/eth_hydra.c b/board/freescale/corenet_ds/eth_hydra.c index 91b3408..a7a5e13 100644 --- a/board/freescale/corenet_ds/eth_hydra.c +++ b/board/freescale/corenet_ds/eth_hydra.c @@ -70,6 +70,7 @@ #include fm_eth.h #include fsl_mdio.h #include malloc.h +#include fdt_support.h #include asm/fsl_dtsec.h #include ../common/ngpixis.h @@ -200,25 +201,6 @@ static int hydra_mdio_init(char *realbusname, char *fakebusname) } /* - * Given an alias or a path for a node, set the status of that node. - * - * If 'alias' is not a valid alias, then it is treated as a full path to the - * node. No error checking is performed. - * - * This function is normally called to set the status for a virtual MDIO node. - */ -static void fdt_set_node_status(void *fdt, const char *alias, - const char *status) -{ - const char *path = fdt_get_alias(fdt, alias); - - if (!path) - path = alias; - - do_fixup_by_path(fdt, path, status, status, strlen(status) + 1, 1); -} - -/* * Given an alias or a path for a node, set the mux value of that node. * * If 'alias' is not a valid alias, then it is treated as a full path to the @@ -372,14 +354,14 @@ void fdt_fixup_board_enet(void *fdt) case PHY_INTERFACE_MODE_SGMII: lane = serdes_get_first_lane(SGMII_FM1_DTSEC1 + idx); if (lane = 0) { - fdt_set_node_status(fdt, emi1_sgmii, okay); + fdt_status_okay_by_alias(fdt, emi1_sgmii); /* Also set the MUX value */ fdt_set_mdio_mux(fdt, emi1_sgmii, mdio_mux[i].val); } break; case PHY_INTERFACE_MODE_RGMII: - fdt_set_node_status(fdt, emi1_rgmii, okay); + fdt_status_okay_by_alias(fdt, emi1_rgmii); break; default: break; @@ -388,7 +370,7 @@ void fdt_fixup_board_enet(void *fdt) lane = serdes_get_first_lane(XAUI_FM1); if (lane = 0) - fdt_set_node_status(fdt, emi2_xgmii, okay); + fdt_status_okay_by_alias(fdt, emi2_xgmii); #endif } diff --git a/board/freescale/corenet_ds/eth_p4080.c b/board/freescale/corenet_ds/eth_p4080.c index d4657f7..00dfa9a 100644 --- a/board/freescale/corenet_ds/eth_p4080.c +++ b/board/freescale/corenet_ds/eth_p4080.c @@ -199,22 +199,6 @@ static int p4080ds_mdio_init(char *realbusname, u32 muxval) return mdio_register(bus); } -/* - * Sets the specified node's status to the value contained in status - * If the first character of the specified path is / then we use - * alias as a path. Otherwise, we look for an alias of that name - */ -static void fdt_set_node_status(void *fdt, const char *alias, - const char *status) -{ - const char *path = fdt_get_alias(fdt, alias); - - if (!path) - path = alias; - - do_fixup_by_path(fdt, path, status, status, strlen(status) + 1, 1); -} - void board_ft_fman_fixup_port(void *blob, char * prop, phys_addr_t pa, enum fm_port port, int offset) { @@ -255,28 +239,28 @@ void fdt_fixup_board_enet(void *fdt) */ /* We've got six MDIO nodes that may or may not need to exist */ - fdt_set_node_status(fdt, emi1_slot3, disabled); - fdt_set_node_status(fdt, emi1_slot4, disabled); - fdt_set_node_status(fdt, emi1_slot5, disabled); - fdt_set_node_status(fdt, emi2_slot4, disabled); - fdt_set_node_status(fdt, emi2_slot5, disabled); + fdt_status_disabled_by_alias(fdt, emi1_slot3);