On Tue, Mar 31, 2009 at 12:30 PM, Detlev Zundel <d...@denx.de> wrote: > Hi Michael, > >> Please see my comments and updated patch below. > > As a side note, please send your patch as an inline attachment also > adding your signed-off-by line. It's probably easiest to actually use > git to apply your changes to a branch and use "git-format-patch" to > create the patch. > > Please also provide more dsecriptive commit text explaining what the > patch does. > > The patch in your mail does still not apply. Neither git-am (after > fixing the patch with a valid e-mail) nor patch can do anything with it. > > Thanks > Detlev > > -- > ;; Self-replicator in ELisp > ((lambda (l) (prin1-to-string (list l (list (quote quote) l)))) > (quote (lambda (l) (prin1-to-string (list l (list (quote quote) l)))))) > -- > DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: d...@denx.de >
Hi Detlev, Please try this one. I used the git-format-patch for its creation. Thanks, Michael >From 8cc38fd564c0671b34afdc36df4c224d51d98334 Mon Sep 17 00:00:00 2001 From: Michael Zaidman <michael.zaid...@gmail.com> Date: Tue, 31 Mar 2009 14:21:35 +0300 Subject: [PATCH] The patch fixes the bug of partial intialization of global network parameters. Upon u-boot's start up the first ping command causes a failure of the consequent TFTP transfers. It happens in the recently added mechanism of NetLoop initialization where initialization of global network parameters is separated in the NetInitLoop routine which is called per env_id change. Thus, ping request will initialize the network parameters necessary for ping operation only, afterwards the env_changed_id will be set to the env_id that will prevent all following initialization requests from other protocols. The problem is that the initialized by ping subset of network parameters is not sufficient for other protocols and particularly for TFTP which requires the NetServerIp also. Signed-off-by: Michael Zaidman <michael.zaid...@gmail.com> --- net/net.c | 66 +++++------------------------------------------------------- 1 files changed, 6 insertions(+), 60 deletions(-) diff --git a/net/net.c b/net/net.c index a89f6a0..91ed0d7 100644 --- a/net/net.c +++ b/net/net.c @@ -288,64 +288,13 @@ NetInitLoop(proto_t protocol) if (env_changed_id == env_id) return 0; - switch (protocol) { -#if defined(CONFIG_CMD_NFS) - case NFS: -#endif -#if defined(CONFIG_CMD_PING) - case PING: -#endif -#if defined(CONFIG_CMD_SNTP) - case SNTP: -#endif - case NETCONS: - case TFTP: - NetCopyIP(&NetOurIP, &bd->bi_ip_addr); - NetOurGatewayIP = getenv_IPaddr ("gatewayip"); - NetOurSubnetMask= getenv_IPaddr ("netmask"); - NetOurVLAN = getenv_VLAN("vlan"); - NetOurNativeVLAN = getenv_VLAN("nvlan"); + NetCopyIP(&NetOurIP, &bd->bi_ip_addr); + NetOurGatewayIP = getenv_IPaddr ("gatewayip"); + NetOurSubnetMask= getenv_IPaddr ("netmask"); + NetServerIP = getenv_IPaddr ("serverip"); + NetOurNativeVLAN = getenv_VLAN("nvlan"); + NetOurVLAN = getenv_VLAN("vlan"); - switch (protocol) { -#if defined(CONFIG_CMD_NFS) - case NFS: -#endif - case NETCONS: - case TFTP: - NetServerIP = getenv_IPaddr ("serverip"); - break; -#if defined(CONFIG_CMD_PING) - case PING: - /* nothing */ - break; -#endif -#if defined(CONFIG_CMD_SNTP) - case SNTP: - /* nothing */ - break; -#endif - default: - break; - } - - break; - case BOOTP: - case RARP: - /* - * initialize our IP addr to 0 in order to accept ANY - * IP addr assigned to us by the BOOTP / RARP server - */ - NetOurIP = 0; - NetServerIP = getenv_IPaddr ("serverip"); - NetOurVLAN = getenv_VLAN("vlan"); /* VLANs must be read */ - NetOurNativeVLAN = getenv_VLAN("nvlan"); - case CDP: - NetOurVLAN = getenv_VLAN("vlan"); /* VLANs must be read */ - NetOurNativeVLAN = getenv_VLAN("nvlan"); - break; - default: - break; - } env_changed_id = env_id; return 0; } @@ -440,10 +389,7 @@ restart: #if defined(CONFIG_CMD_DHCP) case DHCP: - /* Start with a clean slate... */ BootpTry = 0; - NetOurIP = 0; - NetServerIP = getenv_IPaddr ("serverip"); DhcpRequest(); /* Basically same as BOOTP */ break; #endif -- 1.5.6.3 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot