labgrid-project / labgrid-project/labgrid

BareboxDriver and (Small)UBootDriver: does not handle hex interrupt arguments (such as Ctrl-C) properly

Open
#1,622 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
528
Forks
278
Avg merge
2d 19h
Merged PRs (30d)
4

Description

In the BareboxDriver, UBootDriver, and SmallUBootDriver, the option sent to the bootloader to interrupt boot loading is done with some form of:

self.console.write(interrupstring.encode('ASCII'))

According to the documentation

use \x03 for CTRL-C
or
use “\x03” for CTRL-C

Neither of these work.

After using labgrid-client -vv I see the following is written to the console

CONSOLE SerialLogger.ma:   SerialDriver(main) > \x03␍␤
DEBUG   SerialDriver(ma:   Write 4 bytes: b'\\x03'

or

CONSOLE SerialLogger.ma:   SerialDriver(main) > \\x03␍␤
DEBUG   SerialDriver(ma:   Write 5 bytes: b'\\\\x03'

Neither of which is correct and causing the boot loader not to be interrupted.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Search the BareboxDriver, UBootDriver, and SmallUBootDriver implementations for the boot-interrupt option and inspect the console write path. Reproduce the issue with labgrid-client -vv, then verify that the documented Ctrl-C escape is written as the intended single interrupt byte and interrupts boot loading.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.