[pvmfw][rialto] Refactor and reuse console_uart_range()

This cl:

- Extracts console_uart_range() into a function and moves it to vmbase.
  There is no behavior change for pvmfw.
- Allocates device memory for UART range in rialto.

Bug: 284462758
Test: m pvmfw_img && atest rialto_test
Change-Id: I7f38e7c91869692ed535d00d62713f5be6b8f8ab
diff --git a/pvmfw/src/entry.rs b/pvmfw/src/entry.rs
index 08f076b..8cdd0f5 100644
--- a/pvmfw/src/entry.rs
+++ b/pvmfw/src/entry.rs
@@ -207,18 +207,10 @@
     // script prevents it from overlapping with other objects.
     let appended_data = unsafe { get_appended_data_slice() };
 
-    let mut page_table = memory::init_page_table().map_err(|e| {
+    let page_table = memory::init_page_table().map_err(|e| {
         error!("Failed to set up the dynamic page tables: {e}");
         RebootReason::InternalError
     })?;
-
-    const CONSOLE_LEN: usize = 1; // vmbase::uart::Uart only uses one u8 register.
-    let uart_range = console::BASE_ADDRESS..(console::BASE_ADDRESS + CONSOLE_LEN);
-    page_table.map_device(&uart_range).map_err(|e| {
-        error!("Failed to remap the UART as a dynamic page table entry: {e}");
-        RebootReason::InternalError
-    })?;
-
     // SAFETY - We only get the appended payload from here, once. It is statically mapped and the
     // linker script prevents it from overlapping with other objects.
     let mut appended = unsafe { AppendedPayload::new(appended_data) }.ok_or_else(|| {
diff --git a/pvmfw/src/memory.rs b/pvmfw/src/memory.rs
index d4e548b..f4fc3b1 100644
--- a/pvmfw/src/memory.rs
+++ b/pvmfw/src/memory.rs
@@ -640,6 +640,9 @@
     page_table.map_code(&layout::text_range())?;
     page_table.map_rodata(&layout::rodata_range())?;
     page_table.map_data_dbm(&appended_payload_range())?;
-
+    if let Err(e) = page_table.map_device(&layout::console_uart_range()) {
+        error!("Failed to remap the UART as a dynamic page table entry: {e}");
+        return Err(e);
+    }
     Ok(page_table)
 }