Skip to contentSkip to conversation

set environment on bootp without autoload and continue execution

PATCH New Andreas Oberritter 2 participants 5 messages Nov 9, 2002 – Nov 11, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 set environment on bootp without autoload and continue execution

Hi,

attached is a patch which changes the behaviour of NetLoop().

I am using a board, which has its own bootloader and which loads u-boot via bootp/tftp. u-boot needs to get its network settings from that bootp server too, but to load the linux kernel via bootp/tftp it must use a different filename than given by the bootp server.

the beginning of the u-boot commandline looks like this:
setenv autoload no; bootp; tftpboot 100000 kernel

The current version of u-boot stops executing the commandline before tftpboot, because the bootp command returns an error, when NetLoop() returns zero.

Currently NetLoop returns the loaded file size or zero on failure. If you do not load a file, then file size stays zero and will be interpreted as a failure, too. This also prevents netboot_update_env() from being called in cmd_net.c.

This patch changes the behaviour so that NetLoop returns -1 on error. Zero and positive integers can then be handled as the file size correctly.

It also removes a warning in list.h. ;)

Best Regards,
Andreas

-------------- next part --------------
A non-text attachment was scrubbed...
Name: u-boot_netloop.diff.bz2
Type: application/x-bzip
Size: 1297 bytes
Desc: not available
Url : http://lists.denx.de/pipermail/u-boot/attachments/20021109/0928a6aa/attachment.bin

#1 lore raw

PATCH 1/1 set environment on bootp without autoload and continue execution

Dear Andreas,

Quoted 2 lines · in message <1036801446.610.50.camel@nadell> you wrote:

attached is a patch which changes the behaviour of NetLoop().

More tests will have to be done, but I think your patch is correct. Also, it probably fixes the problems reported by Steven Scholz.

Steven, can you please report your test resutls?

Quoted 4 lines

The current version of u-boot stops executing the commandline before tftpboot, because the bootp command returns an error, when NetLoop() returns zero.

Quoted 8 lines

Currently NetLoop returns the loaded file size or zero on failure. If you do not load a file, then file size stays zero and will be interpreted as a failure, too. This also prevents netboot_update_env() from being called in cmd_net.c.

This patch changes the behaviour so that NetLoop returns -1 on error. Zero and positive integers can then be handled as the file size correctly.

Makes sense to me.

Quoted 1 line

It also removes a warning in list.h. ;)

Funny - my compiler didn't warn. Are you running a 3.x compiler? But you are right anyway.

Thanks a lot!

Best regards,

Wolfgang Denk

Signature · 3 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
See us @ electronica 2002 in Munich, Nov 12-15, Hall A3, Booth A3.325 
#2 lore raw

PATCH 1/1 set environment on bootp without autoload and continue execution

Quoted 1 line · Wolfgang Denk

Funny - my compiler didn't warn. Are you running a 3.x compiler?

Yes, I am using gcc 3.2.

Regards,
Andreas

#3 lore raw

PATCH 1/1 set environment on bootp without autoload and continue execution

Quoted 4 lines · In message <1036983250.608.89.camel@nadell> you wrote:
Quoted 2 lines

Funny - my compiler didn't warn. Are you running a 3.x compiler?

Yes, I am using gcc 3.2.

Native, or as cross compiler?

Best regards,

Wolfgang Denk

Signature · 3 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
See us @ electronica 2002 in Munich, Nov 12-15, Hall A3, Booth A3.325 
#4 lore raw

PATCH 1/1 set environment on bootp without autoload and continue execution

Quoted 5 lines · Wolfgang Denk
Quoted 3 lines
Quoted 1 line

Funny - my compiler didn't warn. Are you running a 3.x compiler?

Yes, I am using gcc 3.2.

Native, or as cross compiler?

As cross compiler.

Regards,
Andreas