
On Monday, September 27, 2010 09:25:36 am Wolfgang Denk wrote:
Dear Marcel,
In message 201009270011.32850.korgull@home.nl you wrote:
I do however have some questions about the u-boot startup behaviour.
Please read the manual; it should cover most of your questions.
Thanks for your kind reply. I do honestly have to say that I read a lot of u-boot code but actually only a parts of the manual.
What I want to create is the following :
- u-boot starts and checks if it can start my application (either CRC
check or whatever). This is the first thing u-boot should do. 2) if it can't boot it will listen on USB or ethernet for someone to upload a valid image or boot via NFS or whatever has been configured.
This is standard behaviour. See 7.4. Boot Arguments Unleashed etc., http://www.denx.de/wiki/view/DULG/LinuxBootArgs
I noticed that but had a different behavior in mind but was probably focused too much on USB instead of really looking at u-boot's behavior. Now that I read it again it does make a bit more sense and I think this will work out fine.
- If it can boot, it will boot immediately (there may be a GPIO pin to
override this behaviour)
setenv bootdelay 0
- once within the application (linux or whatever) I must be able to set
a flag that lets u-boot wait for uploading a new image file when I soft-reset my device. This is needed for firmware upgrading of course. I still need to check if this flag is supported by the CPU or needs other support (eeprom perhaps).
see tools/env for tools to read and write the U-Boot environment settings from Linux. This can be used to change the boot command, boot delay etc.
I used an AVR processor before and did this in the environment settings but currently that doesn't work for me yet. My env is in nor flash and I don't have a driver in linux yet to communicate with it. I'll look into this. Currently I write settings to eeprom but have no idea if it can be read from u-boot. I currently only use it for items that I need in Linux. I did see some drivers in u-boot for it, so I guess it should work as well and I'll have to try it or write a driver for my NOR flash.
- After uploading an image the soft-reset is cleared and the whole
sequence start over again, so it should boot the new image.
You can script all these things in U-Boot.
Great, that should solve it.
I know it's possible to do this but I wonder if it has been done before and if there any examples of it ?
There is all kinds of more or less complext stuff around. Read the manual. Read the default configurations set in other board config files. Read the code available in board/*/auto_update.c etc.
This does solve a lot of my questions. Thanks a lot for pointing me to that code and the other answers.
best regards, Marcel
Best regards,
Wolfgang Denk