vmbase: Map .bss, .data, & stack separately
Map the "scratch" (.data & .bss) and stack regions separately to allow
them to be placed in non-contiguous regions.
Note: No functional change intended.
Test: atest vmbase_example.integration_test
Test: atest rialto_test
Test: atest MicrodroidTests
Change-Id: I6c3f8e4957e39e1c966a219149b253360782ba8e
diff --git a/rialto/src/main.rs b/rialto/src/main.rs
index 3398d50..6b87e01 100644
--- a/rialto/src/main.rs
+++ b/rialto/src/main.rs
@@ -81,18 +81,21 @@
let reg_dev = MemoryRegion::new(0, SZ_1G);
let reg_text = into_memreg(&layout::text_range());
let reg_rodata = into_memreg(&layout::rodata_range());
- let reg_data = into_memreg(&layout::writable_region());
+ let reg_scratch = into_memreg(&layout::scratch_range());
+ let reg_stack = into_memreg(&layout::boot_stack_range());
debug!("Preparing kernel page table.");
debug!(" dev: {}-{}", reg_dev.start(), reg_dev.end());
debug!(" text: {}-{}", reg_text.start(), reg_text.end());
debug!(" rodata: {}-{}", reg_rodata.start(), reg_rodata.end());
- debug!(" data: {}-{}", reg_data.start(), reg_data.end());
+ debug!(" scratch:{}-{}", reg_scratch.start(), reg_scratch.end());
+ debug!(" stack: {}-{}", reg_stack.start(), reg_stack.end());
pgt.map_range(®_dev, PROT_DEV)?;
pgt.map_range(®_text, PROT_RX)?;
pgt.map_range(®_rodata, PROT_RO)?;
- pgt.map_range(®_data, PROT_RW)?;
+ pgt.map_range(®_scratch, PROT_RW)?;
+ pgt.map_range(®_stack, PROT_RW)?;
pgt.activate();
info!("Activated kernel page table.");