Description of Problem: You cannot manually set the IP address of a board without using fconfig, and fconfig is not available if you do not have flash (e.g. i386 floppy bootstrap). fconfig should be used to preserve the settings through reboot, as well as keep the startup script. But if flash is not available, you should still be able to set everything manually that you can set via fconfig (except startup script, although an alternative may be ppossible). How Reproducible: Every time Steps to Reproduce: 1. Bootstrap i386 platform from floppy, without BOOTP 2. Try set IP address et al. 3. Actual Results: No way to set IP address et al Expected Results: Should be able to set IP address et al manually Additional Information:
Just FYI: this is not so simple as it seems. Eg. setting the IP address: the network interface et al initializes itself during startup. If you have flash and use "fconfig ip_address 10.1.2.3" this HAS NO EFFECT until you next reboot the board (or start some other instance of RedBoot). In general fconfig commands do not have immediate effect. So having a set of key-value pairs that you can mess with does not achieve anything *unless* they can persist over a reset. That makes sense, so long as RAM is preserved over reset; but if you have to wreck RAM as part of auto-sizing it, methinks you just can't do it - or you must save the RAM size in there also, and defend strongly against mistaking random RAM contents at power-on for good RAM size and config info. I guess for the x86 from floppy, the BIOS has already wrecked RAM contents for us during the traditional memory test? So this is a dead end for the specific platform mentioned? - Huge
You appear to mis-understood the problem. It is not an issue of having the IP address set up on boot/startup. It is an issue of being able to set the IP address manually, if at all, on platforms where no The current method gives us three mechanisms: * fconfig, for which flash/persistent storage is required * BOOTP, for which a BOOTP/DHCP server is required * Hard coded in the redboot image itself I used the PC platform as an example. It has no persistent storage. This means that I have to create either a RedBoot image that does DHCP on startup, or I have a hard-coded IP address for RedBoot. This means for multiple PC platforms I either have to use BOOTP, or create multiple RedBoot images. This is not going to be a suitable solution for everyone, hence my request to be able to set the IP address within the RedBoot prompt.
I understand fine. I clarify that a quick fix to make fconfig operate only on a RAM buffer in the absence of flash, is no fix at all for this problem. That was all. - Huge
Hugo is right about fconfig. But still I wonder about what just setting __local_ip_addr anyway, perhaps by a new command (the set/settings command discussed before?). I think it may "just work" since the net stack, and the code that uses it, is quite simple. The only extra thing needed would be a call to net_io_init(). There's a few more complications if we also allow changing an existing valid IP address, rather than an unset one, e.g. for closing connections and cleaning up the stack, but that isn't very difficult either. Not that I have time to do anything about it anyway of course!
I added a new command "ip_address" which can set both the local IP address as well as the default server address.