[U-Boot] Bug#897671: u-boot does not work on sheevaplug
drEagle
dreagle at doukki.net
Sun May 6 07:00:40 UTC 2018
Hello all,
Take my apologies for the late activity and also for the mailer I am using, which may disturb the following reading.
> Le 6 mai 2018 à 02:13, Tom Rini <trini at konsulko.com> a écrit :
>
> On Sat, May 05, 2018 at 04:04:08PM -0700, Vagrant Cascadian wrote:
>
>> Hello U-Boot.
>>
>> Markus Krebs discovered that the sheevaplug target has again grown and
>> installation overlaps where the u-boot env is saved since u-boot
>> ~2017.09. Running saveenv overwrites u-boot, and installing u-boot
>> overwrites any prior environment settings.
>>
>> More detail on the bug report in Debian:
>>
>> https://bugs.debian.org/897671
>>
>> We don't carry any patches for the sheevaplug u-boot target in Debian,
>> so this is likely also an issue upstream. Who are the current
>> maintainers for sheevaplug in u-boot upstream?
>>
>> A brief summary of the current findings:
>>
>> On 2018-05-05, Markus Krebs wrote:
>>> Am 05.05.2018 um 20:36 schrieb Markus Krebs:
>>>> Am 05.05.2018 um 20:35 schrieb Martin Michlmayr:
>>>>> * Markus Krebs <Markus.Krebs at web.de> [2018-05-05 20:32]:
>>>>>> I got it. Indeed it has to to with the size of u-boot.
>>>>>
>>>>> Does it boot?
>>>>>
>>>>
>>>> Yes it does.
>>>
>>> ... and no longer so, when I "saveenv" :-(
>>>
>>> I downloaded u-boot via git; I guess that the config for u-boot for
>>> sheevaplug is already broken upstream (in sheevaplug.h):
>>>
>>> #define CONFIG_ENV_SIZE 0x20000 /* 128k */
>>> #define CONFIG_ENV_ADDR 0x80000
>>> #define CONFIG_ENV_OFFSET 0x80000 /* env starts here */
>>>
>>> but the environment shouldn't start at 0x80000 when u-boot.kwb > 524 KB;
>>> in this case 'saveenv' overwrites u-boot (?).
>>> Changing 0x80000 to 0xa0000 helps ; I compiled a u-boot.kwb from the
>>> so-modified sources, and now I can start Debian fine.
>>
>> It looks like it was bumped from 0x60000 to 0x80000 in 2014:
>>
>> http://git.denx.de/?p=u-boot.git;a=commit;h=4dfb0e4d3e75763d6fbe8788316bea9ba23e8e01
>>
>> If 0x80000 isn't enough, there might be some features in the config to
>> experiment with removing, or it may need to be bumped again.
>
> I've added the maintainer to the list as well. I would suggest looking
> for things to trim out, perhaps CMD_MEMTEST ? Also, a patch to make it
> a link error when we exceed the size allowed would be great, so that in
> the future we catch this when it happens. Thanks!
>
>
Take a look to the proposal of patching the env config files to MTD1 and not offsetting from MTD0, which may take a quick fix.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=781874 <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=781874>
> UBOOT ENV offset can be defined in sheevaplug.config in two ways.
> With a global offset as usual defined, but gets read errors if ENV move :
> +/dev/mtd0 0x80000 0x20000 0x20000
> Or, my prefered proposition, which will not need change with future modification of uboot size :
> +/dev/mtd1 0x0 0x20000 0x20000
Take also a look to openwork patches where the size is offset to 0xE0000 on Kirkwood supported boards.
https://github.com/openwrt/openwrt/blob/f21cd9640052a733e1759519e3d7ca0f9453653b/package/boot/uboot-kirkwood/patches/110-dockstar.patch <https://github.com/openwrt/openwrt/blob/f21cd9640052a733e1759519e3d7ca0f9453653b/package/boot/uboot-kirkwood/patches/110-dockstar.patch>
-#define CONFIG_ENV_ADDR 0x80000
-#define CONFIG_ENV_OFFSET 0x80000 /* env starts here */
+#define CONFIG_ENV_OFFSET 0xe0000 /* env starts here */
I remember having a lot of troubles with this and I proposed the two solutions.
Better way will add also a test to get no write at all if overlapping binary, and we will get a robust solution.
GK2
More information about the U-Boot
mailing list