Hi Daniel, Tom,

On 8/15/25 6:12 PM, Tom Rini wrote:
On Fri, Aug 15, 2025 at 09:06:35AM -0700, Daniel Schultz wrote:

Some commands include the U-Boot prompt (=>) in their output,
which can interfere with tools like labgrid that rely on prompt
detection to determine when a command has completed. This may cause
such tools to misinterpret partial output.

To avoid this issue, it's better to update the command output itself
rather than modifying the actual U-Boot prompt. Changing the prompt
is not acceptable in many cases, as some boards have used the default
prompt (=>) for years, and altering it - especially just for testing -
could lead to inconsistencies or unintended side effects.
Instead, replace instances of the prompt that appear within command
output (not the real prompt) with an alternative like -> to ensure
correct parsing by tools that rely on prompt recognition.

Signed-off-by: Daniel Schultz <d.schu...@phytec.de>
---
  cmd/i2c.c      |  2 +-
  cmd/mtdparts.c | 12 ++++++------
  common/hash.c  |  6 +++---
  3 files changed, 10 insertions(+), 10 deletions(-)

This is two cases, and I'm not sure I like the proposal here, sorry. For
cmd/mtdparts.c, it's debug statements. We can change them, but are they
also enabled by default in anything? The other cases, we're changing
output along the lines of:

-       printf ("CRC32 for %08lx ... %08lx ==> ", addr, addr + count - 1);
+       printf("CRC32 for %08lx ... %08lx --> ", addr, addr + count - 1);

In each case, and I'm surprised there's not testing that globs on that
today. I see the wget case that uses "==>" and we do have a test that
checks it, today. Is your testing framework not able to handle "=>" in
the middle of a line? Thanks.


In the case of labgrid, I assume this should be possible.

c.f. https://labgrid.readthedocs.io/en/latest/configuration.html#ubootdriver

Arguments:

        prompt (regex, default=””): U-Boot prompt to match

I assume you just want to be using

UBootDriver:
  prompt: '^=> '

instead of simply using '=> ' ?

While SYS_PROMPT defaults to => for anything but the Zynq architecture, it can be set from defconfigs as well and look what we have here:

configs/brcp150_defconfig
63:CONFIG_SYS_PROMPT="-> "

configs/brcp170_defconfig
62:CONFIG_SYS_PROMPT="-> "

configs/brcp1_1r_defconfig
62:CONFIG_SYS_PROMPT="-> "

configs/brcp1_1r_switch_defconfig
62:CONFIG_SYS_PROMPT="-> "

configs/brcp1_2r_defconfig
62:CONFIG_SYS_PROMPT="-> "

configs/brsmarc2_defconfig
62:CONFIG_SYS_PROMPT="-> "

So now we would be breaking those users instead. I'm not sure it's a good idea for U-Boot to do this, we'll never find a way to have the prompt never repeated in log messages for all supported platforms. You can always fix those in your own fork if you want though. But I fear this will be the beginning of an endless loop of revert commits because it broke one's CI.

Cheers,
Quentin

Reply via email to