From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heinrich Schuchardt Date: Mon, 28 Sep 2020 13:31:28 +0200 Subject: [BUG] sandbox: './u-boot -l ' fails In-Reply-To: References: Message-ID: <6fbb0eda-94ff-b8de-4c63-f4a8336ed0ce@gmx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 28.09.20 06:46, Heinrich Schuchardt wrote: > Am 28. September 2020 06:24:38 MESZ schrieb Simon Glass : >> Hi Heinrich, >> >> On Sat, 19 Sep 2020 at 13:48, Heinrich Schuchardt >> 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