/* * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #pragma once /* SRAM0 (192kB) instruction cache+memory */ /* IBUS 0x40070000 to 0x4009FFFF */ #define SRAM0_IRAM_START 0x40070000 #define SRAM0_CACHE_SIZE 0x10000 #define SRAM0_SIZE 0x30000 /* SRAM1 (128kB) instruction/data memory /* IBUS 0x400A0000 to 0x400BFFFF */ #define SRAM1_IRAM_START (SRAM0_IRAM_START + SRAM0_SIZE) #define SRAM1_SIZE 0x20000 /* DBUS 0x3FFE0000 to 0x3FFFFFFF */ #define SRAM1_DRAM_START 0x3FFE0000 #define SRAM1_DRAM_END (SRAM1_DRAM_START + SRAM1_SIZE) #define SRAM1_RESERVED_SIZE 0x8000 #define SRAM1_DRAM_USER_START (SRAM1_DRAM_START + SRAM1_RESERVED_SIZE) #define SRAM1_DRAM_USER_SIZE (0x40000000 - SRAM1_DRAM_USER_START) /* SRAM2 0x3FFAE000 (200kB) data memory */ #define SRAM2_DRAM_START 0x3FFAE000 #define SRAM2_DRAM_SIZE 0x32000 #define SRAM2_DRAM_SHM_SIZE 0x2000 #define SRAM2_DRAM_END (SRAM2_DRAM_START + SRAM2_DRAM_SIZE) #define SRAM2_DRAM_USER_START (SRAM2_DRAM_START + SRAM2_DRAM_SHM_SIZE) #define SRAM2_DRAM_USER_SIZE (SRAM2_DRAM_END - SRAM2_DRAM_USER_START) /* Convert IRAM address to its DRAM counterpart in SRAM1 memory */ #define SRAM1_IRAM_DRAM_CALC(addr_iram) (SRAM1_SIZE - (addr_iram - SRAM1_IRAM_START) + \ SRAM1_DRAM_START) /* Convert DRAM address to its IRAM counterpart in SRAM1 memory */ #define SRAM1_DRAM_IRAM_CALC(addr_dram) (SRAM1_SIZE - (addr_dram - SRAM1_DRAM_START) + \ SRAM1_IRAM_START) /* Default memory layout for ESP32 bootloader */ #ifdef CONFIG_ESP_MULTI_PROCESSOR_BOOT #define BOOTLOADER_IRAM_LOADER_SEG_START_MP 0x400AB900 #endif #define BOOTLOADER_IRAM_LOADER_SEG_START 0x40078000 #define BOOTLOADER_IRAM_LOADER_SEG_LEN 0x2800 #define BOOTLOADER_IRAM_SEG_START 0x40090000 #define BOOTLOADER_IRAM_SEG_LEN 0xE800 #define BOOTLOADER_DRAM_END SRAM1_DRAM_END #define BOOTLOADER_DRAM_TOTAL_LEN 0xE000 #define BOOTLOADER_DRAM_LOADER_SEG_LEN 0x1800 #define BOOTLOADER_DRAM_SEG_LEN \ (BOOTLOADER_DRAM_TOTAL_LEN - BOOTLOADER_DRAM_LOADER_SEG_LEN) #define BOOTLOADER_DRAM_LOADER_SEG_START \ (BOOTLOADER_DRAM_END - BOOTLOADER_DRAM_LOADER_SEG_LEN) #define BOOTLOADER_DRAM_SEG_START \ (BOOTLOADER_DRAM_LOADER_SEG_START - BOOTLOADER_DRAM_SEG_LEN)