[BUG] sandbox: './u-boot -l ' fails

Heinrich Schuchardt xypron.glpk at gmx.de
Mon Sep 28 13:31:28 CEST 2020


On 28.09.20 06:46, Heinrich Schuchardt wrote:
> Am 28. September 2020 06:24:38 MESZ schrieb Simon Glass <sjg at chromium.org>:
>> Hi Heinrich,
>>
>> On Sat, 19 Sep 2020 at 13:48, Heinrich Schuchardt <xypron.glpk at gmx.de>
>> wrote:
>>>
>>> Hello Simon,
>>>
>>> when I try to run ./u-boot -l the sandbox stalls. Shouldn't it run
>> out
>>> of the box?
>>>
>>> $ ./u-boot -l -d arch/sandbox/dts/sandbox.dtb
>>
>> For the record you should be able to use -D to get the same effect as
>> your -d above.
>>
>>>
>>> U-Boot 2020.10-rc4-00018-g21a10244f9-dirty (Sep 19 2020 - 19:55:39
>> +0200)
>>>
>>> Model: sandbox
>>> DRAM:  128 MiB
>>>
>>> Warning: host_lo MAC addresses don't match:
>>> Address in ROM is               26:4b:ca:6c:98:f4
>>> Address in environment is       00:00:11:22:33:44
>>>
>>> Warning: host_virbr0 MAC addresses don't match:
>>> Address in ROM is               ee:3e:c9:ce:1f:9c
>>> Address in environment is       00:00:11:22:33:45
>>>
>>> Warning: host_docker0 MAC addresses don't match:
>>> Address in ROM is               c2:85:07:7b:9a:18
>>> Address in environment is       00:00:11:22:33:46
>>> WDT:   Not found!
>>> MMC:
>>>
>>> No output after this point.
>>>
>>> The problem also exists with U-Boot v2020.07, v2019.10, v2018.11.
>>>
>>> CONFIG_SANDBOX_SDL=y
>>>
>>> SDL_InitSubSystem() never returns. It is looping somewhere in
>> U-Boot's
>>> __serial_getc(). I wonder how it gets there without returning from
>> the
>>> function.
>>>
>>> I compiled SDL2.cpp from
>>> https://gist.github.com/miguelmartin75/6946310#file-sdl2-cpp-L18
>>> with
>>>
>>> g++ SDL2.cpp -D_REENTRANT -I/usr/include/SDL2 -lSDL2 -lGL -o test
>>>
>>> and it runs fine showing an X11 windows with red background.
>>>
>>> So there seems to be no general problem with the SDL2 library.
>>
>> I hit this myself on another computer and it turned out to be that SDL
>> defined getc(), as does U-Boot, and things get confused. At least I
>> think it is getc.
>>
>> I hacked around with changing the name of getc (I think it was getc)
>> in U-Boot and the problem went away.
>
> Should we include a patched SDL2 with U-Boot for static linking?
>

I cannot find a symbol getc() nor a reference to it in the SDL
repository. getc() is defined in stdio.h.

Our getc() takes no argument, while the stdio one wants a FILE *.

But changing the U-Boot definition to "int getc(void *)" does not solve
the issue.

Best regards

Heinrich


More information about the U-Boot mailing list