See also DEVELOPMENT.md.
Intended usecases:
- Baremetal OS/Firmware development and debugging
- Use it as an executable or a library and programmatically setup virtual machines for total control
- Easy to extend device modelling
- JIT software emulation, no KVM
- 1 core/PE
EL0andEL1Aarch64mode only4KBMMU translation granulepl011UART devicegicv2 interrupt controller- Generic architectural timer
FEAT_AA64parity (WIP)- Devicetrees
- Full GDB support for debugging guest code
- Extensive tracing capabilities (see
--helpoutput for--trace*options)
Planned features:
- Homogeneous multi-core system
16KB/64KBMMU translation granules- VIRTIO devices
EL2/EL3support
Not planned features:
Aarch32- Cycle accuracy
- Big-endian mode, mixed endianness execution, or big-endian hosts
Simply pass a binary file containing aarch64 instructions (Strip ELF files with objcopy -O binary!):
cargo run -- /path/to/aarch64.binSee --help output for all CLI options.