|
|
|
@ -1101,6 +1101,39 @@ diff -uNr 12_cpu_exceptions_part1/src/bsp/driver/bcm/bcm2xxx_pl011_uart.rs 13_in
|
|
|
|
|
// PL011 UART registers.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
diff -uNr 12_cpu_exceptions_part1/src/bsp/rpi/virt_mem_layout.rs 13_integrated_testing/src/bsp/rpi/virt_mem_layout.rs
|
|
|
|
|
--- 12_cpu_exceptions_part1/src/bsp/rpi/virt_mem_layout.rs
|
|
|
|
|
+++ 13_integrated_testing/src/bsp/rpi/virt_mem_layout.rs
|
|
|
|
|
@@ -67,3 +67,28 @@
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
+
|
|
|
|
|
+//--------------------------------------------------------------------------------------------------
|
|
|
|
|
+// Testing
|
|
|
|
|
+//--------------------------------------------------------------------------------------------------
|
|
|
|
|
+
|
|
|
|
|
+#[cfg(test)]
|
|
|
|
|
+mod tests {
|
|
|
|
|
+ use super::*;
|
|
|
|
|
+ use test_macros::kernel_test;
|
|
|
|
|
+
|
|
|
|
|
+ /// Check 64 KiB alignment of the kernel's virtual memory layout sections.
|
|
|
|
|
+ #[kernel_test]
|
|
|
|
|
+ fn virt_mem_layout_sections_are_64KiB_aligned() {
|
|
|
|
|
+ const SIXTYFOUR_KIB: usize = 65536;
|
|
|
|
|
+
|
|
|
|
|
+ for i in LAYOUT.inner().iter() {
|
|
|
|
|
+ let start: usize = *(i.virtual_range)().start();
|
|
|
|
|
+ let end: usize = *(i.virtual_range)().end() + 1;
|
|
|
|
|
+
|
|
|
|
|
+ assert_eq!(start modulo SIXTYFOUR_KIB, 0);
|
|
|
|
|
+ assert_eq!(end modulo SIXTYFOUR_KIB, 0);
|
|
|
|
|
+ assert!(end >= start);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
diff -uNr 12_cpu_exceptions_part1/src/bsp/rpi.rs 13_integrated_testing/src/bsp/rpi.rs
|
|
|
|
|
--- 12_cpu_exceptions_part1/src/bsp/rpi.rs
|
|
|
|
|
+++ 13_integrated_testing/src/bsp/rpi.rs
|
|
|
|
|