# Arm TrustZone Address Space Controller driver
Driver implementation for the [TZC-400 TrustZone Address Space Controller](https://developer.arm.com/documentation/ddi0504/latest).
The driver is designed to function regardless of whether a Memory Management Unit (MMU) is present.
The primary role of the `OwnedMmioPointer` is to manage the lifetime of the peripheral, ensuring
proper resource handling. In a system that includes an MMU, the peripheral's lifetime is dynamic
because it is mapped into memory rather than having a fixed address. In a system without an MMU, the
`OwnedMmioPointer` can be instantiated directly from the physical address of the register block,
providing access to the peripheral without requiring memory mapping.
## Implemented features
- Reading the TZC configuration and status
- Managing regions and setting up secure and/or non-secure access rights
- Non-blocking read/write functions
- Reading, masking and clearing interrupts
- 100% unit test coverage
## Future plans
- Use the `AID_WIDTH` configuration value to manipulate the `FailIDRegister`.
## License
The project is MIT and Apache-2.0 dual licensed, see `LICENSE-Apache-2.0` and `LICENSE-MIT`.
## Maintainers
arm-tzc is a trustedfirmware.org maintained project. All contributions are ultimately merged by the maintainers
listed below.
- Bálint Dobszay <balint.dobszay@arm.com>
[balint-dobszay-arm](https://github.com/balint-dobszay-arm)
- Imre Kis <imre.kis@arm.com>
[imre-kis-arm](https://github.com/imre-kis-arm)
- Sandrine Afsa <sandrine.afsa@arm.com>
[sandrine-bailleux-arm](https://github.com/sandrine-bailleux-arm)
## Contributing
Please follow the directions of the [Trusted Firmware Processes](https://trusted-firmware-docs.readthedocs.io/en/latest/generic_processes/index.html)
Contributions are handled through [review.trustedfirmware.org](https://review.trustedfirmware.org/q/project:arm-firmware-crates/arm-tzc).
## Arm trademark notice
Arm is a registered trademark of Arm Limited (or its subsidiaries or affiliates).
This project uses some of the Arm product, service or technology trademarks, as listed in the
[Trademark List][1], in accordance with the [Arm Trademark Use Guidelines][2].
Subsequent uses of these trademarks throughout this repository do not need to be prefixed with the
Arm word trademark.
[1]: https://www.arm.com/company/policies/trademarks/arm-trademark-list
[2]: https://www.arm.com/company/policies/trademarks/guidelines-trademarks
--------------
*Copyright The arm-tzc Contributors.*