fwmanager: Borrow the GPIO port in GpioBootMonitor

Owning the port swallowed a whole GPIO bank per monitor, making a
second monitor on the same bank impossible. On the AST1060 SGPIOM a
bank packs 32 unrelated lines, so distinct devices' ready signals
routinely share one bank by construction.

The monitor only reads (read_input takes &self), so hold &'a P instead:
several monitors can now watch different lines of the same bank, with
platform configuration keeping the bank alive for as long as its
monitors. Also note in the adapter docs that a single ready line only
ever yields the Booting/Booted subset of BootStatus.

Addresses review feedback on PR #368.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Christina Quast <christina.quast@9elements.com>
1 file changed
tree: 1c2d33f17cea8c4ff365c5a9051467fe623a0392
  1. .github/
  2. docs/
  3. drivers/
  4. hal/
  5. openprot/
  6. platform/
  7. presubmit/
  8. services/
  9. target/
  10. third_party/
  11. tools/
  12. util/
  13. .bazelignore
  14. .bazelrc
  15. .bazelversion
  16. .clang-format
  17. .gitignore
  18. .semgrepignore
  19. BUILD.bazel
  20. CONTRIBUTING.md
  21. LICENSE
  22. MODULE.bazel
  23. MODULE.bazel.lock
  24. pw
  25. README.md
  26. rust-toolchain.toml
  27. workflows.json
README.md

OpenPRoT

Technical Charter

The OpenPRoT Technical Charter can be found at https://github.com/OpenPRoT/.github/blob/main/GOVERNANCE.md

Getting Started

NOTE: We are converting our build system to bazel. We recommend installing bazelisk to automatically manage bazel versions.

Available Tasks

You can run tasks using the Pigweed workflow launcher pw or bazel.

  • ./pw presubmit - Run presubmit checks: formatting, license checks, C/C++ header checks and clippy.
  • ./pw format - Run the code formatters.
  • bazel test //... - Run all tests.
  • bazel build //docs - Build documentation.

Development

The project is structured as a bazel module.

Requirements

  • Bazel. We recommend installing bazelisk to automatically manage bazel versions.

No additional tools are required - all dependencies are managed by bazel.