|
6 | 6 | #pragma once |
7 | 7 |
|
8 | 8 | #include "sdkconfig.h" |
| 9 | +#include "esp_assert.h" |
| 10 | +#include "esp_flash_partitions.h" |
9 | 11 |
|
10 | | -#define MSPI_TIMING_MSPI1_IS_INVOLVED CONFIG_ESPTOOLPY_FLASHFREQ_120M //This means esp flash driver needs to be notified |
| 12 | +#define MSPI_TIMING_MSPI1_IS_INVOLVED (CONFIG_ESPTOOLPY_FLASHFREQ_80M || CONFIG_ESPTOOLPY_FLASHFREQ_120M) //This means esp flash driver needs to be notified |
11 | 13 | #define MSPI_TIMING_CONFIG_NUM_MAX 32 //This should be larger than the max available timing config num |
12 | 14 | #define MSPI_TIMING_TEST_DATA_LEN 128 |
13 | 15 | #define MSPI_TIMING_PSRAM_TEST_DATA_ADDR 0x100000 |
| 16 | +#define MSPI_TIMING_FLASH_TEST_DATA_ADDR ESP_BOOTLOADER_OFFSET |
14 | 17 |
|
15 | 18 | //--------------------------------------FLASH Sampling Mode --------------------------------------// |
16 | 19 | #define MSPI_TIMING_FLASH_STR_MODE 1 |
|
21 | 24 | #define MSPI_TIMING_FLASH_MODULE_CLOCK 40 |
22 | 25 | #elif CONFIG_ESPTOOLPY_FLASHFREQ_80M |
23 | 26 | #define MSPI_TIMING_FLASH_MODULE_CLOCK 80 |
| 27 | +#elif CONFIG_ESPTOOLPY_FLASHFREQ_120M |
| 28 | +#define MSPI_TIMING_FLASH_MODULE_CLOCK 120 |
24 | 29 | #endif |
25 | 30 | //------------------------------------FLASH Needs Tuning or not-------------------------------------// |
26 | 31 | #if MSPI_TIMING_FLASH_STR_MODE |
27 | | -#define MSPI_TIMING_FLASH_NEEDS_TUNING (MSPI_TIMING_FLASH_MODULE_CLOCK > 80) |
| 32 | +#define MSPI_TIMING_FLASH_NEEDS_TUNING (MSPI_TIMING_FLASH_MODULE_CLOCK > 40) |
28 | 33 | #endif |
29 | 34 |
|
30 | 35 | //--------------------------------------PSRAM Sampling Mode --------------------------------------// |
|
44 | 49 | #define MSPI_TIMING_PSRAM_NEEDS_TUNING (MSPI_TIMING_PSRAM_MODULE_CLOCK > 40) |
45 | 50 | #endif |
46 | 51 |
|
47 | | -///////////////////////////////////// FLASH CORE CLOCK ///////////////////////////////////// |
| 52 | +///////////////////////////////////// FLASH/PSRAM CORE CLOCK ///////////////////////////////////// |
| 53 | +#if ((CONFIG_ESPTOOLPY_FLASHFREQ_80M && !CONFIG_SPIRAM) || (CONFIG_ESPTOOLPY_FLASHFREQ_80M && CONFIG_SPIRAM_SPEED_80M)) |
48 | 54 | #define MSPI_TIMING_FLASH_EXPECTED_CORE_CLK_MHZ 80 |
49 | | - |
50 | | -///////////////////////////////////// PSRAM CORE CLOCK ///////////////////////////////////// |
51 | | -#if CONFIG_SPIRAM_SPEED_80M |
52 | 55 | #define MSPI_TIMING_PSRAM_EXPECTED_CORE_CLK_MHZ 80 |
| 56 | +#define MSPI_TIMING_FLASH_CONSECUTIVE_LEN_MAX 6 |
| 57 | +#else |
| 58 | +#define MSPI_TIMING_FLASH_EXPECTED_CORE_CLK_MHZ 240 |
| 59 | +#define MSPI_TIMING_PSRAM_EXPECTED_CORE_CLK_MHZ 240 |
| 60 | +#define MSPI_TIMING_FLASH_CONSECUTIVE_LEN_MAX 4 |
53 | 61 | #endif |
54 | 62 |
|
55 | 63 | //------------------------------------------Determine the Core Clock-----------------------------------------------// |
@@ -93,7 +101,32 @@ ESP_STATIC_ASSERT(MSPI_TIMING_PSRAM_EXPECTED_CORE_CLK_MHZ % MSPI_TIMING_FLASH_MO |
93 | 101 | /** |
94 | 102 | * Timing Tuning Parameters |
95 | 103 | */ |
| 104 | +//FLASH: core clock 240M, module clock 120M, STR mode |
| 105 | +#define MSPI_TIMING_FLASH_CONFIG_TABLE_CORE_CLK_240M_MODULE_CLK_120M_STR_MODE {{2, 0, 1}, {0, 0, 0}, {2, 2, 2}, {2, 1, 2}, {2, 0, 2}, {0, 0, 1}, {2, 2, 3}, {2, 1, 3}, {2, 0, 3}, {0, 0, 2}, {2, 2, 4}, {2, 1, 4}} |
| 106 | +#define MSPI_TIMING_FLASH_CONFIG_NUM_CORE_CLK_240M_MODULE_CLK_120M_STR_MODE 12 |
| 107 | +#define MSPI_TIMING_FLASH_DEFAULT_CONFIG_ID_CORE_CLK_240M_MODULE_CLK_120M_STR_MODE 4 |
| 108 | + |
| 109 | +//FLASH: core clock 240M, module clock 80M, STR mode |
| 110 | +#define MSPI_TIMING_FLASH_CONFIG_TABLE_CORE_CLK_240M_MODULE_CLK_80M_STR_MODE {{2, 2, 1}, {2, 1, 1}, {2, 0, 1}, {0, 0, 0}, {3, 1, 2}, {2, 3, 2}, {2, 2, 2}, {2, 1, 2}, {2, 0, 2}, {0, 0, 1}, {3, 1, 3}, {2, 3, 3}, {2, 2, 3}, {2, 1, 3}} |
| 111 | +#define MSPI_TIMING_FLASH_CONFIG_NUM_CORE_CLK_240M_MODULE_CLK_80M_STR_MODE 14 |
| 112 | +#define MSPI_TIMING_FLASH_DEFAULT_CONFIG_ID_CORE_CLK_240M_MODULE_CLK_80M_STR_MODE 4 |
| 113 | + |
| 114 | +//FLASH: core clock 80M, module clock 80M, STR mode |
| 115 | +#define MSPI_TIMING_FLASH_CONFIG_TABLE_CORE_CLK_80M_MODULE_CLK_80M_STR_MODE {{2, 2, 1}, {2, 1, 1}, {2, 0, 1}, {0, 0, 0}, {3, 1, 2}, {2, 3, 2}, {2, 2, 2}, {2, 1, 2}, {2, 0, 2}, {0, 0, 1}, {3, 1, 3}, {2, 3, 3}, {2, 2, 3}, {2, 1, 3}} |
| 116 | +#define MSPI_TIMING_FLASH_CONFIG_NUM_CORE_CLK_80M_MODULE_CLK_80M_STR_MODE 14 |
| 117 | +#define MSPI_TIMING_FLASH_DEFAULT_CONFIG_ID_CORE_CLK_80M_MODULE_CLK_80M_STR_MODE 4 |
| 118 | + |
| 119 | +//PSRAM: core clock 240M, module clock 120M, STR mode |
| 120 | +#define MSPI_TIMING_PSRAM_CONFIG_TABLE_CORE_CLK_240M_MODULE_CLK_120M_STR_MODE {{2, 0, 1}, {0, 0, 0}, {2, 2, 2}, {2, 1, 2}, {2, 0, 2}, {0, 0, 1}, {2, 2, 3}, {2, 1, 3}, {2, 0, 3}, {0, 0, 2}, {2, 2, 4}, {2, 1, 4}} |
| 121 | +#define MSPI_TIMING_PSRAM_CONFIG_NUM_CORE_CLK_240M_MODULE_CLK_120M_STR_MODE 12 |
| 122 | +#define MSPI_TIMING_PSRAM_DEFAULT_CONFIG_ID_CORE_CLK_240M_MODULE_CLK_120M_STR_MODE 4 |
| 123 | + |
| 124 | +//PSRAM: core clock 240M, module clock 80M, STR mode |
| 125 | +#define MSPI_TIMING_PSRAM_CONFIG_TABLE_CORE_CLK_240M_MODULE_CLK_80M_STR_MODE {{2, 2, 1}, {2, 1, 1}, {2, 0, 1}, {0, 0, 0}, {3, 1, 2}, {2, 3, 2}, {2, 2, 2}, {2, 1, 2}, {2, 0, 2}, {0, 0, 1}, {3, 1, 3}, {2, 3, 3}, {2, 2, 3}, {2, 1, 3}} |
| 126 | +#define MSPI_TIMING_PSRAM_CONFIG_NUM_CORE_CLK_240M_MODULE_CLK_80M_STR_MODE 14 |
| 127 | +#define MSPI_TIMING_PSRAM_DEFAULT_CONFIG_ID_CORE_CLK_240M_MODULE_CLK_80M_STR_MODE 4 |
| 128 | + |
96 | 129 | //PSRAM: core clock 80M, module clock 80M, STR mode |
97 | | -#define MSPI_TIMING_PSRAM_CONFIG_TABLE_CORE_CLK_80M_MODULE_CLK_80M_STR_MODE {{2, 2, 1}, {2, 1, 1}, {2, 0, 1}, {0, 0, 0}, {3, 1, 2}, {2, 3, 2}, {2, 2, 2}, {2, 1, 2}, {2, 0, 2}, {0, 0, 1}, {3, 1, 3}, {2, 3, 3}, {2, 2, 3}, {2, 1, 3}} |
98 | | -#define MSPI_TIMING_PSRAM_CONFIG_NUM_CORE_CLK_80M_MODULE_CLK_80M_STR_MODE 14 |
99 | | -#define MSPI_TIMING_PSRAM_DEFAULT_CONFIG_ID_CORE_CLK_80M_MODULE_CLK_80M_STR_MODE 5 |
| 130 | +#define MSPI_TIMING_PSRAM_CONFIG_TABLE_CORE_CLK_80M_MODULE_CLK_80M_STR_MODE {{2, 2, 1}, {2, 1, 1}, {2, 0, 1}, {0, 0, 0}, {3, 1, 2}, {2, 3, 2}, {2, 2, 2}, {2, 1, 2}, {2, 0, 2}, {0, 0, 1}, {3, 1, 3}, {2, 3, 3}, {2, 2, 3}, {2, 1, 3}} |
| 131 | +#define MSPI_TIMING_PSRAM_CONFIG_NUM_CORE_CLK_80M_MODULE_CLK_80M_STR_MODE 14 |
| 132 | +#define MSPI_TIMING_PSRAM_DEFAULT_CONFIG_ID_CORE_CLK_80M_MODULE_CLK_80M_STR_MODE 4 |
0 commit comments