arm-tzc 0.2.0

Arm TrustZone Address Space Controller
Documentation
# 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.*