From b1529bc8032844ff3f774bf51ad7b9cc8cf8bf9c Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Tue, 14 May 2024 12:28:24 +0900 Subject: [PATCH] nuttx/esp32s3: Apply ibus/dbus adjustment to internal ram 1 as well (#3421) --- core/shared/platform/nuttx/nuttx_platform.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/shared/platform/nuttx/nuttx_platform.c b/core/shared/platform/nuttx/nuttx_platform.c index 0077c9e0..2cfba752 100644 --- a/core/shared/platform/nuttx/nuttx_platform.c +++ b/core/shared/platform/nuttx/nuttx_platform.c @@ -19,6 +19,11 @@ #define IRAM0_CACHE_ADDRESS_HIGH 0x44000000 #define IRAM_ATTR locate_data(".iram1") +#define INTERNAL_SRAM_1_DBUS_ADDRESS_LOW 0x3fc88000 +#define INTERNAL_SRAM_1_DBUS_ADDRESS_HIGH 0x3fcf0000 +#define INTERNAL_SRAM_1_IBUS_ADDRESS_LOW 0x40378000 +#define INTERNAL_SRAM_1_IBUS_ADDRESS_HIGH 0x403e0000 + #define in_ibus_ext(addr) \ (((uint32)addr >= IRAM0_CACHE_ADDRESS_LOW) \ && ((uint32)addr < IRAM0_CACHE_ADDRESS_HIGH)) @@ -182,6 +187,11 @@ os_get_dbus_mirror(void *ibus) if (in_ibus_ext(ibus)) { return (void *)((uint8 *)ibus - MEM_DUAL_BUS_OFFSET); } + else if (INTERNAL_SRAM_1_IBUS_ADDRESS_LOW <= (uintptr_t)ibus + && (uintptr_t)ibus < INTERNAL_SRAM_1_IBUS_ADDRESS_HIGH) { + return (void *)((uintptr_t)ibus - INTERNAL_SRAM_1_IBUS_ADDRESS_LOW + + INTERNAL_SRAM_1_DBUS_ADDRESS_LOW); + } else { return ibus; }