diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index 223a236c3d..250384c020 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -94,28 +94,28 @@ config XTENSA_CP_INITSET is provided by CONFIG_XTENSA_CP_INITSET. Each bit corresponds to one coprocessor with the same bit layout as for the CPENABLE register. -config XTENSA_USE_SEPERATE_IMEM - bool "Use a seperate heap for internal memory" +config XTENSA_USE_SEPARATE_IMEM + bool "Use a separate heap for internal memory" default n help - This is a seperate internal heap that's used by drivers when certain operations + This is a separate internal heap that's used by drivers when certain operations are not possible with the provided buffer(s). Mainly, when the provided buffer comes from external RAM and a DMA or flash operation is going to be performed. - This seperate heap will be part of the internal DRAM. It starts right after .data + This separate heap will be part of the internal DRAM. It starts right after .data and ends at the configurable size given by the OPTION XTENSA_IMEM_REGION_SIZE. config XTENSA_IMEM_REGION_SIZE hex "DRAM region size for internal use" - depends on XTENSA_USE_SEPERATE_IMEM + depends on XTENSA_USE_SEPARATE_IMEM range 0x2000 0x28000 default 0x28000 config XTENSA_IMEM_PROCFS bool "Internal memory PROCFS support" default n - depends on XTENSA_USE_SEPERATE_IMEM && !DISABLE_MOUNTPOINT && FS_PROCFS && FS_PROCFS_REGISTER + depends on XTENSA_USE_SEPARATE_IMEM && !DISABLE_MOUNTPOINT && FS_PROCFS && FS_PROCFS_REGISTER source arch/xtensa/src/lx6/Kconfig if ARCH_CHIP_ESP32 diff --git a/arch/xtensa/include/arch.h b/arch/xtensa/include/arch.h index 919f4dad5e..b3a66c3869 100644 --- a/arch/xtensa/include/arch.h +++ b/arch/xtensa/include/arch.h @@ -91,16 +91,15 @@ extern "C" #define EXTERN extern #endif -#ifdef CONFIG_XTENSA_USE_SEPERATE_IMEM - +#ifdef CONFIG_XTENSA_USE_SEPARATE_IMEM struct mallinfo; /* Forward reference, see malloc.h */ -void up_imm_initialize(void); -FAR void *up_imm_malloc(size_t size); -void up_imm_free(FAR void *mem); -FAR void *up_imm_memalign(size_t alignment, size_t size); -bool up_imm_heapmember(FAR void *mem); -int up_imm_mallinfo(FAR struct mallinfo *info); +void xtensa_imm_initialize(void); +FAR void *xtensa_imm_malloc(size_t size); +void xtensa_imm_free(FAR void *mem); +FAR void *xtensa_imm_memalign(size_t alignment, size_t size); +bool xtensa_imm_heapmember(FAR void *mem); +int xtensa_imm_mallinfo(FAR struct mallinfo *info); #endif #undef EXTERN diff --git a/arch/xtensa/src/common/xtensa_initialize.c b/arch/xtensa/src/common/xtensa_initialize.c index be7ecf1d6d..aba916426c 100644 --- a/arch/xtensa/src/common/xtensa_initialize.c +++ b/arch/xtensa/src/common/xtensa_initialize.c @@ -111,7 +111,7 @@ void up_initialize(void) /* Initialize the internal heap */ #ifdef CONFIG_XTENSA_USE_SEPERATE_IMEM - up_imm_initialize(); + xtensa_imm_initialize(); #endif #ifdef CONFIG_ARCH_DMA diff --git a/arch/xtensa/src/common/xtensa_mm.h b/arch/xtensa/src/common/xtensa_mm.h index a95faf5fe6..81a60cbc78 100644 --- a/arch/xtensa/src/common/xtensa_mm.h +++ b/arch/xtensa/src/common/xtensa_mm.h @@ -35,10 +35,10 @@ ****************************************************************************/ #ifdef CONFIG_XTENSA_USE_SEPERATE_IMEM -# define UMM_MALLOC(s) up_imm_malloc(s) -# define UMM_MEMALIGN(a,s) up_imm_memalign(a,s) -# define UMM_FREE(p) up_imm_free(p) -# define UMM_HEAPMEMEBER(p) up_imm_heapmember(p) +# define UMM_MALLOC(s) xtensa_imm_malloc(s) +# define UMM_MEMALIGN(a,s) xtensa_imm_memalign(a,s) +# define UMM_FREE(p) xtensa_imm_free(p) +# define UMM_HEAPMEMEBER(p) xtensa_imm_heapmember(p) #else # define UMM_MALLOC(s) kumm_malloc(s) # define UMM_MEMALIGN(a,s) kumm_memalign(a,s) diff --git a/arch/xtensa/src/esp32/esp32_allocateheap.c b/arch/xtensa/src/esp32/esp32_allocateheap.c index d81eaa1ca0..098a31c867 100644 --- a/arch/xtensa/src/esp32/esp32_allocateheap.c +++ b/arch/xtensa/src/esp32/esp32_allocateheap.c @@ -75,7 +75,7 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size) { board_autoled_on(LED_HEAPALLOCATE); -#ifdef CONFIG_XTENSA_USE_SEPERATE_IMEM +#ifdef CONFIG_XTENSA_USE_SEPARATE_IMEM *heap_start = (FAR void *)&_sheap + CONFIG_XTENSA_IMEM_REGION_SIZE; *heap_size = (size_t)((uintptr_t)&_eheap - (uintptr_t)*heap_start); #else diff --git a/arch/xtensa/src/esp32/esp32_imm.c b/arch/xtensa/src/esp32/esp32_imm.c index 24077f64ec..163f88e90c 100644 --- a/arch/xtensa/src/esp32/esp32_imm.c +++ b/arch/xtensa/src/esp32/esp32_imm.c @@ -30,7 +30,7 @@ #include "xtensa.h" -#if CONFIG_XTENSA_USE_SEPERATE_IMEM +#if CONFIG_XTENSA_USE_SEPARATE_IMEM /**************************************************************************** * Private Data @@ -43,14 +43,14 @@ struct mm_heap_s g_iheap; ****************************************************************************/ /**************************************************************************** - * Name: up_imm_initialize + * Name: xtensa_imm_initialize * * Description: * Initialize the internal heap. * ****************************************************************************/ -void up_imm_initialize(void) +void xtensa_imm_initialize(void) { void *start; size_t size; @@ -61,33 +61,33 @@ void up_imm_initialize(void) } /**************************************************************************** - * Name: up_imm_malloc + * Name: xtensa_imm_malloc * * Description: * Allocate memory from the internal heap. * ****************************************************************************/ -FAR void *up_imm_malloc(size_t size) +FAR void *xtensa_imm_malloc(size_t size) { return mm_malloc(&g_iheap, size); } /**************************************************************************** - * Name: up_imm_free + * Name: xtensa_imm_free * * Description: * Free memory from the internal heap. * ****************************************************************************/ -void up_imm_free(FAR void *mem) +void xtensa_imm_free(FAR void *mem) { mm_free(&g_iheap, mem); } /**************************************************************************** - * Name: up_imm_memalign + * Name: xtensa_imm_memalign * * Description: * memalign requests more than enough space from malloc, finds a region @@ -99,13 +99,13 @@ void up_imm_free(FAR void *mem) * ****************************************************************************/ -FAR void *up_imm_memalign(size_t alignment, size_t size) +FAR void *xtensa_imm_memalign(size_t alignment, size_t size) { return mm_memalign(&g_iheap, alignment, size); } /**************************************************************************** - * Name: up_imm_heapmember + * Name: xtensa_imm_heapmember * * Description: * Check if an address lies in the internal heap. @@ -118,13 +118,13 @@ FAR void *up_imm_memalign(size_t alignment, size_t size) * ****************************************************************************/ -bool up_imm_heapmember(FAR void *mem) +bool xtensa_imm_heapmember(FAR void *mem) { return mm_heapmember(&g_iheap, mem); } /**************************************************************************** - * Name: up_imm_mallinfo + * Name: xtensa_imm_mallinfo * * Description: * mallinfo returns a copy of updated current heap information for the @@ -132,9 +132,9 @@ bool up_imm_heapmember(FAR void *mem) * ****************************************************************************/ -int up_imm_mallinfo(FAR struct mallinfo *info) +int xtensa_imm_mallinfo(FAR struct mallinfo *info) { return mm_mallinfo(&g_iheap, info); } -#endif /* CONFIG_XTENSA_USE_SEPERATE_IMEM */ +#endif /* CONFIG_XTENSA_USE_SEPARATE_IMEM */ diff --git a/arch/xtensa/src/esp32/esp32_procfs_imm.c b/arch/xtensa/src/esp32/esp32_procfs_imm.c index 65e6183fdb..3983af6dc8 100644 --- a/arch/xtensa/src/esp32/esp32_procfs_imm.c +++ b/arch/xtensa/src/esp32/esp32_procfs_imm.c @@ -205,7 +205,7 @@ static ssize_t imm_read(FAR struct file *filep, FAR char *buffer, priv = (FAR struct imm_file_s *)filep->f_priv; DEBUGASSERT(priv); - up_imm_mallinfo(&mem); + xtensa_imm_mallinfo(&mem); remaining = buflen; totalsize = 0; diff --git a/arch/xtensa/src/esp32/esp32_spi.c b/arch/xtensa/src/esp32/esp32_spi.c index facc2e202d..9de633c10b 100644 --- a/arch/xtensa/src/esp32/esp32_spi.c +++ b/arch/xtensa/src/esp32/esp32_spi.c @@ -880,7 +880,7 @@ static void esp32_spi_dma_exchange(FAR struct esp32_spi_priv_s *priv, #ifdef CONFIG_XTENSA_USE_SEPERATE_IMEM if (esp32_ptr_extram(txbuffer)) { - alloctp = up_imm_malloc(bytes); + alloctp = xtensa_imm_malloc(bytes); DEBUGASSERT(alloctp != NULL); memcpy(alloctp, txbuffer, bytes); tp = alloctp; @@ -894,7 +894,7 @@ static void esp32_spi_dma_exchange(FAR struct esp32_spi_priv_s *priv, #ifdef CONFIG_XTENSA_USE_SEPERATE_IMEM if (esp32_ptr_extram(rxbuffer)) { - allocrp = up_imm_malloc(bytes); + allocrp = xtensa_imm_malloc(bytes); DEBUGASSERT(allocrp != NULL); rp = allocrp; } @@ -967,14 +967,14 @@ static void esp32_spi_dma_exchange(FAR struct esp32_spi_priv_s *priv, if (esp32_ptr_extram(rxbuffer)) { memcpy(rxbuffer, allocrp, bytes); - up_imm_free(allocrp); + xtensa_imm_free(allocrp); } #endif #ifdef CONFIG_XTENSA_USE_SEPERATE_IMEM if (esp32_ptr_extram(txbuffer)) { - up_imm_free(alloctp); + xtensa_imm_free(alloctp); } #endif } diff --git a/arch/xtensa/src/esp32/esp32_spiflash.c b/arch/xtensa/src/esp32/esp32_spiflash.c index be43d05b65..8ee3cd4b8d 100644 --- a/arch/xtensa/src/esp32/esp32_spiflash.c +++ b/arch/xtensa/src/esp32/esp32_spiflash.c @@ -1054,7 +1054,7 @@ static ssize_t esp32_read(FAR struct mtd_dev_s *dev, off_t offset, #ifdef CONFIG_XTENSA_USE_SEPERATE_IMEM if (esp32_ptr_extram(buffer)) { - tmpbuff = up_imm_malloc(nbytes); + tmpbuff = xtensa_imm_malloc(nbytes); if (tmpbuff == NULL) { return (ssize_t)-ENOMEM; @@ -1089,7 +1089,7 @@ error_with_buffer: if (esp32_ptr_extram(buffer)) { memcpy(buffer, tmpbuff, (ret == OK) ? nbytes : 0); - up_imm_free(tmpbuff); + xtensa_imm_free(tmpbuff); } #endif @@ -1173,7 +1173,7 @@ static ssize_t esp32_write(FAR struct mtd_dev_s *dev, off_t offset, #ifdef CONFIG_XTENSA_USE_SEPERATE_IMEM if (esp32_ptr_extram(buffer)) { - tmpbuff = up_imm_malloc(nbytes); + tmpbuff = xtensa_imm_malloc(nbytes); if (tmpbuff == NULL) { return (ssize_t)-ENOMEM; @@ -1213,7 +1213,7 @@ error_with_buffer: #ifdef CONFIG_XTENSA_USE_SEPERATE_IMEM if (esp32_ptr_extram(buffer)) { - up_imm_free(tmpbuff); + xtensa_imm_free(tmpbuff); } #endif diff --git a/boards/xtensa/esp32/esp32-core/configs/spiflash/defconfig b/boards/xtensa/esp32/esp32-core/configs/spiflash/defconfig index c603aeb049..a93ff5c55d 100644 --- a/boards/xtensa/esp32/esp32-core/configs/spiflash/defconfig +++ b/boards/xtensa/esp32/esp32-core/configs/spiflash/defconfig @@ -48,4 +48,3 @@ CONFIG_START_YEAR=2011 CONFIG_SYSTEM_NSH=y CONFIG_UART0_SERIAL_CONSOLE=y CONFIG_USER_ENTRYPOINT="nsh_main" -CONFIG_XTENSA_USE_SEPERATE_IMEM=y