-
Notifications
You must be signed in to change notification settings - Fork 822
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'feature/support_esp32s2' into 'master'
feat: Added esp32-s2 support See merge request application/esp-at!1560
- Loading branch information
Showing
22 changed files
with
617 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
name: Reusable esp32s2-at workflow template | ||
|
||
on: | ||
workflow_call: | ||
# parameters from upstream workflow | ||
inputs: | ||
module_name: | ||
required: true | ||
type: string | ||
artifacts_name: | ||
required: true | ||
type: string | ||
# parameters from upstream inherit | ||
secrets: | ||
ESP32S2_4MB_TOKEN: | ||
required: false | ||
|
||
jobs: | ||
build-template-esp32s2: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/[email protected] | ||
- uses: actions/[email protected] | ||
with: | ||
python-version: '3.10' | ||
- name: Configure prerequisites | ||
run: | | ||
# set module information | ||
mkdir build | ||
echo -e "{\"platform\": \"PLATFORM_ESP32S2\", \"module\": \"${{ inputs.module_name }}\", \"silence\": 0}" > build/module_info.json | ||
# update esp32s2 ota token | ||
cd components/at/private_include | ||
rm -f at_ota_token.h | ||
echo -e "#pragma once" >> at_ota_token.h | ||
echo -e "#define CONFIG_ESP_AT_OTA_TOKEN_ESP32S2_4MB \"${{ secrets.ESP32S2_4MB_TOKEN }}\"" >> at_ota_token.h | ||
echo -e "#define CONFIG_ESP_AT_OTA_SSL_TOKEN_ESP32S2_4MB \"${{ secrets.ESP32S2_4MB_TOKEN }}\"" >> at_ota_token.h | ||
cd - | ||
- name: Install ESP-IDF environment variables | ||
run: | | ||
./build.py install | ||
- name: Compile | ||
run: | | ||
./build.py build | ||
- name: Upload artifacts | ||
uses: actions/[email protected] | ||
with: | ||
name: ${{ inputs.artifacts_name }} | ||
path: | | ||
sdkconfig | ||
build/*.bin | ||
build/*.elf | ||
build/*.map | ||
build/bootloader/*.bin | ||
build/partition_table/*.bin | ||
build/customized_partitions/* | ||
build/flasher_args.json | ||
build/download.config | ||
build/factory/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Build ESP32-S2 AT Firmwares | ||
|
||
esp32s2_4mb_at: | ||
extends: | ||
- .build_template_esp32s2 | ||
- .rules:build:build_project | ||
variables: | ||
MODULE_NAME: "ESP32S2-4MB" | ||
|
||
esp32s2_4mb_at_tat_debug: | ||
extends: | ||
- .build_template_esp32s2 | ||
- .before_script_enable_at_debugs | ||
- .rules:build:build_project_on_protected | ||
variables: | ||
MODULE_NAME: "ESP32S2-4MB" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,3 +2,4 @@ ESP32: ca45add | |
ESP32C3: ca45add | ||
ESP32C2: ca45add | ||
ESP32C6: f33f3c8 | ||
ESP32S2: ca45add |
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
branch:release/v5.0 | ||
commit:bcca689866db3dfda47f77670bf8df2a7ec94721 | ||
repository:https://github.com/espressif/esp-idf.git |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Name, Type, SubType, Offset, Size | ||
mfg_nvs, data, nvs, 0x21000, 112K | ||
fatfs, data, fat, 0x70000, 576K |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Name, Type, SubType, Offset, Size | ||
phy_init, data, phy, 0xf000, 0x1000 | ||
otadata, data, ota, 0x10000, 8K | ||
nvs, data, nvs, 0x12000, 56K | ||
at_customize, 0x40, 0, 0x20000, 0xE0000 | ||
ota_0, app, ota_0, 0x100000, 0x180000 | ||
ota_1, app, ota_1, 0x280000, 0x180000 |
40 changes: 40 additions & 0 deletions
40
module_config/module_esp32s2_default/patch/esp_tls_parse_ecc_key.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
diff --git a/components/esp-tls/esp_tls_mbedtls.c b/components/esp-tls/esp_tls_mbedtls.c | ||
index ce1d832b09..d796463e82 100644 | ||
--- a/components/esp-tls/esp_tls_mbedtls.c | ||
+++ b/components/esp-tls/esp_tls_mbedtls.c | ||
@@ -78,6 +78,17 @@ esp_err_t esp_create_mbedtls_handle(const char *hostname, size_t hostlen, const | ||
mbedtls_ssl_config_init(&tls->conf); | ||
mbedtls_entropy_init(&tls->entropy); | ||
|
||
+ if ((ret = mbedtls_ctr_drbg_seed(&tls->ctr_drbg, | ||
+ mbedtls_entropy_func, &tls->entropy, NULL, 0)) != 0) { | ||
+ ESP_LOGE(TAG, "mbedtls_ctr_drbg_seed returned -0x%04X", -ret); | ||
+ mbedtls_print_error_msg(ret); | ||
+ ESP_INT_EVENT_TRACKER_CAPTURE(tls->error_handle, ESP_TLS_ERR_TYPE_MBEDTLS, -ret); | ||
+ esp_ret = ESP_ERR_MBEDTLS_CTR_DRBG_SEED_FAILED; | ||
+ goto exit; | ||
+ } | ||
+ | ||
+ mbedtls_ssl_conf_rng(&tls->conf, mbedtls_ctr_drbg_random, &tls->ctr_drbg); | ||
+ | ||
if (tls->role == ESP_TLS_CLIENT) { | ||
esp_ret = set_client_config(hostname, hostlen, (esp_tls_cfg_t *)cfg, tls); | ||
if (esp_ret != ESP_OK) { | ||
@@ -97,17 +108,6 @@ esp_err_t esp_create_mbedtls_handle(const char *hostname, size_t hostlen, const | ||
#endif | ||
} | ||
|
||
- if ((ret = mbedtls_ctr_drbg_seed(&tls->ctr_drbg, | ||
- mbedtls_entropy_func, &tls->entropy, NULL, 0)) != 0) { | ||
- ESP_LOGE(TAG, "mbedtls_ctr_drbg_seed returned -0x%04X", -ret); | ||
- mbedtls_print_error_msg(ret); | ||
- ESP_INT_EVENT_TRACKER_CAPTURE(tls->error_handle, ESP_TLS_ERR_TYPE_MBEDTLS, -ret); | ||
- esp_ret = ESP_ERR_MBEDTLS_CTR_DRBG_SEED_FAILED; | ||
- goto exit; | ||
- } | ||
- | ||
- mbedtls_ssl_conf_rng(&tls->conf, mbedtls_ctr_drbg_random, &tls->ctr_drbg); | ||
- | ||
#ifdef CONFIG_MBEDTLS_DEBUG | ||
mbedtls_esp_enable_debug_log(&tls->conf, CONFIG_MBEDTLS_DEBUG_LEVEL); | ||
#endif |
123 changes: 123 additions & 0 deletions
123
module_config/module_esp32s2_default/patch/fatfs_generation.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
diff --git a/components/fatfs/fatfs_utils/utils.py b/components/fatfs/fatfs_utils/utils.py | ||
index e7d2e25a7f..ddc68c9225 100644 | ||
--- a/components/fatfs/fatfs_utils/utils.py | ||
+++ b/components/fatfs/fatfs_utils/utils.py | ||
@@ -1,14 +1,17 @@ | ||
# SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD | ||
# SPDX-License-Identifier: Apache-2.0 | ||
- | ||
import argparse | ||
import binascii | ||
import os | ||
import uuid | ||
from datetime import datetime | ||
-from typing import List, Optional, Tuple | ||
+from typing import List | ||
+from typing import Optional | ||
+from typing import Tuple | ||
|
||
-from construct import BitsInteger, BitStruct, Int16ul | ||
+from construct import BitsInteger | ||
+from construct import BitStruct | ||
+from construct import Int16ul | ||
|
||
FAT12_MAX_CLUSTERS: int = 4085 | ||
FAT16_MAX_CLUSTERS: int = 65525 | ||
@@ -200,6 +203,11 @@ def get_args_for_partition_generator(desc: str) -> argparse.Namespace: | ||
Type of fat. Select 12 for fat12, 16 for fat16. Don't set, or set to 0 for automatic | ||
calculation using cluster size and partition size. | ||
""") | ||
+ parser.add_argument('--wl_mode', | ||
+ default=None, | ||
+ type=str, | ||
+ choices=['safe', 'perf'], | ||
+ help='Wear levelling mode to use. Safe or performance. Only for sector size of 512') | ||
|
||
args = parser.parse_args() | ||
if args.fat_type == 0: | ||
@@ -207,6 +215,9 @@ def get_args_for_partition_generator(desc: str) -> argparse.Namespace: | ||
args.partition_size = int(str(args.partition_size), 0) | ||
if not os.path.isdir(args.input_directory): | ||
raise NotADirectoryError(f'The target directory `{args.input_directory}` does not exist!') | ||
+ if args.wl_mode is not None: | ||
+ if args.sector_size != 512: | ||
+ raise ValueError('Wear levelling mode can be set only for sector size 512') | ||
return args | ||
|
||
|
||
diff --git a/components/fatfs/wl_fatfsgen.py b/components/fatfs/wl_fatfsgen.py | ||
index b6c5dd4fe7..8881938f03 100755 | ||
--- a/components/fatfs/wl_fatfsgen.py | ||
+++ b/components/fatfs/wl_fatfsgen.py | ||
@@ -1,13 +1,19 @@ | ||
#!/usr/bin/env python | ||
-# SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD | ||
+# SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD | ||
# SPDX-License-Identifier: Apache-2.0 | ||
+from typing import List | ||
+from typing import Optional | ||
|
||
-from typing import List, Optional | ||
- | ||
-from construct import Const, Int32ul, Struct | ||
+from construct import Const | ||
+from construct import Int32ul | ||
+from construct import Struct | ||
from fatfs_utils.exceptions import WLNotInitialized | ||
-from fatfs_utils.utils import (FULL_BYTE, UINT32_MAX, FATDefaults, crc32, generate_4bytes_random, | ||
- get_args_for_partition_generator) | ||
+from fatfs_utils.utils import crc32 | ||
+from fatfs_utils.utils import FATDefaults | ||
+from fatfs_utils.utils import FULL_BYTE | ||
+from fatfs_utils.utils import generate_4bytes_random | ||
+from fatfs_utils.utils import get_args_for_partition_generator | ||
+from fatfs_utils.utils import UINT32_MAX | ||
from fatfsgen import FATFS | ||
|
||
|
||
@@ -55,6 +61,7 @@ class WLFATFS: | ||
WL_STATE_HEADER_SIZE = 64 | ||
WL_STATE_COPY_COUNT = 2 # always 2 copies for power failure safety | ||
WL_SECTOR_SIZE = 0x1000 | ||
+ WL_SAFE_MODE_DUMP_SECTORS = 2 | ||
|
||
WL_STATE_T_DATA = Struct( | ||
'pos' / Int32ul, | ||
@@ -99,7 +106,8 @@ class WLFATFS: | ||
temp_buff_size: int = FATDefaults.TEMP_BUFFER_SIZE, | ||
device_id: int = None, | ||
root_entry_count: int = FATDefaults.ROOT_ENTRIES_COUNT, | ||
- media_type: int = FATDefaults.MEDIA_TYPE) -> None: | ||
+ media_type: int = FATDefaults.MEDIA_TYPE, | ||
+ wl_mode: Optional[str] = None) -> None: | ||
self._initialized = False | ||
self._version = version | ||
self._temp_buff_size = temp_buff_size | ||
@@ -107,6 +115,7 @@ class WLFATFS: | ||
self.partition_size = size | ||
self.total_sectors = self.partition_size // FATDefaults.WL_SECTOR_SIZE | ||
self.wl_state_size = WLFATFS.WL_STATE_HEADER_SIZE + WLFATFS.WL_STATE_RECORD_SIZE * self.total_sectors | ||
+ self.wl_mode = wl_mode | ||
|
||
# determine the number of required sectors (roundup to sector size) | ||
self.wl_state_sectors = (self.wl_state_size + FATDefaults.WL_SECTOR_SIZE - 1) // FATDefaults.WL_SECTOR_SIZE | ||
@@ -116,6 +125,9 @@ class WLFATFS: | ||
|
||
wl_sectors = (WLFATFS.WL_DUMMY_SECTORS_COUNT + WLFATFS.WL_CFG_SECTORS_COUNT + | ||
self.wl_state_sectors * WLFATFS.WL_STATE_COPY_COUNT) | ||
+ if self.wl_mode is not None and self.wl_mode == 'safe': | ||
+ wl_sectors += WLFATFS.WL_SAFE_MODE_DUMP_SECTORS | ||
+ | ||
self.plain_fat_sectors = self.total_sectors - wl_sectors | ||
self.plain_fatfs = FATFS( | ||
explicit_fat_type=explicit_fat_type, | ||
@@ -226,7 +238,8 @@ if __name__ == '__main__': | ||
root_entry_count=args.root_entry_count, | ||
explicit_fat_type=args.fat_type, | ||
long_names_enabled=args.long_name_support, | ||
- use_default_datetime=args.use_default_datetime) | ||
+ use_default_datetime=args.use_default_datetime, | ||
+ wl_mode=args.wl_mode) | ||
|
||
wl_fatfs.wl_generate(args.input_directory) | ||
wl_fatfs.init_wl() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
; Add your patches to the section below | ||
|
||
[esp_tls_parse_ecc_key.patch] | ||
path = esp-idf | ||
note = "Fixed an issue where esp-tls is unable to parse ECC keys" | ||
|
||
[fatfs_generation.patch] | ||
path = esp-idf | ||
note = "Fixed an issue where data read after writing fatfs partition more than 63 times might be incorrect" | ||
|
||
[support_ext_partition.patch] | ||
path = esp-idf | ||
note = "[IDF-9560] Support to use partition table outside of the project directory" |
Oops, something went wrong.