|
|
@@ -37,13 +37,23 @@
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
+#ifdef ESP_PLATFORM
|
|
|
+
|
|
|
+#include "soc/soc.h"
|
|
|
+
|
|
|
+#if !CONFIG_SPIRAM
|
|
|
+#define TLSF_MAX_POOL_SIZE (SOC_DIRAM_DRAM_HIGH - SOC_DIRAM_DRAM_LOW)
|
|
|
+#else
|
|
|
+#define TLSF_MAX_POOL_SIZE SOC_EXTRAM_DATA_SIZE
|
|
|
+#endif
|
|
|
+
|
|
|
enum tlsf_config
|
|
|
{
|
|
|
/* log2 of number of linear subdivisions of block sizes. Larger
|
|
|
** values require more memory in the control structure. Values of
|
|
|
** 4 or 5 are typical.
|
|
|
*/
|
|
|
- SL_INDEX_COUNT_LOG2 = 2,
|
|
|
+ SL_INDEX_COUNT_LOG2 = 3,
|
|
|
|
|
|
/* All allocation sizes and addresses are aligned to 4 bytes. */
|
|
|
ALIGN_SIZE_LOG2 = 2,
|
|
|
@@ -63,10 +73,14 @@ enum tlsf_config
|
|
|
/* Tunning the first level, we can reduce TLSF pool overhead
|
|
|
* in exchange of manage a pool smaller than 4GB
|
|
|
*/
|
|
|
- #ifndef CONFIG_SPIRAM
|
|
|
+ #if (TLSF_MAX_POOL_SIZE <= (256 * 1024))
|
|
|
FL_INDEX_MAX = 18, //Each pool can have up 256KB
|
|
|
+ #elif (TLSF_MAX_POOL_SIZE <= (512 * 1024))
|
|
|
+ FL_INDEX_MAX = 19, //Each pool can have up 512KB
|
|
|
+ #elif (TLSF_MAX_POOL_SIZE <= (16 * 1024 * 1024))
|
|
|
+ FL_INDEX_MAX = 24, //Each pool can have up 16MB
|
|
|
#else
|
|
|
- FL_INDEX_MAX = 23, //Each pool can have up 8MB
|
|
|
+ #error "Higher TLSF pool sizes should be added for this new config"
|
|
|
#endif
|
|
|
|
|
|
SL_INDEX_COUNT = (1 << SL_INDEX_COUNT_LOG2),
|
|
|
@@ -75,3 +89,30 @@ enum tlsf_config
|
|
|
|
|
|
SMALL_BLOCK_SIZE = (1 << FL_INDEX_SHIFT),
|
|
|
};
|
|
|
+#else
|
|
|
+enum tlsf_config
|
|
|
+{
|
|
|
+ //Specific configuration for host test.
|
|
|
+
|
|
|
+ /* log2 of number of linear subdivisions of block sizes. Larger
|
|
|
+ ** values require more memory in the control structure. Values of
|
|
|
+ ** 4 or 5 are typical.
|
|
|
+ */
|
|
|
+ SL_INDEX_COUNT_LOG2 = 5,
|
|
|
+
|
|
|
+ /* All allocation sizes and addresses are aligned to 4 bytes. */
|
|
|
+ ALIGN_SIZE_LOG2 = 2,
|
|
|
+ ALIGN_SIZE = (1 << ALIGN_SIZE_LOG2),
|
|
|
+
|
|
|
+ /* Tunning the first level, we can reduce TLSF pool overhead
|
|
|
+ * in exchange of manage a pool smaller than 4GB
|
|
|
+ */
|
|
|
+ FL_INDEX_MAX = 30,
|
|
|
+
|
|
|
+ SL_INDEX_COUNT = (1 << SL_INDEX_COUNT_LOG2),
|
|
|
+ FL_INDEX_SHIFT = (SL_INDEX_COUNT_LOG2 + ALIGN_SIZE_LOG2),
|
|
|
+ FL_INDEX_COUNT = (FL_INDEX_MAX - FL_INDEX_SHIFT + 1),
|
|
|
+
|
|
|
+ SMALL_BLOCK_SIZE = (1 << FL_INDEX_SHIFT),
|
|
|
+};
|
|
|
+#endif
|