Skip to content

Commit bfbc67a

Browse files
authored
Merge pull request #182 from C5Lab/main
sync
2 parents 60598f2 + 8aa292d commit bfbc67a

11 files changed

Lines changed: 111 additions & 36 deletions

File tree

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
ESP32C5/sdkconfig* text eol=lf
2+
*.sh text eol=lf

.github/scripts/container_build.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env bash
22
set -euo pipefail
33

4-
IMAGE="${IDF_DOCKER_IMAGE:-espressif/idf:v6.0-beta1}"
4+
IMAGE="${IDF_DOCKER_IMAGE:-espressif/idf:release-v6.0}"
55
USE_DOCKER="${USE_DOCKER:-1}"
66

77
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
@@ -14,8 +14,8 @@ usage() {
1414
cat <<'EOF'
1515
Usage: container_build.sh [--no-docker]
1616
17-
Builds ESP32C5 firmware using esp-idf release/v6.0.
18-
Defaults to running inside Docker (espressif/idf:v6.0-beta1).
17+
Builds ESP32C5 firmware using esp-idf release-v6.0.
18+
Defaults to running inside Docker (espressif/idf:release-v6.0).
1919
2020
Options:
2121
--no-docker Run idf.py directly (for GitHub Actions container job or host with esp-idf installed)

.github/workflows/esp32c5-build-master.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: ESP32C5 Build (IDF 6.0-beta1)
1+
name: ESP32C5 Build (IDF 6.0)
22

33
on:
44
workflow_dispatch:
@@ -34,12 +34,12 @@ jobs:
3434
uses: actions/cache@v5
3535
with:
3636
path: /root/.espressif
37-
key: espidf-6.0-${{ runner.os }}-${{ hashFiles('ESP32C5/sdkconfig', 'ESP32C5/dependencies.lock') }}
37+
key: espidf-release-v6.0-${{ runner.os }}-${{ hashFiles('ESP32C5/sdkconfig', 'ESP32C5/dependencies.lock') }}
3838
restore-keys: |
39-
espidf-6.0-${{ runner.os }}-
40-
espidf-6.0-
39+
espidf-release-v6.0-${{ runner.os }}-
40+
espidf-release-v6.0-
4141
42-
- name: Build JanOS (IDF 6.0)
42+
- name: Build JanOS (IDF 6.0 stable)
4343
run: IDF_PY_FLAGS="--preview" bash .github/scripts/container_build.sh --no-docker
4444

4545
- name: Stamp JanOS with JANOS_VERSION

.github/workflows/esp32c5-build-release-no-discord.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
contents: write
1515
runs-on: ubuntu-24.04
1616
container:
17-
image: espressif/idf:v6.0-beta1
17+
image: espressif/idf:release-v6.0
1818
outputs:
1919
fw_version: ${{ steps.version.outputs.version }}
2020
steps:
@@ -25,12 +25,12 @@ jobs:
2525
uses: actions/cache@v5
2626
with:
2727
path: /root/.espressif
28-
key: espidf-6.0-${{ runner.os }}-${{ hashFiles('ESP32C5/sdkconfig', 'ESP32C5/dependencies.lock') }}
28+
key: espidf-release-v6.0-${{ runner.os }}-${{ hashFiles('ESP32C5/sdkconfig', 'ESP32C5/dependencies.lock') }}
2929
restore-keys: |
30-
espidf-6.0-${{ runner.os }}-
31-
espidf-6.0-
30+
espidf-release-v6.0-${{ runner.os }}-
31+
espidf-release-v6.0-
3232
33-
- name: Build JanOS (IDF 6.0)
33+
- name: Build JanOS (IDF 6.0 stable)
3434
run: IDF_PY_FLAGS="--preview" bash .github/scripts/container_build.sh --no-docker
3535

3636
- name: Stamp JanOS with JANOS_VERSION
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

ESP32C5/dependencies.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
dependencies:
22
espressif/cjson:
3-
component_hash: 9372811fb197926f522c467627cf4a8e72b681e0366e17879631da801103aef3
3+
component_hash: e788323270d90738662d66fffa910bfe1fba019bba087f01557e70c40485b469
44
dependencies:
55
- name: idf
66
require: private
77
version: '>=5.0'
88
source:
99
registry_url: https://components.espressif.com/
1010
type: service
11-
version: 1.7.19
11+
version: 1.7.19~2
1212
espressif/led_strip:
13-
component_hash: 223998f10cae6d81f2ad2dd3c1103c2221be298c708e37917482b0153f3ec64e
13+
component_hash: 28621486f77229aaf81c71f5e15d6fbf36c2949cf11094e07090593e659e7639
1414
dependencies:
1515
- name: idf
1616
require: private
1717
version: '>=5.0'
1818
source:
1919
registry_url: https://components.espressif.com/
2020
type: service
21-
version: 3.0.1~1
21+
version: 3.0.3
2222
idf:
2323
source:
2424
type: idf
@@ -35,6 +35,6 @@ direct_dependencies:
3535
- espressif/led_strip
3636
- idf
3737
- lvgl/lvgl
38-
manifest_hash: 89e75097ea075918e3fbc38d77518f549464abde71bb4b324ee57eab5d7eca45
38+
manifest_hash: ff5887322bf4426c782eb34c881d82e15c72c6f33497e602ba96ff772d05560e
3939
target: esp32c5
4040
version: 3.0.0

ESP32C5/main/idf_component.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ dependencies:
1414
# # `public` flag doesn't have an effect dependencies of the `main` component.
1515
# # All dependencies of `main` are public by default.
1616
# public: true
17-
espressif/led_strip: '>=3.0.0,<4.0.0'
17+
espressif/led_strip: '3.0.3'
1818
espressif/cjson: '>=1.7.19,<2.0.0'
1919
lvgl/lvgl: "9.2.0"

ESP32C5/main/main.c

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,20 @@
4747
#include "esp_random.h"
4848
#include "mbedtls/ecp.h"
4949
#include "mbedtls/bignum.h"
50-
#include "mbedtls/private/ctr_drbg.h"
5150
#include "mbedtls/base64.h"
51+
#if defined(__has_include)
52+
#if __has_include("mbedtls/ctr_drbg.h")
53+
#include "mbedtls/ctr_drbg.h"
54+
#define HAS_MBEDTLS_CTR_DRBG 1
55+
#elif __has_include("mbedtls/private/ctr_drbg.h")
56+
#include "mbedtls/private/ctr_drbg.h"
57+
#define HAS_MBEDTLS_CTR_DRBG 1
58+
#else
59+
#define HAS_MBEDTLS_CTR_DRBG 0
60+
#endif
61+
#else
62+
#define HAS_MBEDTLS_CTR_DRBG 0
63+
#endif
5264
#include "esp_timer.h"
5365
#include "esp_app_format.h"
5466

@@ -1524,7 +1536,9 @@ static int64_t start_time = 0;
15241536
static mbedtls_ecp_group ecc_group; // grupa ECC (secp256r1)
15251537
static mbedtls_ecp_point ecc_element; // bieżący element (punkt ECC)
15261538
static mbedtls_mpi ecc_scalar; // bieżący skalar
1539+
#if HAS_MBEDTLS_CTR_DRBG
15271540
static mbedtls_ctr_drbg_context ctr_drbg;
1541+
#endif
15281542

15291543
/* Router BSSID */
15301544
static uint8_t bssid[6] = { 0x30, 0xAA, 0xE4, 0x3C, 0x3F, 0x68};
@@ -17327,8 +17341,8 @@ static int trng_random_callback(void *ctx, unsigned char *output, size_t len) {
1732717341

1732817342
static int crypto_init(void) {
1732917343
int ret;
17344+
#if HAS_MBEDTLS_CTR_DRBG
1733017345
const char *pers = "dragon_drain";
17331-
1733217346
mbedtls_ctr_drbg_init(&ctr_drbg);
1733317347

1733417348
// TRNG as entropy source
@@ -17341,6 +17355,7 @@ static int crypto_init(void) {
1734117355
ESP_LOGE(TAG, "mbedtls_ctr_drbg_seed failed: %d", ret);
1734217356
return ret;
1734317357
}
17358+
#endif
1734417359

1734517360
mbedtls_ecp_group_init(&ecc_group);
1734617361
mbedtls_ecp_point_init(&ecc_element);
@@ -17360,7 +17375,12 @@ static int crypto_init(void) {
1736017375
* Random MAC for client overflow attack.
1736117376
*/
1736217377
static void update_spoofed_src_random(void) {
17363-
esp_err_t ret = mbedtls_ctr_drbg_random(&ctr_drbg, spoofed_src, 6);
17378+
int ret;
17379+
#if HAS_MBEDTLS_CTR_DRBG
17380+
ret = mbedtls_ctr_drbg_random(&ctr_drbg, spoofed_src, 6);
17381+
#else
17382+
ret = trng_random_callback(NULL, spoofed_src, 6);
17383+
#endif
1736417384
if (ret != 0) {
1736517385
ESP_LOGE(TAG, "Unable to generate random MAC: %d", ret);
1736617386
return;
@@ -17460,7 +17480,11 @@ void inject_sae_commit_frame() {
1746017480
size_t scalar_size = 32;
1746117481

1746217482
do {
17483+
#if HAS_MBEDTLS_CTR_DRBG
1746317484
ret = mbedtls_mpi_fill_random(&ecc_scalar, scalar_size, mbedtls_ctr_drbg_random, &ctr_drbg);
17485+
#else
17486+
ret = mbedtls_mpi_fill_random(&ecc_scalar, scalar_size, trng_random_callback, NULL);
17487+
#endif
1746417488
if (ret != 0) {
1746517489
ESP_LOGE(TAG, "mbedtls_mpi_fill_random failed: %d", ret);
1746617490
return;
@@ -17475,7 +17499,11 @@ void inject_sae_commit_frame() {
1747517499
}
1747617500
pos += scalar_size;
1747717501

17502+
#if HAS_MBEDTLS_CTR_DRBG
1747817503
ret = mbedtls_ecp_mul(&ecc_group, &ecc_element, &ecc_scalar, &ecc_group.G, mbedtls_ctr_drbg_random, &ctr_drbg);
17504+
#else
17505+
ret = mbedtls_ecp_mul(&ecc_group, &ecc_element, &ecc_scalar, &ecc_group.G, trng_random_callback, NULL);
17506+
#endif
1747917507
if (ret != 0) {
1748017508
ESP_LOGE(TAG, "mbedtls_ecp_mul failed: %d", ret);
1748117509
return;

ESP32C5/sdkconfig

Lines changed: 45 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ CONFIG_SOC_APM_SUPPORTED=y
9999
# default:
100100
CONFIG_SOC_PMU_SUPPORTED=y
101101
# default:
102+
CONFIG_SOC_PMU_PVT_SUPPORTED=y
103+
# default:
102104
CONFIG_SOC_PAU_SUPPORTED=y
103105
# default:
104106
CONFIG_SOC_RTC_TIMER_V2_SUPPORTED=y
@@ -523,23 +525,17 @@ CONFIG_SOC_SPI_MEM_SUPPORT_CHECK_SUS=y
523525
# default:
524526
CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y
525527
# default:
526-
CONFIG_SOC_SPI_MEM_SUPPORT_WB_MODE_INDEPENDENT_CONTROL=y
527-
# default:
528528
CONFIG_SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP=y
529529
# default:
530530
CONFIG_SOC_SPI_MEM_SUPPORT_TIMING_TUNING=y
531531
# default:
532532
CONFIG_SOC_SPI_MEM_SUPPORT_TSUS_TRES_SEPERATE_CTR=y
533533
# default:
534-
CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY=y
535-
# default:
536-
CONFIG_SOC_MEMSPI_SRC_FREQ_120M_SUPPORTED=y
534+
CONFIG_SOC_SPI_MEM_FLASH_SUPPORT_HPM=y
537535
# default:
538-
CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y
539-
# default:
540-
CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y
536+
CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY=y
541537
# default:
542-
CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y
538+
CONFIG_SOC_MEMSPI_ENCRYPTION_ALIGNMENT=16
543539
# default:
544540
CONFIG_SOC_SYSTIMER_COUNTER_NUM=2
545541
# default:
@@ -575,6 +571,8 @@ CONFIG_SOC_TWAI_MASK_FILTER_NUM=3
575571
# default:
576572
CONFIG_SOC_TWAI_RANGE_FILTER_NUM=1
577573
# default:
574+
CONFIG_SOC_TWAI_SUPPORT_SLEEP_RETENTION=y
575+
# default:
578576
CONFIG_SOC_EFUSE_DIS_PAD_JTAG=y
579577
# default:
580578
CONFIG_SOC_EFUSE_DIS_USB_JTAG=y
@@ -631,8 +629,14 @@ CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_256=y
631629
# default:
632630
CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_SUPPORT_PSEUDO_ROUND=y
633631
# default:
632+
CONFIG_SOC_FLASH_ENCRYPTION_PAGE_CONFIGURABLE=y
633+
# default:
634634
CONFIG_SOC_PSRAM_ENCRYPTION_XTS_AES_128=y
635635
# default:
636+
CONFIG_SOC_PSRAM_ENCRYPTION_SEPARATE_KEY=y
637+
# default:
638+
CONFIG_SOC_PSRAM_ENCRYPTION_PAGE_CONFIGURABLE=y
639+
# default:
636640
CONFIG_SOC_RECOVERY_BOOTLOADER_SUPPORTED=y
637641
# default:
638642
CONFIG_SOC_BOOTLOADER_ANTI_ROLLBACK_SUPPORTED=y
@@ -803,6 +807,8 @@ CONFIG_SOC_WIFI_NAN_SUPPORT=y
803807
# default:
804808
CONFIG_SOC_BLE_SUPPORTED=y
805809
# default:
810+
CONFIG_SOC_BLE_MESH_SUPPORTED=y
811+
# default:
806812
CONFIG_SOC_ESP_NIMBLE_CONTROLLER=y
807813
# default:
808814
CONFIG_SOC_BLE_50_SUPPORTED=y
@@ -868,6 +874,11 @@ CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
868874
# CONFIG_APP_NO_BLOBS is not set
869875
# end of Build type
870876

877+
#
878+
# App Update config
879+
#
880+
# end of App Update config
881+
871882
#
872883
# Bootloader config
873884
#
@@ -1398,6 +1409,8 @@ CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=30
13981409
CONFIG_BT_NIMBLE_TRANSPORT_EVT_DISCARD_COUNT=8
13991410
# default:
14001411
CONFIG_BT_NIMBLE_L2CAP_COC_SDU_BUFF_COUNT=1
1412+
# default:
1413+
# CONFIG_BT_NIMBLE_MEMPOOL_RUNTIME_ALLOC is not set
14011414
# end of Memory Settings
14021415

14031416
#
@@ -1833,6 +1846,8 @@ CONFIG_BT_LE_DFT_SYNC_SCHED_PRIO_LEVEL=1
18331846
# CONFIG_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN is not set
18341847
# default:
18351848
# CONFIG_BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN is not set
1849+
# default:
1850+
# CONFIG_BT_LE_CTRL_ADV_FAST_TX_EN is not set
18361851
# end of Controller Options
18371852

18381853
#
@@ -2261,6 +2276,8 @@ CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
22612276
# CONFIG_ESP_HTTP_CLIENT_ENABLE_GET_CONTENT_RANGE is not set
22622277
# default:
22632278
CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000
2279+
# default:
2280+
# CONFIG_ESP_HTTP_CLIENT_SAVE_RESPONSE_HEADERS is not set
22642281
# end of ESP HTTP client
22652282

22662283
#
@@ -2472,6 +2489,8 @@ CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y
24722489
# default:
24732490
CONFIG_ESP_CLK_RC32K_NOT_TO_USE=y
24742491
# default:
2492+
CONFIG_ESP_ENABLE_PVT=y
2493+
# default:
24752494
CONFIG_ESP_INTR_IN_IRAM=y
24762495
# end of Hardware Settings
24772496

@@ -3009,6 +3028,8 @@ CONFIG_ESP_WIFI_TX_HETB_QUEUE_NUM=3
30093028
CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y
30103029
# default:
30113030
# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set
3031+
# default:
3032+
# CONFIG_ESP_WIFI_PASSIVE_HIDDEN_AP_SUPPORT is not set
30123033
# end of Wi-Fi
30133034

30143035
#
@@ -3306,11 +3327,11 @@ CONFIG_IEEE802154_PENDING_TABLE_SIZE=20
33063327
# default:
33073328
# CONFIG_IEEE802154_MULTI_PAN_ENABLE is not set
33083329
# default:
3330+
CONFIG_IEEE802154_INTERFACE_NUM=1
3331+
# default:
33093332
CONFIG_IEEE802154_TIMING_OPTIMIZATION=y
33103333
# default:
33113334
# CONFIG_IEEE802154_DEBUG is not set
3312-
# default:
3313-
# CONFIG_IEEE802154_DEBUG_ASSERT_MONITOR is not set
33143335
# end of IEEE 802.15.4
33153336

33163337
#
@@ -4111,6 +4132,8 @@ CONFIG_MBEDTLS_PKCS1_V21=y
41114132
# CONFIG_NVS_ALLOCATE_CACHE_IN_SPIRAM is not set
41124133
# default:
41134134
# CONFIG_NVS_BDL_STACK is not set
4135+
# default:
4136+
# CONFIG_NVS_FLASH_VERIFY_ERASE is not set
41144137
# end of NVS
41154138

41164139
#
@@ -4398,6 +4421,8 @@ CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y
43984421
CONFIG_VFS_SUPPORT_TERMIOS=y
43994422
# default:
44004423
CONFIG_VFS_MAX_COUNT=8
4424+
# default:
4425+
# CONFIG_VFS_SUPPRESS_CTX_DEPRECATION is not set
44014426

44024427
#
44034428
# Host File System I/O (Semihosting)
@@ -4421,6 +4446,15 @@ CONFIG_WL_SECTOR_SIZE_4096=y
44214446
CONFIG_WL_SECTOR_SIZE=4096
44224447
# end of Wear Levelling
44234448

4449+
#
4450+
# cJSON
4451+
#
4452+
# default:
4453+
CONFIG_CJSON_NESTING_LIMIT=1000
4454+
# default:
4455+
CONFIG_CJSON_CIRCULAR_LIMIT=10000
4456+
# end of cJSON
4457+
44244458
#
44254459
# LVGL configuration
44264460
#

0 commit comments

Comments
 (0)