1 /* 2 * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #pragma once 7 8 #include <stdint.h> 9 #include "soc/ext_mem_defs.h" 10 #include "soc/soc.h" 11 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 15 16 /* Defined for flash mmap */ 17 #define SOC_MMU_REGIONS_COUNT 6 18 #define SOC_MMU_PAGES_PER_REGION 64 19 #define SOC_MMU_IROM0_PAGES_START (PRO_CACHE_IBUS0_MMU_START / sizeof(uint32_t)) 20 #define SOC_MMU_IROM0_PAGES_END (PRO_CACHE_IBUS1_MMU_END / sizeof(uint32_t)) 21 #define SOC_MMU_DROM0_PAGES_START (PRO_CACHE_IBUS2_MMU_START / sizeof(uint32_t)) 22 #define SOC_MMU_DROM0_PAGES_END (PRO_CACHE_IBUS2_MMU_END / sizeof(uint32_t)) 23 #define SOC_MMU_ADDR_MASK MMU_VALID_VAL_MASK 24 #define SOC_MMU_PAGE_IN_FLASH(page) ((page) | MMU_ACCESS_FLASH) 25 #define SOC_MMU_VADDR1_START_ADDR SOC_IROM_MASK_LOW 26 #define SOC_MMU_PRO_IRAM0_FIRST_USABLE_PAGE ((SOC_MMU_VADDR1_FIRST_USABLE_ADDR - SOC_MMU_VADDR1_START_ADDR) / SPI_FLASH_MMU_PAGE_SIZE + SOC_MMU_IROM0_PAGES_START) 27 #define SOC_MMU_VADDR0_START_ADDR SOC_DROM_LOW 28 #define SOC_MMU_VADDR1_FIRST_USABLE_ADDR SOC_IROM_LOW 29 30 #ifdef __cplusplus 31 } 32 #endif 33