eculocate

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

esp32s3.rs (739B)


      1 const SOC_MMU_VADDR_MASK: u32 = 0x1FFFFFF;
      2 const DR_REG_MMU_TABLE: u32 = 0x600C5000;
      3 const SOC_MMU_VALID_VAL_MASK: u32 = 0x3fff;
      4 const SOC_MMU_INVALID: u32 = 1 << 14;
      5 
      6 pub fn mmu_ll_get_page_size(_mmu_id: u32) -> u32 {
      7     crate::mmu_hal::MMU_PAGE_64KB
      8 }
      9 
     10 pub fn mmu_ll_get_entry_id(_mmu_id: u32, vaddr: u32) -> u32 {
     11     (vaddr & SOC_MMU_VADDR_MASK) >> 16
     12 }
     13 
     14 pub fn mmu_ll_entry_id_to_paddr_base(_mmu_id: u32, entry_id: u32) -> u32 {
     15     let ptr = (DR_REG_MMU_TABLE + entry_id * 4) as *const u32;
     16     unsafe { ((*ptr) & SOC_MMU_VALID_VAL_MASK) << 16 }
     17 }
     18 
     19 pub fn mmu_ll_check_entry_valid(_mmu_id: u32, entry_id: u32) -> bool {
     20     let ptr = (DR_REG_MMU_TABLE + entry_id * 4) as *const u32;
     21     unsafe { ((*ptr) & SOC_MMU_INVALID) == 0 }
     22 }