dev-arm: Implement a SMMUv3 model
This is an implementation of the SMMUv3 architecture.
What can it do?
- Single-stage and nested translation with 4k or 64k granule. 16k would
be straightforward to add.
- Large pages are supported.
- Works with any gem5 device as long as it is issuing packets with a
What it can't do?
- Fragment stage 1 page when the underlying stage 2 page is smaller. S1
page size > S2 page size is not supported
- Invalidations take zero time. This wouldn't be hard to fix.
- Checkpointing is not supported
- Stall/resume for faulting transactions is not supported
- Michiel W. van Tol <Michiel.VanTol@arm.com>
- Giacomo Travaglini <email@example.com>
Signed-off-by: Giacomo Travaglini <firstname.lastname@example.org>
Reviewed-by: Andreas Sandberg <email@example.com>
Maintainer: Andreas Sandberg <firstname.lastname@example.org>
Tested-by: kokoro <email@example.com>
22 files changed