diff --git a/components/spi_flash/flash_mmap.c b/components/spi_flash/flash_mmap.c index 28e3f40959..cc30e33ce2 100644 --- a/components/spi_flash/flash_mmap.c +++ b/components/spi_flash/flash_mmap.c @@ -270,38 +270,6 @@ uint32_t spi_flash_mmap_get_free_pages(spi_flash_mmap_memory_t memory) return len / CONFIG_MMU_PAGE_SIZE; } -const void * spi_flash_phys2cache(size_t phys_offs, spi_flash_mmap_memory_t memory) -{ - esp_err_t ret = ESP_FAIL; - void *ptr = NULL; - mmu_target_t target = MMU_TARGET_FLASH0; - - __attribute__((unused)) uint32_t phys_page = phys_offs / CONFIG_MMU_PAGE_SIZE; -#if !CONFIG_SPIRAM_FLASH_LOAD_TO_PSRAM -#if CONFIG_SPIRAM_FETCH_INSTRUCTIONS - if (phys_page >= instruction_flash_start_page_get() && phys_page <= instruction_flash_end_page_get()) { - target = MMU_TARGET_PSRAM0; - phys_offs -= instruction_flash2spiram_offset() * CONFIG_MMU_PAGE_SIZE; - } -#endif - -#if CONFIG_SPIRAM_RODATA - if (phys_page >= rodata_flash_start_page_get() && phys_page <= rodata_flash_start_page_get()) { - target = MMU_TARGET_PSRAM0; - phys_offs -= rodata_flash2spiram_offset() * CONFIG_MMU_PAGE_SIZE; - } -#endif -#endif //#if !CONFIG_SPIRAM_FLASH_LOAD_TO_PSRAM - - mmu_vaddr_t type = (memory == SPI_FLASH_MMAP_DATA) ? MMU_VADDR_DATA : MMU_VADDR_INSTRUCTION; - ret = esp_mmu_paddr_to_vaddr(phys_offs, target, type, &ptr); - if (ret == ESP_ERR_NOT_FOUND) { - return NULL; - } - assert(ret == ESP_OK); - return (const void *)ptr; -} - static bool IRAM_ATTR is_page_mapped_in_cache(uint32_t phys_addr, const void **out_ptr) { *out_ptr = NULL; @@ -398,4 +366,36 @@ size_t spi_flash_cache2phys(const void *cached) return paddr + offset * CONFIG_MMU_PAGE_SIZE; } + +const void * spi_flash_phys2cache(size_t phys_offs, spi_flash_mmap_memory_t memory) +{ + esp_err_t ret = ESP_FAIL; + void *ptr = NULL; + mmu_target_t target = MMU_TARGET_FLASH0; + + __attribute__((unused)) uint32_t phys_page = phys_offs / CONFIG_MMU_PAGE_SIZE; +#if !CONFIG_SPIRAM_FLASH_LOAD_TO_PSRAM +#if CONFIG_SPIRAM_FETCH_INSTRUCTIONS + if (phys_page >= instruction_flash_start_page_get() && phys_page <= instruction_flash_end_page_get()) { + target = MMU_TARGET_PSRAM0; + phys_offs -= instruction_flash2spiram_offset() * CONFIG_MMU_PAGE_SIZE; + } #endif + +#if CONFIG_SPIRAM_RODATA + if (phys_page >= rodata_flash_start_page_get() && phys_page <= rodata_flash_start_page_get()) { + target = MMU_TARGET_PSRAM0; + phys_offs -= rodata_flash2spiram_offset() * CONFIG_MMU_PAGE_SIZE; + } +#endif +#endif //#if !CONFIG_SPIRAM_FLASH_LOAD_TO_PSRAM + + mmu_vaddr_t type = (memory == SPI_FLASH_MMAP_DATA) ? MMU_VADDR_DATA : MMU_VADDR_INSTRUCTION; + ret = esp_mmu_paddr_to_vaddr(phys_offs, target, type, &ptr); + if (ret == ESP_ERR_NOT_FOUND) { + return NULL; + } + assert(ret == ESP_OK); + return (const void *)ptr; +} +#endif //!CONFIG_SPI_FLASH_ROM_IMPL || CONFIG_SPIRAM_FETCH_INSTRUCTIONS || CONFIG_SPIRAM_RODATA