Handle 16k and 64k translation granules
Enable Xlat to handle 16k and 64k translation granules along different
VA bit counts.
Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: Iab4fe066e813d5b75a5a6d45ba8498867cc5c541
diff --git a/src/kernel_space.rs b/src/kernel_space.rs
index d0be315..34433ff 100644
--- a/src/kernel_space.rs
+++ b/src/kernel_space.rs
@@ -11,12 +11,12 @@
use super::{
address::{PhysicalAddress, VirtualAddress, VirtualAddressRange},
page_pool::{Page, PagePool},
- MemoryAccessRights, RegimeVaRange, TranslationRegime, Xlat, XlatError,
+ MemoryAccessRights, RegimeVaRange, TranslationGranule, TranslationRegime, Xlat, XlatError,
};
#[derive(Clone)]
pub struct KernelSpace {
- xlat: Arc<Mutex<Xlat>>,
+ xlat: Arc<Mutex<Xlat<36>>>,
}
/// # Kernel space memory mapping
@@ -39,6 +39,7 @@
page_pool,
unsafe { VirtualAddressRange::from_range(0x0000_0000..0x10_0000_0000) },
TranslationRegime::EL1_0(RegimeVaRange::Upper, 0),
+ TranslationGranule::Granule4k,
))),
}
}