[PATCH] bsps/aarch64: Enable MMU during remaps

Kinsey Moore kinsey.moore at oarcorp.com
Mon Apr 17 22:09:36 UTC 2023


The MMU must be enabled during mapping changes and TLB invalidations.
When this is not the case, TLB updates do not occur correctly in all
cases. This is especially apparent when changing a block entry to a
table entry when remapping small memory ranges in an otherwise
contiguous block.
---
 bsps/aarch64/shared/mmu/vmsav8-64.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/bsps/aarch64/shared/mmu/vmsav8-64.c b/bsps/aarch64/shared/mmu/vmsav8-64.c
index 270b9319ad..39173c2fc6 100644
--- a/bsps/aarch64/shared/mmu/vmsav8-64.c
+++ b/bsps/aarch64/shared/mmu/vmsav8-64.c
@@ -57,7 +57,6 @@ rtems_status_code aarch64_mmu_map(
   /* Disable interrupts so they don't run while the MMU is disabled */
   _ISR_Local_disable( level );
 
-  aarch64_mmu_disable();
   sc = aarch64_mmu_map_block(
     (uint64_t *) bsp_translation_table_base,
     0x0,
@@ -72,7 +71,6 @@ rtems_status_code aarch64_mmu_map(
   );
   _AARCH64_Data_synchronization_barrier();
   _AARCH64_Instruction_synchronization_barrier();
-  aarch64_mmu_enable();
 
   _ISR_Local_enable( level );
 
-- 
2.30.2



More information about the devel mailing list