On Jan 6, 2016, at 9:10 AM, Vagrant Cascadian <vagr...@debian.org> wrote:

>> So I guess it’s all explained by https://bugs.debian.org/781874 .
> 
> I really don't understand the logic outlined in that bug report, and
> your results don't exactly come to the same conclusion, which is why
> I've never "fixed" it.

Well, I’m no expert, but as I understand it this is what’s happened:

The u-boot binary has grown so big that it overlaps the area where it 
traditionally stored the environment strings.
So it now puts its environment at 0x80000, instead of 0x60000; the FLASH erase 
pages are 0x20000 (128KiB) long and the flash-write process requires that 
things start at erase page boundaries — hence 0x80000 rather than 0x70000.
Now, fw_printenv (and its cousins) need to know about this change.
The way the developers have chosen to configure that information is by putting 
it in /etc/fw_env.config .
Those numbers are device specific, so what goes there depends on what type of 
machine you have — and possibly what version of u-boot you have.
However, the u-boot-tools package can’t (or simply choses not to) automatically 
figure out what your hardware (SheevaPlug, CuBox-i4, whatever) and put the 
right values in /etc/fw_env.config.
Instead it leaves this up to the user by putting a bunch of options in 
/usr/share/doc/u-boot-tools/examples and telling the user to pick the one she 
needs and copy it to /etc/

Unfortunately, the values in 
/usr/share/doc/u-boot-tools/examples/sheevaplug.config (at least, possibly 
others as well) are out of date and need to be updated.

At a minimum, the patch in bug#781874 needs to be applied in order to be 
compatible with modern version of u-boot.

But the problem is, doing this breaks machines with older version of u-boot 
firmware, so if you have a stock fresh-out-of-the-box SheevaPlug, the first 
thing you need to do is update your u-boot firmware! So it’s not as easy as it 
sounds.  

Would it be OK if I put all this analysis in a wishlist bugreport requesting 
that the debian u-boot-tools package figure this out at installation time and 
do the right thing, so the user doesn’t have to?

Thanks for all the help!
Rick

Reply via email to