Expand description
§Arm Base Fixed Virtual Platform Peripheral Access Crate
This crate provides peripheral access for the Arm Fixed Virtual Platform, specifically for the Base platform FVPs.
The implementation is based on Fast Models Fixed Virtual Platforms Reference Guide Revision: 11.28 and Fast Models Reference Guide Revision: 11.28.
§Implemented features
- Memory map description.
Peripheralsstructure for obtaining individual peripherals while maintaining ownership.- FVP power controller driver
- FVP system peripheral driver
- Re-exporting
arm-cci,arm-generic-timer,arm-gic,arm-pl011-uart,arm-sp805andarm-tzcdrivers and commonsafe-mmiotypes. This enables projects to use these peripherals without adding these crates as explicit dependencies to the project. This also prevents having driver version conflicts in the project.
§Feature flags
base-revc: Enables the Base Platform RevC-only MMIO regions and interrupt assignments.base-r: Selects a BaseR Platform compatible memory map, by swapping the first two 2 GiB blocks of address space.el1: Enables system register based GIC and Timers features which relies on EL1 system registers.el2: Enables system register based GIC and Timers features which relies on EL2 system registers.el3: Enables system register based GIC and Timers features which relies on EL3 system registers.fakes: Accesses fake system registers rather than the real ones in GIC and Generic Timer drivers, for running tests on the host.
§Limitations
- Not all peripherals are handled yet.
§License
The project is MIT and Apache-2.0 dual licensed, see LICENSE-APACHE and LICENSE-MIT.
§Maintainers
arm-fvp-base-pac 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
- Imre Kis imre.kis@arm.com imre-kis-arm
- Sandrine Afsa sandrine.afsa@arm.com sandrine-bailleux-arm
§Contributing
Please follow the directions of the Trusted Firmware Processes.
Contributions are handled through review.trustedfirmware.org.
§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, in accordance with the Arm Trademark Use Guidelines.
Subsequent uses of these trademarks throughout this repository do not need to be prefixed with the Arm word trademark.
Copyright The arm-fvp-base-pac Contributors.
Arm is a registered trademark of Arm Limited (or its subsidiaries or affiliates).
Re-exports§
pub use arm_cci;base-revcpub use arm_generic_timer;pub use arm_gic;pub use arm_pl011_uart;pub use arm_sp805;pub use arm_tzc;
Modules§
- power_
controller - FVP Power Controller driver.
- system
- FVP System Peripheral driver implementation.
Structs§
- Cci550
Map base-revc - CCI-550 index assignment of internal components.
- Memory
Map - Memory map based on ‘Table 6-5: Base Platform memory map’ of ‘Fast Models Version 11.28
Reference Guide’. The ranges for normal memory regions are public, however the peripheral
regions are private and they should be accessed through the
Peripheralsstructure. - Peripherals
- FVP peripherals
- Physical
Instance - The physical instance of some device’s MMIO space.
- Private
Peripheral Interrupts - Private Peripheral Interrupt assignments for the Base Platform.
- Shared
Peripheral Interrupts - Shared Peripheral Interrupt assignments for the Base Platform.
- TzcFilter
- Filter unit assignment in the TrustZone Controller.
- TzcNsaid
- Non-Secure Access Identity (NSAID) assignment in the TrustZone Controller.
- Unique
Mmio Pointer - A unique owned pointer to the registers of some MMIO device.