
In message 3FCD25F8.4080308@corelatus.com you wrote:
Well, if you want to be able to safely upgrade u-boot in field, you have two choices.
U-Boot is not special in this respect. Either you treat U-boot as boot loader, or as application package.
a) Do it in hardware Requires you to have control over card design.
b) Do it in software Can be done on "any" card.
I don't know of a reliable way to field-update the boot loader. Period.
- If you make an error in your pre u-boot program, you may have to upgrade it. If so, card will die if something happens while you rewrite that sector.
You just shifted levels. U-Boot becomes an application, and the problem still exists with your new (smaller, simpler) boot loader.
You added complexity and duplicated code (for example to check the CRC's). In general that means that your system is more likely to have errors than a simpler system.
Which solution is better?
This was not a question. The question was about a reliable way for a field upgrade of the boot loader.
There is none, except with special hardware support.
Let's stop this fruitless discussion here, please. You have a setup which works fine for you, no doubt about that. But it does not fix the problem discussed here.
Best regards,
Wolfgang Denk