Enable I2C via IPC port of AST test on AST1060

This fixes some issues on the openprot side of things to enable
the ASpeed I2C test to run on Pigweed, sending requests over IPC
to the I2C server.

The test makes a few assumptions about the hardware setup:
- Using an ASpeed PRoT fixture with two devices
- The JTAG equipped unit running openprot
- The other runninng a reference build of Zephyr

Configure the build of Zephyr to simulate an eeprom on i2c address 0x42, this will satisfy the test. Connect I2C2 between the devices.

* Added a testing doc, should replace README.md with it at some point
* Significant updates to  uart_test_exec.py to add more features and bugfixes.
* Replace default() with with_static_clocks()
* Fixed the target bus to match hardware config across the project.
* Added memory mappings to the i2c server so that it had permission to touch necessary registers
* Removed semihosting as it was causing misleading faults at the end of the tests.

A change not included here is in pigweed itself, in pw_kernel/arch/arm_cortex_m/protection_v7.rs:

            MemoryRegionType::Device => (
                /* xn */ true,
                /* tex */ 0b000, // Device memory
                /* s */ true,
                /* c */ false,
                /* b */ true,
-               RasrAp::RoAny,
+               RasrAp::RwAny,
            ),

This is required to allow writes to the registers.
9 files changed
tree: 48d2c596cd4ab53e2245fa385bfcb22fde16c615
  1. .github/
  2. apps/
  3. docs/
  4. hal/
  5. openprot/
  6. patches/
  7. platform/
  8. presubmit/
  9. services/
  10. signing/
  11. target/
  12. third_party/
  13. tooling/
  14. .bazelignore
  15. .bazelrc
  16. .bazelversion
  17. .clang-format
  18. .gitignore
  19. .semgrepignore
  20. BUILD.bazel
  21. LICENSE
  22. MODULE.bazel
  23. MODULE.bazel.lock
  24. out-of-tree.md
  25. pw
  26. README.md
  27. rust-toolchain.toml
  28. 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.