Merge branch 'ci/enable_hello_world_build_on_esp32c5' into 'master'

ci(esp32c5): enable template app & hello world build on ci

See merge request espressif/esp-idf!28776
pull/12800/head
Kevin (Lao Kaiyao) 2024-02-05 18:25:37 +08:00
commit 1458e13b50
14 zmienionych plików z 87 dodań i 35 usunięć

Wyświetl plik

@ -9,7 +9,8 @@
extra_default_build_targets: extra_default_build_targets:
- esp32p4 - esp32p4
# bypass_check_test_targets: bypass_check_test_targets:
- esp32c5
# - esp32p4 # - esp32p4
# #
# These lines would # These lines would

Wyświetl plik

@ -9,4 +9,5 @@ entries:
[mapping:ledc_hal] [mapping:ledc_hal]
archive: libhal.a archive: libhal.a
entries: entries:
ledc_hal_iram (noflash) if SOC_LEDC_SUPPORTED = y:
ledc_hal_iram (noflash)

Wyświetl plik

@ -1,5 +1,5 @@
/* /*
* SPDX-FileCopyrightText: 2019-2023 Espressif Systems (Shanghai) CO LTD * SPDX-FileCopyrightText: 2019-2024 Espressif Systems (Shanghai) CO LTD
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
@ -13,13 +13,26 @@
#include "soc/soc_caps.h" #include "soc/soc_caps.h"
#if SOC_PMU_SUPPORTED
#include "hal/pmu_hal.h"
#include "pmu_param.h"
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/**
* @brief PMU ICG modem code of HP system
* @note This type is required in rtc_clk_init.c when PMU not fully supported
*/
typedef enum {
PMU_HP_ICG_MODEM_CODE_SLEEP = 0,
PMU_HP_ICG_MODEM_CODE_MODEM = 1,
PMU_HP_ICG_MODEM_CODE_ACTIVE = 2,
} pmu_hp_icg_modem_mode_t;
#if SOC_PMU_SUPPORTED #if SOC_PMU_SUPPORTED
#include "hal/pmu_hal.h"
#include "pmu_param.h"
#define RTC_SLEEP_PD_DIG PMU_SLEEP_PD_TOP //!< Deep sleep (power down digital domain, includes all power domains #define RTC_SLEEP_PD_DIG PMU_SLEEP_PD_TOP //!< Deep sleep (power down digital domain, includes all power domains
// except CPU, Modem, LP peripheral, AONVDDSDIO, MEM and clock power domains) // except CPU, Modem, LP peripheral, AONVDDSDIO, MEM and clock power domains)
@ -173,16 +186,6 @@ typedef enum pmu_sleep_regdma_entry {
PMU_SLEEP_REGDMA_ENTRY_MAX PMU_SLEEP_REGDMA_ENTRY_MAX
} pmu_sleep_regdma_entry_t; } pmu_sleep_regdma_entry_t;
/**
* @brief PMU ICG modem code of HP system
*/
typedef enum {
PMU_HP_ICG_MODEM_CODE_SLEEP = 0,
PMU_HP_ICG_MODEM_CODE_MODEM = 1,
PMU_HP_ICG_MODEM_CODE_ACTIVE = 2,
} pmu_hp_icg_modem_mode_t;
/** /**
* @brief Enable_regdma_backup. * @brief Enable_regdma_backup.
*/ */

Wyświetl plik

@ -18,7 +18,7 @@ entries:
if SOC_CONFIGURABLE_VDDSDIO_SUPPORTED = y: if SOC_CONFIGURABLE_VDDSDIO_SUPPORTED = y:
rtc_init:rtc_vddsdio_get_config (noflash) rtc_init:rtc_vddsdio_get_config (noflash)
rtc_init:rtc_vddsdio_set_config (noflash) rtc_init:rtc_vddsdio_set_config (noflash)
if IDF_TARGET_ESP32C6 = n && IDF_TARGET_ESP32H2 = n && IDF_TARGET_ESP32P4 = n: # TODO: IDF-5645 if SOC_PMU_SUPPORTED = n:
rtc_sleep (noflash_text) rtc_sleep (noflash_text)
rtc_time (noflash_text) rtc_time (noflash_text)
if SOC_PMU_SUPPORTED = y: if SOC_PMU_SUPPORTED = y:

Wyświetl plik

@ -6,6 +6,12 @@ set(srcs "rtc_clk_init.c"
"chip_info.c" "chip_info.c"
) )
# TODO: [ESP32C5] IDF-8667
if(IDF_TARGET STREQUAL "esp32c5")
list(REMOVE_ITEM srcs "pmu_init.c"
"pmu_param.c")
endif()
if(NOT BOOTLOADER_BUILD) if(NOT BOOTLOADER_BUILD)
list(APPEND srcs "sar_periph_ctrl.c" list(APPEND srcs "sar_periph_ctrl.c"
"esp_crypto_lock.c") "esp_crypto_lock.c")

Wyświetl plik

@ -10,10 +10,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <esp_types.h> #include <esp_types.h>
#include "soc/soc_caps.h" #include "soc/soc_caps.h"
#if SOC_PMU_SUPPORTED
#include "soc/pmu_struct.h" #include "soc/pmu_struct.h"
#include "hal/pmu_hal.h" #include "hal/pmu_hal.h"
#endif
// TODO: [ESP32C5] IDF-8643 // TODO: [ESP32C5] IDF-8643
@ -25,8 +23,6 @@ extern "C" {
#define HP_CALI_DBIAS 25 #define HP_CALI_DBIAS 25
#define LP_CALI_DBIAS 26 #define LP_CALI_DBIAS 26
#if SOC_PMU_SUPPORTED
// FOR XTAL FORCE PU IN SLEEP // FOR XTAL FORCE PU IN SLEEP
#define PMU_PD_CUR_SLEEP_ON 0 #define PMU_PD_CUR_SLEEP_ON 0
#define PMU_BIASSLP_SLEEP_ON 0 #define PMU_BIASSLP_SLEEP_ON 0
@ -474,8 +470,6 @@ typedef struct pmu_sleep_machine_constant {
} \ } \
} }
#endif // SOC_PMU_SUPPORTED
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

Wyświetl plik

@ -23,7 +23,6 @@
#include "hal/clk_tree_ll.h" #include "hal/clk_tree_ll.h"
#include "hal/modem_syscon_ll.h" #include "hal/modem_syscon_ll.h"
#include "hal/modem_lpcon_ll.h" #include "hal/modem_lpcon_ll.h"
#include "soc/pmu_reg.h"
#include "pmu_param.h" #include "pmu_param.h"
static const char *TAG = "rtc_clk_init"; static const char *TAG = "rtc_clk_init";

Wyświetl plik

@ -57,8 +57,8 @@ void esp_cache_err_int_init(void)
esp_rom_route_intr_matrix(core_id, ETS_CACHE_INTR_SOURCE, ETS_CACHEERR_INUM); esp_rom_route_intr_matrix(core_id, ETS_CACHE_INTR_SOURCE, ETS_CACHEERR_INUM);
/* Set the type and priority to cache error interrupts. */ /* Set the type and priority to cache error interrupts. */
esprv_intc_int_set_type(ETS_CACHEERR_INUM, INTR_TYPE_LEVEL); esprv_int_set_type(ETS_CACHEERR_INUM, INTR_TYPE_LEVEL);
esprv_intc_int_set_priority(ETS_CACHEERR_INUM, SOC_INTERRUPT_LEVEL_MEDIUM); esprv_int_set_priority(ETS_CACHEERR_INUM, SOC_INTERRUPT_LEVEL_MEDIUM);
ESP_DRAM_LOGV(TAG, "access error intr clr & ena mask is: 0x%x", CACHE_LL_L1_ACCESS_EVENT_MASK); ESP_DRAM_LOGV(TAG, "access error intr clr & ena mask is: 0x%x", CACHE_LL_L1_ACCESS_EVENT_MASK);
/* On the hardware side, start by clearing all the bits reponsible for cache access error */ /* On the hardware side, start by clearing all the bits reponsible for cache access error */

Wyświetl plik

@ -0,0 +1,52 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdint.h>
#include "esp_attr.h"
#include "soc/intpri_reg.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Clear the crosscore interrupt that just occurred on the current core
*/
FORCE_INLINE_ATTR void crosscore_int_ll_clear_interrupt(int core_id)
{
WRITE_PERI_REG(INTPRI_CPU_INTR_FROM_CPU_0_REG, 0);
}
/**
* @brief Trigger a crosscore interrupt on the given core
*
* @param core_id Core to trigger an interrupt on. Ignored on single core targets.
*/
FORCE_INLINE_ATTR void crosscore_int_ll_trigger_interrupt(int core_id)
{
WRITE_PERI_REG(INTPRI_CPU_INTR_FROM_CPU_0_REG, INTPRI_CPU_INTR_FROM_CPU_0);
}
/**
* @brief Get the state of the crosscore interrupt register for the given core
*
* @param core_id Core to get the crosscore interrupt state of. Ignored on single core targets.
*
* @return Non zero value if a software interrupt is pending on the given core,
* 0 if no software interrupt is pending.
*/
FORCE_INLINE_ATTR uint32_t crosscore_int_ll_get_state(int core_id)
{
return REG_READ(INTPRI_CPU_INTR_FROM_CPU_0_REG);
}
#ifdef __cplusplus
}
#endif

Wyświetl plik

@ -31,10 +31,6 @@ config SOC_FLASH_ENC_SUPPORTED
bool bool
default y default y
config SOC_PMU_SUPPORTED
bool
default y
config SOC_SPI_FLASH_SUPPORTED config SOC_SPI_FLASH_SUPPORTED
bool bool
default y default y

Wyświetl plik

@ -56,7 +56,7 @@
// #define SOC_SECURE_BOOT_SUPPORTED 1 // TODO: [ESP32C5] IDF-8623 // #define SOC_SECURE_BOOT_SUPPORTED 1 // TODO: [ESP32C5] IDF-8623
// #define SOC_BOD_SUPPORTED 1 // TODO: [ESP32C5] IDF-8647 // #define SOC_BOD_SUPPORTED 1 // TODO: [ESP32C5] IDF-8647
// #define SOC_APM_SUPPORTED 1 // TODO: [ESP32C5] IDF-8614 // #define SOC_APM_SUPPORTED 1 // TODO: [ESP32C5] IDF-8614
#define SOC_PMU_SUPPORTED 1 // TODO: [ESP32C5] IDF-8667 // #define SOC_PMU_SUPPORTED 1 // TODO: [ESP32C5] IDF-8667
// #define SOC_PAU_SUPPORTED 1 // TODO: [ESP32C5] IDF-8638, IDF-8640 // #define SOC_PAU_SUPPORTED 1 // TODO: [ESP32C5] IDF-8638, IDF-8640
// #define SOC_LP_TIMER_SUPPORTED 1 // TODO: [ESP32C5] IDF-8636 // #define SOC_LP_TIMER_SUPPORTED 1 // TODO: [ESP32C5] IDF-8636
// #define SOC_LP_AON_SUPPORTED 1 // TODO: [ESP32C5] IDF-8638, IDF-8640 // #define SOC_LP_AON_SUPPORTED 1 // TODO: [ESP32C5] IDF-8638, IDF-8640

Wyświetl plik

@ -8,4 +8,4 @@ examples/get-started/blink:
examples/get-started/hello_world: examples/get-started/hello_world:
enable: enable:
- if: INCLUDE_DEFAULT == 1 or IDF_TARGET == "linux" - if: INCLUDE_DEFAULT == 1 or IDF_TARGET in ["linux", "esp32c5"]

Wyświetl plik

@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 | Linux | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 | Linux |
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | ----- | | ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | ----- |
# Hello World Example # Hello World Example

Wyświetl plik

@ -62,7 +62,7 @@ build_stage2() {
--size-file size.json \ --size-file size.json \
--keep-going \ --keep-going \
--collect-size-info size_info.txt \ --collect-size-info size_info.txt \
--default-build-targets esp32 esp32s2 esp32s3 esp32c2 esp32c3 esp32c6 esp32h2 esp32p4 --default-build-targets esp32 esp32s2 esp32s3 esp32c2 esp32c3 esp32c5 esp32c6 esp32h2 esp32p4
} }
build_stage1() { build_stage1() {
@ -76,7 +76,7 @@ build_stage1() {
--build-log ${BUILD_LOG_CMAKE} \ --build-log ${BUILD_LOG_CMAKE} \
--size-file size.json \ --size-file size.json \
--collect-size-info size_info.txt \ --collect-size-info size_info.txt \
--default-build-targets esp32 esp32s2 esp32s3 esp32c2 esp32c3 esp32c6 esp32h2 esp32p4 --default-build-targets esp32 esp32s2 esp32s3 esp32c2 esp32c3 esp32c5 esp32c6 esp32h2 esp32p4
} }
# Default arguments # Default arguments