Runtime Ownership Validation Inputs (Cross-Repo)
This document defines the minimum data contract required for runtime duplicate-ownership validation.
Problem
When multiple providers share one Linux I2C bus, duplicate ownership of the same address must be rejected at startup.
Required provider-emitted tags
Every discovered/configured hardware device exposed by a provider must include:
hw.bus_path(example:/dev/i2c-1)hw.i2c_address(canonical hex string, example:0x61)
Compatibility aliases (transitional)
Providers may also emit legacy aliases bus_path and i2c_address for downstream compatibility. Runtime ownership validation must use the canonical hw.* tags.
Canonical formatting rules
hw.bus_pathis the exact configured path string.hw.i2c_addressmust be lowercase hex prefixed with0x, zero-padded to two hex digits (0x08..0x77).
Runtime validator behavior
- Build ownership key
(hw.bus_path, hw.i2c_address)for every discovered device across all providers. - If any key has more than one owner, runtime startup fails fast.
- Runtime error output must include:
- provider name
- device id
- bus path
- address
Scope
- This contract is required for
anolis-provider-ezoandanolis-provider-bread. - Validation lives in
anolisruntime.
