Skip to content

Add boot reset control#352

Closed
chrysh wants to merge 4 commits into
OpenPRoT:mainfrom
9elements:add-boot-reset-control
Closed

Add boot reset control#352
chrysh wants to merge 4 commits into
OpenPRoT:mainfrom
9elements:add-boot-reset-control

Conversation

@chrysh

@chrysh chrysh commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

This commit adds the fwmanager service and the BootControl trait to the lib.rs

Furthermore, it renames Monitor to SpiMonitor, so that adding the BootMonitor trait later.

chrysh added 2 commits July 16, 2026 11:07
The board-level monitor module orchestrates the SPI monitor (SPIPF) and
SCU mux control for SPI flash protection. Rename the file monitor.rs ->
spi_monitor.rs and the struct Ast1060Monitor -> Ast1060SpiMonitor, and
update the module path/re-export in lib.rs and the srcs list in
BUILD.bazel, to reflect that it is specifically an SPI monitor.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Christina Quast <christina.quast@9elements.com>
Disambiguate the SPI monitor API from an upcoming BootMonitor subsystem
so the two never collide. Rename in the spimonitor crate:

  Monitor (trait) -> SpiMonitorControl
  MonitorInstance -> SpiMonitorId   (avoids clash with scu::SpiMonitorInstance)
  MonitorStatus   -> SpiMonitorStatus
  MonitorState    -> SpiMonitorState
  MonitorPolicy   -> SpiMonitorPolicy

The SpimWiringError::Monitor and SpiMonitorError::MonitorNotFound enum
variants are left as-is; they are namespaced by their enum and cannot
collide. Update the board impl accordingly.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Christina Quast <christina.quast@9elements.com>
@linux-foundation-easycla

linux-foundation-easycla Bot commented Jul 16, 2026

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

Introduce the Boot Orchestrator's actuation capability: the BootControl
trait (hold_in_reset / release) and HalBootControl, which binds one HAL
ResetControl line to a managed device. Includes a host unit test verifying
that holding a device in reset asserts exactly its configured line.

Includes tests that release deasserts the device's configured line and that a
controller error surfaces through BootControl unchanged. Extend the fake
reset controller with opt-in failure injection to drive the error case.

Closes: #2

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Christina Quast <christina.quast@9elements.com>
@chrysh
chrysh force-pushed the add-boot-reset-control branch from effb8f8 to 79135e1 Compare July 16, 2026 13:21
@leongross leongross linked an issue Jul 16, 2026 that may be closed by this pull request
@chrysh
chrysh marked this pull request as ready for review July 16, 2026 13:28
@leongross
leongross force-pushed the add-boot-reset-control branch from 79135e1 to d79b0cf Compare July 16, 2026 15:25

@leongross leongross Jul 16, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should keep the overall structure of this code base in mind. The firmware manager will have APIs for several components, so maybe we should encapsulate this code into a separate module, such as boot_control.rs and keep use lib.rs as top level importer for the other modules to come? For reference see structure of mctp service: services/mctp/api/src/

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I also noticed that, thanks!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved it in the latest commit.

Move the BootControl trait and HalBootControl out of lib.rs into
boot_control.rs, so that public lib.rs API stays flat
(fwmanager_api::BootControl, ::HalBootControl). Pure move, no code
change; the same BootControl host tests pass.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Christina Quast <christina.quast@9elements.com>
(cherry picked from commit 68665407fda86b98657e645bc8dda2e96f85ae0d)
Signed-off-by: Christina Quast <christina.quast@9elements.com>
@chrysh
chrysh force-pushed the add-boot-reset-control branch from d79b0cf to 54e2764 Compare July 16, 2026 17:04
@chrysh

chrysh commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

I split it into two separate PRs, first one being: #355

@chrysh chrysh closed this Jul 17, 2026
@chrysh
chrysh deleted the add-boot-reset-control branch July 17, 2026 10:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Downstream device reset/boot control signaling

2 participants