Cargo Features
[dependencies]
utralib = { version = "0.1.25", default-features = false, features = ["std", "precursor-perflib", "precursor-dvt", "precursor-pvt", "precursor", "hosted", "renode", "atsama5d27", "cramium-soc", "cramium-fpga"] }
UTRA pre-generated version tracker
- std
-
Affects
cramium_fpga::AtomicCsr
,cramium_soc::AtomicCsr
,precursor_pvt::AtomicCsr
,renode::AtomicCsr
… - precursor-perflib
-
This specifies the SVD rev for platform targets
Precursor is an FPGA, so the actual hardware register spec can change over time,
hence the gitrev is specified as part of the precursor feature spec. We specify every gitrev that we may need to refer back to, so that we're not trying to map utralib version numbers to precursor soc revs -- by having the gitrev exposed,
we can directly look up what generated the SVD file we're using without having to go through some manually maintained lookup table of version # to gitrev.
SoCs in custom silicon would typically not need the gitrev, since their hardware is immutable.
Maintainer note: add checks in build.rs to ensure only one is selected. - precursor-dvt
- precursor-pvt
-
based on 2020.08 litex, v0.9.11 tag
- precursor
-
The SVD gitrev as specified above is only invoked to track fine-grained changes between target revisions. Below is the overall target switch,
which is the preferred mechanism for isolating target-specific code.
These features are mutually exclusive. Maintainers should update the checks inside build.rs to ensure consistency. - hosted default
- renode
- atsama5d27
-
ATSAMA5D27 ARMv7A SoC
- cramium-soc
-
Cramium SoC & FPGA model
- cramium-fpga
- default = hosted
-
Specify a Precusor default so that we can pass packaging CI tests.
Features from optional dependencies
Dependency versions enforced by Cargo.lock.