[U-Boot] qemu and u-boot-console and other ports?
Stephen Warren
swarren at wwwdotorg.org
Fri Dec 2 19:03:00 CET 2016
On 12/02/2016 07:40 AM, Tom Rini wrote:
> Hey,
>
> I'm trying to debug adding sh4 and r2dplus support to test.py. Until my
> current round of testing is applied you'll need
> http://patchwork.ozlabs.org/bundle/trini/fix-sh4-support-v2/ in order
> for us to get a functional U-Boot. After that, I have a "normal" conf
> file for the board for QEMU that looks like:
> console_impl=qemu
> qemu_machine="r2d"
> qemu_binary="qemu-system-sh4"
> qemu_extra_args="-nographic -serial null -serial mon:stdio"
> qemu_kernel_args="-kernel ${U_BOOT_BUILD_DIR}/u-boot.bin"
> reset_impl=none
> flash_impl=none
>
> And here's where things get funny. When I kick off test.py with --bd
> r2dplus --id qemu --build -s -k sleep it will build and launch the board
> and since I have -s I can see stdio and I see U-Boot come up and give me
> the prompt, and then test.py says it times out waiting for the prompt.
> Any ideas where to poke next? I want to say something is funny with
> respect to what we see and where we see it (in terms of pipes) due to
> having to say -serial null -serial mon:stdio so that we see port #2 on
> the "board" rather than port #1 as this is the port that U-Boot and
> Linux use by default. Thanks!
Does "-serial null -serial mon:stdio" cause qemu to re-open file
descriptors rather than just using stdout directly, or something like
that? If so, perhaps its output is getting into the overall script's
stdout (e.g. your terminal/console?) rather than the pipe that test/py
is reading. If so, you'd see the qemu output but test/py wouldn't.
I think you can test this assumption by removing the -s option. If you
still see qemu output, then qemu is sending it directly to wherever the
overall stdout is going. If you no longer see qemu's output, then
test/py must be reading it and only echo'ing it due to the -s option,
and so you'd have to look somewhere else.
Is test/py waiting for the exact prompt that U-Boot is actually emitting?
In the past I've debugged such things by editing test/py/u_boot_spawn.py
expect() to print some debug spew; I made it dump the current unmatched
buffer content and the strings/regexes it was waiting for.
More information about the U-Boot
mailing list