-
Notifications
You must be signed in to change notification settings - Fork 901
[otlib] QEMU transport GPIO interface #28413
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: earlgrey_1.0.0
Are you sure you want to change the base?
Conversation
cceb1c8
to
8e93c3f
Compare
/// * `I:<value>`: the Inputs to the device's pads are now `<value>`. | ||
/// * `M:<value>`: the inputs are Masked with `<value>`, meaning connected. | ||
/// * `R:00000000`: ask QEMU to Repeat the last `d` and `o` frames (see [`process_frames`]). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe could be clearer?
/// * `I:<value>`: the Inputs to the device's pads are now `<value>`. | |
/// * `M:<value>`: the inputs are Masked with `<value>`, meaning connected. | |
/// * `R:00000000`: ask QEMU to Repeat the last `d` and `o` frames (see [`process_frames`]). | |
/// * `I:<value>`: the inputs to the device's pads are now `<value>`, if driven. | |
/// * `M:<value>`: the inputs are masked with `<value>`, meaning driven/connected. | |
/// * `R:00000000`: ask QEMU to repeat the last `D` and `O` frames (see [`process_frames`]). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You missed some of the last line here (extra spacing, and capitalization).
# If real bootstrapping is requested then prepare the correct command, otherwise we need | ||
# to prepare a QEMU drive containing flash contents. | ||
if param["bootstrap"] and json.decode(param["bootstrap"]): | ||
test_script_fmt |= {"flash": ""} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this maybe still prepare a blank flash image via flashgen, as presumably if we add info page splicing via flashgen in the future we will still want do this? This will also ensure that the flash image flows are the same for bootstrapping vs splicing firmware.
5f3e548
to
8555d22
Compare
Signed-off-by: James Wainwright <[email protected]>
Includes fixes for GPIO over reset and SPI payload uploading. Signed-off-by: James Wainwright <[email protected]>
Signed-off-by: James Wainwright <[email protected]>
Signed-off-by: James Wainwright <[email protected]>
Signed-off-by: James Wainwright <[email protected]>
8555d22
to
de9b601
Compare
|
||
mode: Cell<PinMode>, | ||
|
||
/// Pull mod of the current pin. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/// Pull mod of the current pin. | |
/// Pull mode of the current pin. |
if param["bootstrap"] and json.decode(param["bootstrap"]): | ||
test_script_fmt |= {"flash": ""} | ||
bootstrap_cmd = "bootstrap --clear-uart=true --reset-delay 1000ms {firmware}".format(**param) | ||
param["bootstrap_cmd"] = '--exec="{}"'.format(bootstrap_cmd) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add a fail
if we try to give a bootstrap = True
when using a custom test harness?
Adds an interface to the GPIO block and enables bootstrapping.
Bootstrapping is fairly slow, so I have set up the exec env to skip it by default and load a pre-prepared drive. You can opt in by adding
bootstrap = True
to theqemu_params
or manually bootstrapping in a test harness.Currently blocked on a QEMU change.