Skip to main content

Crate arm_fvp_base_pac

Crate arm_fvp_base_pac 

Source
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.
  • Peripherals structure 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-sp805 and arm-tzc drivers and common safe-mmio types. 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.

§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-revc
pub 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§

Cci550Mapbase-revc
CCI-550 index assignment of internal components.
MemoryMap
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 Peripherals structure.
Peripherals
FVP peripherals
PhysicalInstance
The physical instance of some device’s MMIO space.
PrivatePeripheralInterrupts
Private Peripheral Interrupt assignments for the Base Platform.
SharedPeripheralInterrupts
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.
UniqueMmioPointer
A unique owned pointer to the registers of some MMIO device.