Skip to content

Commit 9480392

Browse files
authored
Merge branch 'espressif:release/v5.5' into release/v5.5
2 parents aee160a + 129cd0d commit 9480392

File tree

27 files changed

+192
-45
lines changed

27 files changed

+192
-45
lines changed

.gitlab/ci/common.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ variables:
4040
GIT_FETCH_EXTRA_FLAGS: "--no-recurse-submodules --prune --prune-tags"
4141
# we're using .cache folder for caches
4242
GIT_CLEAN_FLAGS: -ffdx -e .cache/
43-
LATEST_GIT_TAG: v5.5
43+
LATEST_GIT_TAG: v5.5.1
4444

4545
SUBMODULE_FETCH_TOOL: "tools/ci/ci_fetch_submodule.py"
4646
# by default we will fetch all submodules

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ The following table shows ESP-IDF support of Espressif SoCs where ![alt text][pr
2525
|ESP32-C6 | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] |[Announcement](https://www.espressif.com/en/news/ESP32_C6) |
2626
|ESP32-H2 |![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] |[Announcement](https://www.espressif.com/en/news/ESP32_H2) |
2727
|ESP32-P4 | | | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] |[Announcement](https://www.espressif.com/en/news/ESP32-P4) |
28-
|ESP32-C5 | | | | |![alt text][preview] |[Announcement](https://www.espressif.com/en/news/ESP32-C5) |
29-
|ESP32-C61 | | | | |![alt text][preview] |[Announcement](https://www.espressif.com/en/products/socs/esp32-c61) |
28+
|ESP32-C5 | | | | |![alt text][supported] |since v5.5.1, [Announcement](https://www.espressif.com/en/news/ESP32-C5) |
29+
|ESP32-C61 | | | | |![alt text][supported] |since v5.5.1, [Announcement](https://www.espressif.com/en/products/socs/esp32-c61) |
3030

3131
[supported]: https://img.shields.io/badge/-supported-green "supported"
3232
[preview]: https://img.shields.io/badge/-preview-orange "preview"

README_CN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ ESP-IDF 是乐鑫官方推出的物联网开发框架,支持 Windows、Linux
2525
|ESP32-C6 |![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] |![alt text][supported] | [芯片发布公告](https://www.espressif.com/zh-hans/news/ESP32_C6) |
2626
|ESP32-H2 |![alt text][supported] | ![alt text][supported] | ![alt text][supported] | ![alt text][supported] |![alt text][supported] | [芯片发布公告](https://www.espressif.com/zh-hans/news/ESP32_H2) |
2727
|ESP32-P4 | | | ![alt text][supported] | ![alt text][supported] |![alt text][supported] | [芯片发布公告](https://www.espressif.com/zh-hans/news/ESP32-P4) |
28-
|ESP32-C5 | | | | |![alt text][preview] | [芯片发布公告](https://www.espressif.com/zh-hans/news/ESP32-C5) |
29-
|ESP32-C61 | | | | |![alt text][preview] | [芯片发布公告](https://www.espressif.com/zh-hans/products/socs/esp32-c61) |
28+
|ESP32-C5 | | | | |![alt text][supported] | 自 v5.5.1 开始,[芯片发布公告](https://www.espressif.com/zh-hans/news/ESP32-C5) |
29+
|ESP32-C61 | | | | |![alt text][supported] | 自 v5.5.1 开始,[芯片发布公告](https://www.espressif.com/zh-hans/products/socs/esp32-c61) |
3030

3131

3232
[supported]: https://img.shields.io/badge/-%E6%94%AF%E6%8C%81-green "supported"

components/esp_common/include/esp_idf_version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ extern "C" {
1515
/** Minor version number (x.X.x) */
1616
#define ESP_IDF_VERSION_MINOR 5
1717
/** Patch version number (x.x.X) */
18-
#define ESP_IDF_VERSION_PATCH 0
18+
#define ESP_IDF_VERSION_PATCH 1
1919

2020
/**
2121
* Macro to convert IDF version number into an integer

components/esp_hw_support/modem_clock.c

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ typedef enum {
2828
MODEM_CLOCK_MODEM_PRIVATE_FE,
2929
MODEM_CLOCK_COEXIST,
3030
MODEM_CLOCK_I2C_MASTER,
31+
#if SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
32+
MODEM_CLOCK_WIFI_APB,
33+
MODEM_CLOCK_WIFI_BB_44M,
34+
#endif
3135
#if SOC_WIFI_SUPPORTED
3236
MODEM_CLOCK_WIFI_MAC,
3337
MODEM_CLOCK_WIFI_BB,
@@ -64,7 +68,9 @@ typedef struct modem_clock_context {
6468
static void IRAM_ATTR modem_clock_wifi_mac_configure(modem_clock_context_t *ctx, bool enable)
6569
{
6670
if (enable) {
71+
#if !SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
6772
modem_syscon_ll_enable_wifi_apb_clock(ctx->hal->syscon_dev, enable);
73+
#endif
6874
modem_syscon_ll_enable_wifi_mac_clock(ctx->hal->syscon_dev, enable);
6975
}
7076
}
@@ -86,6 +92,22 @@ static void IRAM_ATTR modem_clock_ble_mac_configure(modem_clock_context_t *ctx,
8692
}
8793
#endif // SOC_BT_SUPPORTED
8894

95+
#if SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
96+
static void IRAM_ATTR modem_clock_wifi_apb_configure(modem_clock_context_t *ctx, bool enable)
97+
{
98+
if (enable) {
99+
modem_syscon_ll_enable_wifi_apb_clock(ctx->hal->syscon_dev, enable);
100+
}
101+
}
102+
103+
static void IRAM_ATTR modem_clock_wifi_bb_44m_configure(modem_clock_context_t *ctx, bool enable)
104+
{
105+
if (enable) {
106+
modem_syscon_ll_enable_wifibb_44m_clock(ctx->hal->syscon_dev, enable);
107+
}
108+
}
109+
#endif
110+
89111
#if SOC_BT_SUPPORTED || SOC_IEEE802154_SUPPORTED
90112
static void IRAM_ATTR modem_clock_ble_i154_bb_configure(modem_clock_context_t *ctx, bool enable)
91113
{
@@ -149,6 +171,10 @@ modem_clock_context_t * __attribute__((weak)) IRAM_ATTR MODEM_CLOCK_instance(voi
149171
[MODEM_CLOCK_MODEM_PRIVATE_FE] = { .refs = 0, .configure = modem_clock_modem_private_fe_configure },
150172
[MODEM_CLOCK_COEXIST] = { .refs = 0, .configure = modem_clock_coex_configure },
151173
[MODEM_CLOCK_I2C_MASTER] = { .refs = 0, .configure = modem_clock_i2c_master_configure },
174+
#if SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
175+
[MODEM_CLOCK_WIFI_APB] = { .refs = 0, .configure = modem_clock_wifi_apb_configure },
176+
[MODEM_CLOCK_WIFI_BB_44M] = { .refs = 0, .configure = modem_clock_wifi_bb_44m_configure },
177+
#endif
152178
#if SOC_WIFI_SUPPORTED
153179
[MODEM_CLOCK_WIFI_MAC] = { .refs = 0, .configure = modem_clock_wifi_mac_configure },
154180
[MODEM_CLOCK_WIFI_BB] = { .refs = 0, .configure = modem_clock_wifi_bb_configure },
@@ -273,15 +299,21 @@ void IRAM_ATTR modem_clock_module_mac_reset(periph_module_t module)
273299
}
274300
portEXIT_CRITICAL_SAFE(&ctx->lock);
275301
}
276-
302+
#if SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
303+
#define WIFI_CLOCK_DEPS (BIT(MODEM_CLOCK_WIFI_MAC) | BIT(MODEM_CLOCK_WIFI_APB) | BIT(MODEM_CLOCK_WIFI_BB) | BIT(MODEM_CLOCK_WIFI_BB_44M) | BIT(MODEM_CLOCK_COEXIST))
304+
#else
277305
#define WIFI_CLOCK_DEPS (BIT(MODEM_CLOCK_WIFI_MAC) | BIT(MODEM_CLOCK_WIFI_BB) | BIT(MODEM_CLOCK_COEXIST))
306+
#endif
278307
#define BLE_CLOCK_DEPS (BIT(MODEM_CLOCK_BLE_MAC) | BIT(MODEM_CLOCK_BT_I154_COMMON_BB) | BIT(MODEM_CLOCK_ETM) | BIT(MODEM_CLOCK_COEXIST))
279308
#define IEEE802154_CLOCK_DEPS (BIT(MODEM_CLOCK_802154_MAC) | BIT(MODEM_CLOCK_BT_I154_COMMON_BB) | BIT(MODEM_CLOCK_ETM) | BIT(MODEM_CLOCK_COEXIST))
280309
#define COEXIST_CLOCK_DEPS (BIT(MODEM_CLOCK_COEXIST))
281310
#define PHY_CLOCK_DEPS (BIT(MODEM_CLOCK_I2C_MASTER) | BIT(MODEM_CLOCK_MODEM_ADC_COMMON_FE) | BIT(MODEM_CLOCK_MODEM_PRIVATE_FE))
282311
#define I2C_ANA_MST_CLOCK_DEPS (BIT(MODEM_CLOCK_I2C_MASTER))
283312
#define MODEM_ETM_CLOCK_DEPS (BIT(MODEM_CLOCK_ETM))
284313
#define MODEM_ADC_COMMON_FE_CLOCK_DEPS (BIT(MODEM_CLOCK_MODEM_ADC_COMMON_FE))
314+
#if SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
315+
#define PHY_CALIBRATION_CLOCK_DEPS (BIT(MODEM_CLOCK_WIFI_APB) | BIT(MODEM_CLOCK_WIFI_BB_44M))
316+
#endif
285317

286318
static IRAM_ATTR uint32_t modem_clock_get_module_deps(periph_module_t module)
287319
{
@@ -299,6 +331,9 @@ static IRAM_ATTR uint32_t modem_clock_get_module_deps(periph_module_t module)
299331
#if SOC_BT_SUPPORTED
300332
case PERIPH_BT_MODULE: deps = BLE_CLOCK_DEPS; break;
301333
#endif
334+
#if SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
335+
case PERIPH_PHY_CALIBRATION_MODULE: deps = PHY_CALIBRATION_CLOCK_DEPS; break;
336+
#endif
302337
#if SOC_IEEE802154_SUPPORTED
303338
case PERIPH_IEEE802154_MODULE: deps = IEEE802154_CLOCK_DEPS; break;
304339
#endif

components/esp_hw_support/port/esp32c61/private_include/pmu_param.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ typedef struct pmu_sleep_machine_constant {
486486
.power_supply_wait_time_us = 20, \
487487
.power_up_wait_time_us = 2, \
488488
.regdma_s2m_work_time_us = 270, \
489-
.regdma_s2a_work_time_us = 666, \
489+
.regdma_s2a_work_time_us = 800, \
490490
.regdma_m2a_work_time_us = 296, \
491491
.regdma_a2s_work_time_us = 586, \
492492
.regdma_rf_on_work_time_us = 138, \

components/esp_phy/src/phy_init.c

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@
4949
#include "esp_private/sleep_modem.h"
5050
#endif
5151
#include "hal/efuse_hal.h"
52+
#if SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
53+
#include "esp_private/esp_modem_clock.h"
54+
#include "soc/periph_defs.h"
55+
#endif
5256

5357
#if CONFIG_IDF_TARGET_ESP32
5458
extern wifi_mac_time_update_cb_t s_wifi_mac_time_update_cb;
@@ -268,6 +272,22 @@ IRAM_ATTR void esp_phy_common_clock_disable(void)
268272
wifi_bt_common_module_disable();
269273
}
270274

275+
#if SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
276+
IRAM_ATTR void esp_phy_calibration_clock_enable(esp_phy_modem_t modem)
277+
{
278+
if (modem == PHY_MODEM_BT || modem == PHY_MODEM_IEEE802154) {
279+
modem_clock_module_enable(PERIPH_PHY_CALIBRATION_MODULE);
280+
}
281+
}
282+
283+
IRAM_ATTR void esp_phy_calibration_clock_disable(esp_phy_modem_t modem)
284+
{
285+
if (modem == PHY_MODEM_BT || modem == PHY_MODEM_IEEE802154) {
286+
modem_clock_module_disable(PERIPH_PHY_CALIBRATION_MODULE);
287+
}
288+
}
289+
#endif
290+
271291
#if SOC_PM_MODEM_RETENTION_BY_BACKUPDMA
272292
static inline void phy_digital_regs_store(void)
273293
{
@@ -296,6 +316,9 @@ void esp_phy_enable(esp_phy_modem_t modem)
296316
phy_update_wifi_mac_time(false, s_phy_rf_en_ts);
297317
#endif
298318
esp_phy_common_clock_enable();
319+
#if SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
320+
esp_phy_calibration_clock_enable(modem);
321+
#endif
299322
if (s_is_phy_calibrated == false) {
300323
esp_phy_load_cal_and_init();
301324
s_is_phy_calibrated = true;
@@ -337,7 +360,9 @@ void esp_phy_enable(esp_phy_modem_t modem)
337360
phy_ant_update();
338361
phy_ant_clr_update_flag();
339362
}
340-
363+
#if SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
364+
esp_phy_calibration_clock_disable(modem);
365+
#endif
341366
}
342367
phy_set_modem_flag(modem);
343368
#if !CONFIG_IDF_TARGET_ESP32 && !CONFIG_ESP_PHY_DISABLE_PLL_TRACK

components/esp_psram/device/esp_psram_impl_ap_hex.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -391,8 +391,6 @@ static void s_configure_psram_ecc(void)
391391
{
392392
psram_ctrlr_ll_enable_16to18_ecc(PSRAM_CTRLR_LL_MSPI_ID_2, true);
393393
psram_ctrlr_ll_enable_skip_page_corner(PSRAM_CTRLR_LL_MSPI_ID_2, true);
394-
psram_ctrlr_ll_enable_split_trans(PSRAM_CTRLR_LL_MSPI_ID_2, true);
395-
psram_ctrlr_ll_set_page_size(PSRAM_CTRLR_LL_MSPI_ID_2, 2048);
396394
psram_ctrlr_ll_enable_ecc_addr_conversion(PSRAM_CTRLR_LL_MSPI_ID_2, 2048);
397395

398396
/**
@@ -427,6 +425,8 @@ esp_err_t esp_psram_impl_enable(void)
427425
mspi_timing_ll_enable_dqs(true);
428426

429427
s_set_psram_cs_timing();
428+
psram_ctrlr_ll_enable_split_trans(PSRAM_CTRLR_LL_MSPI_ID_2, true);
429+
psram_ctrlr_ll_set_page_size(PSRAM_CTRLR_LL_MSPI_ID_2, 2048);
430430
#if CONFIG_SPIRAM_ECC_ENABLE
431431
s_configure_psram_ecc();
432432
#endif

components/esp_psram/device/esp_psram_impl_ap_quad.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,6 @@ static void s_configure_psram_ecc(void)
234234
{
235235
psram_ctrlr_ll_set_ecc_mode(PSRAM_CTRLR_LL_MSPI_ID_0, PSRAM_LL_ECC_MODE_16TO18);
236236
psram_ctrlr_ll_enable_skip_page_corner(PSRAM_CTRLR_LL_MSPI_ID_0, true);
237-
psram_ctrlr_ll_enable_split_trans(PSRAM_CTRLR_LL_MSPI_ID_0, true);
238-
psram_ctrlr_ll_set_page_size(PSRAM_CTRLR_LL_MSPI_ID_0, PSRAM_QUAD_PAGE_SIZE);
239237
psram_ctrlr_ll_enable_ecc_addr_conversion(PSRAM_CTRLR_LL_MSPI_ID_0, true);
240238

241239
/**
@@ -399,6 +397,15 @@ esp_err_t esp_psram_impl_enable(void)
399397
psram_reset_mode(PSRAM_CTRLR_LL_MSPI_ID_1);
400398
//SPI1: send QPI enable command
401399
psram_enable_qio_mode(PSRAM_CTRLR_LL_MSPI_ID_1);
400+
//MSPI cross page configs
401+
uint32_t page_size = 0;
402+
if (s_psram_size == PSRAM_SIZE_2MB) {
403+
page_size = 512;
404+
} else {
405+
page_size = 1024;
406+
}
407+
psram_ctrlr_ll_enable_split_trans(PSRAM_CTRLR_LL_MSPI_ID_1, true);
408+
psram_ctrlr_ll_set_page_size(PSRAM_CTRLR_LL_MSPI_ID_1, page_size);
402409

403410
#if SOC_SPI_MEM_SUPPORT_TIMING_TUNING
404411
//Do PSRAM timing tuning, we use SPI1 to do the tuning, and set the SPI0 PSRAM timing related registers accordingly

0 commit comments

Comments
 (0)