|
1 | 1 | /* |
2 | | - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD |
| 2 | + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD |
3 | 3 | * |
4 | 4 | * SPDX-License-Identifier: Apache-2.0 |
5 | 5 | */ |
@@ -186,13 +186,6 @@ static void s_reserve_drom_region(mem_region_t *hw_mem_regions, int region_nums) |
186 | 186 | } |
187 | 187 | #endif //#if CONFIG_APP_BUILD_USE_FLASH_SECTIONS |
188 | 188 |
|
189 | | -#if SOC_MMU_PER_EXT_MEM_TARGET |
190 | | -FORCE_INLINE_ATTR uint32_t s_get_mmu_id_from_target(mmu_target_t target) |
191 | | -{ |
192 | | - return (target == MMU_TARGET_FLASH0) ? MMU_LL_FLASH_MMU_ID : MMU_LL_PSRAM_MMU_ID; |
193 | | -} |
194 | | -#endif |
195 | | - |
196 | 189 | void esp_mmu_map_init(void) |
197 | 190 | { |
198 | 191 | mem_region_t hw_mem_regions[SOC_MMU_LINEAR_ADDRESS_REGION_NUM] = {}; |
@@ -393,7 +386,7 @@ static void IRAM_ATTR NOINLINE_ATTR s_do_cache_invalidate(uint32_t vaddr_start, |
393 | 386 | FORCE_INLINE_ATTR uint32_t s_mapping_operation(mmu_target_t target, uint32_t vaddr_start, esp_paddr_t paddr_start, uint32_t size) |
394 | 387 | { |
395 | 388 | uint32_t actual_mapped_len = 0; |
396 | | - uint32_t mmu_id = s_get_mmu_id_from_target(target); |
| 389 | + uint32_t mmu_id = mmu_hal_get_id_from_target(target); |
397 | 390 | mmu_hal_map_region(mmu_id, target, vaddr_start, paddr_start, size, &actual_mapped_len); |
398 | 391 |
|
399 | 392 | return actual_mapped_len; |
@@ -599,7 +592,7 @@ esp_err_t esp_mmu_map(esp_paddr_t paddr_start, size_t size, mmu_target_t target, |
599 | 592 | FORCE_INLINE_ATTR void s_unmapping_operation(uint32_t vaddr_start, uint32_t size) |
600 | 593 | { |
601 | 594 | mmu_target_t target = mmu_ll_vaddr_to_target(vaddr_start); |
602 | | - uint32_t mmu_id = s_get_mmu_id_from_target(target); |
| 595 | + uint32_t mmu_id = mmu_hal_get_id_from_target(target); |
603 | 596 | mmu_hal_unmap_region(mmu_id, vaddr_start, size); |
604 | 597 | } |
605 | 598 | #else |
@@ -753,10 +746,14 @@ esp_err_t IRAM_ATTR esp_mmu_map_dump_mapped_blocks_private(void) |
753 | 746 | ---------------------------------------------------------------*/ |
754 | 747 | static bool NOINLINE_ATTR IRAM_ATTR s_vaddr_to_paddr(uint32_t vaddr, esp_paddr_t *out_paddr, mmu_target_t *out_target) |
755 | 748 | { |
| 749 | + uint32_t mmu_id = 0; |
756 | 750 | //we call this for now, but this will be refactored to move out of `spi_flash` |
757 | 751 | spi_flash_disable_interrupts_caches_and_other_cpu(); |
758 | | - bool is_mapped = mmu_hal_vaddr_to_paddr(0, vaddr, out_paddr, out_target); |
759 | 752 | #if SOC_MMU_PER_EXT_MEM_TARGET |
| 753 | + mmu_id = mmu_hal_get_id_from_vaddr(vaddr); |
| 754 | +#endif |
| 755 | + bool is_mapped = mmu_hal_vaddr_to_paddr(mmu_id, vaddr, out_paddr, out_target); |
| 756 | +#if SPIRAM_FLASH_LOAD_TO_PSRAM |
760 | 757 | if (!is_mapped) { |
761 | 758 | is_mapped = mmu_hal_vaddr_to_paddr(1, vaddr, out_paddr, out_target); |
762 | 759 | } |
@@ -789,7 +786,7 @@ static bool NOINLINE_ATTR IRAM_ATTR s_paddr_to_vaddr(esp_paddr_t paddr, mmu_targ |
789 | 786 | spi_flash_disable_interrupts_caches_and_other_cpu(); |
790 | 787 | uint32_t mmu_id = 0; |
791 | 788 | #if SOC_MMU_PER_EXT_MEM_TARGET |
792 | | - mmu_id = s_get_mmu_id_from_target(target); |
| 789 | + mmu_id = mmu_hal_get_id_from_target(target); |
793 | 790 | #endif |
794 | 791 | bool found = mmu_hal_paddr_to_vaddr(mmu_id, paddr, target, type, out_vaddr); |
795 | 792 | spi_flash_enable_interrupts_caches_and_other_cpu(); |
|
0 commit comments