vmbase: Support 16KiB MMIO_GUARD granule
Now that the MMIO_GUARD sharing/unsharing is decoupled from the page
tables, add support for 16KiB (and possibly beyond) by getting rid of
the hard-coded assumption that MMIO_GUARD happens with 4KiB granularity
by expecting potentially more than one page fault per MMIO_GUARD region
with MMIO lazy mapping.
Address the special case of the UART separately (see comment there).
Remove the now-obsolete hard-coded MMIO_GUARD_GRANULE_SIZE.
Bug: 336563593
Test: m libpvmfw libvmbase_example librialto
Change-Id: I5d8e169d9c2ad022208de3d33f346f5034d13393
diff --git a/vmbase/src/hyp/hypervisor.rs b/vmbase/src/hyp/hypervisor.rs
index dab15ec..1b45f38 100644
--- a/vmbase/src/hyp/hypervisor.rs
+++ b/vmbase/src/hyp/hypervisor.rs
@@ -22,9 +22,7 @@
use super::{Error, Result};
use alloc::boxed::Box;
use common::Hypervisor;
-pub use common::{
- DeviceAssigningHypervisor, MemSharingHypervisor, MmioGuardedHypervisor, MMIO_GUARD_GRANULE_SIZE,
-};
+pub use common::{DeviceAssigningHypervisor, MemSharingHypervisor, MmioGuardedHypervisor};
pub use geniezone::GeniezoneError;
use geniezone::GeniezoneHypervisor;
use gunyah::GunyahHypervisor;
diff --git a/vmbase/src/hyp/hypervisor/common.rs b/vmbase/src/hyp/hypervisor/common.rs
index 1ed0696..de0fe12 100644
--- a/vmbase/src/hyp/hypervisor/common.rs
+++ b/vmbase/src/hyp/hypervisor/common.rs
@@ -14,10 +14,7 @@
//! This module regroups some common traits shared by all the hypervisors.
-use crate::{hyp::Result, memory::SIZE_4KB};
-
-/// Expected MMIO guard granule size, validated during MMIO guard initialization.
-pub const MMIO_GUARD_GRANULE_SIZE: usize = SIZE_4KB;
+use crate::hyp::Result;
/// Trait for the hypervisor.
pub trait Hypervisor {