Setting up test.py for a platform with 2 U-Boots?

Stephen Warren swarren at wwwdotorg.org
Fri May 8 01:17:15 CEST 2020


On 5/7/20 12:48 PM, Tom Rini wrote:
> Hey,
> 
> So I'm trying to enable our test.py framework on am65x_evm_r5 +
> am65x_evm_a53.  The short version is this platform has an R5 core that
> sets things up and fires off the A53 cores.  So there's two U-Boots and
> the console log looks like this (I used SOURCE_DATE_EPOCH to give both
> binaries the same timestamp):
...
> And that's even with:
> env__spl_skipped = True
> in u_boot_boardenv_am65x_evm_a53_na.py for the platform.  Any ideas on what to
> do here?  I even tried turning off serial support in the R5 side of things, but
> it still failed.  Thanks!

It's odd that disabling serial support on the R5 didn't fix this; are
you sure that patch actually prevented the serial output from appearing,
and the board still booted without issue?

Anyway, u_boot_console_base.py:ConsoleBase:ensure_spawned() does roughly
this:

if SPL will print signon message:
    Wait for SPL signon message
Wait for main U-Boot signon message

Maybe we need to expand that to a loop that iterates over a list of
signon messages, with the default list value being either [spl, main] or
[main] as configured by the current logic, but if the env file provides
an alternate list, that's used instead, e.g. [spl, main, spl, main] (or
whatever)?

e.g. very roughly:

msgs = self.config.env.get('env__boot_signon_msgs')
if msgs:
    signons = parse(msgs)
else if spl:
    signons = [spl, main]
else:
    signons = [main]
for signon in signons:
    self.p.expect(signon)


More information about the U-Boot mailing list