From a685764d48e683295557d06719707dc2bc1f7d58 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Mon, 29 Jul 2024 15:57:35 +0300 Subject: [PATCH 01/70] Enable ERROR logs in the bootloader (#196) --- configs/defconfig.debug_default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/defconfig.debug_default b/configs/defconfig.debug_default index 1d8258392..c1858126e 100644 --- a/configs/defconfig.debug_default +++ b/configs/defconfig.debug_default @@ -1,2 +1,2 @@ -CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y +CONFIG_BOOTLOADER_LOG_LEVEL_ERROR=y CONFIG_LOG_DEFAULT_LEVEL_ERROR=y From 248cae46abcf3aba58439cc6afbb5cc997f5b645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Wed, 31 Jul 2024 13:15:06 +0200 Subject: [PATCH 02/70] patch(ble): Add patch to fix WiFiProvisiong on ESP32C6 (#197) * patch(ble): Add patch to fix WiFiProvisiong on ESP32C6 * fix(): Diff formatting * fix(): Fix patches dir when IDF is not inside lib_builder --- patches/esp32c6_provisioning_bluedroid.diff | 12 ++++++++++++ tools/config.sh | 1 + tools/install-esp-idf.sh | 7 ++++--- 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 patches/esp32c6_provisioning_bluedroid.diff diff --git a/patches/esp32c6_provisioning_bluedroid.diff b/patches/esp32c6_provisioning_bluedroid.diff new file mode 100644 index 000000000..98371b8aa --- /dev/null +++ b/patches/esp32c6_provisioning_bluedroid.diff @@ -0,0 +1,12 @@ +diff --git a/components/protocomm/src/simple_ble/simple_ble.c b/components/protocomm/src/simple_ble/simple_ble.c +index 8a4ae0f3d9..cd6421c6e5 100644 +--- a/components/protocomm/src/simple_ble/simple_ble.c ++++ b/components/protocomm/src/simple_ble/simple_ble.c +@@ -225,7 +225,7 @@ esp_err_t simple_ble_start(simple_ble_cfg_t *cfg) + #ifdef CONFIG_BTDM_CTRL_MODE_BTDM + ret = esp_bt_controller_enable(ESP_BT_MODE_BTDM); +-#elif defined CONFIG_BTDM_CTRL_MODE_BLE_ONLY || CONFIG_BT_CTRL_MODE_EFF ++#elif defined CONFIG_BTDM_CTRL_MODE_BLE_ONLY || CONFIG_BT_CTRL_MODE_EFF || CONFIG_IDF_TARGET_ESP32C6 + ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); + #else + ESP_LOGE(TAG, "Configuration mismatch. Select BLE Only or BTDM mode from menuconfig"); diff --git a/tools/config.sh b/tools/config.sh index 936a9c50c..ef917e846 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -45,6 +45,7 @@ AR_COMPS="$AR_ROOT/components" AR_MANAGED_COMPS="$AR_ROOT/managed_components" AR_OUT="$AR_ROOT/out" AR_TOOLS="$AR_OUT/tools" +AR_PATCHES="$AR_ROOT/patches" AR_PLATFORM_TXT="$AR_OUT/platform.txt" AR_GEN_PART_PY="$AR_TOOLS/gen_esp32part.py" AR_SDK="$AR_TOOLS/esp32-arduino-libs/$IDF_TARGET" diff --git a/tools/install-esp-idf.sh b/tools/install-esp-idf.sh index 858e1381f..320ce0cb0 100755 --- a/tools/install-esp-idf.sh +++ b/tools/install-esp-idf.sh @@ -37,9 +37,10 @@ if [ ! -x $idf_was_installed ] || [ ! -x $commit_predefined ]; then # Temporarily patch the ESP32-S2 I2C LL driver to keep the clock source cd $IDF_PATH - patch -p1 -N -i ../patches/esp32s2_i2c_ll_master_init.diff - patch -p1 -N -i ../patches/mmu_map.diff - patch -p1 -N -i ../patches/lwip_max_tcp_pcb.diff + patch -p1 -N -i $AR_PATCHES/esp32s2_i2c_ll_master_init.diff + patch -p1 -N -i $AR_PATCHES/mmu_map.diff + patch -p1 -N -i $AR_PATCHES/lwip_max_tcp_pcb.diff + patch -p1 -N -i $AR_PATCHES/esp32c6_provisioning_bluedroid.diff cd - fi From cedf48163aa665b9b0caadd4d77a3275bcea82d1 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Tue, 13 Aug 2024 09:07:38 -0300 Subject: [PATCH 03/70] feat(mbedtls): Enable support for non-AES ciphers in GCM operation (#200) --- configs/defconfig.common | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/defconfig.common b/configs/defconfig.common index 437d84f47..a6b42ed64 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -78,6 +78,7 @@ CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM=y CONFIG_MBEDTLS_PSK_MODES=y CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y CONFIG_MBEDTLS_CAMELLIA_C=y +CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y # CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN is not set CONFIG_MBEDTLS_SSL_PROTO_DTLS=y CONFIG_OPENSSL_ASSERT_DO_NOTHING=y From 01e436556ea223499ceb86e9a3439133206d1ba0 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 14 Aug 2024 00:34:41 +0300 Subject: [PATCH 04/70] Fix ESP-DSP breaking the build (#203) * Fix ESP-DSP breaking the build * Clear redundant code --- build.sh | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/build.sh b/build.sh index eead520a6..887016d6a 100755 --- a/build.sh +++ b/build.sh @@ -115,9 +115,14 @@ else source ./tools/config.sh fi -if [ -f "$AR_MANAGED_COMPS/espressif__esp-sr/.component_hash" ]; then - rm -rf $AR_MANAGED_COMPS/espressif__esp-sr/.component_hash -fi +function clear_component_hashes(){ + if [ -f "$AR_MANAGED_COMPS/espressif__esp-sr/.component_hash" ]; then + rm -rf $AR_MANAGED_COMPS/espressif__esp-sr/.component_hash + fi + if [ -f "$AR_MANAGED_COMPS/espressif__esp-dsp/.component_hash" ]; then + rm -rf $AR_MANAGED_COMPS/espressif__esp-dsp/.component_hash + fi +} if [ "$BUILD_TYPE" != "all" ]; then if [ "$TARGET" = "all" ]; then @@ -157,6 +162,7 @@ if [ "$BUILD_TYPE" != "all" ]; then echo "idf.py -DIDF_TARGET=\"$target\" -DSDKCONFIG_DEFAULTS=\"$configs\" $BUILD_TYPE" rm -rf build sdkconfig + clear_component_hashes idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$configs" $BUILD_TYPE if [ $? -ne 0 ]; then exit 1; fi done @@ -209,16 +215,14 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do idf_libs_configs="$idf_libs_configs;configs/defconfig.$defconf" done - if [ -f "$AR_MANAGED_COMPS/espressif__esp-sr/.component_hash" ]; then - rm -rf $AR_MANAGED_COMPS/espressif__esp-sr/.component_hash - fi - echo "* Build IDF-Libs: $idf_libs_configs" rm -rf build sdkconfig + clear_component_hashes idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$idf_libs_configs" idf-libs if [ $? -ne 0 ]; then exit 1; fi if [ "$target" == "esp32s3" ]; then + clear_component_hashes idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$idf_libs_configs" srmodels_bin if [ $? -ne 0 ]; then exit 1; fi AR_SDK="$AR_TOOLS/esp32-arduino-libs/$target" @@ -238,12 +242,9 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do bootloader_configs="$bootloader_configs;configs/defconfig.$defconf"; done - if [ -f "$AR_MANAGED_COMPS/espressif__esp-sr/.component_hash" ]; then - rm -rf $AR_MANAGED_COMPS/espressif__esp-sr/.component_hash - fi - echo "* Build BootLoader: $bootloader_configs" rm -rf build sdkconfig + clear_component_hashes idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$bootloader_configs" copy-bootloader if [ $? -ne 0 ]; then exit 1; fi done @@ -255,12 +256,9 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do mem_configs="$mem_configs;configs/defconfig.$defconf"; done - if [ -f "$AR_MANAGED_COMPS/espressif__esp-sr/.component_hash" ]; then - rm -rf $AR_MANAGED_COMPS/espressif__esp-sr/.component_hash - fi - echo "* Build Memory Variant: $mem_configs" rm -rf build sdkconfig + clear_component_hashes idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$mem_configs" mem-variant if [ $? -ne 0 ]; then exit 1; fi done From d7df7535b5a144431ba50064cfd0f6d3cacee8a8 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Thu, 15 Aug 2024 21:01:51 +0200 Subject: [PATCH 05/70] add zigbee libs (#204) --- configs/pio_start.txt | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/configs/pio_start.txt b/configs/pio_start.txt index 9a38020fb..70b375397 100644 --- a/configs/pio_start.txt +++ b/configs/pio_start.txt @@ -37,4 +37,39 @@ FRAMEWORK_SDK_DIR = env.PioPlatform().get_package_dir( board_config = env.BoardConfig() +flatten_cppdefines = env.Flatten(env['CPPDEFINES']) + +# +# zigbee libs +# +if "ZIGBEE_MODE_ZCZR" in flatten_cppdefines: + env.Append( + LIBS=[ + "-lesp_zb_api_zczr", + "-lesp_zb_cli_command", + "-lzboss_stack.zczr.trace", + "-lzboss_stack.zczr", + "-lzboss_port" + ] + ) +if "ZIGBEE_MODE_ED" in flatten_cppdefines: + env.Append( + LIBS=[ + "-lesp_zb_api_ed", + "-lesp_zb_cli_command", + "-lzboss_stack.ed.trace", + "-lzboss_stack.ed", + "-lzboss_port" + ] + ) +if "ZIGBEE_MODE_RCP" in flatten_cppdefines: + env.Append( + LIBS=[ + "-lesp_zb_api_rcp", + "-lesp_zb_cli_command", + "-lzboss_stack.rcp", + "-lzboss_port" + ] + ) + env.Append( From fcfcb744b5c9972cf0a6ab6234d40c6336e1408a Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Thu, 15 Aug 2024 23:44:49 +0300 Subject: [PATCH 06/70] Use component manager overwrite to help build (#205) --- build.sh | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/build.sh b/build.sh index 887016d6a..68a95e643 100755 --- a/build.sh +++ b/build.sh @@ -10,6 +10,9 @@ if ! [ -x "$(command -v git)" ]; then exit 1 fi +# Fixes building some components. See https://github.com/espressif/arduino-esp32/issues/10167 +export IDF_COMPONENT_OVERWRITE_MANAGED_COMPONENTS=1 + TARGET="all" BUILD_TYPE="all" BUILD_DEBUG="default" @@ -115,15 +118,6 @@ else source ./tools/config.sh fi -function clear_component_hashes(){ - if [ -f "$AR_MANAGED_COMPS/espressif__esp-sr/.component_hash" ]; then - rm -rf $AR_MANAGED_COMPS/espressif__esp-sr/.component_hash - fi - if [ -f "$AR_MANAGED_COMPS/espressif__esp-dsp/.component_hash" ]; then - rm -rf $AR_MANAGED_COMPS/espressif__esp-dsp/.component_hash - fi -} - if [ "$BUILD_TYPE" != "all" ]; then if [ "$TARGET" = "all" ]; then echo "ERROR: You need to specify target for non-default builds" @@ -162,7 +156,6 @@ if [ "$BUILD_TYPE" != "all" ]; then echo "idf.py -DIDF_TARGET=\"$target\" -DSDKCONFIG_DEFAULTS=\"$configs\" $BUILD_TYPE" rm -rf build sdkconfig - clear_component_hashes idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$configs" $BUILD_TYPE if [ $? -ne 0 ]; then exit 1; fi done @@ -217,12 +210,10 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do echo "* Build IDF-Libs: $idf_libs_configs" rm -rf build sdkconfig - clear_component_hashes idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$idf_libs_configs" idf-libs if [ $? -ne 0 ]; then exit 1; fi if [ "$target" == "esp32s3" ]; then - clear_component_hashes idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$idf_libs_configs" srmodels_bin if [ $? -ne 0 ]; then exit 1; fi AR_SDK="$AR_TOOLS/esp32-arduino-libs/$target" @@ -244,7 +235,6 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do echo "* Build BootLoader: $bootloader_configs" rm -rf build sdkconfig - clear_component_hashes idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$bootloader_configs" copy-bootloader if [ $? -ne 0 ]; then exit 1; fi done @@ -258,7 +248,6 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do echo "* Build Memory Variant: $mem_configs" rm -rf build sdkconfig - clear_component_hashes idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$mem_configs" mem-variant if [ $? -ne 0 ]; then exit 1; fi done From 2a45ca077795e218656ec5c0f117da27d49bffa6 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Fri, 16 Aug 2024 12:22:47 +0300 Subject: [PATCH 07/70] Require ninja to be installed and in path to build the libs (#206) Make causes issues with building the libs, so ninja must be used --- build.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 68a95e643..ca412b7ff 100755 --- a/build.sh +++ b/build.sh @@ -1,12 +1,17 @@ #!/bin/bash if ! [ -x "$(command -v python3)" ]; then - echo "ERROR: python is not installed! Please install python first." + echo "ERROR: python is not installed or not in PATH! Please install python first." exit 1 fi if ! [ -x "$(command -v git)" ]; then - echo "ERROR: git is not installed! Please install git first." + echo "ERROR: git is not installed or not in PATH! Please install git first." + exit 1 +fi + +if ! [ -x "$(command -v ninja)" ]; then + echo "ERROR: ninja is not installed or not in PATH! Please install ninja first." exit 1 fi From 65e6fb13c1638c19da87e6a029f693ed2bd71d35 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 19 Aug 2024 06:40:02 -0300 Subject: [PATCH 08/70] Split cron jobs and move libs to releases (#187) * Split cron jobs using matrix * Move to workflow call * Use github releases for libs * Enable ccache by default * Fix push --------- Co-authored-by: Me No Dev --- .github/workflows/cron.yml | 138 +++---------------------- .github/workflows/cron_build.yml | 161 +++++++++++++++++++++++++++++ build.sh | 19 +++- tools/check-deploy-needed.sh | 51 ++++++++-- tools/combine-artifacts.sh | 20 ++++ tools/config.sh | 32 +++++- tools/cron.sh | 7 +- tools/install-arduino.sh | 14 --- tools/install-esp-idf.sh | 49 --------- tools/push-to-arduino.sh | 169 +++++++++++++++++-------------- 10 files changed, 379 insertions(+), 281 deletions(-) create mode 100644 .github/workflows/cron_build.yml create mode 100755 tools/combine-artifacts.sh diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index 00405c4ba..a9ec31ce3 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -1,144 +1,36 @@ -name: Cron Build +name: Cron Deploy -on: +on: schedule: # ┌───────────── minute (0 - 59) # │ ┌───────────── hour (0 - 23) # │ │ ┌───────────── day of the month (1 - 31) # │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) # │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) -# │ │ │ │ │ +# │ │ │ │ │ # │ │ │ │ │ # │ │ │ │ │ # * * * * * - cron: '0 */6 * * *' + workflow_dispatch: # For testing defaults: run: shell: bash jobs: - run: + build-libs: name: Build with IDF ${{ matrix.idf_branch }} - runs-on: ubuntu-latest - + uses: ./.github/workflows/cron_build.yml + with: + idf_branch: ${{ matrix.idf_branch }} + lib_builder_branch: ${{ matrix.lib_builder_branch }} + targets: ${{ matrix.targets }} + secrets: inherit strategy: fail-fast: false matrix: - idf_branch: [release/v5.1, release/v4.4] #, release/v3.3] - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Install dependencies - run: bash ./tools/prepare-ci.sh - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} - GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} - GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} - IDF_BRANCH: ${{ matrix.idf_branch }} - run: | - git checkout ${{ matrix.idf_branch }} || echo "Using master branch" - bash ./tools/cron.sh - - name: Upload build - if: failure() - uses: actions/upload-artifact@v4 - with: - name: build - path: build - - name: Upload archive - uses: actions/upload-artifact@v4 - with: - name: artifacts - path: dist - - - # check: - # name: Check if result should be deployed - # runs-on: ubuntu-latest - # strategy: - # matrix: - # branch: [release/v5.1, release/v4.4] #, release/v3.3] - # outputs: - # idf_branch: ${{ steps.check.outputs.idf_branch }} - # idf_commit: ${{ steps.check.outputs.idf_commit }} - # ar_branch: ${{ steps.check.outputs.ar_branch }} - # ar_new_commit_message: ${{ steps.check.outputs.ar_new_commit_message }} - # ar_new_branch_name: ${{ steps.check.outputs.ar_new_branch_name }} - # ar_new_pr_title: ${{ steps.check.outputs.ar_new_pr_title }} - # ar_has_commit: ${{ steps.check.outputs.ar_has_commit }} - # ar_has_branch: ${{ steps.check.outputs.ar_has_branch }} - # ar_has_pr: ${{ steps.check.outputs.ar_has_pr }} - # libs_version: ${{ steps.check.outputs.libs_version }} - # libs_has_commit: ${{ steps.check.outputs.libs_has_commit }} - # libs_has_branch: ${{ steps.check.outputs.libs_has_branch }} - # steps: - # - uses: actions/checkout@v3 - # - id: check - # env: - # GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} - # GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} - # GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} - # IDF_BRANCH: ${{ matrix.idf_branch }} - # run: bash ./tools/check-deploy-needed.sh - - # build: - # name: Build Libs for ${{ matrix.target }} - # runs-on: ubuntu-latest - # needs: check - # if: needs.check.outputs.libs_has_commit == '0' || needs.check.outputs.ar_has_commit == '0' - # strategy: - # matrix: - # target: [esp32, esp32s2, esp32s3, esp32c3, esp32c6, esp32h2] - # fail-fast: false - # steps: - # - uses: actions/checkout@v3 - # # - name: Install dependencies - # # run: bash ./tools/prepare-ci.sh - # - shell: bash - # name: Build Libs for ${{ matrix.target }} - # run: echo ${{ matrix.target }} - # # run: bash ./build.sh -t ${{ matrix.target }} - # # - name: Upload archive - # # uses: actions/upload-artifact@v3 - # # with: - # # name: artifacts - # # path: dist - - # deploy: - # name: Deploy build - # runs-on: ubuntu-latest - # needs: [check, build] - # steps: - # - uses: actions/checkout@v3 - # - shell: bash - # env: - # GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} - # GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} - # GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} - # IDF_BRANCH: ${{ needs.check.outputs.idf_branch }} - # IDF_COMMIT: ${{ needs.check.outputs.idf_commit }} - # AR_BRANCH: ${{ needs.check.outputs.ar_branch }} - # AR_NEW_COMMIT_MESSAGE: ${{ needs.check.outputs.ar_new_commit_message }} - # AR_NEW_BRANCH_NAME: ${{ needs.check.outputs.ar_new_branch_name }} - # AR_NEW_PR_TITLE: ${{ needs.check.outputs.ar_new_pr_title }} - # AR_HAS_COMMIT: ${{ needs.check.outputs.ar_has_commit }} - # AR_HAS_BRANCH: ${{ needs.check.outputs.ar_has_branch }} - # AR_HAS_PR: ${{ needs.check.outputs.ar_has_pr }} - # LIBS_VERSION: ${{ needs.check.outputs.libs_version }} - # LIBS_HAS_COMMIT: ${{ needs.check.outputs.libs_has_commit }} - # LIBS_HAS_BRANCH: ${{ needs.check.outputs.libs_has_branch }} - # run: | - # echo "IDF_COMMIT: $IDF_COMMIT" - # echo "AR_BRANCH: $AR_BRANCH" - # echo "AR_NEW_COMMIT_MESSAGE: $AR_NEW_COMMIT_MESSAGE" - # echo "AR_NEW_BRANCH_NAME: $AR_NEW_BRANCH_NAME" - # echo "AR_NEW_PR_TITLE: $AR_NEW_PR_TITLE" - # echo "AR_HAS_COMMIT: $AR_HAS_COMMIT" - # echo "AR_HAS_BRANCH: $AR_HAS_BRANCH" - # echo "AR_HAS_PR: $AR_HAS_PR" - # echo "LIBS_VERSION: $LIBS_VERSION" - # echo "LIBS_HAS_COMMIT: $LIBS_HAS_COMMIT" - # echo "LIBS_HAS_BRANCH: $LIBS_HAS_BRANCH" - + include: + - idf_branch: "release/v5.1" + lib_builder_branch: "master" + targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" diff --git a/.github/workflows/cron_build.yml b/.github/workflows/cron_build.yml new file mode 100644 index 000000000..f8767617c --- /dev/null +++ b/.github/workflows/cron_build.yml @@ -0,0 +1,161 @@ +name: Cron Build Matrix + +on: + workflow_call: + inputs: + idf_branch: + type: string + required: true + description: 'IDF branch to build' + lib_builder_branch: + type: string + required: true + description: 'Branch of the lib-builder to use' + targets: + type: string + required: true + description: 'Targets to build' + +env: + IDF_BRANCH: ${{ inputs.idf_branch }} + +jobs: + check-if-needed: + name: Check if deploy is needed for ${{ inputs.idf_branch }} + runs-on: ubuntu-latest + outputs: + idf_commit: ${{ steps.check.outputs.idf_commit }} + ar_branch: ${{ steps.check.outputs.ar_branch }} + ar_new_commit_message: ${{ steps.check.outputs.ar_new_commit_message }} + ar_new_branch_name: ${{ steps.check.outputs.ar_new_branch_name }} + ar_new_pr_title: ${{ steps.check.outputs.ar_new_pr_title }} + ar_has_commit: ${{ steps.check.outputs.ar_has_commit }} + ar_has_branch: ${{ steps.check.outputs.ar_has_branch }} + ar_has_pr: ${{ steps.check.outputs.ar_has_pr }} + libs_release_tag: ${{ steps.check.outputs.libs_release_tag }} + libs_version: ${{ steps.check.outputs.libs_version }} + libs_release_id: ${{ steps.check.outputs.libs_release_id }} + libs_has_release: ${{ steps.check.outputs.libs_has_release }} + libs_asset_id: ${{ steps.check.outputs.libs_asset_id }} + libs_has_asset: ${{ steps.check.outputs.libs_has_asset }} + deploy_needed: ${{ steps.check.outputs.deploy_needed }} + targets_list: ${{ steps.check.outputs.targets_list }} + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.lib_builder_branch }} + + - name: Check deploy and generate variables + id: check + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + source ./tools/check-deploy-needed.sh + targets_list=$(echo "${{ inputs.targets }}" | sed 's/ *, */,/g' | sed 's/^/["/' | sed 's/$/"]/' | sed 's/,/","/g') + echo "Targets list: $targets_list" + echo "targets_list=$targets_list" >> $GITHUB_OUTPUT + + build-libs: + name: Build for ${{ matrix.target }} (${{ inputs.idf_branch }}) + runs-on: ubuntu-latest + if: needs.check-if-needed.outputs.deploy_needed == '1' + needs: check-if-needed + strategy: + fail-fast: false + matrix: + target: ${{ fromJson(needs.check-if-needed.outputs.targets_list) }} + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.lib_builder_branch }} + + - name: Install dependencies + run: bash ./tools/prepare-ci.sh + + - name: Build + env: + GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN || secrets.GITHUB_TOKEN }} + GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} + GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} + TARGET: ${{ matrix.target }} + run: | + bash ./tools/cron.sh + + - name: Replace invalid characters in the artifact name + run: | + branch=${{ inputs.idf_branch }} + echo "libs_branch=${branch//\//_}" >> $GITHUB_ENV + + - name: Upload build + if: failure() + uses: actions/upload-artifact@v4 + with: + name: build-${{ env.libs_branch }}-${{ matrix.target }} + path: build + + - name: Upload library files + uses: actions/upload-artifact@v4 + with: + name: libs-${{ env.libs_branch }}-${{ matrix.target }} + path: dist + + combine-artifacts: + name: Combine artifacts and push changes for IDF ${{ inputs.idf_branch }} + runs-on: ubuntu-latest + needs: [check-if-needed, build-libs] + if: needs.check-if-needed.outputs.deploy_needed == '1' + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.lib_builder_branch }} + + - name: Replace invalid characters in the artifact name + run: | + branch=${{ inputs.idf_branch }} + echo "libs_branch=${branch//\//_}" >> $GITHUB_ENV + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + path: dist + pattern: libs-${{ env.libs_branch }}-* + merge-multiple: true + + - name: Combine artifacts + run: bash ./tools/combine-artifacts.sh + + - name: Upload full esp32-arduino-libs archive + uses: actions/upload-artifact@v4 + with: + name: esp32-arduino-libs-${{ env.libs_branch }} + path: dist/esp32-arduino-libs.zip + compression-level: 0 + + - name: Push changes + if: github.repository == 'espressif/esp32-arduino-lib-builder' + env: + GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} + GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} + GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} + IDF_COMMIT: ${{ needs.check-if-needed.outputs.idf_commit }} + AR_BRANCH: ${{ needs.check-if-needed.outputs.ar_branch }} + AR_NEW_COMMIT_MESSAGE: ${{ needs.check-if-needed.outputs.ar_new_commit_message }} + AR_NEW_BRANCH_NAME: ${{ needs.check-if-needed.outputs.ar_new_branch_name }} + AR_NEW_PR_TITLE: ${{ needs.check-if-needed.outputs.ar_new_pr_title }} + AR_HAS_COMMIT: ${{ needs.check-if-needed.outputs.ar_has_commit }} + AR_HAS_BRANCH: ${{ needs.check-if-needed.outputs.ar_has_branch }} + AR_HAS_PR: ${{ needs.check-if-needed.outputs.ar_has_pr }} + LIBS_RELEASE_TAG: ${{ needs.check-if-needed.outputs.libs_release_tag }} + LIBS_VERSION: ${{ needs.check-if-needed.outputs.libs_version }} + LIBS_RELEASE_ID: ${{ needs.check-if-needed.outputs.libs_release_id }} + LIBS_HAS_RELEASE: ${{ needs.check-if-needed.outputs.libs_has_release }} + LIBS_ASSET_ID: ${{ needs.check-if-needed.outputs.libs_asset_id }} + LIBS_HAS_ASSET: ${{ needs.check-if-needed.outputs.libs_has_asset }} + run: | + bash ./tools/push-to-arduino.sh + + - name: Upload package_esp32_index.template.json + uses: actions/upload-artifact@v4 + with: + name: package-esp32-index-json-${{ env.libs_branch }} + path: out/package_esp32_index.template.json diff --git a/build.sh b/build.sh index ca412b7ff..9bceda087 100755 --- a/build.sh +++ b/build.sh @@ -18,6 +18,8 @@ fi # Fixes building some components. See https://github.com/espressif/arduino-esp32/issues/10167 export IDF_COMPONENT_OVERWRITE_MANAGED_COMPONENTS=1 +CCACHE_ENABLE=1 + TARGET="all" BUILD_TYPE="all" BUILD_DEBUG="default" @@ -29,8 +31,9 @@ if [ -z $DEPLOY_OUT ]; then fi function print_help() { - echo "Usage: build.sh [-s] [-A ] [-I ] [-D ] [-i ] [-c ] [-t ] [-b ] [config ...]" + echo "Usage: build.sh [-s] [-n] [-A ] [-I ] [-D ] [-i ] [-c ] [-t ] [-b ] [config ...]" echo " -s Skip installing/updating of ESP-IDF and all components" + echo " -n Disable ccache" echo " -A Set which branch of arduino-esp32 to be used for compilation" echo " -I Set which branch of ESP-IDF to be used for compilation" echo " -i Set which commit of ESP-IDF to be used for compilation" @@ -49,6 +52,9 @@ while getopts ":A:I:i:c:t:b:D:sde" opt; do s ) SKIP_ENV=1 ;; + n ) + CCACHE_ENABLE=0 + ;; d ) DEPLOY_OUT=1 ;; @@ -99,6 +105,8 @@ done shift $((OPTIND -1)) CONFIGS=$@ +export IDF_CCACHE_ENABLE=$CCACHE_ENABLE + # Output the TARGET array echo "TARGET(s): ${TARGET[@]}" @@ -146,7 +154,7 @@ if [ "$BUILD_TYPE" != "all" ]; then # Skip building for targets that are not in the $TARGET array continue fi - + configs="configs/defconfig.common;configs/defconfig.$target;configs/defconfig.debug_$BUILD_DEBUG" for defconf in `echo "$target_json" | jq -c '.features[]' | tr -d '"'`; do configs="$configs;configs/defconfig.$defconf" @@ -191,7 +199,7 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do continue fi fi - + # Skip chips that should not be a part of the final libs # WARNING!!! this logic needs to be updated when cron builds are split into jobs if [ "$TARGET" = "all" ] && [ $target_skip -eq 1 ]; then @@ -291,6 +299,7 @@ done # update package_esp32_index.template.json if [ "$BUILD_TYPE" = "all" ]; then + echo "* Generating package_esp32_index.template.json..." python3 ./tools/gen_tools_json.py -i "$IDF_PATH" -j "$AR_COMPS/arduino/package/package_esp32_index.template.json" -o "$AR_OUT/" python3 ./tools/gen_tools_json.py -i "$IDF_PATH" -o "$TOOLS_JSON_OUT/" if [ $? -ne 0 ]; then exit 1; fi @@ -298,6 +307,7 @@ fi # Generate PlatformIO manifest file if [ "$BUILD_TYPE" = "all" ]; then + echo "* Generating PlatformIO manifest file..." pushd $IDF_PATH ibr=$(git describe --all 2>/dev/null) ic=$(git -C "$IDF_PATH" rev-parse --short HEAD) @@ -308,18 +318,21 @@ fi # copy everything to arduino-esp32 installation if [ $COPY_OUT -eq 1 ] && [ -d "$ESP32_ARDUINO" ]; then + echo "* Copying to Arduino..." ./tools/copy-to-arduino.sh if [ $? -ne 0 ]; then exit 1; fi fi # push changes to esp32-arduino-libs and create pull request into arduino-esp32 if [ $DEPLOY_OUT -eq 1 ]; then + echo "* Pushing to Arduino..." ./tools/push-to-arduino.sh if [ $? -ne 0 ]; then exit 1; fi fi # archive the build if [ $ARCHIVE_OUT -eq 1 ]; then + echo "* Archiving build..." ./tools/archive-build.sh "$TARGET" if [ $? -ne 0 ]; then exit 1; fi fi diff --git a/tools/check-deploy-needed.sh b/tools/check-deploy-needed.sh index 52401942a..230d0bf71 100755 --- a/tools/check-deploy-needed.sh +++ b/tools/check-deploy-needed.sh @@ -4,6 +4,11 @@ source ./tools/config.sh IDF_COMMIT=`github_last_commit "$IDF_REPO" "$IDF_BRANCH"` +if [ -z $IDF_COMMIT ]; then + echo "Failed to get IDF commit for branch $IDF_BRANCH" + exit 1 +fi + if [ -z $GITHUB_HEAD_REF ]; then current_branch=`git branch --show-current` else @@ -31,7 +36,8 @@ AR_NEW_BRANCH_NAME="idf-$IDF_BRANCH" AR_NEW_COMMIT_MESSAGE="IDF $IDF_BRANCH $IDF_COMMIT" AR_NEW_PR_TITLE="IDF $IDF_BRANCH" -LIBS_VERSION="idf-"${IDF_BRANCH//\//_}"-$IDF_COMMIT" +LIBS_RELEASE_TAG="idf-"${IDF_BRANCH//\//_}"" +LIBS_VERSION="$LIBS_RELEASE_TAG-$IDF_COMMIT" AR_HAS_BRANCH=`github_branch_exists "$AR_REPO" "$AR_NEW_BRANCH_NAME"` if [ "$AR_HAS_BRANCH" == "1" ]; then @@ -41,8 +47,10 @@ else fi AR_HAS_PR=`github_pr_exists "$AR_REPO" "$AR_NEW_BRANCH_NAME"` -LIBS_HAS_BRANCH=`github_branch_exists "$AR_LIBS_REPO" "$AR_NEW_BRANCH_NAME"` -LIBS_HAS_COMMIT=`github_commit_exists "$AR_LIBS_REPO" "$AR_NEW_BRANCH_NAME" "$IDF_COMMIT"` +LIBS_RELEASE_ID=`github_release_id "$AR_LIBS_REPO" "$LIBS_RELEASE_TAG"` +LIBS_HAS_RELEASE=`if [ -n "$LIBS_RELEASE_ID" ]; then echo "1"; else echo "0"; fi` +LIBS_ASSET_ID=`github_release_asset_id "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "esp32-arduino-libs-$LIBS_VERSION.zip"` +LIBS_HAS_ASSET=`if [ -n "$LIBS_ASSET_ID" ]; then echo "1"; else echo "0"; fi` export IDF_COMMIT @@ -54,9 +62,25 @@ export AR_HAS_COMMIT export AR_HAS_BRANCH export AR_HAS_PR +export LIBS_RELEASE_TAG export LIBS_VERSION -export LIBS_HAS_COMMIT -export LIBS_HAS_BRANCH +export LIBS_RELEASE_ID +export LIBS_HAS_RELEASE +export LIBS_ASSET_ID +export LIBS_HAS_ASSET + +if [ "$LIBS_HAS_RELEASE" == "1" ]; then + if [ "$LIBS_HAS_ASSET" == "0" ] || [ "$AR_HAS_COMMIT" == "0" ]; then + echo "Deploy needed" + export DEPLOY_NEEDED="1" + else + echo "Deploy not needed. Skipping..." + export DEPLOY_NEEDED="0" + fi +else + echo "Release for tag \"$LIBS_RELEASE_TAG\" not found. Please create the release first." + exit 1 +fi echo "IDF_COMMIT: $IDF_COMMIT" echo "AR_BRANCH: $AR_BRANCH" @@ -66,9 +90,13 @@ echo "AR_NEW_PR_TITLE: $AR_NEW_PR_TITLE" echo "AR_HAS_COMMIT: $AR_HAS_COMMIT" echo "AR_HAS_BRANCH: $AR_HAS_BRANCH" echo "AR_HAS_PR: $AR_HAS_PR" +echo "LIBS_RELEASE_TAG: $LIBS_RELEASE_TAG" echo "LIBS_VERSION: $LIBS_VERSION" -echo "LIBS_HAS_COMMIT: $LIBS_HAS_COMMIT" -echo "LIBS_HAS_BRANCH: $LIBS_HAS_BRANCH" +echo "LIBS_RELEASE_ID: $LIBS_RELEASE_ID" +echo "LIBS_HAS_RELEASE: $LIBS_HAS_RELEASE" +echo "LIBS_ASSET_ID: $LIBS_ASSET_ID" +echo "LIBS_HAS_ASSET: $LIBS_HAS_ASSET" +echo "DEPLOY_NEEDED: $DEPLOY_NEEDED" if [ ! -x $GITHUB_OUTPUT ]; then echo "idf_commit=$IDF_COMMIT" >> "$GITHUB_OUTPUT" @@ -79,7 +107,12 @@ if [ ! -x $GITHUB_OUTPUT ]; then echo "ar_has_commit=$AR_HAS_COMMIT" >> "$GITHUB_OUTPUT" echo "ar_has_branch=$AR_HAS_BRANCH" >> "$GITHUB_OUTPUT" echo "ar_has_pr=$AR_HAS_PR" >> "$GITHUB_OUTPUT" + echo "libs_release_tag=$LIBS_RELEASE_TAG" >> "$GITHUB_OUTPUT" echo "libs_version=$LIBS_VERSION" >> "$GITHUB_OUTPUT" - echo "libs_has_commit=$LIBS_HAS_COMMIT" >> "$GITHUB_OUTPUT" - echo "libs_has_branch=$LIBS_HAS_BRANCH" >> "$GITHUB_OUTPUT" + echo "libs_release_id=$LIBS_RELEASE_ID" >> "$GITHUB_OUTPUT" + echo "libs_has_release=$LIBS_HAS_RELEASE" >> "$GITHUB_OUTPUT" + echo "libs_asset_id=$LIBS_ASSET_ID" >> "$GITHUB_OUTPUT" + echo "libs_has_asset=$LIBS_HAS_ASSET" >> "$GITHUB_OUTPUT" + echo "deploy_needed=$DEPLOY_NEEDED" >> "$GITHUB_OUTPUT" fi + diff --git a/tools/combine-artifacts.sh b/tools/combine-artifacts.sh new file mode 100755 index 000000000..8cb1c25e2 --- /dev/null +++ b/tools/combine-artifacts.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +set -e +mkdir -p out + +libs_folder="out/tools/esp32-arduino-libs" + +files=$(find dist -name 'arduino-esp32-libs-esp*.tar.gz') +for file in $files; do + echo "Extracting $file" + tar zxf $file -C out + cat $libs_folder/versions.txt >> $libs_folder/versions_full.txt +done + +# Merge versions.txt files +awk -i inplace '!seen[$0]++' $libs_folder/versions_full.txt +mv -f $libs_folder/versions_full.txt $libs_folder/versions.txt + +echo "Creating zip file" +cd out/tools && zip -q -r ../../dist/esp32-arduino-libs.zip * && cd ../.. diff --git a/tools/config.sh b/tools/config.sh index ef917e846..b05a879b2 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -51,7 +51,6 @@ AR_GEN_PART_PY="$AR_TOOLS/gen_esp32part.py" AR_SDK="$AR_TOOLS/esp32-arduino-libs/$IDF_TARGET" PIO_SDK="FRAMEWORK_SDK_DIR, \"$IDF_TARGET\"" TOOLS_JSON_OUT="$AR_TOOLS/esp32-arduino-libs" -IDF_LIBS_DIR="$AR_ROOT/../esp32-arduino-libs" if [ -d "$IDF_PATH" ]; then export IDF_COMMIT=$(git -C "$IDF_PATH" rev-parse --short HEAD) @@ -133,6 +132,37 @@ function github_pr_exists(){ # github_pr_exists if [ ! "$pr_num" == "" ] && [ ! "$pr_num" == "null" ]; then echo 1; else echo 0; fi } +function github_release_id(){ # github_release_id + local repo_path="$1" + local release_tag="$2" + local release=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/releases" | jq --arg release_tag "$release_tag" -r '.[] | select(.tag_name == $release_tag) | .id'` + if [ ! "$release" == "" ] && [ ! "$release" == "null" ]; then echo "$release"; else echo ""; fi +} + +function github_release_asset_id(){ # github_release_asset_id + local repo_path="$1" + local release_id="$2" + local release_file="$3" + local release_asset=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/releases/$release_id/assets" | jq --arg release_file "$release_file" -r '.[] | select(.name == $release_file) | .id'` + if [ ! "$release_asset" == "" ] && [ ! "$release_asset" == "null" ]; then echo "$release_asset"; else echo ""; fi +} + +function github_release_asset_upload(){ # github_release_asset_upload + local repo_path="$1" + local release_id="$2" + local release_file_name="$3" + local release_file_path="$4" + local file_extension="${release_file_name##*.}" + local release_asset=`curl -s -k -X POST -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" -H "Content-Type: application/$file_extension" --data-binary "@$release_file_path" "https://uploads.github.com/repos/$repo_path/releases/$release_id/assets?name=$release_file_name" | jq -r '.id'` + if [ ! "$release_asset" == "" ] && [ ! "$release_asset" == "null" ]; then echo "$release_asset"; else echo ""; fi +} + +function github_release_asset_delete(){ # github_release_asset_delete + local repo_path="$1" + local release_asset_id="$2" + local res=$(curl -s -k -o /dev/null -w "%{http_code}" -X DELETE -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/releases/assets/$release_asset_id") + if [ "$res" -eq 204 ]; then echo 1; else echo 0; fi +} function git_branch_exists(){ # git_branch_exists diff --git a/tools/cron.sh b/tools/cron.sh index 000fdc4dc..1ca166717 100755 --- a/tools/cron.sh +++ b/tools/cron.sh @@ -1,8 +1,7 @@ #!/bin/bash -if [ ! "$GITHUB_EVENT_NAME" == "schedule" ]; then - echo "Wrong event '$GITHUB_EVENT_NAME'!" - exit 1 +if [ -z "$TARGET" ]; then + TARGET="all" fi -bash ./build.sh -d +bash ./build.sh -e -t $TARGET diff --git a/tools/install-arduino.sh b/tools/install-arduino.sh index 51e1162a4..abd1526fe 100755 --- a/tools/install-arduino.sh +++ b/tools/install-arduino.sh @@ -46,17 +46,3 @@ if [ "$AR_BRANCH" ]; then git -C "$AR_COMPS/arduino" pull --ff-only fi if [ $? -ne 0 ]; then exit 1; fi - -# -# CLONE/UPDATE ESP32-ARDUINO-LIBS -# -if [ ! -d "$IDF_LIBS_DIR" ]; then - echo "Cloning esp32-arduino-libs..." - git clone "$AR_LIBS_REPO_URL" "$IDF_LIBS_DIR" -else - echo "Updating esp32-arduino-libs..." - git -C "$IDF_LIBS_DIR" fetch && \ - git -C "$IDF_LIBS_DIR" pull --ff-only -fi -if [ $? -ne 0 ]; then exit 1; fi - diff --git a/tools/install-esp-idf.sh b/tools/install-esp-idf.sh index 320ce0cb0..c6f65dfbc 100755 --- a/tools/install-esp-idf.sh +++ b/tools/install-esp-idf.sh @@ -49,52 +49,3 @@ fi # source $IDF_PATH/export.sh - -# -# SETUP ARDUINO DEPLOY -# - -if [ "$GITHUB_EVENT_NAME" == "schedule" ] || [ "$GITHUB_EVENT_NAME" == "repository_dispatch" -a "$GITHUB_EVENT_ACTION" == "deploy" ]; then - # format new branch name and pr title - if [ -x $commit_predefined ]; then #commit was not specified at build time - AR_NEW_BRANCH_NAME="idf-$IDF_BRANCH" - AR_NEW_COMMIT_MESSAGE="IDF $IDF_BRANCH $IDF_COMMIT" - AR_NEW_PR_TITLE="IDF $IDF_BRANCH" - else - AR_NEW_BRANCH_NAME="idf-$IDF_COMMIT" - AR_NEW_COMMIT_MESSAGE="IDF $IDF_COMMIT" - AR_NEW_PR_TITLE="$AR_NEW_COMMIT_MESSAGE" - fi - LIBS_VERSION="idf-"${IDF_BRANCH//\//_}"-$IDF_COMMIT" - - AR_HAS_COMMIT=`git_commit_exists "$AR_COMPS/arduino" "$AR_NEW_COMMIT_MESSAGE"` - AR_HAS_BRANCH=`git_branch_exists "$AR_COMPS/arduino" "$AR_NEW_BRANCH_NAME"` - AR_HAS_PR=`github_pr_exists "$AR_REPO" "$AR_NEW_BRANCH_NAME"` - - LIBS_HAS_COMMIT=`git_commit_exists "$IDF_LIBS_DIR" "$AR_NEW_COMMIT_MESSAGE"` - LIBS_HAS_BRANCH=`git_branch_exists "$IDF_LIBS_DIR" "$AR_NEW_BRANCH_NAME"` - - if [ "$LIBS_HAS_COMMIT" == "1" ]; then - echo "Commit '$AR_NEW_COMMIT_MESSAGE' Already Exists in esp32-arduino-libs" - fi - - if [ "$AR_HAS_COMMIT" == "1" ]; then - echo "Commit '$AR_NEW_COMMIT_MESSAGE' Already Exists in arduino-esp32" - fi - - if [ "$LIBS_HAS_COMMIT" == "1" ] && [ "$AR_HAS_COMMIT" == "1" ]; then - exit 0 - fi - - export AR_NEW_BRANCH_NAME - export AR_NEW_COMMIT_MESSAGE - export AR_NEW_PR_TITLE - - export AR_HAS_COMMIT - export AR_HAS_BRANCH - export AR_HAS_PR - - export LIBS_VERSION - export LIBS_HAS_COMMIT - export LIBS_HAS_BRANCH -fi diff --git a/tools/push-to-arduino.sh b/tools/push-to-arduino.sh index f4d794d0c..c4d1959d3 100755 --- a/tools/push-to-arduino.sh +++ b/tools/push-to-arduino.sh @@ -1,16 +1,12 @@ #!/bin/bash -source ./tools/config.sh + +source ./tools/install-arduino.sh if [ -x $GITHUB_TOKEN ]; then echo "ERROR: GITHUB_TOKEN was not defined" exit 1 fi -if ! [ -d "$AR_COMPS/arduino" ]; then - echo "ERROR: Target arduino folder does not exist!" - exit 1 -fi - # setup git for pushing git config --global github.user "$GITHUB_ACTOR" git config --global user.name "$GITHUB_ACTOR" @@ -24,79 +20,96 @@ git config --global user.email "$GITHUB_ACTOR@github.com" # esp32-arduino-libs # -if [ $LIBS_HAS_COMMIT == "0" ] || [ $AR_HAS_COMMIT == "0" ]; then +LIBS_ZIP_FILENAME="esp32-arduino-libs-$LIBS_VERSION.zip" +LIBS_JSON_FILENAME="package-$LIBS_VERSION.json" +IDF_LIBS_ZIP_URL="https://github.com/$AR_LIBS_REPO/releases/download/$LIBS_RELEASE_TAG/$LIBS_ZIP_FILENAME" +IDF_LIBS_JSON_URL="https://github.com/$AR_LIBS_REPO/releases/download/$LIBS_RELEASE_TAG/$LIBS_JSON_FILENAME" + +if [ $AR_HAS_COMMIT == "0" ] || [ $LIBS_HAS_ASSET == "0" ]; then cd "$AR_ROOT" - # create branch if necessary - if [ "$LIBS_HAS_BRANCH" == "1" ]; then - echo "Branch '$AR_NEW_BRANCH_NAME' Already Exists" - echo "Switching to esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..." - git -C "$IDF_LIBS_DIR" checkout $AR_NEW_BRANCH_NAME - else - echo "Creating esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..." - git -C "$IDF_LIBS_DIR" checkout -b $AR_NEW_BRANCH_NAME + mkdir -p dist + + # check if the release exists + if [ $LIBS_HAS_RELEASE == "0" ]; then + echo "Release for tag \"$LIBS_RELEASE_TAG\" not found. Please create the release first." + exit 1 fi - if [ $? -ne 0 ]; then - echo "ERROR: Checkout of branch '$AR_NEW_BRANCH_NAME' failed" + + # Delete old assets for the version + if [ $LIBS_HAS_ASSET == "1" ]; then + echo "Deleting existing assets for version '$LIBS_VERSION'..." + if [ `github_release_asset_delete "$AR_LIBS_REPO" "$LIBS_ASSET_ID"` == "0" ]; then + echo "ERROR: Failed to delete asset '$LIBS_ZIP_FILENAME'" + fi + JSON_ASSET_ID=`github_release_asset_id "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "$LIBS_JSON_FILENAME"` + if [ "$JSON_ASSET_ID" != "" ] && [ `github_release_asset_delete "$AR_LIBS_REPO" "$JSON_ASSET_ID"` == "0" ]; then + echo "ERROR: Failed to delete asset '$LIBS_JSON_FILENAME'" + fi + fi + + echo "Creating asset '$LIBS_ZIP_FILENAME'..." + + mv -f "dist/esp32-arduino-libs.zip" "dist/$LIBS_ZIP_FILENAME" + LIBS_ASSET_ID=`github_release_asset_upload "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "$LIBS_ZIP_FILENAME" "dist/$LIBS_ZIP_FILENAME"` + if [ -z "$LIBS_ASSET_ID" ]; then + echo "ERROR: Failed to upload asset '$LIBS_ZIP_FILENAME'" exit 1 fi - # make changes to the files - echo "Patching files in esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..." - rm -rf $IDF_LIBS_DIR/* && cp -Rf $AR_TOOLS/esp32-arduino-libs/* $IDF_LIBS_DIR/ - - cd $IDF_LIBS_DIR - if [ -f "README.md" ]; then - rm -rf "README.md" + echo "Finished uploading asset '$LIBS_ZIP_FILENAME'. Asset ID: $LIBS_ASSET_ID" + + # Calculate the local file checksum and size + local_checksum=$(sha256sum "dist/$LIBS_ZIP_FILENAME" | awk '{print $1}') + local_size=$(stat -c%s "dist/$LIBS_ZIP_FILENAME") + + echo "Downloading asset '$LIBS_ZIP_FILENAME' and checking integrity..." + + # Download the file + remote_file="remote-$LIBS_ZIP_FILENAME" + curl -s -L -o "$remote_file" "$IDF_LIBS_ZIP_URL" + + # Check if the download was successful + if [ $? -ne 0 ]; then + echo "Error downloading file from $IDF_LIBS_ZIP_URL" + exit 1 fi - # did any of the files change? - if [ -n "$(git status --porcelain)" ]; then - echo "Pushing changes to esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..." - git add . && git commit --message "$AR_NEW_COMMIT_MESSAGE" && git push -u origin $AR_NEW_BRANCH_NAME - if [ $? -ne 0 ]; then - echo "ERROR: Pushing to branch '$AR_NEW_BRANCH_NAME' failed" - exit 1 - fi - IDF_LIBS_COMMIT=`git rev-parse --verify HEAD` - IDF_LIBS_DL_URL="https://codeload.github.com/espressif/esp32-arduino-libs/zip/$IDF_LIBS_COMMIT" - # ToDo: this URL needs to get into Arduino's package.json + # Calculate the remote file checksum and size + remote_checksum=$(sha256sum "$remote_file" | awk '{print $1}') + remote_size=$(stat -c%s "$remote_file") - # Download the file - filename="esp32-arduino-libs-$IDF_LIBS_COMMIT.zip" - curl -s -o "$filename" "$IDF_LIBS_DL_URL" + echo "Local: $local_size bytes, $local_checksum" + echo "Remote: $remote_size bytes, $remote_checksum" - # Check if the download was successful - if [ $? -ne 0 ]; then - echo "Error downloading file from $IDF_LIBS_DL_URL" - exit 1 + # Check if the checksums match + if [ "$local_checksum" != "$remote_checksum" ]; then + echo "Checksum mismatch for downloaded file" + echo "Deleting asset and exiting..." + if [ `github_release_asset_delete "$AR_LIBS_REPO" "$LIBS_ASSET_ID"` == "0" ]; then + echo "ERROR: Failed to delete asset '$LIBS_ZIP_FILENAME'" fi + exit 1 + fi - # Calculate the size in bytes and SHA-256 sum - size=$(stat -c%s "$filename") - sha256sum=$(sha256sum "$filename" | awk '{print $1}') - - # Clean up the downloaded file - rm "$filename" - - # Print the results - echo "Tool: esp32-arduino-libs" - echo "Version: $LIBS_VERSION" - echo "URL: $IDF_LIBS_DL_URL" - echo "File: $filename" - echo "Size: $size bytes" - echo "SHA-256: $sha256sum" - echo "JSON: $AR_OUT/package_esp32_index.template.json" - cd "$AR_ROOT" - python3 tools/add_sdk_json.py -j "$AR_OUT/package_esp32_index.template.json" -n "esp32-arduino-libs" -v "$LIBS_VERSION" -u "$IDF_LIBS_DL_URL" -f "$filename" -s "$size" -c "$sha256sum" - if [ $? -ne 0 ]; then exit 1; fi + # Clean up the downloaded file + rm "$remote_file" + + # Print the results + echo "Tool: esp32-arduino-libs" + echo "Version: $LIBS_VERSION" + echo "URL: $IDF_LIBS_ZIP_URL" + echo "File: $LIBS_ZIP_FILENAME" + echo "Size: $local_size bytes" + echo "SHA-256: $local_checksum" + echo "JSON: $AR_OUT/package_esp32_index.template.json" + cd "$AR_ROOT" + python3 tools/add_sdk_json.py -j "$AR_OUT/package_esp32_index.template.json" -n "esp32-arduino-libs" -v "$LIBS_VERSION" -u "$IDF_LIBS_ZIP_URL" -f "$LIBS_ZIP_FILENAME" -s "$local_size" -c "$local_checksum" + if [ $? -ne 0 ]; then exit 1; fi - else - echo "No changes in esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'" - if [ $LIBS_HAS_BRANCH == "0" ]; then - echo "Delete created branch '$AR_NEW_BRANCH_NAME'" - git branch -d $AR_NEW_BRANCH_NAME - fi - exit 0 + JSON_ASSET_ID=`github_release_asset_upload "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "$LIBS_JSON_FILENAME" "$AR_OUT/package_esp32_index.template.json"` + if [ -z "$JSON_ASSET_ID" ]; then + echo "ERROR: Failed to upload asset '$LIBS_JSON_FILENAME'" + exit 1 fi fi @@ -104,7 +117,7 @@ fi # esp32-arduino # -if [ $AR_HAS_COMMIT == "0" ]; then +if [ $AR_HAS_COMMIT == "0" ] || [ $LIBS_HAS_ASSET == "0" ]; then cd "$AR_ROOT" # create or checkout the branch if [ ! $AR_HAS_BRANCH == "0" ]; then @@ -115,31 +128,31 @@ if [ $AR_HAS_COMMIT == "0" ]; then git -C "$AR_COMPS/arduino" checkout -b $AR_NEW_BRANCH_NAME fi if [ $? -ne 0 ]; then - echo "ERROR: Checkout of branch '$AR_NEW_BRANCH_NAME' failed" + echo "ERROR: Checkout of branch '$AR_NEW_BRANCH_NAME' failed" exit 1 fi # make changes to the files echo "Patching files in branch '$AR_NEW_BRANCH_NAME'..." rm -rf "$AR_COMPS/arduino/package/package_esp32_index.template.json" && cp -f "$AR_OUT/package_esp32_index.template.json" "$AR_COMPS/arduino/package/package_esp32_index.template.json" - + cd $AR_COMPS/arduino # did any of the files change? if [ -n "$(git status --porcelain)" ]; then echo "Pushing changes to branch '$AR_NEW_BRANCH_NAME'..." - git add . && git commit --message "$AR_NEW_COMMIT_MESSAGE" && git push -u origin $AR_NEW_BRANCH_NAME + git add . && git commit --message "$AR_NEW_COMMIT_MESSAGE" && git push -u origin $AR_NEW_BRANCH_NAME if [ $? -ne 0 ]; then - echo "ERROR: Pushing to branch '$AR_NEW_BRANCH_NAME' failed" + echo "ERROR: Pushing to branch '$AR_NEW_BRANCH_NAME' failed" exit 1 fi else - echo "No changes in branch '$AR_NEW_BRANCH_NAME'" - if [ $AR_HAS_BRANCH == "0" ]; then - echo "Delete created branch '$AR_NEW_BRANCH_NAME'" - git branch -d $AR_NEW_BRANCH_NAME - fi - exit 0 + echo "No changes in branch '$AR_NEW_BRANCH_NAME'" + if [ $AR_HAS_BRANCH == "0" ]; then + echo "Delete created branch '$AR_NEW_BRANCH_NAME'" + git branch -d $AR_NEW_BRANCH_NAME + fi + exit 0 fi # CREATE PULL REQUEST From d0e730c020eac4ec2a50ab93df8e938c177fc2b4 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Mon, 19 Aug 2024 19:49:24 +0300 Subject: [PATCH 09/70] TinyUSB use dcd_dwc2 --- components/arduino_tinyusb/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/arduino_tinyusb/CMakeLists.txt b/components/arduino_tinyusb/CMakeLists.txt index 792b2a39f..b0227ec5a 100755 --- a/components/arduino_tinyusb/CMakeLists.txt +++ b/components/arduino_tinyusb/CMakeLists.txt @@ -19,8 +19,8 @@ if(CONFIG_TINYUSB_ENABLED) set(srcs # espressif: - "${COMPONENT_DIR}/src/dcd_esp32sx.c" - #"${COMPONENT_DIR}/src/dcd_dwc2.c" + #"${COMPONENT_DIR}/src/dcd_esp32sx.c" + "${COMPONENT_DIR}/src/dcd_dwc2.c" # tusb: #"${COMPONENT_DIR}/tinyusb/src/portable/espressif/esp32sx/dcd_esp32sx.c" #"{COMPONENT_DIR}/tinyusb/src/portable/synopsys/dwc2/dcd_dwc2.c" From d86a9ea4f329ad72eeb498f634033908a2b63bf1 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 19 Aug 2024 13:51:49 -0300 Subject: [PATCH 10/70] Move libs publishing to this repo (#209) --- tools/config.sh | 2 +- tools/gen_platformio_manifest.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/config.sh b/tools/config.sh index b05a879b2..2988a1517 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -30,7 +30,7 @@ AR_USER="espressif" # The full name of the repository AR_REPO="$AR_USER/arduino-esp32" IDF_REPO="$AR_USER/esp-idf" -AR_LIBS_REPO="$AR_USER/esp32-arduino-libs" +AR_LIBS_REPO="$AR_USER/esp32-arduino-lib-builder" AR_REPO_URL="https://github.com/$AR_REPO.git" IDF_REPO_URL="https://github.com/$IDF_REPO.git" diff --git a/tools/gen_platformio_manifest.py b/tools/gen_platformio_manifest.py index 2d031b687..f02218826 100644 --- a/tools/gen_platformio_manifest.py +++ b/tools/gen_platformio_manifest.py @@ -11,7 +11,7 @@ "license": "LGPL-2.1-or-later", "repository": { "type": "git", - "url": "https://github.com/espressif/esp32-arduino-libs", + "url": "https://github.com/espressif/esp32-arduino-lib-builder", }, } From 7b140e7c9fed8d1be7941d9fe6ffaa2895146583 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Mon, 19 Aug 2024 19:56:49 +0300 Subject: [PATCH 11/70] Make cron build for IDF v5.3 --- .github/workflows/cron.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index a9ec31ce3..f2053b3ad 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -34,3 +34,6 @@ jobs: - idf_branch: "release/v5.1" lib_builder_branch: "master" targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" + - idf_branch: "release/v5.3" + lib_builder_branch: "release/v5.3" + targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" From 5c06f7bfe0af00145e1f7f73695641fda0d4586b Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Mon, 19 Aug 2024 20:19:40 +0300 Subject: [PATCH 12/70] Update dcd_dwc2.c --- components/arduino_tinyusb/src/dcd_dwc2.c | 1 - 1 file changed, 1 deletion(-) diff --git a/components/arduino_tinyusb/src/dcd_dwc2.c b/components/arduino_tinyusb/src/dcd_dwc2.c index d9d15d4c6..adf018fe8 100644 --- a/components/arduino_tinyusb/src/dcd_dwc2.c +++ b/components/arduino_tinyusb/src/dcd_dwc2.c @@ -226,7 +226,6 @@ static void edpt_activate(uint8_t rhport, tusb_desc_endpoint_t const * p_endpoin } else { fifo_num = get_free_fifo(); } - TU_ASSERT(fifo_num != 0); #endif dwc2->epin[epnum].diepctl = dxepctl | (fifo_num << DIEPCTL_TXFNUM_Pos); dwc2->daintmsk |= (1 << (DAINTMSK_IEPM_Pos + epnum)); From a93dd64059976860c81eb3462f61fde7cd8ceb89 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 20 Aug 2024 01:12:28 +0300 Subject: [PATCH 13/70] Add check if CFG_TUSB_MCU is already defined --- components/arduino_tinyusb/include/tusb_config.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/arduino_tinyusb/include/tusb_config.h b/components/arduino_tinyusb/include/tusb_config.h index ee1e5d270..f4acaa232 100755 --- a/components/arduino_tinyusb/include/tusb_config.h +++ b/components/arduino_tinyusb/include/tusb_config.h @@ -75,8 +75,9 @@ extern "C" { /* */ /* COMMON CONFIGURATION */ /* */ - +#ifndef CFG_TUSB_MCU #define CFG_TUSB_MCU OPT_MCU_ESP32S2 +#endif #define CFG_TUSB_RHPORT0_MODE OPT_MODE_DEVICE #define CFG_TUSB_OS OPT_OS_FREERTOS From 1f978b385ae7210883b7f688c4d52363048af885 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 28 Aug 2024 02:35:23 -0300 Subject: [PATCH 14/70] fix(install): Fetch before checkout to avoid errors (#212) --- tools/install-arduino.sh | 2 +- tools/install-esp-idf.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/install-arduino.sh b/tools/install-arduino.sh index abd1526fe..1a0ba4d39 100755 --- a/tools/install-arduino.sh +++ b/tools/install-arduino.sh @@ -41,8 +41,8 @@ fi if [ "$AR_BRANCH" ]; then echo "AR_BRANCH='$AR_BRANCH'" + git -C "$AR_COMPS/arduino" fetch --all && \ git -C "$AR_COMPS/arduino" checkout "$AR_BRANCH" && \ - git -C "$AR_COMPS/arduino" fetch && \ git -C "$AR_COMPS/arduino" pull --ff-only fi if [ $? -ne 0 ]; then exit 1; fi diff --git a/tools/install-esp-idf.sh b/tools/install-esp-idf.sh index c6f65dfbc..bd3d07985 100755 --- a/tools/install-esp-idf.sh +++ b/tools/install-esp-idf.sh @@ -17,6 +17,8 @@ if [ ! -d "$IDF_PATH" ]; then idf_was_installed="1" fi +git -C "$IDF_PATH" fetch --all --tags + if [ "$IDF_TAG" ]; then git -C "$IDF_PATH" checkout "tags/$IDF_TAG" idf_was_installed="1" From f488f414ff6e440dcf7bfa920c7f9ac90c056914 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Wed, 28 Aug 2024 07:35:57 +0200 Subject: [PATCH 15/70] remove not existing zigbee libs (#210) --- configs/pio_start.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/configs/pio_start.txt b/configs/pio_start.txt index 70b375397..a0b780dc9 100644 --- a/configs/pio_start.txt +++ b/configs/pio_start.txt @@ -47,7 +47,6 @@ if "ZIGBEE_MODE_ZCZR" in flatten_cppdefines: LIBS=[ "-lesp_zb_api_zczr", "-lesp_zb_cli_command", - "-lzboss_stack.zczr.trace", "-lzboss_stack.zczr", "-lzboss_port" ] @@ -57,7 +56,6 @@ if "ZIGBEE_MODE_ED" in flatten_cppdefines: LIBS=[ "-lesp_zb_api_ed", "-lesp_zb_cli_command", - "-lzboss_stack.ed.trace", "-lzboss_stack.ed", "-lzboss_port" ] From 20af13465c479b3ffd3885a5d21ef70164d6ce00 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Fri, 30 Aug 2024 17:26:37 -0300 Subject: [PATCH 16/70] fix(UI): Fix breaking changes and lock textual version (#214) --- README.md | 15 ++++++++------- tools/config_editor/README.md | 2 +- tools/config_editor/app.py | 8 ++++---- tools/config_editor/requirements.txt | 1 + 4 files changed, 14 insertions(+), 12 deletions(-) create mode 100644 tools/config_editor/requirements.txt diff --git a/README.md b/README.md index 501c62887..16452f7e1 100644 --- a/README.md +++ b/README.md @@ -22,20 +22,21 @@ For more information and troubleshooting, please refer to the [UI README](tools/ To use it, follow these steps: -1. Make sure you have the required dependencies installed: +1. Make sure you have the following prerequisites: - Python 3.9 or later - - The [Textual](https://github.com/textualize/textual/) library - All the dependencies listed in the previous section -2. Execute the script `tools/config_editor/app.py` from any folder. It will automatically detect the path to the root of the repository. +2. Install the required UI packages using `pip install -r tools/config_editor/requirements.txt`. -3. Configure the compilation and ESP-IDF options as desired. +3. Execute the script `tools/config_editor/app.py` from any folder. It will automatically detect the path to the root of the repository. -4. Click on the "Compile Static Libraries" button to start the compilation process. +4. Configure the compilation and ESP-IDF options as desired. -5. The script will show the compilation output in a new screen. Note that the compilation process can take many hours, depending on the number of libraries selected and the options chosen. +5. Click on the "Compile Static Libraries" button to start the compilation process. -6. If the compilation is successful and the option to copy the libraries to the Arduino Core folder is enabled, it will already be available for use in the Arduino IDE. Otherwise, you can find the compiled libraries in the `esp32-arduino-libs` folder alongside this repository. +6. The script will show the compilation output in a new screen. Note that the compilation process can take many hours, depending on the number of libraries selected and the options chosen. + +7. If the compilation is successful and the option to copy the libraries to the Arduino Core folder is enabled, it will already be available for use in the Arduino IDE. Otherwise, you can find the compiled libraries in the `esp32-arduino-libs` folder alongside this repository. - Note that the copy operation doesn't currently support the core downloaded from the Arduino IDE Boards Manager, only the manual installation from the [`arduino-esp32`](https://github.com/espressif/arduino-esp32) repository. ### Documentation diff --git a/tools/config_editor/README.md b/tools/config_editor/README.md index 10cf8f8a0..9abd93fc7 100644 --- a/tools/config_editor/README.md +++ b/tools/config_editor/README.md @@ -6,7 +6,7 @@ It has mouse support and can be pre-configured using command line arguments. ## Requirements - Python 3.9 or later - - The "textual" library (install it using `pip install textual`) + - Install the required packages using `pip install -r requirements.txt` - The requirements from esp32-arduino-lib-builder ## Troubleshooting diff --git a/tools/config_editor/app.py b/tools/config_editor/app.py index fcba827d2..dbe24ca05 100755 --- a/tools/config_editor/app.py +++ b/tools/config_editor/app.py @@ -112,10 +112,10 @@ class ConfigEditorApp(App): ENABLE_COMMAND_PALETTE = False CSS_PATH = "style.tcss" SCREENS = { - "main": MainScreen(), - "settings": SettingsScreen(), - "compile": CompileScreen(), - "editor": EditorScreen(), + "main": MainScreen, + "settings": SettingsScreen, + "compile": CompileScreen, + "editor": EditorScreen, } def on_mount(self) -> None: diff --git a/tools/config_editor/requirements.txt b/tools/config_editor/requirements.txt new file mode 100644 index 000000000..f3cac7be0 --- /dev/null +++ b/tools/config_editor/requirements.txt @@ -0,0 +1 @@ +textual==0.79.0 From 33d92531ce4997b3a15fdbfa8c81f5a20a209d7b Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Sat, 31 Aug 2024 18:24:58 +0300 Subject: [PATCH 17/70] Update ESP32 definition in PlatformIO (#217) --- configs/pio_end.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/pio_end.txt b/configs/pio_end.txt index e7544f1dd..f942d442d 100644 --- a/configs/pio_end.txt +++ b/configs/pio_end.txt @@ -1,5 +1,5 @@ "ARDUINO_ARCH_ESP32", - "ESP32", + ("ESP32", "ESP32"), ("F_CPU", "$BOARD_F_CPU"), ("ARDUINO", 10812), ("ARDUINO_VARIANT", '\\"%s\\"' % board_config.get("build.variant").replace('"', "")), From 009e79d0b32164d5ed1d1dac95a31ae9b5699508 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Sat, 31 Aug 2024 12:26:25 -0300 Subject: [PATCH 18/70] Fix Dockerfile and test docker build in PRs (#216) * Use requirements.txt in Dockerfile * Test docker build in PRs * Optimize push workflow for PRs * Optimize docker workflow * Improve name --- .github/workflows/docker.yml | 37 ++++++++++++++++++++++++++++-------- .github/workflows/push.yml | 17 ++++++++++++++++- tools/docker/Dockerfile | 4 ++-- 3 files changed, 47 insertions(+), 11 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 8952015a2..d6166a365 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -7,6 +7,12 @@ on: - 'release/*' tags: - 'v*.*' + pull_request: + paths: + - ".github/workflows/docker.yml" + - "tools/config_editor/requirements.txt" + - "tools/docker/Dockerfile" + - "tools/docker/entrypoint.sh" env: # Build the image for amd64 and arm64 @@ -16,8 +22,8 @@ env: jobs: docker: # Disable the job in forks - if: ${{ github.repository_owner == 'espressif' }} - + if: ${{ github.event_name == 'pull_request' || github.repository_owner == 'espressif' }} + name: Build docker image and push if needed runs-on: ubuntu-latest steps: # Depending on the branch/tag, set CLONE_BRANCH_OR_TAG variable (used in the Dockerfile @@ -29,50 +35,65 @@ jobs: run: | echo "CLONE_BRANCH_OR_TAG=$GITHUB_REF_NAME" >> $GITHUB_ENV echo "TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV + echo "URL=${{ github.server_url }}/${{ github.repository }}.git" >> $GITHUB_ENV + - name: Set variables (release branches) if: ${{ github.ref_type == 'branch' && startsWith(github.ref_name, 'release/') }} run: | echo "CLONE_BRANCH_OR_TAG=$GITHUB_REF_NAME" >> $GITHUB_ENV echo "TAG_NAME=release-${GITHUB_REF_NAME##release/}" >> $GITHUB_ENV + echo "URL=${{ github.server_url }}/${{ github.repository }}.git" >> $GITHUB_ENV + - name: Set variables (main branch) if: ${{ github.ref_type == 'branch' && github.ref_name == 'master' }} run: | echo "CLONE_BRANCH_OR_TAG=master" >> $GITHUB_ENV echo "TAG_NAME=latest" >> $GITHUB_ENV + echo "URL=${{ github.server_url }}/${{ github.repository }}.git" >> $GITHUB_ENV + + - name: Set variables (pull requests) + if: ${{ github.event_name == 'pull_request' }} + run: | + echo "CLONE_BRANCH_OR_TAG=${{ github.event.pull_request.head.ref }}" >> $GITHUB_ENV + echo "TAG_NAME=PR_${{ github.event.number }}" >> $GITHUB_ENV + echo "URL=${{ github.server_url }}/${{ github.event.pull_request.head.repo.full_name }}.git" >> $GITHUB_ENV # Display the variables set above, just in case. - name: Check variables run: | echo "CLONE_BRANCH_OR_TAG: $CLONE_BRANCH_OR_TAG" - echo "CHECKOUT_REF: $CHECKOUT_REF" echo "TAG_NAME: $TAG_NAME" + echo "URL: $URL" - # The following steps are the standard boilerplate from - # https://github.com/marketplace/actions/build-and-push-docker-images - name: Checkout uses: actions/checkout@v4 + - name: Login to Docker Hub + if: ${{ github.event_name == 'push' }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Set up QEMU for multiarch builds uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + - name: Build and push uses: docker/build-push-action@v5 with: context: tools/docker - push: true + push: ${{ github.event_name == 'push' }} tags: ${{ env.DOCKERHUB_REPO }}:${{ env.TAG_NAME }} platforms: ${{ env.BUILD_PLATFORMS }} build-args: | - LIBBUILDER_CLONE_URL=${{ github.server_url }}/${{ github.repository }}.git + LIBBUILDER_CLONE_URL=${{ env.URL }} LIBBUILDER_CLONE_BRANCH_OR_TAG=${{ env.CLONE_BRANCH_OR_TAG }} - name: Update Docker Hub repository description (master branch) - if: ${{ github.ref_type == 'branch' && github.ref_name == 'master' }} + if: ${{ github.event_name == 'push' && github.ref_type == 'branch' && github.ref_name == 'master' }} uses: peter-evans/dockerhub-description@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index c3edd52d3..649c84c81 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -5,13 +5,21 @@ on: branches: - master pull_request: + paths: + - "**" + - "!**.md" + - "!.github/workflows/cron_build.yml" + - "!.github/workflows/cron.yml" + - "!.github/workflows/docker.yml" + - "!.github/workflows/repository_dispatch.yml" + - "!tools/config_editor/**" + - "!tools/docker/**" concurrency: group: esp-idf-libs-${{github.event.pull_request.number || github.ref}} cancel-in-progress: true jobs: - build-libs: name: Build Libs for ${{ matrix.target }} runs-on: ubuntu-latest @@ -21,16 +29,20 @@ jobs: fail-fast: false steps: - uses: actions/checkout@v4 + - name: Install dependencies run: bash ./tools/prepare-ci.sh + - name: Build Libs for ${{ matrix.target }} run: bash ./build.sh -e -t ${{ matrix.target }} + - name: Upload build if: failure() uses: actions/upload-artifact@v4 with: name: build-${{ matrix.target }} path: build + - name: Upload archive uses: actions/upload-artifact@v4 with: @@ -48,17 +60,20 @@ jobs: path: dist pattern: artifacts-* merge-multiple: true + - shell: bash run: | mkdir -p out find dist -name 'arduino-esp32-libs-esp*.tar.gz' -exec tar zxvf {} -C out \; cd out/tools/esp32-arduino-libs && tar zcf ../../../dist/esp32-arduino-libs.tar.gz * && cd ../../.. cp out/package_esp32_index.template.json dist/package_esp32_index.template.json + - name: Upload full esp32-arduino-libs archive uses: actions/upload-artifact@v4 with: name: esp32-arduino-libs path: dist/esp32-arduino-libs.tar.gz + - name: Upload package_esp32_index.template.json uses: actions/upload-artifact@v4 with: diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index a46733a34..3262cbb2d 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -34,7 +34,6 @@ RUN : \ python3-setuptools \ python3-venv \ wget \ - && pip3 install --upgrade pip textual-dev \ && apt-get autoremove -y \ && rm -rf /var/lib/apt/lists/* \ && : @@ -70,7 +69,8 @@ RUN echo LIBBUILDER_CHECKOUT_REF=$LIBBUILDER_CHECKOUT_REF LIBBUILDER_CLONE_BRANC fi && \ git checkout $LIBBUILDER_CHECKOUT_REF && \ git submodule update --init --recursive; \ - fi + fi && \ + pip3 install --upgrade -r $LIBBUILDER_PATH/tools/config_editor/requirements.txt COPY entrypoint.sh $LIBBUILDER_PATH/entrypoint.sh From 11e303c664d693a25498f7af1231f184447319b2 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 24 Sep 2024 23:08:15 +0300 Subject: [PATCH 19/70] Add P4 to targets for 5.3 --- .github/workflows/cron.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index f2053b3ad..ed2522f54 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -36,4 +36,4 @@ jobs: targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" - idf_branch: "release/v5.3" lib_builder_branch: "release/v5.3" - targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" + targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" From 5d4ed02e13458b5ea83b3b8ef00747e1fec06bf2 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Thu, 26 Sep 2024 01:41:14 +0300 Subject: [PATCH 20/70] Add Matter component as part of the libs (#220) * Add Matter component as part of the libs * feat(matter): adds necessary setup * feat(matter): sdkconfig for each SoC * fix(matter): no wifi within C2 * fix(matter): replaces wrong pieces * fix(matter): forgot folder reference * feat(matter): strip matter lib.a * fix(matter): missing double quote * fix(matter): bad folder name * feat(matter): testing freertos backward compatibility * feat(matter): testing not using minimal mdns * feat(matter): disable lwip ipv6 autoconfig * feat(matter): common settings * feat(matter): revert changes * feat(matter): revert changes * feat(matter): revert changes * feat(matter): revert changes * feat(matter): no WiFi matter for H2 - thread only * feat(matter): revert changes * feat(matter): revert changes * feat(matter): no support for H2 - no WiFi * feat(matter): clean up * feat(matter): script clean up --------- Co-authored-by: SuGliger Co-authored-by: Rodrigo Garcia --- CMakeLists.txt | 5 +++++ configs/defconfig.common | 16 ++++++++++++++++ configs/defconfig.esp32c6 | 17 ----------------- configs/defconfig.esp32h2 | 17 ----------------- main/idf_component.yml | 5 +++++ tools/copy-libs.sh | 13 ++++++++++++- 6 files changed, 38 insertions(+), 35 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 88cede199..1b0fca085 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,3 +33,8 @@ add_custom_command( VERBATIM ) add_custom_target(mem-variant DEPENDS "mem_variant") + +################## +### ESP Matter ### +################## +idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-DCHIP_HAVE_CONFIG_H" APPEND) diff --git a/configs/defconfig.common b/configs/defconfig.common index a6b42ed64..47310528c 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -75,8 +75,14 @@ CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT=y CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT=y CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM=y +CONFIG_LWIP_MULTICAST_PING=y +CONFIG_LWIP_BROADCAST_PING=y +CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 CONFIG_MBEDTLS_PSK_MODES=y CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y +CONFIG_MBEDTLS_ECJPAKE_C=y +CONFIG_MBEDTLS_HKDF_C=y CONFIG_MBEDTLS_CAMELLIA_C=y CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y # CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN is not set @@ -111,3 +117,13 @@ CONFIG_ESP_COREDUMP_STACK_SIZE=1024 CONFIG_MBEDTLS_DYNAMIC_BUFFER=y CONFIG_MBEDTLS_DYNAMIC_FREE_PEER_CERT=y CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y +# +# Matter Settings +# +# Disable Matter BLE +CONFIG_ENABLE_CHIPOBLE=n +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n +# ESP Insights +CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n +# Use compact attribute storage mode +CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y diff --git a/configs/defconfig.esp32c6 b/configs/defconfig.esp32c6 index e2c9c33ea..7770504fc 100644 --- a/configs/defconfig.esp32c6 +++ b/configs/defconfig.esp32c6 @@ -8,23 +8,6 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304 #CONFIG_ULP_COPROC_LP_CORE=y #CONFIG_ULP_COPROC_RESERVE_MEM=4096 -# -# ESP32 Arduino OpenThread Configuration -# -# lwIP -# -CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 -CONFIG_LWIP_MULTICAST_PING=y -CONFIG_LWIP_BROADCAST_PING=y -# end of lwip - -# -# mbedTLS -# -CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y -CONFIG_MBEDTLS_ECJPAKE_C=y -# end of mbedTLS - # # OpenThread # diff --git a/configs/defconfig.esp32h2 b/configs/defconfig.esp32h2 index 79a13544d..dfd36395d 100644 --- a/configs/defconfig.esp32h2 +++ b/configs/defconfig.esp32h2 @@ -4,23 +4,6 @@ CONFIG_RTC_CLK_CAL_CYCLES=576 # CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0 is not set CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304 -# -# ESP32 Arduino OpenThread Configuration -# -# lwIP -# -CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 -CONFIG_LWIP_MULTICAST_PING=y -CONFIG_LWIP_BROADCAST_PING=y -# end of lwip - -# -# mbedTLS -# -CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y -CONFIG_MBEDTLS_ECJPAKE_C=y -# end of mbedTLS - # # OpenThread # diff --git a/main/idf_component.yml b/main/idf_component.yml index 011906d27..292709d64 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -22,6 +22,11 @@ dependencies: version: ">=1.4.2" rules: - if: "target in [esp32s3]" + espressif/esp_matter: + version: "^1.3.0" + require: public + rules: + - if: "target not in [esp32c2, esp32h2]" # esp-sr: "^1.3.1" # esp32-camera: "^2.0.4" diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index 8ee2276dd..565eb4542 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -491,6 +491,17 @@ echo -n "$LD_FLAGS" > "$FLAGS_DIR/ld_flags" echo -n "$LD_SCRIPTS" > "$FLAGS_DIR/ld_scripts" echo -n "$AR_LIBS" > "$FLAGS_DIR/ld_libs" +# Matter Library adjustments +for flag_file in "c_flags" "cpp_flags" "S_flags"; do + echo "Fixing $FLAGS_DIR/$flag_file" + sed 's/\\\"-DCHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=\\\"/-DCHIP_HAVE_CONFIG_H/' $FLAGS_DIR/$flag_file > $FLAGS_DIR/$flag_file.temp + mv $FLAGS_DIR/$flag_file.temp $FLAGS_DIR/$flag_file +done +CHIP_RESOLVE_DIR="$AR_SDK/include/espressif__esp_matter/connectedhomeip/connectedhomeip/src/lib/address_resolve" +sed 's/CHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER//' $CHIP_RESOLVE_DIR/AddressResolve.h > $CHIP_RESOLVE_DIR/AddressResolve_temp.h +mv $CHIP_RESOLVE_DIR/AddressResolve_temp.h $CHIP_RESOLVE_DIR/AddressResolve.h +# End of Matter Library adjustments + # copy zigbee + zboss lib if [ -d "managed_components/espressif__esp-zigbee-lib/lib/$IDF_TARGET/" ]; then cp -r "managed_components/espressif__esp-zigbee-lib/lib/$IDF_TARGET"/* "$AR_SDK/lib/" @@ -530,7 +541,7 @@ for item; do done done -for lib in "openthread" "espressif__esp-tflite-micro" "bt"; do +for lib in "openthread" "espressif__esp-tflite-micro" "bt" "espressif__esp_matter"; do if [ -f "$AR_SDK/lib/lib$lib.a" ]; then echo "Stripping $AR_SDK/lib/lib$lib.a" "$TOOLCHAIN-strip" -g "$AR_SDK/lib/lib$lib.a" From 4ae464bbaef132f5ad9ec1b73468f2260b77d960 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Thu, 26 Sep 2024 09:39:28 -0300 Subject: [PATCH 21/70] feat(matter): removes -DESP32=ESP32 (#224) removes -DESP32=ESP32 from flags/defines --- tools/copy-libs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index 565eb4542..bbc89e089 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -102,7 +102,7 @@ for item in "${@:2:${#@}-5}"; do INCLUDES+="$item " fi elif [ "$prefix" = "-D" ]; then - if [[ "${item:2:7}" != "ARDUINO" ]] && [[ "$item" != "-DESP32" ]]; then #skip ARDUINO defines + if [[ "${item:2:7}" != "ARDUINO" ]] && [[ "$item" != "-DESP32=ESP32" ]]; then #skip ARDUINO defines DEFINES+="$item " fi elif [ "$prefix" = "-O" ]; then From ab03ddc44d75d8a9e6780520c7d643d8e97921ec Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 1 Oct 2024 00:22:46 +0300 Subject: [PATCH 22/70] Fix ESP-DL component build (#226) * Fix ESP-DL component build Changes in the upstream repository require some changes in the component config * For IDF 5.1 use older commit * Update idf_component.yml --- main/idf_component.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/idf_component.yml b/main/idf_component.yml index 292709d64..00682c102 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -13,7 +13,7 @@ dependencies: rules: - if: "target not in [esp32c2]" espressif/esp-dl: - version: "master" + version: "af7808ba09448ce82c704455975d4cf1e4305fd7" git: https://github.com/espressif/esp-dl.git require: public rules: From 42f7e468f8d92ae346d84bbed3c73bea1194f507 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 2 Oct 2024 14:52:06 +0300 Subject: [PATCH 23/70] Update dwc2 and TinyUSB component (#228) This Pull Request updates the Arduino TinyUSB component to support the latest upstream code. Additionally adds support for NCM and ESP32-P4 --- components/arduino_tinyusb/CMakeLists.txt | 26 +- components/arduino_tinyusb/Kconfig.projbuild | 11 + .../arduino_tinyusb/include/tusb_config.h | 5 + .../arduino_tinyusb/patches/dcd_dwc2.patch | 54 +- components/arduino_tinyusb/src/dcd_dwc2.c | 693 +++++++------ components/arduino_tinyusb/src/dcd_esp32sx.c | 965 ------------------ patches/tinyusb_dcd_esp32sx.diff | 119 --- 7 files changed, 451 insertions(+), 1422 deletions(-) rename patches/tinyusb_dcd_dwc2.diff => components/arduino_tinyusb/patches/dcd_dwc2.patch (61%) delete mode 100755 components/arduino_tinyusb/src/dcd_esp32sx.c delete mode 100644 patches/tinyusb_dcd_esp32sx.diff diff --git a/components/arduino_tinyusb/CMakeLists.txt b/components/arduino_tinyusb/CMakeLists.txt index b0227ec5a..6a2e35150 100755 --- a/components/arduino_tinyusb/CMakeLists.txt +++ b/components/arduino_tinyusb/CMakeLists.txt @@ -15,14 +15,18 @@ if(CONFIG_TINYUSB_ENABLED) "-DCFG_TUSB_DEBUG=${CONFIG_TINYUSB_DEBUG_LEVEL}" "-Wno-type-limits" # needed for the vanila tinyusb with turned off classes ) + elseif(IDF_TARGET STREQUAL "esp32p4") + set(compile_options + "-DCFG_TUSB_MCU=OPT_MCU_ESP32P4" + "-DCFG_TUSB_DEBUG=${CONFIG_TINYUSB_DEBUG_LEVEL}" + "-Wno-type-limits" # needed for the vanila tinyusb with turned off classes + ) endif() set(srcs # espressif: - #"${COMPONENT_DIR}/src/dcd_esp32sx.c" "${COMPONENT_DIR}/src/dcd_dwc2.c" # tusb: - #"${COMPONENT_DIR}/tinyusb/src/portable/espressif/esp32sx/dcd_esp32sx.c" #"{COMPONENT_DIR}/tinyusb/src/portable/synopsys/dwc2/dcd_dwc2.c" "${COMPONENT_DIR}/tinyusb/src/class/cdc/cdc_device.c" "${COMPONENT_DIR}/tinyusb/src/class/hid/hid_device.c" @@ -32,6 +36,7 @@ if(CONFIG_TINYUSB_ENABLED) "${COMPONENT_DIR}/tinyusb/src/class/dfu/dfu_rt_device.c" "${COMPONENT_DIR}/tinyusb/src/class/dfu/dfu_device.c" "${COMPONENT_DIR}/tinyusb/src/class/vendor/vendor_device.c" + "${COMPONENT_DIR}/tinyusb/src/class/net/ncm_device.c" "${COMPONENT_DIR}/tinyusb/src/common/tusb_fifo.c" "${COMPONENT_DIR}/tinyusb/src/device/usbd_control.c" "${COMPONENT_DIR}/tinyusb/src/device/usbd.c" @@ -56,16 +61,15 @@ if(CONFIG_TINYUSB_ENABLED) set(requires esp_rom freertos soc) set(priv_requires arduino main) - ### tinyusb lib ### - ################### - idf_component_register(INCLUDE_DIRS ${includes_public} PRIV_INCLUDE_DIRS ${includes_private} SRCS ${srcs} REQUIRES ${requires} PRIV_REQUIRES ${priv_requires}) - # add_library(${COMPONENT_TARGET} STATIC ${srcs}) - # target_include_directories( - # ${COMPONENT_TARGET} - # PUBLIC ${includes_public} - # PRIVATE ${includes_private}) + + idf_component_register( + INCLUDE_DIRS ${includes_public} + PRIV_INCLUDE_DIRS ${includes_private} + SRCS ${srcs} + REQUIRES ${requires} + PRIV_REQUIRES ${priv_requires} + ) target_compile_options(${COMPONENT_TARGET} PRIVATE ${compile_options}) - #target_link_libraries(${COMPONENT_TARGET} INTERFACE ${COMPONENT_TARGET}) else() diff --git a/components/arduino_tinyusb/Kconfig.projbuild b/components/arduino_tinyusb/Kconfig.projbuild index 50e24b6a6..1db30506f 100755 --- a/components/arduino_tinyusb/Kconfig.projbuild +++ b/components/arduino_tinyusb/Kconfig.projbuild @@ -233,6 +233,17 @@ menu "Arduino TinyUSB" endmenu + menu "NCM driver" + depends on TINYUSB_ENABLED + + config TINYUSB_NCM_ENABLED + bool "Enable USB NCM TinyUSB driver" + default y + help + Enable USB NCM TinyUSB driver. + + endmenu + config TINYUSB_DEBUG_LEVEL int "TinyUSB log level (0-3)" default 0 diff --git a/components/arduino_tinyusb/include/tusb_config.h b/components/arduino_tinyusb/include/tusb_config.h index f4acaa232..90dd7f797 100755 --- a/components/arduino_tinyusb/include/tusb_config.h +++ b/components/arduino_tinyusb/include/tusb_config.h @@ -72,6 +72,10 @@ extern "C" { # define CONFIG_TINYUSB_VENDOR_ENABLED 0 #endif +#ifndef CONFIG_TINYUSB_NCM_ENABLED +# define CONFIG_TINYUSB_NCM_ENABLED 0 +#endif + /* */ /* COMMON CONFIGURATION */ /* */ @@ -113,6 +117,7 @@ extern "C" { #define CFG_TUD_DFU_RUNTIME CONFIG_TINYUSB_DFU_RT_ENABLED #define CFG_TUD_DFU CONFIG_TINYUSB_DFU_ENABLED #define CFG_TUD_VENDOR CONFIG_TINYUSB_VENDOR_ENABLED +#define CFG_TUD_NCM CONFIG_TINYUSB_NCM_ENABLED // CDC FIFO size of TX and RX #define CFG_TUD_CDC_RX_BUFSIZE CONFIG_TINYUSB_CDC_RX_BUFSIZE diff --git a/patches/tinyusb_dcd_dwc2.diff b/components/arduino_tinyusb/patches/dcd_dwc2.patch similarity index 61% rename from patches/tinyusb_dcd_dwc2.diff rename to components/arduino_tinyusb/patches/dcd_dwc2.patch index 23755c8fc..a57df7ef6 100644 --- a/patches/tinyusb_dcd_dwc2.diff +++ b/components/arduino_tinyusb/patches/dcd_dwc2.patch @@ -1,31 +1,29 @@ ---- a/components/arduino_tinyusb/tinyusb/src/portable/synopsys/dwc2/dcd_dwc2.c 2024-06-10 22:10:55.000000000 +0300 -+++ b/components/arduino_tinyusb/tinyusb/src/portable/synopsys/dwc2/dcd_dwc2.c 2024-06-10 22:20:01.000000000 +0300 -@@ -186,6 +186,18 @@ - return true; - } - -+#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) +--- a/components/arduino_tinyusb/src/dcd_dwc2.c 2024-10-02 12:17:40.000000000 +0300 ++++ b/components/arduino_tinyusb/src/dcd_dwc2.c 2024-10-02 12:19:48.000000000 +0300 +@@ -316,6 +316,16 @@ + //-------------------------------------------------------------------- + // Endpoint + //-------------------------------------------------------------------- ++#if defined(TUP_USBIP_DWC2_ESP32) +// Keep count of how many FIFOs are in use +static uint8_t _allocated_fifos = 1; //FIFO0 is always in use + +// Will either return an unused FIFO number, or 0 if all are used. -+static uint8_t get_free_fifo(void) -+{ ++static uint8_t get_free_fifo(void) { + if (_allocated_fifos < 5) return _allocated_fifos++; + return 0; +} +#endif -+ + static void edpt_activate(uint8_t rhport, tusb_desc_endpoint_t const * p_endpoint_desc) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); - uint8_t const epnum = tu_edpt_number(p_endpoint_desc->bEndpointAddress); -@@ -205,7 +217,18 @@ +@@ -336,7 +346,18 @@ dwc2->epout[epnum].doepctl = dxepctl; dwc2->daintmsk |= TU_BIT(DAINTMSK_OEPM_Pos + epnum); } else { - dwc2->epin[epnum].diepctl = dxepctl | (epnum << DIEPCTL_TXFNUM_Pos); + uint8_t fifo_num = epnum; -+#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) ++#if defined(TUP_USBIP_DWC2_ESP32) + // Special Case for EP5, which is used by CDC but not actually called by the driver + // we can give it a fake FIFO + if (epnum == 5) { @@ -33,51 +31,51 @@ + } else { + fifo_num = get_free_fifo(); + } -+ TU_ASSERT(fifo_num != 0); ++ //TU_ASSERT(fifo_num != 0); +#endif + dwc2->epin[epnum].diepctl = dxepctl | (fifo_num << DIEPCTL_TXFNUM_Pos); - dwc2->daintmsk |= (1 << (DAINTMSK_IEPM_Pos + epnum)); + dwc2->daintmsk |= TU_BIT(DAINTMSK_IEPM_Pos + epnum); } } -@@ -728,6 +751,10 @@ - // reset allocated fifo IN - _allocated_fifo_words_tx = 16; +@@ -850,6 +871,10 @@ + xfer_status[n][TUSB_DIR_IN].max_size = 0; + } -+#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) ++#if defined(TUP_USBIP_DWC2_ESP32) + _allocated_fifos = 1; +#endif + - fifo_flush_tx(dwc2, 0x10); // all tx fifo - fifo_flush_rx(dwc2); - } -@@ -1096,6 +1123,9 @@ + dfifo_flush_tx(dwc2, 0x10); // all tx fifo + dfifo_flush_rx(dwc2); + +@@ -1204,6 +1229,9 @@ if (int_status & GINTSTS_USBRST) { // USBRST is start of reset. dwc2->gintsts = GINTSTS_USBRST; -+#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) ++#if defined(TUP_USBIP_DWC2_ESP32) + _allocated_fifos = 1; +#endif bus_reset(rhport); } -@@ -1127,7 +1157,11 @@ +@@ -1235,7 +1263,11 @@ if (int_status & GINTSTS_USBSUSP) { dwc2->gintsts = GINTSTS_USBSUSP; - dcd_event_bus_signal(rhport, DCD_EVENT_SUSPEND, true); + //dcd_event_bus_signal(rhport, DCD_EVENT_SUSPEND, true); + dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); -+#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) ++#if defined(TUP_USBIP_DWC2_ESP32) + _allocated_fifos = 1; +#endif } if (int_status & GINTSTS_WKUINT) { -@@ -1144,6 +1178,9 @@ +@@ -1252,6 +1284,9 @@ if (otg_int & GOTGINT_SEDET) { dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); -+#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) ++#if defined(TUP_USBIP_DWC2_ESP32) + _allocated_fifos = 1; +#endif } diff --git a/components/arduino_tinyusb/src/dcd_dwc2.c b/components/arduino_tinyusb/src/dcd_dwc2.c index adf018fe8..8bcc98166 100644 --- a/components/arduino_tinyusb/src/dcd_dwc2.c +++ b/components/arduino_tinyusb/src/dcd_dwc2.c @@ -31,6 +31,9 @@ #if CFG_TUD_ENABLED && defined(TUP_USBIP_DWC2) +// Debug level for DWC2 +#define DWC2_DEBUG 2 + #include "device/dcd.h" #include "dwc2_type.h" @@ -43,7 +46,7 @@ #if defined(TUP_USBIP_DWC2_STM32) #include "dwc2_stm32.h" -#elif TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) +#elif defined(TUP_USBIP_DWC2_ESP32) #include "dwc2_esp32.h" #elif TU_CHECK_MCU(OPT_MCU_GD32VF103) #include "dwc2_gd32.h" @@ -57,29 +60,26 @@ #error "Unsupported MCUs" #endif -//--------------------------------------------------------------------+ -// MACRO TYPEDEF CONSTANT ENUM -//--------------------------------------------------------------------+ +enum { + DWC2_CONTROLLER_COUNT = TU_ARRAY_SIZE(_dwc2_controller) +}; // DWC2 registers -#define DWC2_REG(_port) ((dwc2_regs_t*) _dwc2_controller[_port].reg_base) +//#define DWC2_REG(_port) ((dwc2_regs_t*) _dwc2_controller[_port].reg_base) -// Debug level for DWC2 -#define DWC2_DEBUG 2 - -#ifndef dcache_clean -#define dcache_clean(_addr, _size) -#endif - -#ifndef dcache_invalidate -#define dcache_invalidate(_addr, _size) -#endif +TU_ATTR_ALWAYS_INLINE static inline dwc2_regs_t* DWC2_REG(uint8_t rhport) { + if (rhport >= DWC2_CONTROLLER_COUNT) { + // user mis-configured, ignore and use first controller + rhport = 0; + } + return (dwc2_regs_t*) _dwc2_controller[rhport].reg_base; +} -#ifndef dcache_clean_invalidate -#define dcache_clean_invalidate(_addr, _size) -#endif +//--------------------------------------------------------------------+ +// MACRO TYPEDEF CONSTANT ENUM +//--------------------------------------------------------------------+ -static TU_ATTR_ALIGNED(4) uint32_t _setup_packet[2]; +static CFG_TUD_MEM_SECTION TU_ATTR_ALIGNED(4) uint32_t _setup_packet[2]; typedef struct { uint8_t* buffer; @@ -93,106 +93,235 @@ static xfer_ctl_t xfer_status[DWC2_EP_MAX][2]; #define XFER_CTL_BASE(_ep, _dir) (&xfer_status[_ep][_dir]) // EP0 transfers are limited to 1 packet - larger sizes has to be split -static uint16_t ep0_pending[2]; // Index determines direction as tusb_dir_t type +static uint16_t ep0_pending[2]; // Index determines direction as tusb_dir_t type +static uint16_t _dfifo_top; // top free location in FIFO RAM -// TX FIFO RAM allocation so far in words - RX FIFO size is readily available from dwc2->grxfsiz -static uint16_t _allocated_fifo_words_tx; // TX FIFO size in words (IN EPs) +// Number of IN endpoints active +static uint8_t _allocated_ep_in_count; // SOF enabling flag - required for SOF to not get disabled in ISR when SOF was enabled by static bool _sof_en; -// Calculate the RX FIFO size according to minimum recommendations from reference manual -// RxFIFO = (5 * number of control endpoints + 8) + -// ((largest USB packet used / 4) + 1 for status information) + -// (2 * number of OUT endpoints) + 1 for Global NAK -// with number of control endpoints = 1 we have -// RxFIFO = 15 + (largest USB packet used / 4) + 2 * number of OUT endpoints -// we double the largest USB packet size to be able to hold up to 2 packets -static inline uint16_t calc_grxfsiz(uint16_t max_ep_size, uint8_t ep_count) { - return 15 + 2 * (max_ep_size / 4) + 2 * ep_count; +//-------------------------------------------------------------------- +// DMA +//-------------------------------------------------------------------- + +TU_ATTR_ALWAYS_INLINE static inline bool dma_enabled(const dwc2_regs_t* dwc2) { + #if !CFG_TUD_DWC2_DMA + (void) dwc2; + return false; + #else + // Internal DMA only + return (dwc2->ghwcfg2_bm.arch == GHWCFG2_ARCH_INTERNAL_DMA); + #endif +} + +TU_ATTR_ALWAYS_INLINE static inline uint16_t dma_cal_epfifo_base(uint8_t rhport) { + // Scatter/Gather DMA mode is not yet supported. Buffer DMA only need 1 words per endpoint direction + const dwc2_controller_t* dwc2_controller = &_dwc2_controller[rhport]; + return dwc2_controller->ep_fifo_size/4 - 2*dwc2_controller->ep_count; } -TU_ATTR_ALWAYS_INLINE static inline void fifo_flush_tx(dwc2_regs_t* dwc2, uint8_t epnum) { +static void dma_setup_prepare(uint8_t rhport) { + dwc2_regs_t* dwc2 = DWC2_REG(rhport); + + if (dwc2->gsnpsid >= DWC2_CORE_REV_3_00a) { + if(dwc2->epout[0].doepctl & DOEPCTL_EPENA) { + return; + } + } + + // Receive only 1 packet + dwc2->epout[0].doeptsiz = (1 << DOEPTSIZ_STUPCNT_Pos) | (1 << DOEPTSIZ_PKTCNT_Pos) | (8 << DOEPTSIZ_XFRSIZ_Pos); + dwc2->epout[0].doepdma = (uintptr_t)_setup_packet; + dwc2->epout[0].doepctl |= DOEPCTL_EPENA | DOEPCTL_USBAEP; +} + +//--------------------------------------------------------------------+ +// Data FIFO +//--------------------------------------------------------------------+ + +TU_ATTR_ALWAYS_INLINE static inline void dfifo_flush_tx(dwc2_regs_t* dwc2, uint8_t epnum) { // flush TX fifo and wait for it cleared dwc2->grstctl = GRSTCTL_TXFFLSH | (epnum << GRSTCTL_TXFNUM_Pos); while (dwc2->grstctl & GRSTCTL_TXFFLSH_Msk) {} } -TU_ATTR_ALWAYS_INLINE static inline void fifo_flush_rx(dwc2_regs_t* dwc2) { +TU_ATTR_ALWAYS_INLINE static inline void dfifo_flush_rx(dwc2_regs_t* dwc2) { // flush RX fifo and wait for it cleared dwc2->grstctl = GRSTCTL_RXFFLSH; while (dwc2->grstctl & GRSTCTL_RXFFLSH_Msk) {} } -static bool fifo_alloc(uint8_t rhport, uint8_t ep_addr, uint16_t packet_size) { +/* USB Data FIFO Layout + + The FIFO is split up into + - EPInfo: for storing DMA metadata, only required when use DMA. Maximum size is called + EP_LOC_CNT = ep_fifo_size - ghwcfg3.dfifo_depth. For value less than EP_LOC_CNT, gdfifocfg must be configured before + gahbcfg.dmaen is set + - Buffer mode: 1 word per endpoint direction + - Scatter/Gather DMA: 4 words per endpoint direction + - TX FIFO: one fifo for each IN endpoint. Size is dynamic depending on packet size, starting from top with EP0 IN. + - Shared RX FIFO: a shared fifo for all OUT endpoints. Typically, can hold up to 2 packets of the largest EP size. + + We allocated TX FIFO from top to bottom (using top pointer), this to allow the RX FIFO to grow dynamically which is + possible since the free space is located between the RX and TX FIFOs. + + ---------------- ep_fifo_size + | EPInfo | + | for DMA | + |-------------|-- gdfifocfg.EPINFOBASE (max is ghwcfg3.dfifo_depth) + | IN FIFO 0 | + | control | + |-------------| + | IN FIFO 1 | + |-------------| + | . . . . | + |-------------| + | IN FIFO n | + |-------------| + | FREE | + |-------------|-- GRXFSIZ (expandable) + | OUT FIFO | + | ( Shared ) | + --------------- 0 + + According to "FIFO RAM allocation" section in RM, FIFO RAM are allocated as follows (each word 32-bits): + - Each EP IN needs at least max packet size + - All EP OUT shared a unique OUT FIFO which uses (for Slave or Buffer DMA, Scatt/Gather DMA use different formula): + - 13 for setup packets + control words (up to 3 setup packets). + - 1 for global NAK (not required/used here). + - Largest-EPsize / 4 + 1. ( FS: 64 bytes, HS: 512 bytes). Recommended is "2 x (Largest-EPsize/4) + 1" + - 2 for each used OUT endpoint + + Therefore GRXFSIZ = 13 + 1 + 2 x (Largest-EPsize/4 + 1) + 2 x EPOUTnum +*/ + +TU_ATTR_ALWAYS_INLINE static inline uint16_t calc_grxfsiz(uint16_t largest_ep_size, uint8_t ep_count) { + return 13 + 1 + 2 * ((largest_ep_size / 4) + 1) + 2 * ep_count; +} + +static bool dfifo_alloc(uint8_t rhport, uint8_t ep_addr, uint16_t packet_size) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); - uint8_t const ep_count = _dwc2_controller[rhport].ep_count; + const dwc2_controller_t* dwc2_controller = &_dwc2_controller[rhport]; + uint8_t const ep_count = dwc2_controller->ep_count; uint8_t const epnum = tu_edpt_number(ep_addr); uint8_t const dir = tu_edpt_dir(ep_addr); TU_ASSERT(epnum < ep_count); uint16_t fifo_size = tu_div_ceil(packet_size, 4); - - // "USB Data FIFOs" section in reference manual - // Peripheral FIFO architecture - // - // --------------- 320 or 1024 ( 1280 or 4096 bytes ) - // | IN FIFO 0 | - // --------------- (320 or 1024) - 16 - // | IN FIFO 1 | - // --------------- (320 or 1024) - 16 - x - // | . . . . | - // --------------- (320 or 1024) - 16 - x - y - ... - z - // | IN FIFO MAX | - // --------------- - // | FREE | - // --------------- GRXFSIZ - // | OUT FIFO | - // | ( Shared ) | - // --------------- 0 - // - // In FIFO is allocated by following rules: - // - IN EP 1 gets FIFO 1, IN EP "n" gets FIFO "n". if (dir == TUSB_DIR_OUT) { // Calculate required size of RX FIFO - uint16_t const sz = calc_grxfsiz(4 * fifo_size, ep_count); - - // If size_rx needs to be extended check if possible and if so enlarge it - if (dwc2->grxfsiz < sz) { - TU_ASSERT(sz + _allocated_fifo_words_tx <= _dwc2_controller[rhport].ep_fifo_size / 4); + uint16_t const new_sz = calc_grxfsiz(4 * fifo_size, ep_count); - // Enlarge RX FIFO - dwc2->grxfsiz = sz; + // If size_rx needs to be extended check if there is enough free space + if (dwc2->grxfsiz < new_sz) { + TU_ASSERT(new_sz <= _dfifo_top); + dwc2->grxfsiz = new_sz; // Enlarge RX FIFO } } else { - // Note if The TXFELVL is configured as half empty. In order - // to be able to write a packet at that point, the fifo must be twice the max_size. + // Check IN endpoints concurrently active limit + if(_dwc2_controller->ep_in_count) { + TU_ASSERT(_allocated_ep_in_count < _dwc2_controller->ep_in_count); + _allocated_ep_in_count++; + } + + // If The TXFELVL is configured as half empty, the fifo must be twice the max_size. if ((dwc2->gahbcfg & GAHBCFG_TXFELVL) == 0) { fifo_size *= 2; } // Check if free space is available - TU_ASSERT(_allocated_fifo_words_tx + fifo_size + dwc2->grxfsiz <= _dwc2_controller[rhport].ep_fifo_size / 4); - _allocated_fifo_words_tx += fifo_size; - TU_LOG(DWC2_DEBUG, " Allocated %u bytes at offset %" PRIu32, fifo_size * 4, - _dwc2_controller[rhport].ep_fifo_size - _allocated_fifo_words_tx * 4); + TU_ASSERT(_dfifo_top >= fifo_size + dwc2->grxfsiz); + _dfifo_top -= fifo_size; + TU_LOG(DWC2_DEBUG, " TX FIFO %u: allocated %u words at offset %u\r\n", epnum, fifo_size, _dfifo_top); - // DIEPTXF starts at FIFO #1. // Both TXFD and TXSA are in unit of 32-bit words. - dwc2->dieptxf[epnum - 1] = (fifo_size << DIEPTXF_INEPTXFD_Pos) | - (_dwc2_controller[rhport].ep_fifo_size / 4 - _allocated_fifo_words_tx); + if (epnum == 0) { + dwc2->dieptxf0 = (fifo_size << DIEPTXF0_TX0FD_Pos) | _dfifo_top; + } else { + // DIEPTXF starts at FIFO #1. + dwc2->dieptxf[epnum - 1] = (fifo_size << DIEPTXF_INEPTXFD_Pos) | _dfifo_top; + } } return true; } -#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) +static void dfifo_init(uint8_t rhport) { + const dwc2_controller_t* dwc2_controller = &_dwc2_controller[rhport]; + dwc2_regs_t* dwc2 = DWC2_REG(rhport); + dwc2->grxfsiz = calc_grxfsiz(CFG_TUD_ENDPOINT0_SIZE, dwc2_controller->ep_count); + + if(dma_enabled(dwc2)) { + // DMA use last DFIFO to store metadata + _dfifo_top = dma_cal_epfifo_base(rhport); + }else { + _dfifo_top = dwc2_controller->ep_fifo_size / 4; + } + + // Allocate FIFO for EP0 IN + dfifo_alloc(rhport, 0x80, CFG_TUD_ENDPOINT0_SIZE); +} + +// Read a single data packet from receive FIFO +static void dfifo_read_packet(uint8_t rhport, uint8_t* dst, uint16_t len) { + (void) rhport; + + dwc2_regs_t* dwc2 = DWC2_REG(rhport); + volatile const uint32_t* rx_fifo = dwc2->fifo[0]; + + // Reading full available 32 bit words from fifo + uint16_t full_words = len >> 2; + while (full_words--) { + tu_unaligned_write32(dst, *rx_fifo); + dst += 4; + } + + // Read the remaining 1-3 bytes from fifo + uint8_t const bytes_rem = len & 0x03; + if (bytes_rem != 0) { + uint32_t const tmp = *rx_fifo; + dst[0] = tu_u32_byte0(tmp); + if (bytes_rem > 1) dst[1] = tu_u32_byte1(tmp); + if (bytes_rem > 2) dst[2] = tu_u32_byte2(tmp); + } +} + +// Write a single data packet to EPIN FIFO +static void dfifo_write_packet(uint8_t rhport, uint8_t fifo_num, uint8_t const* src, uint16_t len) { + (void) rhport; + + dwc2_regs_t* dwc2 = DWC2_REG(rhport); + volatile uint32_t* tx_fifo = dwc2->fifo[fifo_num]; + + // Pushing full available 32 bit words to fifo + uint16_t full_words = len >> 2; + while (full_words--) { + *tx_fifo = tu_unaligned_read32(src); + src += 4; + } + + // Write the remaining 1-3 bytes into fifo + uint8_t const bytes_rem = len & 0x03; + if (bytes_rem) { + uint32_t tmp_word = src[0]; + if (bytes_rem > 1) tmp_word |= (src[1] << 8); + if (bytes_rem > 2) tmp_word |= (src[2] << 16); + + *tx_fifo = tmp_word; + } +} + +//-------------------------------------------------------------------- +// Endpoint +//-------------------------------------------------------------------- +#if defined(TUP_USBIP_DWC2_ESP32) // Keep count of how many FIFOs are in use static uint8_t _allocated_fifos = 1; //FIFO0 is always in use // Will either return an unused FIFO number, or 0 if all are used. -static uint8_t get_free_fifo(void) -{ +static uint8_t get_free_fifo(void) { if (_allocated_fifos < 5) return _allocated_fifos++; return 0; } @@ -218,7 +347,7 @@ static void edpt_activate(uint8_t rhport, tusb_desc_endpoint_t const * p_endpoin dwc2->daintmsk |= TU_BIT(DAINTMSK_OEPM_Pos + epnum); } else { uint8_t fifo_num = epnum; -#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) +#if defined(TUP_USBIP_DWC2_ESP32) // Special Case for EP5, which is used by CDC but not actually called by the driver // we can give it a fake FIFO if (epnum == 5) { @@ -226,9 +355,10 @@ static void edpt_activate(uint8_t rhport, tusb_desc_endpoint_t const * p_endpoin } else { fifo_num = get_free_fifo(); } + //TU_ASSERT(fifo_num != 0); #endif dwc2->epin[epnum].diepctl = dxepctl | (fifo_num << DIEPCTL_TXFNUM_Pos); - dwc2->daintmsk |= (1 << (DAINTMSK_IEPM_Pos + epnum)); + dwc2->daintmsk |= TU_BIT(DAINTMSK_IEPM_Pos + epnum); } } @@ -258,7 +388,7 @@ static void edpt_disable(uint8_t rhport, uint8_t ep_addr, bool stall) { } // Flush the FIFO, and wait until we have confirmed it cleared. - fifo_flush_tx(dwc2, epnum); + dfifo_flush_tx(dwc2, epnum); } else { dwc2_epout_t* epout = dwc2->epout; @@ -294,6 +424,8 @@ static void bus_reset(uint8_t rhport) { _sof_en = false; + _allocated_ep_in_count = 1; + // clear device address dwc2->dcfg &= ~DCFG_DAD_Msk; @@ -309,79 +441,28 @@ static void bus_reset(uint8_t rhport) { } } - fifo_flush_tx(dwc2, 0x10); // all tx fifo - fifo_flush_rx(dwc2); + dfifo_flush_tx(dwc2, 0x10); // all tx fifo + dfifo_flush_rx(dwc2); // 3. Set up interrupt mask dwc2->daintmsk = TU_BIT(DAINTMSK_OEPM_Pos) | TU_BIT(DAINTMSK_IEPM_Pos); dwc2->doepmsk = DOEPMSK_STUPM | DOEPMSK_XFRCM; dwc2->diepmsk = DIEPMSK_TOM | DIEPMSK_XFRCM; - // "USB Data FIFOs" section in reference manual - // Peripheral FIFO architecture - // - // The FIFO is split up in a lower part where the RX FIFO is located and an upper part where the TX FIFOs start. - // We do this to allow the RX FIFO to grow dynamically which is possible since the free space is located - // between the RX and TX FIFOs. This is required by ISO OUT EPs which need a bigger FIFO than the standard - // configuration done below. - // - // Dynamically FIFO sizes are of interest only for ISO EPs since all others are usually not opened and closed. - // All EPs other than ISO are opened as soon as the driver starts up i.e. when the host sends a - // configure interface command. Hence, all IN EPs other the ISO will be located at the top. IN ISO EPs are usually - // opened when the host sends an additional command: setInterface. At this point in time - // the ISO EP will be located next to the free space and can change its size. In case more IN EPs change its size - // an additional memory - // - // --------------- 320 or 1024 ( 1280 or 4096 bytes ) - // | IN FIFO 0 | - // --------------- (320 or 1024) - 16 - // | IN FIFO 1 | - // --------------- (320 or 1024) - 16 - x - // | . . . . | - // --------------- (320 or 1024) - 16 - x - y - ... - z - // | IN FIFO MAX | - // --------------- - // | FREE | - // --------------- GRXFSIZ - // | OUT FIFO | - // | ( Shared ) | - // --------------- 0 - // - // According to "FIFO RAM allocation" section in RM, FIFO RAM are allocated as follows (each word 32-bits): - // - Each EP IN needs at least max packet size, 16 words is sufficient for EP0 IN - // - // - All EP OUT shared a unique OUT FIFO which uses - // - 13 for setup packets + control words (up to 3 setup packets). - // - 1 for global NAK (not required/used here). - // - Largest-EPsize / 4 + 1. ( FS: 64 bytes, HS: 512 bytes). Recommended is "2 x (Largest-EPsize/4) + 1" - // - 2 for each used OUT endpoint - // - // Therefore GRXFSIZ = 13 + 1 + 1 + 2 x (Largest-EPsize/4) + 2 x EPOUTnum - // - FullSpeed (64 Bytes ): GRXFSIZ = 15 + 2 x 16 + 2 x ep_count = 47 + 2 x ep_count - // - Highspeed (512 bytes): GRXFSIZ = 15 + 2 x 128 + 2 x ep_count = 271 + 2 x ep_count - // - // NOTE: Largest-EPsize & EPOUTnum is actual used endpoints in configuration. Since DCD has no knowledge - // of the overall picture yet. We will use the worst scenario: largest possible + ep_count - // - // For Isochronous, largest EP size can be 1023/1024 for FS/HS respectively. In addition if multiple ISO - // are enabled at least "2 x (Largest-EPsize/4) + 1" are recommended. Maybe provide a macro for application to - // overwrite this. - - // EP0 out max is 64 - dwc2->grxfsiz = calc_grxfsiz(64, ep_count); - - // Setup the control endpoint 0 - _allocated_fifo_words_tx = 16; - - // Control IN uses FIFO 0 with 64 bytes ( 16 32-bit word ) - dwc2->dieptxf0 = (16 << DIEPTXF0_TX0FD_Pos) | (_dwc2_controller[rhport].ep_fifo_size / 4 - _allocated_fifo_words_tx); + dfifo_init(rhport); // Fixed control EP0 size to 64 bytes dwc2->epin[0].diepctl &= ~(0x03 << DIEPCTL_MPSIZ_Pos); + dwc2->epout[0].doepctl &= ~(0x03 << DOEPCTL_MPSIZ_Pos); + xfer_status[0][TUSB_DIR_OUT].max_size = 64; xfer_status[0][TUSB_DIR_IN].max_size = 64; - dwc2->epout[0].doeptsiz |= (3 << DOEPTSIZ_STUPCNT_Pos); + if(dma_enabled(dwc2)) { + dma_setup_prepare(rhport); + } else { + dwc2->epout[0].doeptsiz |= (3 << DOEPTSIZ_STUPCNT_Pos); + } dwc2->gintmsk |= GINTMSK_OEPINT | GINTMSK_IEPINT; } @@ -391,11 +472,11 @@ static void edpt_schedule_packets(uint8_t rhport, uint8_t const epnum, uint8_t c (void) rhport; dwc2_regs_t* dwc2 = DWC2_REG(rhport); + xfer_ctl_t* const xfer = XFER_CTL_BASE(epnum, dir); // EP0 is limited to one packet each xfer // We use multiple transaction of xfer->max_size length to get a whole transfer done if (epnum == 0) { - xfer_ctl_t* const xfer = XFER_CTL_BASE(epnum, dir); total_bytes = tu_min16(ep0_pending[dir], xfer->max_size); ep0_pending[dir] -= total_bytes; } @@ -408,17 +489,31 @@ static void edpt_schedule_packets(uint8_t rhport, uint8_t const epnum, uint8_t c epin[epnum].dieptsiz = (num_packets << DIEPTSIZ_PKTCNT_Pos) | ((total_bytes << DIEPTSIZ_XFRSIZ_Pos) & DIEPTSIZ_XFRSIZ_Msk); - epin[epnum].diepctl |= DIEPCTL_EPENA | DIEPCTL_CNAK; + if(dma_enabled(dwc2)) { + epin[epnum].diepdma = (uintptr_t)xfer->buffer; - // For ISO endpoint set correct odd/even bit for next frame. - if ((epin[epnum].diepctl & DIEPCTL_EPTYP) == DIEPCTL_EPTYP_0 && (XFER_CTL_BASE(epnum, dir))->interval == 1) { - // Take odd/even bit from frame counter. - uint32_t const odd_frame_now = (dwc2->dsts & (1u << DSTS_FNSOF_Pos)); - epin[epnum].diepctl |= (odd_frame_now ? DIEPCTL_SD0PID_SEVNFRM_Msk : DIEPCTL_SODDFRM_Msk); - } - // Enable fifo empty interrupt only if there are something to put in the fifo. - if (total_bytes != 0) { - dwc2->diepempmsk |= (1 << epnum); + // For ISO endpoint set correct odd/even bit for next frame. + if ((epin[epnum].diepctl & DIEPCTL_EPTYP) == DIEPCTL_EPTYP_0 && (XFER_CTL_BASE(epnum, dir))->interval == 1) { + // Take odd/even bit from frame counter. + uint32_t const odd_frame_now = (dwc2->dsts & (1u << DSTS_FNSOF_Pos)); + epin[epnum].diepctl |= (odd_frame_now ? DIEPCTL_SD0PID_SEVNFRM_Msk : DIEPCTL_SODDFRM_Msk); + } + + epin[epnum].diepctl |= DIEPCTL_EPENA | DIEPCTL_CNAK; + } else { + + epin[epnum].diepctl |= DIEPCTL_EPENA | DIEPCTL_CNAK; + + // For ISO endpoint set correct odd/even bit for next frame. + if ((epin[epnum].diepctl & DIEPCTL_EPTYP) == DIEPCTL_EPTYP_0 && (XFER_CTL_BASE(epnum, dir))->interval == 1) { + // Take odd/even bit from frame counter. + uint32_t const odd_frame_now = (dwc2->dsts & (1u << DSTS_FNSOF_Pos)); + epin[epnum].diepctl |= (odd_frame_now ? DIEPCTL_SD0PID_SEVNFRM_Msk : DIEPCTL_SODDFRM_Msk); + } + // Enable fifo empty interrupt only if there are something to put in the fifo. + if (total_bytes != 0) { + dwc2->diepempmsk |= (1 << epnum); + } } } else { dwc2_epout_t* epout = dwc2->epout; @@ -428,31 +523,24 @@ static void edpt_schedule_packets(uint8_t rhport, uint8_t const epnum, uint8_t c epout[epnum].doeptsiz |= (num_packets << DOEPTSIZ_PKTCNT_Pos) | ((total_bytes << DOEPTSIZ_XFRSIZ_Pos) & DOEPTSIZ_XFRSIZ_Msk); - epout[epnum].doepctl |= DOEPCTL_EPENA | DOEPCTL_CNAK; if ((epout[epnum].doepctl & DOEPCTL_EPTYP) == DOEPCTL_EPTYP_0 && XFER_CTL_BASE(epnum, dir)->interval == 1) { // Take odd/even bit from frame counter. uint32_t const odd_frame_now = (dwc2->dsts & (1u << DSTS_FNSOF_Pos)); epout[epnum].doepctl |= (odd_frame_now ? DOEPCTL_SD0PID_SEVNFRM_Msk : DOEPCTL_SODDFRM_Msk); } + + if(dma_enabled(dwc2)) { + epout[epnum].doepdma = (uintptr_t)xfer->buffer; + } + + epout[epnum].doepctl |= DOEPCTL_EPENA | DOEPCTL_CNAK; } } /*------------------------------------------------------------------*/ /* Controller API *------------------------------------------------------------------*/ -#if CFG_TUSB_DEBUG >= DWC2_DEBUG -void print_dwc2_info(dwc2_regs_t* dwc2) { - // print guid, gsnpsid, ghwcfg1, ghwcfg2, ghwcfg3, ghwcfg4 - // use dwc2_info.py/md for bit-field value and comparison with other ports - volatile uint32_t const* p = (volatile uint32_t const*) &dwc2->guid; - TU_LOG(DWC2_DEBUG, "guid, gsnpsid, ghwcfg1, ghwcfg2, ghwcfg3, ghwcfg4\r\n"); - for (size_t i = 0; i < 5; i++) { - TU_LOG(DWC2_DEBUG, "0x%08" PRIX32 ", ", p[i]); - } - TU_LOG(DWC2_DEBUG, "0x%08" PRIX32 "\r\n", p[5]); -} -#endif static void reset_core(dwc2_regs_t* dwc2) { // reset core @@ -471,13 +559,10 @@ static void reset_core(dwc2_regs_t* dwc2) { static bool phy_hs_supported(dwc2_regs_t* dwc2) { (void) dwc2; -#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) - // note: esp32 incorrect report its hs_phy_type as utmi - return false; -#elif !TUD_OPT_HIGH_SPEED +#if !TUD_OPT_HIGH_SPEED return false; #else - return dwc2->ghwcfg2_bm.hs_phy_type != HS_PHY_TYPE_NONE; + return dwc2->ghwcfg2_bm.hs_phy_type != GHWCFG2_HSPHY_NOT_SUPPORTED; #endif } @@ -488,7 +573,7 @@ static void phy_fs_init(dwc2_regs_t* dwc2) { dwc2->gusbcfg |= GUSBCFG_PHYSEL; // MCU specific PHY init before reset - dwc2_phy_init(dwc2, HS_PHY_TYPE_NONE); + dwc2_phy_init(dwc2, GHWCFG2_HSPHY_NOT_SUPPORTED); // Reset core after selecting PHY reset_core(dwc2); @@ -499,7 +584,7 @@ static void phy_fs_init(dwc2_regs_t* dwc2) { dwc2->gusbcfg = (dwc2->gusbcfg & ~GUSBCFG_TRDT_Msk) | (5u << GUSBCFG_TRDT_Pos); // MCU specific PHY update post reset - dwc2_phy_update(dwc2, HS_PHY_TYPE_NONE); + dwc2_phy_update(dwc2, GHWCFG2_HSPHY_NOT_SUPPORTED); // set max speed dwc2->dcfg = (dwc2->dcfg & ~DCFG_DSPD_Msk) | (DCFG_DSPD_FS << DCFG_DSPD_Pos); @@ -511,7 +596,7 @@ static void phy_hs_init(dwc2_regs_t* dwc2) { // De-select FS PHY gusbcfg &= ~GUSBCFG_PHYSEL; - if (dwc2->ghwcfg2_bm.hs_phy_type == HS_PHY_TYPE_ULPI) { + if (dwc2->ghwcfg2_bm.hs_phy_type == GHWCFG2_HSPHY_ULPI) { TU_LOG(DWC2_DEBUG, "Highspeed ULPI PHY init\r\n"); // Select ULPI @@ -532,7 +617,9 @@ static void phy_hs_init(dwc2_regs_t* dwc2) { gusbcfg &= ~(GUSBCFG_ULPI_UTMI_SEL | GUSBCFG_PHYIF16); // Set 16-bit interface if supported - if (dwc2->ghwcfg4_bm.utmi_phy_data_width) gusbcfg |= GUSBCFG_PHYIF16; + if (dwc2->ghwcfg4_bm.phy_data_width) { + gusbcfg |= GUSBCFG_PHYIF16; + } } // Apply config @@ -548,7 +635,7 @@ static void phy_hs_init(dwc2_regs_t* dwc2) { // - 9 if using 8-bit PHY interface // - 5 if using 16-bit PHY interface gusbcfg &= ~GUSBCFG_TRDT_Msk; - gusbcfg |= (dwc2->ghwcfg4_bm.utmi_phy_data_width ? 5u : 9u) << GUSBCFG_TRDT_Pos; + gusbcfg |= (dwc2->ghwcfg4_bm.phy_data_width ? 5u : 9u) << GUSBCFG_TRDT_Pos; dwc2->gusbcfg = gusbcfg; // MCU specific PHY update post reset @@ -561,17 +648,26 @@ static void phy_hs_init(dwc2_regs_t* dwc2) { // XCVRDLY: transceiver delay between xcvr_sel and txvalid during device chirp is required // when using with some PHYs such as USB334x (USB3341, USB3343, USB3346, USB3347) - if (dwc2->ghwcfg2_bm.hs_phy_type == HS_PHY_TYPE_ULPI) dcfg |= DCFG_XCVRDLY; + if (dwc2->ghwcfg2_bm.hs_phy_type == GHWCFG2_HSPHY_ULPI) { + dcfg |= DCFG_XCVRDLY; + } dwc2->dcfg = dcfg; } static bool check_dwc2(dwc2_regs_t* dwc2) { #if CFG_TUSB_DEBUG >= DWC2_DEBUG - print_dwc2_info(dwc2); + // print guid, gsnpsid, ghwcfg1, ghwcfg2, ghwcfg3, ghwcfg4 + // Run 'dwc2_info.py render-md' and check dwc2_info.md for bit-field value and comparison with other ports + volatile uint32_t const* p = (volatile uint32_t const*) &dwc2->guid; + TU_LOG1("guid, gsnpsid, ghwcfg1, ghwcfg2, ghwcfg3, ghwcfg4\r\n"); + for (size_t i = 0; i < 5; i++) { + TU_LOG1("0x%08" PRIX32 ", ", p[i]); + } + TU_LOG1("0x%08" PRIX32 "\r\n", p[5]); #endif - // For some reasons: GD32VF103 snpsid and all hwcfg register are always zero (skip it) + // For some reason: GD32VF103 snpsid and all hwcfg register are always zero (skip it) (void) dwc2; #if !TU_CHECK_MCU(OPT_MCU_GD32VF103) uint32_t const gsnpsid = dwc2->gsnpsid & GSNPSID_ID_MASK; @@ -587,12 +683,9 @@ void dcd_init(uint8_t rhport) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); // Check Synopsys ID register, failed if controller clock/power is not enabled - if (!check_dwc2(dwc2)) return; + TU_ASSERT(check_dwc2(dwc2), ); dcd_disconnect(rhport); - // max number of endpoints & total_fifo_size are: - // hw_cfg2->num_dev_ep, hw_cfg2->total_fifo_size - if (phy_hs_supported(dwc2)) { phy_hs_init(dwc2); // Highspeed } else { @@ -622,8 +715,8 @@ void dcd_init(uint8_t rhport) { // (non zero-length packet), send STALL back and discard. dwc2->dcfg |= DCFG_NZLSOHSK; - fifo_flush_tx(dwc2, 0x10); // all tx fifo - fifo_flush_rx(dwc2); + dfifo_flush_tx(dwc2, 0x10); // all tx fifo + dfifo_flush_rx(dwc2); // Clear all interrupts uint32_t int_mask = dwc2->gintsts; @@ -632,12 +725,21 @@ void dcd_init(uint8_t rhport) { dwc2->gotgint |= int_mask; // Required as part of core initialization. - dwc2->gintmsk = GINTMSK_OTGINT | GINTMSK_RXFLVLM | - GINTMSK_USBSUSPM | GINTMSK_USBRST | GINTMSK_ENUMDNEM | GINTMSK_WUIM; + dwc2->gintmsk = GINTMSK_OTGINT | GINTMSK_USBSUSPM | GINTMSK_USBRST | GINTMSK_ENUMDNEM | GINTMSK_WUIM; // Configure TX FIFO empty level for interrupt. Default is complete empty dwc2->gahbcfg |= GAHBCFG_TXFELVL; + if (dma_enabled(dwc2)) { + const uint16_t epinfo_base = dma_cal_epfifo_base(rhport); + dwc2->gdfifocfg = (epinfo_base << GDFIFOCFG_EPINFOBASE_SHIFT) | epinfo_base; + + // DMA seems to be only settable after a core reset + dwc2->gahbcfg |= GAHBCFG_DMAEN | GAHBCFG_HBSTLEN_2; + }else { + dwc2->gintmsk |= GINTMSK_RXFLVLM; + } + // Enable global interrupt dwc2->gahbcfg |= GAHBCFG_GINT; @@ -689,12 +791,34 @@ void dcd_remote_wakeup(uint8_t rhport) { void dcd_connect(uint8_t rhport) { (void) rhport; dwc2_regs_t* dwc2 = DWC2_REG(rhport); + +#ifdef TUP_USBIP_DWC2_ESP32 + usb_wrap_otg_conf_reg_t conf = USB_WRAP.otg_conf; + conf.pad_pull_override = 0; + conf.dp_pullup = 0; + conf.dp_pulldown = 0; + conf.dm_pullup = 0; + conf.dm_pulldown = 0; + USB_WRAP.otg_conf = conf; +#endif + dwc2->dctl &= ~DCTL_SDIS; } void dcd_disconnect(uint8_t rhport) { (void) rhport; dwc2_regs_t* dwc2 = DWC2_REG(rhport); + +#ifdef TUP_USBIP_DWC2_ESP32 + usb_wrap_otg_conf_reg_t conf = USB_WRAP.otg_conf; + conf.pad_pull_override = 1; + conf.dp_pullup = 0; + conf.dp_pulldown = 1; + conf.dm_pullup = 0; + conf.dm_pulldown = 1; + USB_WRAP.otg_conf = conf; +#endif + dwc2->dctl |= DCTL_SDIS; } @@ -718,7 +842,7 @@ void dcd_sof_enable(uint8_t rhport, bool en) { *------------------------------------------------------------------*/ bool dcd_edpt_open(uint8_t rhport, tusb_desc_endpoint_t const* desc_edpt) { - TU_ASSERT(fifo_alloc(rhport, desc_edpt->bEndpointAddress, tu_edpt_packet_size(desc_edpt))); + TU_ASSERT(dfifo_alloc(rhport, desc_edpt->bEndpointAddress, tu_edpt_packet_size(desc_edpt))); edpt_activate(rhport, desc_edpt); return true; } @@ -728,6 +852,8 @@ void dcd_edpt_close_all(uint8_t rhport) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); uint8_t const ep_count = _dwc2_controller[rhport].ep_count; + _allocated_ep_in_count = 1; + // Disable non-control interrupt dwc2->daintmsk = (1 << DAINTMSK_OEPM_Pos) | (1 << DAINTMSK_IEPM_Pos); @@ -745,30 +871,25 @@ void dcd_edpt_close_all(uint8_t rhport) { xfer_status[n][TUSB_DIR_IN].max_size = 0; } - // reset allocated fifo OUT - dwc2->grxfsiz = calc_grxfsiz(64, ep_count); - // reset allocated fifo IN - _allocated_fifo_words_tx = 16; - -#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) +#if defined(TUP_USBIP_DWC2_ESP32) _allocated_fifos = 1; #endif - fifo_flush_tx(dwc2, 0x10); // all tx fifo - fifo_flush_rx(dwc2); + dfifo_flush_tx(dwc2, 0x10); // all tx fifo + dfifo_flush_rx(dwc2); + + dfifo_init(rhport); // re-init dfifo } bool dcd_edpt_iso_alloc(uint8_t rhport, uint8_t ep_addr, uint16_t largest_packet_size) { - TU_ASSERT(fifo_alloc(rhport, ep_addr, largest_packet_size)); + TU_ASSERT(dfifo_alloc(rhport, ep_addr, largest_packet_size)); return true; } bool dcd_edpt_iso_activate(uint8_t rhport, tusb_desc_endpoint_t const * p_endpoint_desc) { // Disable EP to clear potential incomplete transfers edpt_disable(rhport, p_endpoint_desc->bEndpointAddress, false); - edpt_activate(rhport, p_endpoint_desc); - return true; } @@ -835,6 +956,9 @@ void dcd_edpt_close(uint8_t rhport, uint8_t ep_addr) { void dcd_edpt_stall(uint8_t rhport, uint8_t ep_addr) { edpt_disable(rhport, ep_addr, true); + if((tu_edpt_number(ep_addr) == 0) && dma_enabled(DWC2_REG(rhport))) { + dma_setup_prepare(rhport); + } } void dcd_edpt_clear_stall(uint8_t rhport, uint8_t ep_addr) { @@ -855,56 +979,9 @@ void dcd_edpt_clear_stall(uint8_t rhport, uint8_t ep_addr) { } } -/*------------------------------------------------------------------*/ - -// Read a single data packet from receive FIFO -static void read_fifo_packet(uint8_t rhport, uint8_t* dst, uint16_t len) { - (void) rhport; - - dwc2_regs_t* dwc2 = DWC2_REG(rhport); - volatile const uint32_t* rx_fifo = dwc2->fifo[0]; - - // Reading full available 32 bit words from fifo - uint16_t full_words = len >> 2; - while (full_words--) { - tu_unaligned_write32(dst, *rx_fifo); - dst += 4; - } - - // Read the remaining 1-3 bytes from fifo - uint8_t const bytes_rem = len & 0x03; - if (bytes_rem != 0) { - uint32_t const tmp = *rx_fifo; - dst[0] = tu_u32_byte0(tmp); - if (bytes_rem > 1) dst[1] = tu_u32_byte1(tmp); - if (bytes_rem > 2) dst[2] = tu_u32_byte2(tmp); - } -} - -// Write a single data packet to EPIN FIFO -static void write_fifo_packet(uint8_t rhport, uint8_t fifo_num, uint8_t const* src, uint16_t len) { - (void) rhport; - - dwc2_regs_t* dwc2 = DWC2_REG(rhport); - volatile uint32_t* tx_fifo = dwc2->fifo[fifo_num]; - - // Pushing full available 32 bit words to fifo - uint16_t full_words = len >> 2; - while (full_words--) { - *tx_fifo = tu_unaligned_read32(src); - src += 4; - } - - // Write the remaining 1-3 bytes into fifo - uint8_t const bytes_rem = len & 0x03; - if (bytes_rem) { - uint32_t tmp_word = src[0]; - if (bytes_rem > 1) tmp_word |= (src[1] << 8); - if (bytes_rem > 2) tmp_word |= (src[2] << 16); - - *tx_fifo = tmp_word; - } -} +//-------------------------------------------------------------------- +// Interrupt Handler +//-------------------------------------------------------------------- static void handle_rxflvl_irq(uint8_t rhport) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); @@ -958,7 +1035,7 @@ static void handle_rxflvl_irq(uint8_t rhport) { tu_fifo_write_n_const_addr_full_words(xfer->ff, (const void*) (uintptr_t) rx_fifo, bcnt); } else { // Linear buffer - read_fifo_packet(rhport, xfer->buffer, bcnt); + dfifo_read_packet(rhport, xfer->buffer, bcnt); // Increment pointer to xfer data xfer->buffer += bcnt; @@ -982,21 +1059,7 @@ static void handle_rxflvl_irq(uint8_t rhport) { // XFRC complete is additionally generated when // - setup packet is received // - complete the data stage of control write is complete - if ((epnum == 0) && (bcnt == 0) && (dwc2->gsnpsid >= DWC2_CORE_REV_3_00a)) { - uint32_t doepint = epout->doepint; - - if (doepint & (DOEPINT_STPKTRX | DOEPINT_OTEPSPR)) { - // skip this "no-data" transfer complete event - // Note: STPKTRX will be clear later by setup received handler - uint32_t clear_flags = DOEPINT_XFRC; - - if (doepint & DOEPINT_OTEPSPR) clear_flags |= DOEPINT_OTEPSPR; - - epout->doepint = clear_flags; - - // TU_LOG(DWC2_DEBUG, " FIX extra transfer complete on setup/data compete\r\n"); - } - } + // It will be handled in handle_epout_irq() break; default: // Invalid @@ -1017,18 +1080,7 @@ static void handle_epout_irq(uint8_t rhport) { uint32_t const doepint = epout->doepint; - // SETUP packet Setup Phase done. - if (doepint & DOEPINT_STUP) { - uint32_t clear_flag = DOEPINT_STUP; - - // STPKTRX is only available for version from 3_00a - if ((doepint & DOEPINT_STPKTRX) && (dwc2->gsnpsid >= DWC2_CORE_REV_3_00a)) { - clear_flag |= DOEPINT_STPKTRX; - } - - epout->doepint = clear_flag; - dcd_event_setup_received(rhport, (uint8_t*) _setup_packet, true); - } + TU_ASSERT((epout->doepint & DOEPINT_AHBERR) == 0, ); // OUT XFER complete if (epout->doepint & DOEPINT_XFRC) { @@ -1036,13 +1088,65 @@ static void handle_epout_irq(uint8_t rhport) { xfer_ctl_t* xfer = XFER_CTL_BASE(n, TUSB_DIR_OUT); - // EP0 can only handle one packet - if ((n == 0) && ep0_pending[TUSB_DIR_OUT]) { - // Schedule another packet to be received. - edpt_schedule_packets(rhport, n, TUSB_DIR_OUT, 1, ep0_pending[TUSB_DIR_OUT]); + if(dma_enabled(dwc2)) { + if (doepint & DOEPINT_STUP) { + // STPKTRX is only available for version from 3_00a + if ((doepint & DOEPINT_STPKTRX) && (dwc2->gsnpsid > DWC2_CORE_REV_3_00a)) { + epout->doepint = DOEPINT_STPKTRX; + } + } else if (doepint & DOEPINT_OTEPSPR) { + epout->doepint = DOEPINT_OTEPSPR; + } else { + if ((doepint & DOEPINT_STPKTRX) && (dwc2->gsnpsid > DWC2_CORE_REV_3_00a)) { + epout->doepint = DOEPINT_STPKTRX; + } else { + // EP0 can only handle one packet + if ((n == 0) && ep0_pending[TUSB_DIR_OUT]) { + // Schedule another packet to be received. + edpt_schedule_packets(rhport, n, TUSB_DIR_OUT, 1, ep0_pending[TUSB_DIR_OUT]); + } else { + // Fix packet length + uint16_t remain = (epout->doeptsiz & DOEPTSIZ_XFRSIZ_Msk) >> DOEPTSIZ_XFRSIZ_Pos; + xfer->total_len -= remain; + // this is ZLP, so prepare EP0 for next setup + if(n == 0 && xfer->total_len == 0) { + dma_setup_prepare(rhport); + } + + dcd_event_xfer_complete(rhport, n, xfer->total_len, XFER_RESULT_SUCCESS, true); + } + } + } } else { - dcd_event_xfer_complete(rhport, n, xfer->total_len, XFER_RESULT_SUCCESS, true); + if ((doepint & DOEPINT_STPKTRX) && (dwc2->gsnpsid == DWC2_CORE_REV_3_10a)) { + epout->doepint = DOEPINT_STPKTRX; + } else { + if ((doepint & DOEPINT_OTEPSPR) && (dwc2->gsnpsid == DWC2_CORE_REV_3_10a)) { + epout->doepint = DOEPINT_OTEPSPR; + } + + // EP0 can only handle one packet + if ((n == 0) && ep0_pending[TUSB_DIR_OUT]) { + // Schedule another packet to be received. + edpt_schedule_packets(rhport, n, TUSB_DIR_OUT, 1, ep0_pending[TUSB_DIR_OUT]); + } else { + dcd_event_xfer_complete(rhport, n, xfer->total_len, XFER_RESULT_SUCCESS, true); + } + } + } + } + + // SETUP packet Setup Phase done. + if (doepint & DOEPINT_STUP) { + epout->doepint = DOEPINT_STUP; + if ((doepint & DOEPINT_STPKTRX) && (dwc2->gsnpsid > DWC2_CORE_REV_3_00a)) { + epout->doepint = DOEPINT_STPKTRX; } + if(dma_enabled(dwc2) && (dwc2->gsnpsid > DWC2_CORE_REV_3_00a)) { + dma_setup_prepare(rhport); + } + + dcd_event_setup_received(rhport, (uint8_t*) _setup_packet, true); } } } @@ -1068,6 +1172,9 @@ static void handle_epin_irq(uint8_t rhport) { // Schedule another packet to be transmitted. edpt_schedule_packets(rhport, n, TUSB_DIR_IN, 1, ep0_pending[TUSB_DIR_IN]); } else { + if((n == 0) && dma_enabled(dwc2)) { + dma_setup_prepare(rhport); + } dcd_event_xfer_complete(rhport, n | TUSB_DIR_IN_MASK, xfer->total_len, XFER_RESULT_SUCCESS, true); } } @@ -1097,7 +1204,7 @@ static void handle_epin_irq(uint8_t rhport) { volatile uint32_t* tx_fifo = dwc2->fifo[n]; tu_fifo_read_n_const_addr_full_words(xfer->ff, (void*) (uintptr_t) tx_fifo, packet_size); } else { - write_fifo_packet(rhport, n, xfer->buffer, packet_size); + dfifo_write_packet(rhport, n, xfer->buffer, packet_size); // Increment pointer to xfer data xfer->buffer += packet_size; @@ -1122,7 +1229,7 @@ void dcd_int_handler(uint8_t rhport) { if (int_status & GINTSTS_USBRST) { // USBRST is start of reset. dwc2->gintsts = GINTSTS_USBRST; -#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) +#if defined(TUP_USBIP_DWC2_ESP32) _allocated_fifos = 1; #endif bus_reset(rhport); @@ -1158,7 +1265,7 @@ void dcd_int_handler(uint8_t rhport) { dwc2->gintsts = GINTSTS_USBSUSP; //dcd_event_bus_signal(rhport, DCD_EVENT_SUSPEND, true); dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); -#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) +#if defined(TUP_USBIP_DWC2_ESP32) _allocated_fifos = 1; #endif } @@ -1177,7 +1284,7 @@ void dcd_int_handler(uint8_t rhport) { if (otg_int & GOTGINT_SEDET) { dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); -#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) +#if defined(TUP_USBIP_DWC2_ESP32) _allocated_fifos = 1; #endif } @@ -1231,25 +1338,13 @@ void dcd_int_handler(uint8_t rhport) { // } } -#if defined(TUP_USBIP_DWC2_TEST_MODE) && CFG_TUD_TEST_MODE - -bool dcd_check_test_mode_support(test_mode_t test_selector) { - // Check if test mode selector is unsupported - if (TEST_FORCE_ENABLE < test_selector || TEST_J > test_selector) { - return false; - } - - return true; -} - -void dcd_enter_test_mode(uint8_t rhport, test_mode_t test_selector) { - // Get port address... +#if CFG_TUD_TEST_MODE +void dcd_enter_test_mode(uint8_t rhport, tusb_feature_test_mode_t test_selector) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); // Enable the test mode - dwc2->dctl = (dwc2->dctl & ~DCTL_TCTL_Msk) | (test_selector << DCTL_TCTL_Pos); + dwc2->dctl = (dwc2->dctl & ~DCTL_TCTL_Msk) | (((uint8_t) test_selector) << DCTL_TCTL_Pos); } - -#endif /* TUP_USBIP_DWC2_TEST_MODE && CFG_TUD_TEST_MODE */ +#endif #endif diff --git a/components/arduino_tinyusb/src/dcd_esp32sx.c b/components/arduino_tinyusb/src/dcd_esp32sx.c deleted file mode 100755 index 324aad595..000000000 --- a/components/arduino_tinyusb/src/dcd_esp32sx.c +++ /dev/null @@ -1,965 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2018 Scott Shawcroft, 2019 William D. Jones for Adafruit Industries - * Copyright (c) 2019 Ha Thach (tinyusb.org) - * Additions Copyright (c) 2020, Espressif Systems (Shanghai) Co. Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * This file is part of the TinyUSB stack. - */ - -#include "tusb_option.h" - -#if (((CFG_TUSB_MCU == OPT_MCU_ESP32S2) || (CFG_TUSB_MCU == OPT_MCU_ESP32S3)) && CFG_TUD_ENABLED) - -// Espressif -#include "freertos/xtensa_api.h" -#include "esp_intr_alloc.h" -#include "esp_log.h" -#include "soc/dport_reg.h" -#include "soc/gpio_sig_map.h" -#include "soc/usb_periph.h" -#include "soc/usb_reg.h" -#include "soc/usb_struct.h" -#include "soc/periph_defs.h" // for interrupt source -#include "soc/usb_wrap_struct.h" - -#include "device/dcd.h" - -#ifndef USB_OUT_EP_NUM -#define USB_OUT_EP_NUM ((int) (sizeof(USB0.out_ep_reg) / sizeof(USB0.out_ep_reg[0]))) -#endif - -#ifndef USB_IN_EP_NUM -#define USB_IN_EP_NUM ((int) (sizeof(USB0.in_ep_reg) / sizeof(USB0.in_ep_reg[0]))) -#endif - -// Max number of bi-directional endpoints including EP0 -// Note: ESP32S2 specs say there are only up to 5 IN active endpoints include EP0 -// We should probably prohibit enabling Endpoint IN > 4 (not done yet) -#define EP_MAX USB_OUT_EP_NUM - -// FIFO size in bytes -#define EP_FIFO_SIZE 1024 - -// Max number of IN EP FIFOs -#define EP_FIFO_NUM 5 - -typedef struct { - uint8_t *buffer; - // tu_fifo_t * ff; // TODO support dcd_edpt_xfer_fifo API - uint16_t total_len; - uint16_t queued_len; - uint16_t max_size; - bool short_packet; - uint8_t interval; -} xfer_ctl_t; - -static const char *TAG = "TUSB:DCD"; -static intr_handle_t usb_ih; - - -static uint32_t _setup_packet[2]; - -#define XFER_CTL_BASE(_ep, _dir) &xfer_status[_ep][_dir] -static xfer_ctl_t xfer_status[EP_MAX][2]; - -// Keep count of how many FIFOs are in use -static uint8_t _allocated_fifos = 1; //FIFO0 is always in use - -// Will either return an unused FIFO number, or 0 if all are used. -static uint8_t get_free_fifo(void) -{ - if (_allocated_fifos < EP_FIFO_NUM) return _allocated_fifos++; - return 0; -} - -// Setup the control endpoint 0. -static void bus_reset(void) -{ - for (int ep_num = 0; ep_num < USB_OUT_EP_NUM; ep_num++) { - USB0.out_ep_reg[ep_num].doepctl |= USB_DO_SNAK0_M; // DOEPCTL0_SNAK - } - - // clear device address - USB0.dcfg &= ~USB_DEVADDR_M; - - USB0.daintmsk = USB_OUTEPMSK0_M | USB_INEPMSK0_M; - USB0.doepmsk = USB_SETUPMSK_M | USB_XFERCOMPLMSK; - USB0.diepmsk = USB_TIMEOUTMSK_M | USB_DI_XFERCOMPLMSK_M /*| USB_INTKNTXFEMPMSK_M*/; - - // "USB Data FIFOs" section in reference manual - // Peripheral FIFO architecture - // - // --------------- 320 or 1024 ( 1280 or 4096 bytes ) - // | IN FIFO MAX | - // --------------- - // | ... | - // --------------- y + x + 16 + GRXFSIZ - // | IN FIFO 2 | - // --------------- x + 16 + GRXFSIZ - // | IN FIFO 1 | - // --------------- 16 + GRXFSIZ - // | IN FIFO 0 | - // --------------- GRXFSIZ - // | OUT FIFO | - // | ( Shared ) | - // --------------- 0 - // - // According to "FIFO RAM allocation" section in RM, FIFO RAM are allocated as follows (each word 32-bits): - // - Each EP IN needs at least max packet size, 16 words is sufficient for EP0 IN - // - // - All EP OUT shared a unique OUT FIFO which uses - // * 10 locations in hardware for setup packets + setup control words (up to 3 setup packets). - // * 2 locations for OUT endpoint control words. - // * 16 for largest packet size of 64 bytes. ( TODO Highspeed is 512 bytes) - // * 1 location for global NAK (not required/used here). - // * It is recommended to allocate 2 times the largest packet size, therefore - // Recommended value = 10 + 1 + 2 x (16+2) = 47 --> Let's make it 52 - USB0.grstctl |= 0x10 << USB_TXFNUM_S; // fifo 0x10, - USB0.grstctl |= USB_TXFFLSH_M; // Flush fifo - USB0.grxfsiz = 52; - - // Control IN uses FIFO 0 with 64 bytes ( 16 32-bit word ) - USB0.gnptxfsiz = (16 << USB_NPTXFDEP_S) | (USB0.grxfsiz & 0x0000ffffUL); - - // Ready to receive SETUP packet - USB0.out_ep_reg[0].doeptsiz |= USB_SUPCNT0_M; - - USB0.gintmsk |= USB_IEPINTMSK_M | USB_OEPINTMSK_M; -} - -static void enum_done_processing(void) -{ - ESP_EARLY_LOGV(TAG, "dcd_int_handler - Speed enumeration done! Sending DCD_EVENT_BUS_RESET then"); - // On current silicon on the Full Speed core, speed is fixed to Full Speed. - // However, keep for debugging and in case Low Speed is ever supported. - uint32_t enum_spd = (USB0.dsts >> USB_ENUMSPD_S) & (USB_ENUMSPD_V); - - // Maximum packet size for EP 0 is set for both directions by writing DIEPCTL - if (enum_spd == 0x03) { // Full-Speed (PHY on 48 MHz) - USB0.in_ep_reg[0].diepctl &= ~USB_D_MPS0_V; // 64 bytes - USB0.in_ep_reg[0].diepctl &= ~USB_D_STALL0_M; // clear Stall - xfer_status[0][TUSB_DIR_OUT].max_size = 64; - xfer_status[0][TUSB_DIR_IN].max_size = 64; - } else { - USB0.in_ep_reg[0].diepctl |= USB_D_MPS0_V; // 8 bytes - USB0.in_ep_reg[0].diepctl &= ~USB_D_STALL0_M; // clear Stall - xfer_status[0][TUSB_DIR_OUT].max_size = 8; - xfer_status[0][TUSB_DIR_IN].max_size = 8; - } -} - - -/*------------------------------------------------------------------*/ -/* Controller API - *------------------------------------------------------------------*/ -void dcd_init(uint8_t rhport) -{ - ESP_LOGV(TAG, "DCD init - Start"); - - bool did_persist = (USB_WRAP.date.val & (1 << 31)) != 0; - - if (did_persist) { - //Clear persistence of USB peripheral through reset - USB_WRAP.date.val = 0; - } else { - // A. Disconnect - ESP_LOGV(TAG, "DCD init - Soft DISCONNECT and Setting up"); - USB0.dctl |= USB_SFTDISCON_M; // Soft disconnect - - // B. Programming DCFG - /* If USB host misbehaves during status portion of control xfer - (non zero-length packet), send STALL back and discard. Full speed. */ - USB0.dcfg |= USB_NZSTSOUTHSHK_M | // NonZero .... STALL - (3 << 0); // dev speed: fullspeed 1.1 on 48 mhz // TODO no value in usb_reg.h (IDF-1476) - } - - USB0.gahbcfg |= USB_NPTXFEMPLVL_M | USB_GLBLLNTRMSK_M; // Global interruptions ON - USB0.gusbcfg |= USB_FORCEDEVMODE_M; // force devmode - USB0.gotgctl &= ~(USB_BVALIDOVVAL_M | USB_BVALIDOVEN_M | USB_VBVALIDOVVAL_M); //no overrides - - // C. Setting SNAKs, then connect - for (int n = 0; n < USB_OUT_EP_NUM; n++) { - USB0.out_ep_reg[n].doepctl |= USB_DO_SNAK0_M; // DOEPCTL0_SNAK - } - - if (!did_persist) { - // D. Interruption masking - USB0.gintmsk = 0; //mask all - USB0.gotgint = ~0U; //clear OTG ints - USB0.gintsts = ~0U; //clear pending ints - } - - USB0.gintmsk = USB_OTGINTMSK_M | - USB_MODEMISMSK_M | - USB_RXFLVIMSK_M | - USB_ERLYSUSPMSK_M | - USB_USBSUSPMSK_M | - USB_USBRSTMSK_M | - USB_ENUMDONEMSK_M | - USB_RESETDETMSK_M | - USB_DISCONNINTMSK_M; // host most only - if (did_persist) { - USB0.grstctl &= ~USB_TXFNUM_M; - USB0.grstctl |= 0x10 << USB_TXFNUM_S; - USB0.grstctl |= USB_TXFFLSH; - USB0.grxfsiz = 52; - - for (int n = 0; n < USB_IN_EP_NUM; n++) { - USB0.in_ep_reg[n].diepint = USB_D_XFERCOMPL0_M | USB_D_TXFEMP0_M; - USB0.in_ep_reg[n].diepctl &= ~USB_D_STALL0_M; // clear Stall - USB0.in_ep_reg[n].diepctl |= USB_D_CNAK0 | USB_D_EPENA0; // clear NAK - } - USB0.dtknqr4_fifoemptymsk &= ~(0x7F); - - USB0.gnptxfsiz = (16 << USB_NPTXFDEP_S) | (USB0.grxfsiz & 0x0000ffffUL); - - USB0.daintmsk |= USB_OUTEPMSK0_M | USB_INEPMSK0_M; - USB0.doepmsk |= USB_SETUP0 | USB_XFERCOMPLMSK; - USB0.diepmsk |= USB_TIMEOUTMSK_M | USB_DI_XFERCOMPLMSK_M;//USB_INEPNAKEFFMSK - - USB0.gintmsk |= USB_IEPINTMSK_M | USB_OEPINTMSK_M; - USB0.gotgint = ~0; //clear OTG ints - USB0.gintsts = ~0; //clear pending ints - enum_done_processing(); - dcd_event_bus_signal(0, DCD_EVENT_BUS_RESET, true); - tusb_control_request_t request = { - .bmRequestType_bit = { .recipient = TUSB_REQ_RCPT_DEVICE, .type = TUSB_REQ_TYPE_STANDARD, .direction = TUSB_DIR_OUT }, - .bRequest = TUSB_REQ_SET_CONFIGURATION, - .wValue = 1, - .wIndex = 0, - .wLength = 0 - }; - dcd_event_setup_received(0, (uint8_t *)&request, true); - } else { - dcd_connect(rhport); - } -} - -void dcd_set_address(uint8_t rhport, uint8_t dev_addr) -{ - (void)rhport; - ESP_LOGV(TAG, "DCD init - Set address : %u", dev_addr); - USB0.dcfg |= ((dev_addr & USB_DEVADDR_V) << USB_DEVADDR_S); - // Response with status after changing device address - dcd_edpt_xfer(rhport, tu_edpt_addr(0, TUSB_DIR_IN), NULL, 0); -} - -void dcd_remote_wakeup(uint8_t rhport) -{ - (void)rhport; - - // set remote wakeup - USB0.dctl |= USB_RMTWKUPSIG_M; - - // enable SOF to detect bus resume - USB0.gintsts = USB_SOF_M; - USB0.gintmsk |= USB_SOFMSK_M; - - // Per specs: remote wakeup signal bit must be clear within 1-15ms - vTaskDelay(pdMS_TO_TICKS(1)); - - USB0.dctl &= ~USB_RMTWKUPSIG_M; -} - -// connect by enabling internal pull-up resistor on D+/D- -void dcd_connect(uint8_t rhport) -{ - (void) rhport; - USB0.dctl &= ~USB_SFTDISCON_M; -} - -// disconnect by disabling internal pull-up resistor on D+/D- -void dcd_disconnect(uint8_t rhport) -{ - (void) rhport; - USB0.dctl |= USB_SFTDISCON_M; -} - -void dcd_sof_enable(uint8_t rhport, bool en) -{ - (void) rhport; - (void) en; - - // TODO implement later -} - -/*------------------------------------------------------------------*/ -/* DCD Endpoint port - *------------------------------------------------------------------*/ - -bool dcd_edpt_open(uint8_t rhport, tusb_desc_endpoint_t const *desc_edpt) -{ - ESP_LOGV(TAG, "DCD endpoint opened"); - (void)rhport; - - usb_out_endpoint_t *out_ep = &(USB0.out_ep_reg[0]); - usb_in_endpoint_t *in_ep = &(USB0.in_ep_reg[0]); - - uint8_t const epnum = tu_edpt_number(desc_edpt->bEndpointAddress); - uint8_t const dir = tu_edpt_dir(desc_edpt->bEndpointAddress); - - TU_ASSERT(epnum < EP_MAX); - - xfer_ctl_t *xfer = XFER_CTL_BASE(epnum, dir); - xfer->max_size = tu_edpt_packet_size(desc_edpt); - xfer->interval = desc_edpt->bInterval; - - if (dir == TUSB_DIR_OUT) { - out_ep[epnum].doepctl &= ~(USB_D_EPTYPE0_M | USB_D_MPS0_M); - out_ep[epnum].doepctl |= USB_USBACTEP1_M | - desc_edpt->bmAttributes.xfer << USB_EPTYPE1_S | - (desc_edpt->bmAttributes.xfer != TUSB_XFER_ISOCHRONOUS ? USB_DO_SETD0PID1_M : 0) | - xfer->max_size << USB_MPS1_S; - USB0.daintmsk |= (1 << (16 + epnum)); - } else { - // "USB Data FIFOs" section in reference manual - // Peripheral FIFO architecture - // - // --------------- 320 or 1024 ( 1280 or 4096 bytes ) - // | IN FIFO MAX | - // --------------- - // | ... | - // --------------- y + x + 16 + GRXFSIZ - // | IN FIFO 2 | - // --------------- x + 16 + GRXFSIZ - // | IN FIFO 1 | - // --------------- 16 + GRXFSIZ - // | IN FIFO 0 | - // --------------- GRXFSIZ - // | OUT FIFO | - // | ( Shared ) | - // --------------- 0 - // - // Since OUT FIFO = GRXFSIZ, FIFO 0 = 16, for simplicity, we equally allocated for the rest of endpoints - // - Size : (FIFO_SIZE/4 - GRXFSIZ - 16) / (EP_MAX-1) - // - Offset: GRXFSIZ + 16 + Size*(epnum-1) - // - IN EP 1 gets FIFO 1, IN EP "n" gets FIFO "n". - - uint8_t fifo_num = 0; - // Special Case for EP5, which is used by CDC but not actually called by the driver - // we can give it a fake FIFO - if (epnum == 5) { - fifo_num = EP_FIFO_NUM; - } else { - fifo_num = get_free_fifo(); - } - TU_ASSERT(fifo_num != 0); - - in_ep[epnum].diepctl &= ~(USB_D_TXFNUM1_M | USB_D_EPTYPE1_M | USB_DI_SETD0PID1 | USB_D_MPS1_M); - in_ep[epnum].diepctl |= USB_D_USBACTEP1_M | - fifo_num << USB_D_TXFNUM1_S | - desc_edpt->bmAttributes.xfer << USB_D_EPTYPE1_S | - (desc_edpt->bmAttributes.xfer != TUSB_XFER_ISOCHRONOUS ? (1 << USB_DI_SETD0PID1_S) : 0) | - xfer->max_size << 0; - - USB0.daintmsk |= (1 << (0 + epnum)); - - // Both TXFD and TXSA are in unit of 32-bit words. - // IN FIFO 0 was configured during enumeration, hence the "+ 16". - uint16_t const allocated_size = (USB0.grxfsiz & 0x0000ffff) + 16; - uint16_t const fifo_size = (EP_FIFO_SIZE/4 - allocated_size) / (EP_FIFO_NUM-1); - uint32_t const fifo_offset = allocated_size + fifo_size*(fifo_num-1); - - // DIEPTXF starts at FIFO #1. - USB0.dieptxf[epnum - 1] = (fifo_size << USB_NPTXFDEP_S) | fifo_offset; - } - return true; -} - -void dcd_edpt_close_all(uint8_t rhport) -{ - (void) rhport; - - usb_out_endpoint_t *out_ep = &(USB0.out_ep_reg[0]); - usb_in_endpoint_t *in_ep = &(USB0.in_ep_reg[0]); - - // Disable non-control interrupt - USB0.daintmsk = USB_OUTEPMSK0_M | USB_INEPMSK0_M; - - for(uint8_t n = 1; n < EP_MAX; n++) - { - // disable OUT endpoint - out_ep[n].doepctl = 0; - xfer_status[n][TUSB_DIR_OUT].max_size = 0; - - // disable IN endpoint - in_ep[n].diepctl = 0; - xfer_status[n][TUSB_DIR_IN].max_size = 0; - } - - _allocated_fifos = 1; -} - -bool dcd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t *buffer, uint16_t total_bytes) -{ - (void)rhport; - - uint8_t const epnum = tu_edpt_number(ep_addr); - uint8_t const dir = tu_edpt_dir(ep_addr); - - xfer_ctl_t * xfer = XFER_CTL_BASE(epnum, dir); - xfer->buffer = buffer; - // xfer->ff = NULL; // TODO support dcd_edpt_xfer_fifo API - xfer->total_len = total_bytes; - xfer->queued_len = 0; - xfer->short_packet = false; - - uint16_t num_packets = (total_bytes / xfer->max_size); - uint8_t short_packet_size = total_bytes % xfer->max_size; - - // Zero-size packet is special case. - if (short_packet_size > 0 || (total_bytes == 0)) { - num_packets++; - } - - ESP_LOGV(TAG, "Transfer <-> EP%i, %s, pkgs: %i, bytes: %i", - epnum, ((dir == TUSB_DIR_IN) ? "USB0.HOST (in)" : "HOST->DEV (out)"), - num_packets, total_bytes); - - // IN and OUT endpoint xfers are interrupt-driven, we just schedule them - // here. - if (dir == TUSB_DIR_IN) { - // A full IN transfer (multiple packets, possibly) triggers XFRC. - USB0.in_ep_reg[epnum].dieptsiz = (num_packets << USB_D_PKTCNT0_S) | total_bytes; - USB0.in_ep_reg[epnum].diepctl |= USB_D_EPENA1_M | USB_D_CNAK1_M; // Enable | CNAK - - // For ISO endpoint with interval=1 set correct DATA0/DATA1 bit for next frame - if ((USB0.in_ep_reg[epnum].diepctl & USB_D_EPTYPE0_M) == (1 << USB_D_EPTYPE1_S) && xfer->interval == 1) { - // Take odd/even bit from frame counter. - uint32_t const odd_frame_now = (USB0.dsts & (1u << USB_SOFFN_S)); - USB0.in_ep_reg[epnum].diepctl |= (odd_frame_now ? USB_DI_SETD0PID1 : USB_DI_SETD1PID1); - } - - // Enable fifo empty interrupt only if there are something to put in the fifo. - if(total_bytes != 0) { - USB0.dtknqr4_fifoemptymsk |= (1 << epnum); - } - } else { - // Each complete packet for OUT xfers triggers XFRC. - USB0.out_ep_reg[epnum].doeptsiz |= USB_PKTCNT0_M | ((xfer->max_size & USB_XFERSIZE0_V) << USB_XFERSIZE0_S); - USB0.out_ep_reg[epnum].doepctl |= USB_EPENA0_M | USB_CNAK0_M; - - // For ISO endpoint with interval=1 set correct DATA0/DATA1 bit for next frame - if ((USB0.out_ep_reg[epnum].doepctl & USB_D_EPTYPE0_M) == (1 << USB_D_EPTYPE1_S) && xfer->interval == 1) { - // Take odd/even bit from frame counter. - uint32_t const odd_frame_now = (USB0.dsts & (1u << USB_SOFFN_S)); - USB0.out_ep_reg[epnum].doepctl |= (odd_frame_now ? USB_DO_SETD0PID1 : USB_DO_SETD1PID1); - } - } - return true; -} - -#if 0 // TODO support dcd_edpt_xfer_fifo API -bool dcd_edpt_xfer_fifo (uint8_t rhport, uint8_t ep_addr, tu_fifo_t * ff, uint16_t total_bytes) -{ - (void)rhport; -} -#endif - -void dcd_edpt_stall(uint8_t rhport, uint8_t ep_addr) -{ - (void)rhport; - - usb_out_endpoint_t *out_ep = &(USB0.out_ep_reg[0]); - usb_in_endpoint_t *in_ep = &(USB0.in_ep_reg[0]); - - uint8_t const epnum = tu_edpt_number(ep_addr); - uint8_t const dir = tu_edpt_dir(ep_addr); - - if (dir == TUSB_DIR_IN) { - // Only disable currently enabled non-control endpoint - if ((epnum == 0) || !(in_ep[epnum].diepctl & USB_D_EPENA1_M)) { - in_ep[epnum].diepctl |= (USB_DI_SNAK1_M | USB_D_STALL1_M); - } else { - // Stop transmitting packets and NAK IN xfers. - in_ep[epnum].diepctl |= USB_DI_SNAK1_M; - // while ((in_ep[epnum].diepint & USB_DI_SNAK1_M) == 0) ; - while ((in_ep[epnum].diepint & USB_D_INEPNAKEFF1_M) == 0) ; - - // Disable the endpoint. Note that both SNAK and STALL are set here. - in_ep[epnum].diepctl |= (USB_DI_SNAK1_M | USB_D_STALL1_M | USB_D_EPDIS1_M); - while ((in_ep[epnum].diepint & USB_D_EPDISBLD0_M) == 0) ; - in_ep[epnum].diepint = USB_D_EPDISBLD0_M; - } - - // Flush the FIFO, and wait until we have confirmed it cleared. - uint8_t const fifo_num = ((in_ep[epnum].diepctl >> USB_D_TXFNUM1_S) & USB_D_TXFNUM1_V); - // USB0.grstctl |= (fifo_num << USB_TXFNUM_S); - // USB0.grstctl |= USB_TXFFLSH_M; - // while ((USB0.grstctl & USB_TXFFLSH_M) != 0) ; - uint32_t rstctl_last = USB0.grstctl; - uint32_t rstctl = USB_TXFFLSH_M; - rstctl |= (fifo_num << USB_TXFNUM_S); - USB0.grstctl = rstctl; - while ((USB0.grstctl & USB_TXFFLSH_M) != 0) ; - USB0.grstctl = rstctl_last; - // TODO: Clear grstctl::fifo_num after fifo flsh - } else { - // Only disable currently enabled non-control endpoint - if ((epnum == 0) || !(out_ep[epnum].doepctl & USB_EPENA0_M)) { - out_ep[epnum].doepctl |= USB_STALL0_M; - } else { - // Asserting GONAK is required to STALL an OUT endpoint. - // Simpler to use polling here, we don't use the "B"OUTNAKEFF interrupt - // anyway, and it can't be cleared by user code. If this while loop never - // finishes, we have bigger problems than just the stack. - USB0.dctl |= USB_SGOUTNAK_M; - while ((USB0.gintsts & USB_GOUTNAKEFF_M) == 0) ; - - // Ditto here- disable the endpoint. Note that only STALL and not SNAK - // is set here. - out_ep[epnum].doepctl |= (USB_STALL0_M | USB_EPDIS0_M); - while ((out_ep[epnum].doepint & USB_EPDISBLD0_M) == 0) ; - out_ep[epnum].doepint = USB_EPDISBLD0_M; - - // Allow other OUT endpoints to keep receiving. - USB0.dctl |= USB_CGOUTNAK_M; - } - } -} - -void dcd_edpt_clear_stall(uint8_t rhport, uint8_t ep_addr) -{ - (void)rhport; - - usb_out_endpoint_t *out_ep = &(USB0.out_ep_reg[0]); - usb_in_endpoint_t *in_ep = &(USB0.in_ep_reg[0]); - - uint8_t const epnum = tu_edpt_number(ep_addr); - uint8_t const dir = tu_edpt_dir(ep_addr); - - if (dir == TUSB_DIR_IN) { - in_ep[epnum].diepctl &= ~USB_D_STALL1_M; - - uint8_t eptype = (in_ep[epnum].diepctl & USB_D_EPTYPE1_M) >> USB_D_EPTYPE1_S; - // Required by USB spec to reset DATA toggle bit to DATA0 on interrupt - // and bulk endpoints. - if (eptype == 2 || eptype == 3) { - in_ep[epnum].diepctl |= USB_DI_SETD0PID1_M; - } - } else { - out_ep[epnum].doepctl &= ~USB_STALL1_M; - - uint8_t eptype = (out_ep[epnum].doepctl & USB_EPTYPE1_M) >> USB_EPTYPE1_S; - // Required by USB spec to reset DATA toggle bit to DATA0 on interrupt - // and bulk endpoints. - if (eptype == 2 || eptype == 3) { - out_ep[epnum].doepctl |= USB_DO_SETD0PID1_M; - } - } -} - -/*------------------------------------------------------------------*/ - -static void receive_packet(xfer_ctl_t *xfer, /* usb_out_endpoint_t * out_ep, */ uint16_t xfer_size) -{ - ESP_EARLY_LOGV(TAG, "USB - receive_packet"); - volatile uint32_t *rx_fifo = USB0.fifo[0]; - - // See above TODO - // uint16_t remaining = (out_ep->DOEPTSIZ & UsbDOEPTSIZ_XFRSIZ_Msk) >> UsbDOEPTSIZ_XFRSIZ_Pos; - // xfer->queued_len = xfer->total_len - remaining; - - uint16_t remaining = xfer->total_len - xfer->queued_len; - uint16_t to_recv_size; - - if (remaining <= xfer->max_size) { - // Avoid buffer overflow. - to_recv_size = (xfer_size > remaining) ? remaining : xfer_size; - } else { - // Room for full packet, choose recv_size based on what the microcontroller - // claims. - to_recv_size = (xfer_size > xfer->max_size) ? xfer->max_size : xfer_size; - } - - // Common buffer read -#if 0 // TODO support dcd_edpt_xfer_fifo API - if (xfer->ff) - { - // Ring buffer - tu_fifo_write_n_const_addr_full_words(xfer->ff, (const void *) rx_fifo, to_recv_size); - } - else -#endif - { - uint8_t to_recv_rem = to_recv_size % 4; - uint16_t to_recv_size_aligned = to_recv_size - to_recv_rem; - - // Do not assume xfer buffer is aligned. - uint8_t *base = (xfer->buffer + xfer->queued_len); - - // This for loop always runs at least once- skip if less than 4 bytes - // to collect. - if (to_recv_size >= 4) { - for (uint16_t i = 0; i < to_recv_size_aligned; i += 4) { - uint32_t tmp = (*rx_fifo); - base[i] = tmp & 0x000000FF; - base[i + 1] = (tmp & 0x0000FF00) >> 8; - base[i + 2] = (tmp & 0x00FF0000) >> 16; - base[i + 3] = (tmp & 0xFF000000) >> 24; - } - } - - // Do not read invalid bytes from RX FIFO. - if (to_recv_rem != 0) { - uint32_t tmp = (*rx_fifo); - uint8_t *last_32b_bound = base + to_recv_size_aligned; - - last_32b_bound[0] = tmp & 0x000000FF; - if (to_recv_rem > 1) { - last_32b_bound[1] = (tmp & 0x0000FF00) >> 8; - } - if (to_recv_rem > 2) { - last_32b_bound[2] = (tmp & 0x00FF0000) >> 16; - } - } - } - - xfer->queued_len += xfer_size; - - // Per USB spec, a short OUT packet (including length 0) is always - // indicative of the end of a transfer (at least for ctl, bulk, int). - xfer->short_packet = (xfer_size < xfer->max_size); -} - -static void transmit_packet(xfer_ctl_t *xfer, volatile usb_in_endpoint_t *in_ep, uint8_t fifo_num) -{ - ESP_EARLY_LOGV(TAG, "USB - transmit_packet"); - volatile uint32_t *tx_fifo = USB0.fifo[fifo_num]; - - uint16_t remaining = (in_ep->dieptsiz & 0x7FFFFU) >> USB_D_XFERSIZE0_S; - xfer->queued_len = xfer->total_len - remaining; - - uint16_t to_xfer_size = (remaining > xfer->max_size) ? xfer->max_size : remaining; - -#if 0 // TODO support dcd_edpt_xfer_fifo API - if (xfer->ff) - { - tu_fifo_read_n_const_addr_full_words(xfer->ff, (void *) tx_fifo, to_xfer_size); - } - else -#endif - { - uint8_t to_xfer_rem = to_xfer_size % 4; - uint16_t to_xfer_size_aligned = to_xfer_size - to_xfer_rem; - - // Buffer might not be aligned to 32b, so we need to force alignment - // by copying to a temp var. - uint8_t *base = (xfer->buffer + xfer->queued_len); - - // This for loop always runs at least once- skip if less than 4 bytes - // to send off. - if (to_xfer_size >= 4) { - for (uint16_t i = 0; i < to_xfer_size_aligned; i += 4) { - uint32_t tmp = base[i] | (base[i + 1] << 8) | - (base[i + 2] << 16) | (base[i + 3] << 24); - (*tx_fifo) = tmp; - } - } - - // Do not read beyond end of buffer if not divisible by 4. - if (to_xfer_rem != 0) { - uint32_t tmp = 0; - uint8_t *last_32b_bound = base + to_xfer_size_aligned; - - tmp |= last_32b_bound[0]; - if (to_xfer_rem > 1) { - tmp |= (last_32b_bound[1] << 8); - } - if (to_xfer_rem > 2) { - tmp |= (last_32b_bound[2] << 16); - } - - (*tx_fifo) = tmp; - } - } -} - -static void read_rx_fifo(void) -{ - // Pop control word off FIFO (completed xfers will have 2 control words, - // we only pop one ctl word each interrupt). - uint32_t const ctl_word = USB0.grxstsp; - uint8_t const pktsts = (ctl_word & USB_PKTSTS_M) >> USB_PKTSTS_S; - uint8_t const epnum = (ctl_word & USB_CHNUM_M ) >> USB_CHNUM_S; - uint16_t const bcnt = (ctl_word & USB_BCNT_M ) >> USB_BCNT_S; - - switch (pktsts) { - case 0x01: // Global OUT NAK (Interrupt) - ESP_EARLY_LOGV(TAG, "TUSB IRQ - RX type : Global OUT NAK"); - break; - - case 0x02: { // Out packet recvd - ESP_EARLY_LOGV(TAG, "TUSB IRQ - RX type : Out packet"); - xfer_ctl_t *xfer = XFER_CTL_BASE(epnum, TUSB_DIR_OUT); - receive_packet(xfer, bcnt); - } - break; - - case 0x03: // Out packet done (Interrupt) - ESP_EARLY_LOGV(TAG, "TUSB IRQ - RX type : Out packet done"); - break; - - case 0x04: // Step 2: Setup transaction completed (Interrupt) - // After this event, OEPINT interrupt will occur with SETUP bit set - ESP_EARLY_LOGV(TAG, "TUSB IRQ - RX : Setup packet done"); - USB0.out_ep_reg[epnum].doeptsiz |= USB_SUPCNT0_M; - break; - - case 0x06: { // Step1: Setup data packet received - volatile uint32_t *rx_fifo = USB0.fifo[0]; - - // We can receive up to three setup packets in succession, but - // only the last one is valid. Therefore we just overwrite it - _setup_packet[0] = (*rx_fifo); - _setup_packet[1] = (*rx_fifo); - - ESP_EARLY_LOGV(TAG, "TUSB IRQ - RX : Setup packet : 0x%08x 0x%08x", _setup_packet[0], _setup_packet[1]); - } - break; - - default: // Invalid, do something here, like breakpoint? - TU_BREAKPOINT(); - break; - } -} - -static void handle_epout_ints(void) -{ - // GINTSTS will be cleared with DAINT == 0 - // DAINT for a given EP clears when DOEPINTx is cleared. - // DOEPINT will be cleared when DAINT's out bits are cleared. - for (int n = 0; n < USB_OUT_EP_NUM; n++) { - xfer_ctl_t *xfer = XFER_CTL_BASE(n, TUSB_DIR_OUT); - - if (USB0.daint & (1 << (16 + n))) { - // SETUP packet Setup Phase done. - if ((USB0.out_ep_reg[n].doepint & USB_SETUP0_M)) { - USB0.out_ep_reg[n].doepint = USB_STUPPKTRCVD0_M | USB_SETUP0_M; // clear - dcd_event_setup_received(0, (uint8_t *)&_setup_packet[0], true); - } - - // OUT XFER complete (single packet).q - if (USB0.out_ep_reg[n].doepint & USB_XFERCOMPL0_M) { - - ESP_EARLY_LOGV(TAG, "TUSB IRQ - EP OUT - XFER complete (single packet)"); - USB0.out_ep_reg[n].doepint = USB_XFERCOMPL0_M; - - // Transfer complete if short packet or total len is transferred - if (xfer->short_packet || (xfer->queued_len == xfer->total_len)) { - xfer->short_packet = false; - dcd_event_xfer_complete(0, n, xfer->queued_len, XFER_RESULT_SUCCESS, true); - } else { - // Schedule another packet to be received. - USB0.out_ep_reg[n].doeptsiz |= USB_PKTCNT0_M | ((xfer->max_size & USB_XFERSIZE0_V) << USB_XFERSIZE0_S); - USB0.out_ep_reg[n].doepctl |= USB_EPENA0_M | USB_CNAK0_M; - } - } - } - } -} - -static void handle_epin_ints(void) -{ - // GINTSTS will be cleared with DAINT == 0 - // DAINT for a given EP clears when DIEPINTx is cleared. - // IEPINT will be cleared when DAINT's out bits are cleared. - for (uint32_t n = 0; n < USB_IN_EP_NUM; n++) { - xfer_ctl_t *xfer = &xfer_status[n][TUSB_DIR_IN]; - - if (USB0.daint & (1 << (0 + n))) { - ESP_EARLY_LOGV(TAG, "TUSB IRQ - EP IN %u", n); - - if (USB0.in_ep_reg[n].diepint & BIT(15)) { - USB0.in_ep_reg[n].diepint = BIT(15); - ESP_EARLY_LOGE(TAG, "Unknown Condition");//todo: - bus_reset(); - } - - // IN XFER complete (entire xfer). - if (USB0.in_ep_reg[n].diepint & USB_D_XFERCOMPL0_M) { - ESP_EARLY_LOGV(TAG, "TUSB IRQ - IN XFER complete!"); - USB0.in_ep_reg[n].diepint = USB_D_XFERCOMPL0_M; - dcd_event_xfer_complete(0, n | TUSB_DIR_IN_MASK, xfer->total_len, XFER_RESULT_SUCCESS, true); - if (!(USB0.in_ep_reg[n].diepint & USB_D_TXFEMP0_M)) { - ESP_EARLY_LOGE(TAG, "Complete but not empty: %u/%u", xfer->queued_len, xfer->total_len);//todo: - } - } - - // XFER FIFO empty - if (USB0.in_ep_reg[n].diepint & USB_D_TXFEMP0_M) { - ESP_EARLY_LOGV(TAG, "TUSB IRQ - IN XFER FIFO empty!"); - USB0.in_ep_reg[n].diepint = USB_D_TXFEMP0_M; - transmit_packet(xfer, &USB0.in_ep_reg[n], n); - - // Turn off TXFE if all bytes are written. - if (xfer->queued_len == xfer->total_len) - { - USB0.dtknqr4_fifoemptymsk &= ~(1 << n); - } - } - - // XFER Timeout - if (USB0.in_ep_reg[n].diepint & USB_D_TIMEOUT0_M) { - // Clear interrupt or enpoint will hang. - USB0.in_ep_reg[n].diepint = USB_D_TIMEOUT0_M; - ESP_EARLY_LOGE(TAG, "XFER Timeout");//todo: - // Maybe retry? - } - } - } -} - - -static void _dcd_int_handler(void* arg) -{ - (void) arg; - uint8_t const rhport = 0; - - const uint32_t int_msk = USB0.gintmsk; - const uint32_t int_status = USB0.gintsts & int_msk; - - if (int_status & USB_USBRST_M) { - // start of reset - ESP_EARLY_LOGV(TAG, "dcd_int_handler - reset"); - USB0.gintsts = USB_USBRST_M; - // FIFOs will be reassigned when the endpoints are reopen - _allocated_fifos = 1; - bus_reset(); - } - - if (int_status & USB_RESETDET_M) { - ESP_EARLY_LOGV(TAG, "dcd_int_handler - reset while suspend"); - USB0.gintsts = USB_RESETDET_M; - // no need to double reset - if ((int_status & USB_USBRST_M) == 0) { - _allocated_fifos = 1; - bus_reset(); - } - } - - if (int_status & USB_ENUMDONE_M) { - // ENUMDNE detects speed of the link. For full-speed, we - // always expect the same value. This interrupt is considered - // the end of reset. - USB0.gintsts = USB_ENUMDONE_M; - enum_done_processing(); - dcd_event_bus_reset(rhport, TUSB_SPEED_FULL, true); - } - - if(int_status & USB_USBSUSP_M) - { - USB0.gintsts = USB_USBSUSP_M; - //dcd_event_bus_signal(rhport, DCD_EVENT_SUSPEND, true); - dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); - _allocated_fifos = 1; - } - - if(int_status & USB_WKUPINT_M) - { - USB0.gintsts = USB_WKUPINT_M; - dcd_event_bus_signal(rhport, DCD_EVENT_RESUME, true); - } - - if (int_status & USB_OTGINT_M) - { - // OTG INT bit is read-only - ESP_EARLY_LOGV(TAG, "dcd_int_handler - disconnected"); - - uint32_t const otg_int = USB0.gotgint; - - if (otg_int & USB_SESENDDET_M) - { - dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); - _allocated_fifos = 1; - } - - USB0.gotgint = otg_int; - } - - if (int_status & USB_SOF_M) { - USB0.gintsts = USB_SOF_M; - - // Disable SOF interrupt since currently only used for remote wakeup detection - USB0.gintmsk &= ~USB_SOFMSK_M; - - dcd_event_bus_signal(rhport, DCD_EVENT_SOF, true); - } - - - if (int_status & USB_RXFLVI_M) { - // RXFLVL bit is read-only - ESP_EARLY_LOGV(TAG, "dcd_int_handler - rx!"); - - // Mask out RXFLVL while reading data from FIFO - USB0.gintmsk &= ~USB_RXFLVIMSK_M; - read_rx_fifo(); - USB0.gintmsk |= USB_RXFLVIMSK_M; - } - - // OUT endpoint interrupt handling. - if (int_status & USB_OEPINT_M) { - // OEPINT is read-only - ESP_EARLY_LOGV(TAG, "dcd_int_handler - OUT endpoint!"); - handle_epout_ints(); - } - - // IN endpoint interrupt handling. - if (int_status & USB_IEPINT_M) { - // IEPINT bit read-only - ESP_EARLY_LOGV(TAG, "dcd_int_handler - IN endpoint!"); - handle_epin_ints(); - } - - // Without handling - USB0.gintsts |= USB_CURMOD_INT_M | - USB_MODEMIS_M | - USB_OTGINT_M | - USB_NPTXFEMP_M | - USB_GINNAKEFF_M | - USB_GOUTNAKEFF | - USB_ERLYSUSP_M | - USB_USBSUSP_M | - USB_ISOOUTDROP_M | - USB_EOPF_M | - USB_EPMIS_M | - USB_INCOMPISOIN_M | - USB_INCOMPIP_M | - USB_FETSUSP_M | - USB_PTXFEMP_M; -} - -void dcd_int_enable (uint8_t rhport) -{ - (void) rhport; - esp_intr_alloc(ETS_USB_INTR_SOURCE, ESP_INTR_FLAG_LOWMED, (intr_handler_t) _dcd_int_handler, NULL, &usb_ih); -} - -void dcd_int_disable (uint8_t rhport) -{ - (void) rhport; - esp_intr_free(usb_ih); -} - -#endif // #if OPT_MCU_ESP32S2 || OPT_MCU_ESP32S3 - diff --git a/patches/tinyusb_dcd_esp32sx.diff b/patches/tinyusb_dcd_esp32sx.diff deleted file mode 100644 index 024af0ddf..000000000 --- a/patches/tinyusb_dcd_esp32sx.diff +++ /dev/null @@ -1,119 +0,0 @@ ---- a/components/arduino_tinyusb/tinyusb/src/portable/espressif/esp32sx/dcd_esp32sx.c 2024-06-10 20:45:02.000000000 +0300 -+++ b/components/arduino_tinyusb/tinyusb/src/portable/espressif/esp32sx/dcd_esp32sx.c 2024-06-10 22:25:05.000000000 +0300 -@@ -282,6 +281,7 @@ - xfer->interval = desc_edpt->bInterval; - - if (dir == TUSB_DIR_OUT) { -+ out_ep[epnum].doepctl &= ~(USB_D_EPTYPE0_M | USB_D_MPS0_M); - out_ep[epnum].doepctl |= USB_USBACTEP1_M | - desc_edpt->bmAttributes.xfer << USB_EPTYPE1_S | - (desc_edpt->bmAttributes.xfer != TUSB_XFER_ISOCHRONOUS ? USB_DO_SETD0PID1_M : 0) | -@@ -311,7 +311,14 @@ - // - Offset: GRXFSIZ + 16 + Size*(epnum-1) - // - IN EP 1 gets FIFO 1, IN EP "n" gets FIFO "n". - -- uint8_t fifo_num = get_free_fifo(); -+ uint8_t fifo_num = 0; -+ // Special Case for EP5, which is used by CDC but not actually called by the driver -+ // we can give it a fake FIFO -+ if (epnum == 5) { -+ fifo_num = EP_FIFO_NUM; -+ } else { -+ fifo_num = get_free_fifo(); -+ } - TU_ASSERT(fifo_num != 0); - - in_ep[epnum].diepctl &= ~(USB_D_TXFNUM1_M | USB_D_EPTYPE1_M | USB_DI_SETD0PID1 | USB_D_MPS1_M); -@@ -442,7 +449,8 @@ - } else { - // Stop transmitting packets and NAK IN xfers. - in_ep[epnum].diepctl |= USB_DI_SNAK1_M; -- while ((in_ep[epnum].diepint & USB_DI_SNAK1_M) == 0) ; -+ // while ((in_ep[epnum].diepint & USB_DI_SNAK1_M) == 0) ; -+ while ((in_ep[epnum].diepint & USB_D_INEPNAKEFF1_M) == 0) ; - - // Disable the endpoint. Note that both SNAK and STALL are set here. - in_ep[epnum].diepctl |= (USB_DI_SNAK1_M | USB_D_STALL1_M | USB_D_EPDIS1_M); -@@ -452,9 +460,16 @@ - - // Flush the FIFO, and wait until we have confirmed it cleared. - uint8_t const fifo_num = ((in_ep[epnum].diepctl >> USB_D_TXFNUM1_S) & USB_D_TXFNUM1_V); -- USB0.grstctl |= (fifo_num << USB_TXFNUM_S); -- USB0.grstctl |= USB_TXFFLSH_M; -+ // USB0.grstctl |= (fifo_num << USB_TXFNUM_S); -+ // USB0.grstctl |= USB_TXFFLSH_M; -+ // while ((USB0.grstctl & USB_TXFFLSH_M) != 0) ; -+ uint32_t rstctl_last = USB0.grstctl; -+ uint32_t rstctl = USB_TXFFLSH_M; -+ rstctl |= (fifo_num << USB_TXFNUM_S); -+ USB0.grstctl = rstctl; - while ((USB0.grstctl & USB_TXFFLSH_M) != 0) ; -+ USB0.grstctl = rstctl_last; -+ // TODO: Clear grstctl::fifo_num after fifo flsh - } else { - // Only disable currently enabled non-control endpoint - if ((epnum == 0) || !(out_ep[epnum].doepctl & USB_EPENA0_M)) { -@@ -730,11 +745,21 @@ - - if (USB0.daint & (1 << (0 + n))) { - ESP_EARLY_LOGV(TAG, "TUSB IRQ - EP IN %u", n); -+ -+ if (USB0.in_ep_reg[n].diepint & BIT(15)) { -+ USB0.in_ep_reg[n].diepint = BIT(15); -+ ESP_EARLY_LOGE(TAG, "Unknown Condition");//todo: -+ bus_reset(); -+ } -+ - // IN XFER complete (entire xfer). - if (USB0.in_ep_reg[n].diepint & USB_D_XFERCOMPL0_M) { - ESP_EARLY_LOGV(TAG, "TUSB IRQ - IN XFER complete!"); - USB0.in_ep_reg[n].diepint = USB_D_XFERCOMPL0_M; - dcd_event_xfer_complete(0, n | TUSB_DIR_IN_MASK, xfer->total_len, XFER_RESULT_SUCCESS, true); -+ if (!(USB0.in_ep_reg[n].diepint & USB_D_TXFEMP0_M)) { -+ ESP_EARLY_LOGE(TAG, "Complete but not empty: %u/%u", xfer->queued_len, xfer->total_len);//todo: -+ } - } - - // XFER FIFO empty -@@ -754,6 +779,7 @@ - if (USB0.in_ep_reg[n].diepint & USB_D_TIMEOUT0_M) { - // Clear interrupt or endpoint will hang. - USB0.in_ep_reg[n].diepint = USB_D_TIMEOUT0_M; -+ ESP_EARLY_LOGE(TAG, "XFER Timeout");//todo: - // Maybe retry? - } - } -@@ -781,8 +807,12 @@ - if (int_status & USB_RESETDET_M) { - ESP_EARLY_LOGV(TAG, "dcd_int_handler - reset while suspend"); - USB0.gintsts = USB_RESETDET_M; -- bus_reset(); -- } -+ // no need to double reset -+ if ((int_status & USB_USBRST_M) == 0) { -+ _allocated_fifos = 1; -+ bus_reset(); -+ } -+ } - - if (int_status & USB_ENUMDONE_M) { - // ENUMDNE detects speed of the link. For full-speed, we -@@ -796,7 +826,9 @@ - if(int_status & USB_USBSUSP_M) - { - USB0.gintsts = USB_USBSUSP_M; -- dcd_event_bus_signal(rhport, DCD_EVENT_SUSPEND, true); -+ //dcd_event_bus_signal(rhport, DCD_EVENT_SUSPEND, true); -+ dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); -+ _allocated_fifos = 1; - } - - if(int_status & USB_WKUPINT_M) -@@ -815,6 +847,7 @@ - if (otg_int & USB_SESENDDET_M) - { - dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); -+ _allocated_fifos = 1; - } - - USB0.gotgint = otg_int; From 57f7d481ebd269b7ea3dc5576c435d4329633c46 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 2 Oct 2024 23:20:56 +0300 Subject: [PATCH 24/70] Use "release/v5.1" branch for building libs --- .github/workflows/cron.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index ed2522f54..bd5513227 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -32,7 +32,7 @@ jobs: matrix: include: - idf_branch: "release/v5.1" - lib_builder_branch: "master" + lib_builder_branch: "release/v5.1" targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" - idf_branch: "release/v5.3" lib_builder_branch: "release/v5.3" From 9e2e6b17b99af5b677f7a09b7c208cfe9a4c6e1d Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Thu, 10 Oct 2024 12:30:42 +0300 Subject: [PATCH 25/70] Drop support for ESP-DL on Xtensa chips --- main/idf_component.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/main/idf_component.yml b/main/idf_component.yml index 00682c102..714b3f0d6 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -12,12 +12,12 @@ dependencies: require: public rules: - if: "target not in [esp32c2]" - espressif/esp-dl: - version: "af7808ba09448ce82c704455975d4cf1e4305fd7" - git: https://github.com/espressif/esp-dl.git - require: public - rules: - - if: "target in [esp32s3, esp32s2, esp32]" + # espressif/esp-dl: + # version: "af7808ba09448ce82c704455975d4cf1e4305fd7" + # git: https://github.com/espressif/esp-dl.git + # require: public + # rules: + # - if: "target in [esp32s3, esp32s2, esp32]" espressif/esp-sr: version: ">=1.4.2" rules: From b6f03b6a4a4d6e3d5cf0f19a78e28aa14b0256f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Mon, 4 Nov 2024 22:15:35 +0100 Subject: [PATCH 26/70] Add default Zigbee SDKConfig settings (#240) --- configs/defconfig.esp32c6 | 8 ++++++++ configs/defconfig.esp32h2 | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/configs/defconfig.esp32c6 b/configs/defconfig.esp32c6 index 7770504fc..c39022997 100644 --- a/configs/defconfig.esp32c6 +++ b/configs/defconfig.esp32c6 @@ -34,3 +34,11 @@ CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe" CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" # end of OpenThread + +# +# Zigbee +# +CONFIG_ZB_ENABLED=y +CONFIG_ZB_ZED=y +CONFIG_ZB_RADIO_NATIVE=y +# end of Zigbee diff --git a/configs/defconfig.esp32h2 b/configs/defconfig.esp32h2 index dfd36395d..fe4a47eb6 100644 --- a/configs/defconfig.esp32h2 +++ b/configs/defconfig.esp32h2 @@ -30,3 +30,11 @@ CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe" CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" # end of OpenThread + +# +# Zigbee +# +CONFIG_ZB_ENABLED=y +CONFIG_ZB_ZED=y +CONFIG_ZB_RADIO_NATIVE=y +# end of Zigbee From 22ce6811335c695363a37745afec36ff4f580f79 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 18 Nov 2024 09:39:44 -0300 Subject: [PATCH 27/70] fix(libs): Allow for manual rebuilding and fix commit checking (#245) --- .github/workflows/cron.yml | 3 +- .github/workflows/cron_build.yml | 1 - tools/check-deploy-needed.sh | 29 ++++++++++++++++--- tools/config.sh | 49 ++++++++++++++++++++++++++++++-- 4 files changed, 73 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index bd5513227..dff1fb9d3 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -12,7 +12,7 @@ on: # │ │ │ │ │ # * * * * * - cron: '0 */6 * * *' - workflow_dispatch: # For testing + workflow_dispatch: # For manually rebuilding the libraries defaults: run: @@ -21,6 +21,7 @@ defaults: jobs: build-libs: name: Build with IDF ${{ matrix.idf_branch }} + if: github.repository_owner == 'espressif' uses: ./.github/workflows/cron_build.yml with: idf_branch: ${{ matrix.idf_branch }} diff --git a/.github/workflows/cron_build.yml b/.github/workflows/cron_build.yml index f8767617c..8d13759b7 100644 --- a/.github/workflows/cron_build.yml +++ b/.github/workflows/cron_build.yml @@ -132,7 +132,6 @@ jobs: compression-level: 0 - name: Push changes - if: github.repository == 'espressif/esp32-arduino-lib-builder' env: GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} diff --git a/tools/check-deploy-needed.sh b/tools/check-deploy-needed.sh index 230d0bf71..e33cc169c 100755 --- a/tools/check-deploy-needed.sh +++ b/tools/check-deploy-needed.sh @@ -37,19 +37,40 @@ AR_NEW_COMMIT_MESSAGE="IDF $IDF_BRANCH $IDF_COMMIT" AR_NEW_PR_TITLE="IDF $IDF_BRANCH" LIBS_RELEASE_TAG="idf-"${IDF_BRANCH//\//_}"" -LIBS_VERSION="$LIBS_RELEASE_TAG-$IDF_COMMIT" +LIBS_VERSION_PREFIX="$LIBS_RELEASE_TAG-$IDF_COMMIT-v" +VERSION_COUNTER=1 AR_HAS_BRANCH=`github_branch_exists "$AR_REPO" "$AR_NEW_BRANCH_NAME"` if [ "$AR_HAS_BRANCH" == "1" ]; then - AR_HAS_COMMIT=`github_commit_exists "$AR_REPO" "$AR_NEW_BRANCH_NAME" "$IDF_COMMIT"` + LATEST_LIBS_IDF=`github_get_libs_idf "$AR_REPO" "$AR_NEW_BRANCH_NAME" "$AR_NEW_PR_TITLE"` else - AR_HAS_COMMIT=`github_commit_exists "$AR_REPO" "$AR_BRANCH" "$IDF_COMMIT"` + LATEST_LIBS_IDF=`github_get_libs_idf "$AR_REPO" "$AR_BRANCH" "$AR_NEW_PR_TITLE"` fi + +echo "Current IDF commit: $IDF_COMMIT" +echo "Latest IDF commit in $AR_BRANCH of $AR_REPO: $LATEST_LIBS_IDF" + +AR_HAS_COMMIT=`if [ "$LATEST_LIBS_IDF" == "$IDF_COMMIT" ]; then echo "1"; else echo "0"; fi` AR_HAS_PR=`github_pr_exists "$AR_REPO" "$AR_NEW_BRANCH_NAME"` LIBS_RELEASE_ID=`github_release_id "$AR_LIBS_REPO" "$LIBS_RELEASE_TAG"` LIBS_HAS_RELEASE=`if [ -n "$LIBS_RELEASE_ID" ]; then echo "1"; else echo "0"; fi` -LIBS_ASSET_ID=`github_release_asset_id "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "esp32-arduino-libs-$LIBS_VERSION.zip"` + +if [ "$GITHUB_EVENT_NAME" == "workflow_dispatch" ]; then + echo "Workflow dispatch event. Generating new libs." + while true; do + LIBS_ASSET_ID=`github_release_asset_id "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "esp32-arduino-libs-$LIBS_VERSION_PREFIX$VERSION_COUNTER.zip"` + if [ -n "$LIBS_ASSET_ID" ]; then + VERSION_COUNTER=$((VERSION_COUNTER+1)) + else + break + fi + done +else + LIBS_ASSET_ID=`github_release_asset_id "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "esp32-arduino-libs-$LIBS_VERSION_PREFIX$VERSION_COUNTER.zip"` +fi + +LIBS_VERSION="$LIBS_VERSION_PREFIX$VERSION_COUNTER" LIBS_HAS_ASSET=`if [ -n "$LIBS_ASSET_ID" ]; then echo "1"; else echo "0"; fi` export IDF_COMMIT diff --git a/tools/config.sh b/tools/config.sh index 2988a1517..014f4849e 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -25,7 +25,7 @@ if [ -z $IDF_TARGET ]; then fi # Owner of the target ESP32 Arduino repository -AR_USER="espressif" +AR_USER="$GITHUB_REPOSITORY_OWNER" # The full name of the repository AR_REPO="$AR_USER/arduino-esp32" @@ -99,12 +99,55 @@ if [[ "$AR_OS" == "macos" ]]; then export SSTAT="stat -f %z" fi +function github_get_libs_idf(){ # github_get_libs_idf + local repo_path="$1" + local branch_name="$2" + local message_prefix="$3" + message_prefix=$(echo $message_prefix | sed 's/[]\/$*.^|[]/\\&/g') # Escape special characters + local page=1 + local version_found="" + local libs_version="" + + while [[ "$libs_version" == "" && "$page" -le 3 ]]; do + # Get the latest commit message that matches the prefix and extract the hash from the last commit message + version_found=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/commits?sha=$branch_name&per_page=100&page=$page" | \ + jq -r --arg prefix "$message_prefix" '[ .[] | select(.commit.message | test($prefix + " [a-f0-9]{8}")) ][0] | .commit.message' | \ + grep -Eo "$message_prefix [a-f0-9]{8}" | \ + awk 'END {print $NF}'` + if [[ "$version_found" != "" && "$version_found" != "null" ]]; then + libs_version=$version_found + else + page=$((page+1)) + fi + done + + if [ ! "$libs_version" == "" ] && [ ! "$libs_version" == "null" ]; then echo $libs_version; else echo ""; fi +} + function github_commit_exists(){ #github_commit_exists local repo_path="$1" local branch_name="$2" local commit_message="$3" - local commits_found=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/commits?sha=$branch_name" | jq -r '.[].commit.message' | grep "$commit_message" | wc -l` - if [ ! "$commits_found" == "" ] && [ ! "$commits_found" == "null" ] && [ ! "$commits_found" == "0" ]; then echo $commits_found; else echo 0; fi + local page=1 + local commits_found=0 + + while [ "$page" -le 3 ]; do + local response=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/commits?sha=$branch_name&per_page=100&page=$page"` + + if [[ -z "$response" || "$response" == "[]" ]]; then + break + fi + + local commits=`echo "$response" | jq -r '.[].commit.message' | grep "$commit_message" | wc -l` + if [ "$commits" -gt 0 ]; then + commits_found=1 + break + fi + + page=$((page+1)) + done + + echo $commits_found } function github_last_commit(){ # github_last_commit From 1a2fd056d04d6fa8fdd7b31ed45d301e0079af35 Mon Sep 17 00:00:00 2001 From: TimL Date: Sun, 24 Nov 2024 02:11:57 +1100 Subject: [PATCH 28/70] Fix corrupt coredump images (#246) --- configs/defconfig.common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/defconfig.common b/configs/defconfig.common index 47310528c..5bb28cad5 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -113,7 +113,7 @@ CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH=y CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF=y CONFIG_ESP_COREDUMP_CHECKSUM_CRC32=y CONFIG_ESP_COREDUMP_MAX_TASKS_NUM=64 -CONFIG_ESP_COREDUMP_STACK_SIZE=1024 +CONFIG_ESP_COREDUMP_STACK_SIZE=0 CONFIG_MBEDTLS_DYNAMIC_BUFFER=y CONFIG_MBEDTLS_DYNAMIC_FREE_PEER_CERT=y CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y From c73bc7ff6161f328b54c9a79d67f1bcc670f1b30 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Tue, 10 Dec 2024 07:47:17 -0300 Subject: [PATCH 29/70] fix(config): Add fallback value to AR_USER (#253) --- tools/config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/config.sh b/tools/config.sh index 014f4849e..37805cb48 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -25,7 +25,7 @@ if [ -z $IDF_TARGET ]; then fi # Owner of the target ESP32 Arduino repository -AR_USER="$GITHUB_REPOSITORY_OWNER" +AR_USER="${GITHUB_REPOSITORY_OWNER:-espressif}" # The full name of the repository AR_REPO="$AR_USER/arduino-esp32" From d09c8c64a862a4cfff4da574be207bf801fd5930 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 18 Dec 2024 15:57:17 +0200 Subject: [PATCH 30/70] ESP32 Arduino v3.1 libs from ESP-IDF v5.3 (#208) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(build): Changes required to build against IDF v5.3 * Use unified Xtensa toolchain * add(build): Add initial ESP32-P4 skeleton Chip is not selected by default and has only one memory and bootloader configuration. This is the minimum required to issue `build.sh -t esp32p4` which will currently fail, because Arduino support is not yet ready * feat(esp32p4): Build libs for ESP32-P4 (#221) * feat(esp32p4): Build libs for ESP32-P4 * Add target to workflows * Enable in builds * Remove bluedroid patch * Add P4 to libspi * Add P4 mem variants * Update SDK in JSON even if version did not change (#223) * Do not build matter for ESP32-P4 * Update ESP-DL configuration * Add additional DL models and use extra components only when needed * Use extra DL models only on S3 and P4 * Switch to the new ESP-DL only for ESP32-P4 * Rename old DL component and revert the name of the new * Enable TinyUSB build for ESP32P4 * Add support for HighSpeed USB in arduino_tinyusb * Update tinyusb dcd_dwc2 * Add P4 configuration for PSRAM, WDT and ESP-HOSTED * Update dcd_dwc2.c * Remove conditional inclusion of builder specified components CCACHE is very fast and it also causes issues with memory variants * Do not use ESP-DL on P4 * Update P4 PSRAM Speed to 200MHz * Fixes Matter over WiFi to disable OpenThread (#232) * Fixes Matter over WiFi to disable OpenThread * fix flag value * disables Matter Stack WiFi manager * rollback Matter WiFi Manager changes * Add define to signify that prebuilt libs are used * Enable FreeRTOS Trace Facility (#234) * Enable FreeRTOS Trace Facility * Enable more statistics * fix(docker): Add docker tag to run scripts in 5.3 branch (#236) * fix(docker): Add docker tag to run scripts in 5.3 branch * Add additional info * fix(zigbee): Unlink the zigbee libs (#242) * fix(): Move mkdir to top as its already used * Update TinyUSB DCD Source * Add missing compile source from TinyUSB * Fix path to TinyUSB dwc2_common.c * Update TinyUSB DCD * Update TinyUSB DCD * Update dcd_dwc2.c * Update dcd_dwc2.c * Update copy-libs.sh * Support rev 0 for P4 (#254) * Support rev 0 for P4 * Revert C6 slave idf target * Fix the crash for esp32 and esp32c3 (#248) * fix(trademark): Remove 3rd party trademarks from scripts (#255) * Update dcd_dwc2.c * Prepare for merging release/v5.3 into master --------- Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Co-authored-by: Rodrigo Garcia Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com> Co-authored-by: kvp1703 <65121235+kvp1703@users.noreply.github.com> --- .github/workflows/cron.yml | 2 +- .github/workflows/push.yml | 2 +- CMakeLists.txt | 2 + build.sh | 6 +- components/arduino_tinyusb/CMakeLists.txt | 3 +- components/arduino_tinyusb/Kconfig.projbuild | 28 +- .../arduino_tinyusb/include/tusb_config.h | 7 + .../arduino_tinyusb/patches/dcd_dwc2.patch | 55 +- components/arduino_tinyusb/src/dcd_dwc2.c | 1300 +++++++---------- configs/builds.json | 19 +- configs/defconfig.common | 6 +- configs/defconfig.esp32 | 1 + configs/defconfig.esp32c3 | 1 + configs/defconfig.esp32c6 | 3 + configs/defconfig.esp32p4 | 26 + configs/{pio_end.txt => pioarduino_end.txt} | 0 .../{pio_start.txt => pioarduino_start.txt} | 2 +- main/idf_component.yml | 51 +- patches/esp32c6_provisioning_bluedroid.diff | 12 - patches/mmu_map.diff | 24 - tools/add_sdk_json.py | 2 +- tools/config.sh | 4 +- tools/copy-libs.sh | 257 ++-- tools/docker/README.md | 10 +- tools/docker/run.ps1 | 5 +- tools/docker/run.sh | 4 +- ...manifest.py => gen_pioarduino_manifest.py} | 2 +- tools/gen_tools_json.py | 2 +- tools/install-esp-idf.sh | 2 - tools/patch-tinyusb.sh | 4 + 30 files changed, 805 insertions(+), 1037 deletions(-) create mode 100644 configs/defconfig.esp32p4 rename configs/{pio_end.txt => pioarduino_end.txt} (100%) rename configs/{pio_start.txt => pioarduino_start.txt} (96%) delete mode 100644 patches/esp32c6_provisioning_bluedroid.diff delete mode 100644 patches/mmu_map.diff rename tools/{gen_platformio_manifest.py => gen_pioarduino_manifest.py} (94%) create mode 100755 tools/patch-tinyusb.sh diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index dff1fb9d3..30285c8bb 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -36,5 +36,5 @@ jobs: lib_builder_branch: "release/v5.1" targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" - idf_branch: "release/v5.3" - lib_builder_branch: "release/v5.3" + lib_builder_branch: "master" targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 649c84c81..95610c403 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - target: [esp32, esp32s2, esp32s3, esp32c2, esp32c3, esp32c6, esp32h2] + target: [esp32, esp32s2, esp32s3, esp32c2, esp32c3, esp32c6, esp32h2, esp32p4] fail-fast: false steps: - uses: actions/checkout@v4 diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b0fca085..1268b8e68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,8 @@ add_custom_command( ) add_custom_target(mem-variant DEPENDS "mem_variant") +idf_build_set_property(COMPILE_DEFINITIONS "-DESP32_ARDUINO_LIB_BUILDER" APPEND) + ################## ### ESP Matter ### ################## diff --git a/build.sh b/build.sh index 9bceda087..50e376c2a 100755 --- a/build.sh +++ b/build.sh @@ -305,14 +305,14 @@ if [ "$BUILD_TYPE" = "all" ]; then if [ $? -ne 0 ]; then exit 1; fi fi -# Generate PlatformIO manifest file +# Generate pioarduino manifest file if [ "$BUILD_TYPE" = "all" ]; then - echo "* Generating PlatformIO manifest file..." + echo "* Generating pioarduino manifest file..." pushd $IDF_PATH ibr=$(git describe --all 2>/dev/null) ic=$(git -C "$IDF_PATH" rev-parse --short HEAD) popd - python3 ./tools/gen_platformio_manifest.py -o "$TOOLS_JSON_OUT/" -s "$ibr" -c "$ic" + python3 ./tools/gen_pioarduino_manifest.py -o "$TOOLS_JSON_OUT/" -s "$ibr" -c "$ic" if [ $? -ne 0 ]; then exit 1; fi fi diff --git a/components/arduino_tinyusb/CMakeLists.txt b/components/arduino_tinyusb/CMakeLists.txt index 6a2e35150..fd6f5983d 100755 --- a/components/arduino_tinyusb/CMakeLists.txt +++ b/components/arduino_tinyusb/CMakeLists.txt @@ -27,7 +27,8 @@ if(CONFIG_TINYUSB_ENABLED) # espressif: "${COMPONENT_DIR}/src/dcd_dwc2.c" # tusb: - #"{COMPONENT_DIR}/tinyusb/src/portable/synopsys/dwc2/dcd_dwc2.c" + #"${COMPONENT_DIR}/tinyusb/src/portable/synopsys/dwc2/dcd_dwc2.c" + "${COMPONENT_DIR}/tinyusb/src/portable/synopsys/dwc2/dwc2_common.c" "${COMPONENT_DIR}/tinyusb/src/class/cdc/cdc_device.c" "${COMPONENT_DIR}/tinyusb/src/class/hid/hid_device.c" "${COMPONENT_DIR}/tinyusb/src/class/midi/midi_device.c" diff --git a/components/arduino_tinyusb/Kconfig.projbuild b/components/arduino_tinyusb/Kconfig.projbuild index 1db30506f..65d9c37be 100755 --- a/components/arduino_tinyusb/Kconfig.projbuild +++ b/components/arduino_tinyusb/Kconfig.projbuild @@ -4,7 +4,7 @@ menu "Arduino TinyUSB" config TINYUSB_ENABLED bool "Enable TinyUSB driver" default y - depends on IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + depends on IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4 select FREERTOS_SUPPORT_STATIC_ALLOCATION select FREERTOS_USE_AUTHENTIC_INCLUDE_PATHS help @@ -28,14 +28,16 @@ menu "Arduino TinyUSB" config TINYUSB_CDC_RX_BUFSIZE int "CDC FIFO size of RX" - default 64 + default 64 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 512 if IDF_TARGET_ESP32P4 depends on TINYUSB_CDC_ENABLED help CDC FIFO size of RX config TINYUSB_CDC_TX_BUFSIZE int "CDC FIFO size of TX" - default 64 + default 64 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 512 if IDF_TARGET_ESP32P4 depends on TINYUSB_CDC_ENABLED help CDC FIFO size of TX @@ -86,7 +88,8 @@ menu "Arduino TinyUSB" config TINYUSB_HID_BUFSIZE int "HID Buffer size" - default 64 + default 64 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 512 if IDF_TARGET_ESP32P4 depends on TINYUSB_HID_ENABLED help HID Buffer size. Should be sufficient to hold ID (if any) + Data @@ -111,14 +114,16 @@ menu "Arduino TinyUSB" config TINYUSB_MIDI_RX_BUFSIZE int "MIDI FIFO size of RX" - default 64 + default 64 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 512 if IDF_TARGET_ESP32P4 depends on TINYUSB_MIDI_ENABLED help MIDI FIFO size of RX config TINYUSB_MIDI_TX_BUFSIZE int "MIDI FIFO size of TX" - default 64 + default 64 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 512 if IDF_TARGET_ESP32P4 depends on TINYUSB_MIDI_ENABLED help MIDI FIFO size of TX @@ -143,8 +148,9 @@ menu "Arduino TinyUSB" config TINYUSB_VIDEO_STREAMING_BUFSIZE int "VIDEO streaming endpoint size" - range 0 64 - default 64 + range 0 512 + default 64 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 512 if IDF_TARGET_ESP32P4 depends on TINYUSB_VIDEO_ENABLED help VIDEO streaming endpoint size @@ -219,14 +225,16 @@ menu "Arduino TinyUSB" config TINYUSB_VENDOR_RX_BUFSIZE int "VENDOR FIFO size of RX" - default 64 + default 64 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 512 if IDF_TARGET_ESP32P4 depends on TINYUSB_VENDOR_ENABLED help VENDOR FIFO size of RX config TINYUSB_VENDOR_TX_BUFSIZE int "VENDOR FIFO size of TX" - default 64 + default 64 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 512 if IDF_TARGET_ESP32P4 depends on TINYUSB_VENDOR_ENABLED help VENDOR FIFO size of TX diff --git a/components/arduino_tinyusb/include/tusb_config.h b/components/arduino_tinyusb/include/tusb_config.h index 90dd7f797..458c78cf1 100755 --- a/components/arduino_tinyusb/include/tusb_config.h +++ b/components/arduino_tinyusb/include/tusb_config.h @@ -100,11 +100,18 @@ extern "C" { # define CFG_TUSB_MEM_ALIGN TU_ATTR_ALIGNED(4) #endif +#if CONFIG_IDF_TARGET_ESP32P4 +#define CFG_TUD_MAX_SPEED OPT_MODE_HIGH_SPEED +#else +#define CFG_TUD_MAX_SPEED OPT_MODE_FULL_SPEED +#endif + /* */ /* DRIVER CONFIGURATION */ /* */ #define CFG_TUD_MAINTASK_SIZE 4096 +#define CFG_TUD_ENDOINT_SIZE (TUD_OPT_HIGH_SPEED ? 512 : 64) #define CFG_TUD_ENDOINT0_SIZE 64 // Enabled Drivers diff --git a/components/arduino_tinyusb/patches/dcd_dwc2.patch b/components/arduino_tinyusb/patches/dcd_dwc2.patch index a57df7ef6..11c1c05c0 100644 --- a/components/arduino_tinyusb/patches/dcd_dwc2.patch +++ b/components/arduino_tinyusb/patches/dcd_dwc2.patch @@ -1,10 +1,10 @@ --- a/components/arduino_tinyusb/src/dcd_dwc2.c 2024-10-02 12:17:40.000000000 +0300 +++ b/components/arduino_tinyusb/src/dcd_dwc2.c 2024-10-02 12:19:48.000000000 +0300 -@@ -316,6 +316,16 @@ +@@ -243,6 +243,17 @@ //-------------------------------------------------------------------- // Endpoint //-------------------------------------------------------------------- -+#if defined(TUP_USBIP_DWC2_ESP32) ++#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) +// Keep count of how many FIFOs are in use +static uint8_t _allocated_fifos = 1; //FIFO0 is always in use + @@ -14,16 +14,18 @@ + return 0; +} +#endif - - static void edpt_activate(uint8_t rhport, tusb_desc_endpoint_t const * p_endpoint_desc) { ++ + static void edpt_activate(uint8_t rhport, const tusb_desc_endpoint_t* p_endpoint_desc) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); -@@ -336,7 +346,18 @@ - dwc2->epout[epnum].doepctl = dxepctl; - dwc2->daintmsk |= TU_BIT(DAINTMSK_OEPM_Pos + epnum); - } else { -- dwc2->epin[epnum].diepctl = dxepctl | (epnum << DIEPCTL_TXFNUM_Pos); + const uint8_t epnum = tu_edpt_number(p_endpoint_desc->bEndpointAddress); +@@ -266,7 +277,18 @@ + depctl.bm.set_data0_iso_even = 1; + } + if (dir == TUSB_DIR_IN) { +- depctl.bm.tx_fifo_num = epnum; ++ //depctl.bm.tx_fifo_num = epnum; + uint8_t fifo_num = epnum; -+#if defined(TUP_USBIP_DWC2_ESP32) ++#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) + // Special Case for EP5, which is used by CDC but not actually called by the driver + // we can give it a fake FIFO + if (epnum == 5) { @@ -31,51 +33,50 @@ + } else { + fifo_num = get_free_fifo(); + } -+ //TU_ASSERT(fifo_num != 0); +#endif -+ dwc2->epin[epnum].diepctl = dxepctl | (fifo_num << DIEPCTL_TXFNUM_Pos); - dwc2->daintmsk |= TU_BIT(DAINTMSK_IEPM_Pos + epnum); ++ depctl.bm.tx_fifo_num = fifo_num; } - } -@@ -850,6 +871,10 @@ - xfer_status[n][TUSB_DIR_IN].max_size = 0; + + dwc2_dep_t* dep = &dwc2->ep[dir == TUSB_DIR_IN ? 0 : 1][epnum]; +@@ -557,6 +579,10 @@ + } } -+#if defined(TUP_USBIP_DWC2_ESP32) ++#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) + _allocated_fifos = 1; +#endif + dfifo_flush_tx(dwc2, 0x10); // all tx fifo dfifo_flush_rx(dwc2); -@@ -1204,6 +1229,9 @@ - if (int_status & GINTSTS_USBRST) { +@@ -997,6 +1023,9 @@ + if (gintsts & GINTSTS_USBRST) { // USBRST is start of reset. dwc2->gintsts = GINTSTS_USBRST; -+#if defined(TUP_USBIP_DWC2_ESP32) ++#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) + _allocated_fifos = 1; +#endif - bus_reset(rhport); + handle_bus_reset(rhport); } -@@ -1235,7 +1263,11 @@ +@@ -1008,7 +1037,11 @@ - if (int_status & GINTSTS_USBSUSP) { + if (gintsts & GINTSTS_USBSUSP) { dwc2->gintsts = GINTSTS_USBSUSP; - dcd_event_bus_signal(rhport, DCD_EVENT_SUSPEND, true); + //dcd_event_bus_signal(rhport, DCD_EVENT_SUSPEND, true); + dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); -+#if defined(TUP_USBIP_DWC2_ESP32) ++#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) + _allocated_fifos = 1; +#endif } - if (int_status & GINTSTS_WKUINT) { -@@ -1252,6 +1284,9 @@ + if (gintsts & GINTSTS_WKUINT) { +@@ -1025,6 +1058,9 @@ if (otg_int & GOTGINT_SEDET) { dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); -+#if defined(TUP_USBIP_DWC2_ESP32) ++#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) + _allocated_fifos = 1; +#endif } diff --git a/components/arduino_tinyusb/src/dcd_dwc2.c b/components/arduino_tinyusb/src/dcd_dwc2.c index 8bcc98166..d6796641a 100644 --- a/components/arduino_tinyusb/src/dcd_dwc2.c +++ b/components/arduino_tinyusb/src/dcd_dwc2.c @@ -31,56 +31,25 @@ #if CFG_TUD_ENABLED && defined(TUP_USBIP_DWC2) +#if !(CFG_TUD_DWC2_SLAVE_ENABLE || CFG_TUD_DWC2_DMA_ENABLE) +#error DWC2 require either CFG_TUD_DWC2_SLAVE_ENABLE or CFG_TUD_DWC2_DMA_ENABLE to be enabled +#endif + // Debug level for DWC2 #define DWC2_DEBUG 2 #include "device/dcd.h" -#include "dwc2_type.h" - -// Following symbols must be defined by port header -// - _dwc2_controller[]: array of controllers -// - DWC2_EP_MAX: largest EP counts of all controllers -// - dwc2_phy_init/dwc2_phy_update: phy init called before and after core reset -// - dwc2_dcd_int_enable/dwc2_dcd_int_disable -// - dwc2_remote_wakeup_delay - -#if defined(TUP_USBIP_DWC2_STM32) - #include "dwc2_stm32.h" -#elif defined(TUP_USBIP_DWC2_ESP32) - #include "dwc2_esp32.h" -#elif TU_CHECK_MCU(OPT_MCU_GD32VF103) - #include "dwc2_gd32.h" -#elif TU_CHECK_MCU(OPT_MCU_BCM2711, OPT_MCU_BCM2835, OPT_MCU_BCM2837) - #include "dwc2_bcm.h" -#elif TU_CHECK_MCU(OPT_MCU_EFM32GG) - #include "dwc2_efm32.h" -#elif TU_CHECK_MCU(OPT_MCU_XMC4000) - #include "dwc2_xmc.h" +#include "dwc2_common.h" + +#if TU_CHECK_MCU(OPT_MCU_GD32VF103) + #define DWC2_EP_COUNT(_dwc2) DWC2_EP_MAX #else - #error "Unsupported MCUs" + #define DWC2_EP_COUNT(_dwc2) ((_dwc2)->ghwcfg2_bm.num_dev_ep + 1) #endif -enum { - DWC2_CONTROLLER_COUNT = TU_ARRAY_SIZE(_dwc2_controller) -}; - -// DWC2 registers -//#define DWC2_REG(_port) ((dwc2_regs_t*) _dwc2_controller[_port].reg_base) - -TU_ATTR_ALWAYS_INLINE static inline dwc2_regs_t* DWC2_REG(uint8_t rhport) { - if (rhport >= DWC2_CONTROLLER_COUNT) { - // user mis-configured, ignore and use first controller - rhport = 0; - } - return (dwc2_regs_t*) _dwc2_controller[rhport].reg_base; -} - //--------------------------------------------------------------------+ // MACRO TYPEDEF CONSTANT ENUM //--------------------------------------------------------------------+ - -static CFG_TUD_MEM_SECTION TU_ATTR_ALIGNED(4) uint32_t _setup_packet[2]; - typedef struct { uint8_t* buffer; tu_fifo_t* ff; @@ -92,34 +61,48 @@ typedef struct { static xfer_ctl_t xfer_status[DWC2_EP_MAX][2]; #define XFER_CTL_BASE(_ep, _dir) (&xfer_status[_ep][_dir]) -// EP0 transfers are limited to 1 packet - larger sizes has to be split -static uint16_t ep0_pending[2]; // Index determines direction as tusb_dir_t type -static uint16_t _dfifo_top; // top free location in FIFO RAM +typedef struct { + // EP0 transfers are limited to 1 packet - larger sizes has to be split + uint16_t ep0_pending[2]; // Index determines direction as tusb_dir_t type + uint16_t dfifo_top; // top free location in DFIFO in words -// Number of IN endpoints active -static uint8_t _allocated_ep_in_count; + // Number of IN endpoints active + uint8_t allocated_epin_count; -// SOF enabling flag - required for SOF to not get disabled in ISR when SOF was enabled by -static bool _sof_en; + // SOF enabling flag - required for SOF to not get disabled in ISR when SOF was enabled by + bool sof_en; +} dcd_data_t; + +static dcd_data_t _dcd_data; + +CFG_TUD_MEM_SECTION static struct { + TUD_EPBUF_DEF(setup_packet, 8); +} _dcd_usbbuf; //-------------------------------------------------------------------- // DMA //-------------------------------------------------------------------- +#if CFG_TUD_MEM_DCACHE_ENABLE +bool dcd_dcache_clean(const void* addr, uint32_t data_size) { + TU_VERIFY(addr && data_size); + return dwc2_dcache_clean(addr, data_size); +} -TU_ATTR_ALWAYS_INLINE static inline bool dma_enabled(const dwc2_regs_t* dwc2) { - #if !CFG_TUD_DWC2_DMA - (void) dwc2; - return false; - #else - // Internal DMA only - return (dwc2->ghwcfg2_bm.arch == GHWCFG2_ARCH_INTERNAL_DMA); - #endif +bool dcd_dcache_invalidate(const void* addr, uint32_t data_size) { + TU_VERIFY(addr && data_size); + return dwc2_dcache_invalidate(addr, data_size); } -TU_ATTR_ALWAYS_INLINE static inline uint16_t dma_cal_epfifo_base(uint8_t rhport) { - // Scatter/Gather DMA mode is not yet supported. Buffer DMA only need 1 words per endpoint direction - const dwc2_controller_t* dwc2_controller = &_dwc2_controller[rhport]; - return dwc2_controller->ep_fifo_size/4 - 2*dwc2_controller->ep_count; +bool dcd_dcache_clean_invalidate(const void* addr, uint32_t data_size) { + TU_VERIFY(addr && data_size); + return dwc2_dcache_clean_invalidate(addr, data_size); +} +#endif + +TU_ATTR_ALWAYS_INLINE static inline bool dma_device_enabled(const dwc2_regs_t* dwc2) { + (void) dwc2; + // Internal DMA only + return CFG_TUD_DWC2_DMA_ENABLE && dwc2->ghwcfg2_bm.arch == GHWCFG2_ARCH_INTERNAL_DMA; } static void dma_setup_prepare(uint8_t rhport) { @@ -133,7 +116,7 @@ static void dma_setup_prepare(uint8_t rhport) { // Receive only 1 packet dwc2->epout[0].doeptsiz = (1 << DOEPTSIZ_STUPCNT_Pos) | (1 << DOEPTSIZ_PKTCNT_Pos) | (8 << DOEPTSIZ_XFRSIZ_Pos); - dwc2->epout[0].doepdma = (uintptr_t)_setup_packet; + dwc2->epout[0].doepdma = (uintptr_t) _dcd_usbbuf.setup_packet; dwc2->epout[0].doepctl |= DOEPCTL_EPENA | DOEPCTL_USBAEP; } @@ -141,18 +124,8 @@ static void dma_setup_prepare(uint8_t rhport) { // Data FIFO //--------------------------------------------------------------------+ -TU_ATTR_ALWAYS_INLINE static inline void dfifo_flush_tx(dwc2_regs_t* dwc2, uint8_t epnum) { - // flush TX fifo and wait for it cleared - dwc2->grstctl = GRSTCTL_TXFFLSH | (epnum << GRSTCTL_TXFNUM_Pos); - while (dwc2->grstctl & GRSTCTL_TXFFLSH_Msk) {} -} -TU_ATTR_ALWAYS_INLINE static inline void dfifo_flush_rx(dwc2_regs_t* dwc2) { - // flush RX fifo and wait for it cleared - dwc2->grstctl = GRSTCTL_RXFFLSH; - while (dwc2->grstctl & GRSTCTL_RXFFLSH_Msk) {} -} -/* USB Data FIFO Layout +/* Device Data FIFO scheme The FIFO is split up into - EPInfo: for storing DMA metadata, only required when use DMA. Maximum size is called @@ -167,11 +140,9 @@ TU_ATTR_ALWAYS_INLINE static inline void dfifo_flush_rx(dwc2_regs_t* dwc2) { possible since the free space is located between the RX and TX FIFOs. ---------------- ep_fifo_size - | EPInfo | - | for DMA | + | DxEPIDMAn | |-------------|-- gdfifocfg.EPINFOBASE (max is ghwcfg3.dfifo_depth) - | IN FIFO 0 | - | control | + | IN FIFO 0 | control EP |-------------| | IN FIFO 1 | |-------------| @@ -190,133 +161,86 @@ TU_ATTR_ALWAYS_INLINE static inline void dfifo_flush_rx(dwc2_regs_t* dwc2) { - All EP OUT shared a unique OUT FIFO which uses (for Slave or Buffer DMA, Scatt/Gather DMA use different formula): - 13 for setup packets + control words (up to 3 setup packets). - 1 for global NAK (not required/used here). - - Largest-EPsize / 4 + 1. ( FS: 64 bytes, HS: 512 bytes). Recommended is "2 x (Largest-EPsize/4) + 1" + - Largest-EPsize/4 + 1. ( FS: 64 bytes, HS: 512 bytes). Recommended is "2 x (Largest-EPsize/4 + 1)" - 2 for each used OUT endpoint Therefore GRXFSIZ = 13 + 1 + 2 x (Largest-EPsize/4 + 1) + 2 x EPOUTnum */ -TU_ATTR_ALWAYS_INLINE static inline uint16_t calc_grxfsiz(uint16_t largest_ep_size, uint8_t ep_count) { +TU_ATTR_ALWAYS_INLINE static inline uint16_t calc_device_grxfsiz(uint16_t largest_ep_size, uint8_t ep_count) { return 13 + 1 + 2 * ((largest_ep_size / 4) + 1) + 2 * ep_count; } static bool dfifo_alloc(uint8_t rhport, uint8_t ep_addr, uint16_t packet_size) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); const dwc2_controller_t* dwc2_controller = &_dwc2_controller[rhport]; - uint8_t const ep_count = dwc2_controller->ep_count; - uint8_t const epnum = tu_edpt_number(ep_addr); - uint8_t const dir = tu_edpt_dir(ep_addr); + const uint8_t ep_count = dwc2_controller->ep_count; + const uint8_t epnum = tu_edpt_number(ep_addr); + const uint8_t dir = tu_edpt_dir(ep_addr); TU_ASSERT(epnum < ep_count); uint16_t fifo_size = tu_div_ceil(packet_size, 4); if (dir == TUSB_DIR_OUT) { // Calculate required size of RX FIFO - uint16_t const new_sz = calc_grxfsiz(4 * fifo_size, ep_count); + const uint16_t new_sz = calc_device_grxfsiz(4 * fifo_size, ep_count); // If size_rx needs to be extended check if there is enough free space if (dwc2->grxfsiz < new_sz) { - TU_ASSERT(new_sz <= _dfifo_top); + TU_ASSERT(new_sz <= _dcd_data.dfifo_top); dwc2->grxfsiz = new_sz; // Enlarge RX FIFO } } else { // Check IN endpoints concurrently active limit - if(_dwc2_controller->ep_in_count) { - TU_ASSERT(_allocated_ep_in_count < _dwc2_controller->ep_in_count); - _allocated_ep_in_count++; + if(dwc2_controller->ep_in_count) { + TU_ASSERT(_dcd_data.allocated_epin_count < dwc2_controller->ep_in_count); + _dcd_data.allocated_epin_count++; } // If The TXFELVL is configured as half empty, the fifo must be twice the max_size. - if ((dwc2->gahbcfg & GAHBCFG_TXFELVL) == 0) { + if ((dwc2->gahbcfg & GAHBCFG_TX_FIFO_EPMTY_LVL) == 0) { fifo_size *= 2; } // Check if free space is available - TU_ASSERT(_dfifo_top >= fifo_size + dwc2->grxfsiz); - _dfifo_top -= fifo_size; - TU_LOG(DWC2_DEBUG, " TX FIFO %u: allocated %u words at offset %u\r\n", epnum, fifo_size, _dfifo_top); + TU_ASSERT(_dcd_data.dfifo_top >= fifo_size + dwc2->grxfsiz); + _dcd_data.dfifo_top -= fifo_size; + // TU_LOG(DWC2_DEBUG, " TX FIFO %u: allocated %u words at offset %u\r\n", epnum, fifo_size, dfifo_top); // Both TXFD and TXSA are in unit of 32-bit words. if (epnum == 0) { - dwc2->dieptxf0 = (fifo_size << DIEPTXF0_TX0FD_Pos) | _dfifo_top; + dwc2->dieptxf0 = (fifo_size << DIEPTXF0_TX0FD_Pos) | _dcd_data.dfifo_top; } else { // DIEPTXF starts at FIFO #1. - dwc2->dieptxf[epnum - 1] = (fifo_size << DIEPTXF_INEPTXFD_Pos) | _dfifo_top; + dwc2->dieptxf[epnum - 1] = (fifo_size << DIEPTXF_INEPTXFD_Pos) | _dcd_data.dfifo_top; } } return true; } -static void dfifo_init(uint8_t rhport) { +static void dfifo_device_init(uint8_t rhport) { const dwc2_controller_t* dwc2_controller = &_dwc2_controller[rhport]; dwc2_regs_t* dwc2 = DWC2_REG(rhport); - dwc2->grxfsiz = calc_grxfsiz(CFG_TUD_ENDPOINT0_SIZE, dwc2_controller->ep_count); + dwc2->grxfsiz = calc_device_grxfsiz(CFG_TUD_ENDPOINT0_SIZE, dwc2_controller->ep_count); - if(dma_enabled(dwc2)) { - // DMA use last DFIFO to store metadata - _dfifo_top = dma_cal_epfifo_base(rhport); - }else { - _dfifo_top = dwc2_controller->ep_fifo_size / 4; + // Scatter/Gather DMA mode is not yet supported. Buffer DMA only need 1 words per endpoint direction + const bool is_dma = dma_device_enabled(dwc2); + _dcd_data.dfifo_top = dwc2_controller->ep_fifo_size/4; + if (is_dma) { + _dcd_data.dfifo_top -= 2 * dwc2_controller->ep_count; } + dwc2->gdfifocfg = (_dcd_data.dfifo_top << GDFIFOCFG_EPINFOBASE_SHIFT) | _dcd_data.dfifo_top; // Allocate FIFO for EP0 IN dfifo_alloc(rhport, 0x80, CFG_TUD_ENDPOINT0_SIZE); } -// Read a single data packet from receive FIFO -static void dfifo_read_packet(uint8_t rhport, uint8_t* dst, uint16_t len) { - (void) rhport; - - dwc2_regs_t* dwc2 = DWC2_REG(rhport); - volatile const uint32_t* rx_fifo = dwc2->fifo[0]; - - // Reading full available 32 bit words from fifo - uint16_t full_words = len >> 2; - while (full_words--) { - tu_unaligned_write32(dst, *rx_fifo); - dst += 4; - } - - // Read the remaining 1-3 bytes from fifo - uint8_t const bytes_rem = len & 0x03; - if (bytes_rem != 0) { - uint32_t const tmp = *rx_fifo; - dst[0] = tu_u32_byte0(tmp); - if (bytes_rem > 1) dst[1] = tu_u32_byte1(tmp); - if (bytes_rem > 2) dst[2] = tu_u32_byte2(tmp); - } -} - -// Write a single data packet to EPIN FIFO -static void dfifo_write_packet(uint8_t rhport, uint8_t fifo_num, uint8_t const* src, uint16_t len) { - (void) rhport; - - dwc2_regs_t* dwc2 = DWC2_REG(rhport); - volatile uint32_t* tx_fifo = dwc2->fifo[fifo_num]; - - // Pushing full available 32 bit words to fifo - uint16_t full_words = len >> 2; - while (full_words--) { - *tx_fifo = tu_unaligned_read32(src); - src += 4; - } - - // Write the remaining 1-3 bytes into fifo - uint8_t const bytes_rem = len & 0x03; - if (bytes_rem) { - uint32_t tmp_word = src[0]; - if (bytes_rem > 1) tmp_word |= (src[1] << 8); - if (bytes_rem > 2) tmp_word |= (src[2] << 16); - - *tx_fifo = tmp_word; - } -} //-------------------------------------------------------------------- // Endpoint //-------------------------------------------------------------------- -#if defined(TUP_USBIP_DWC2_ESP32) +#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) // Keep count of how many FIFOs are in use static uint8_t _allocated_fifos = 1; //FIFO0 is always in use @@ -327,27 +251,32 @@ static uint8_t get_free_fifo(void) { } #endif -static void edpt_activate(uint8_t rhport, tusb_desc_endpoint_t const * p_endpoint_desc) { +static void edpt_activate(uint8_t rhport, const tusb_desc_endpoint_t* p_endpoint_desc) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); - uint8_t const epnum = tu_edpt_number(p_endpoint_desc->bEndpointAddress); - uint8_t const dir = tu_edpt_dir(p_endpoint_desc->bEndpointAddress); + const uint8_t epnum = tu_edpt_number(p_endpoint_desc->bEndpointAddress); + const uint8_t dir = tu_edpt_dir(p_endpoint_desc->bEndpointAddress); xfer_ctl_t* xfer = XFER_CTL_BASE(epnum, dir); xfer->max_size = tu_edpt_packet_size(p_endpoint_desc); xfer->interval = p_endpoint_desc->bInterval; - // USBAEP, EPTYP, SD0PID_SEVNFRM, MPSIZ are the same for IN and OUT endpoints. - uint32_t const dxepctl = (1 << DOEPCTL_USBAEP_Pos) | - (p_endpoint_desc->bmAttributes.xfer << DOEPCTL_EPTYP_Pos) | - (p_endpoint_desc->bmAttributes.xfer != TUSB_XFER_ISOCHRONOUS ? DOEPCTL_SD0PID_SEVNFRM : 0) | - (xfer->max_size << DOEPCTL_MPSIZ_Pos); - - if (dir == TUSB_DIR_OUT) { - dwc2->epout[epnum].doepctl = dxepctl; - dwc2->daintmsk |= TU_BIT(DAINTMSK_OEPM_Pos + epnum); - } else { + // Endpoint control + union { + uint32_t value; + dwc2_depctl_t bm; + } depctl; + depctl.value = 0; + + depctl.bm.mps = xfer->max_size; + depctl.bm.active = 1; + depctl.bm.type = p_endpoint_desc->bmAttributes.xfer; + if (p_endpoint_desc->bmAttributes.xfer != TUSB_XFER_ISOCHRONOUS) { + depctl.bm.set_data0_iso_even = 1; + } + if (dir == TUSB_DIR_IN) { + //depctl.bm.tx_fifo_num = epnum; uint8_t fifo_num = epnum; -#if defined(TUP_USBIP_DWC2_ESP32) +#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) // Special Case for EP5, which is used by CDC but not actually called by the driver // we can give it a fake FIFO if (epnum == 5) { @@ -355,46 +284,45 @@ static void edpt_activate(uint8_t rhport, tusb_desc_endpoint_t const * p_endpoin } else { fifo_num = get_free_fifo(); } - //TU_ASSERT(fifo_num != 0); #endif - dwc2->epin[epnum].diepctl = dxepctl | (fifo_num << DIEPCTL_TXFNUM_Pos); - dwc2->daintmsk |= TU_BIT(DAINTMSK_IEPM_Pos + epnum); + depctl.bm.tx_fifo_num = fifo_num; } + + dwc2_dep_t* dep = &dwc2->ep[dir == TUSB_DIR_IN ? 0 : 1][epnum]; + dep->ctl = depctl.value; + dwc2->daintmsk |= TU_BIT(epnum + DAINT_SHIFT(dir)); } static void edpt_disable(uint8_t rhport, uint8_t ep_addr, bool stall) { (void) rhport; dwc2_regs_t* dwc2 = DWC2_REG(rhport); - uint8_t const epnum = tu_edpt_number(ep_addr); - uint8_t const dir = tu_edpt_dir(ep_addr); + const uint8_t epnum = tu_edpt_number(ep_addr); + const uint8_t dir = tu_edpt_dir(ep_addr); + dwc2_dep_t* dep = &dwc2->ep[dir == TUSB_DIR_IN ? 0 : 1][epnum]; if (dir == TUSB_DIR_IN) { - dwc2_epin_t* epin = dwc2->epin; - // Only disable currently enabled non-control endpoint - if ((epnum == 0) || !(epin[epnum].diepctl & DIEPCTL_EPENA)) { - epin[epnum].diepctl |= DIEPCTL_SNAK | (stall ? DIEPCTL_STALL : 0); + if ((epnum == 0) || !(dep->diepctl & DIEPCTL_EPENA)) { + dep->diepctl |= DIEPCTL_SNAK | (stall ? DIEPCTL_STALL : 0); } else { // Stop transmitting packets and NAK IN xfers. - epin[epnum].diepctl |= DIEPCTL_SNAK; - while ((epin[epnum].diepint & DIEPINT_INEPNE) == 0) {} + dep->diepctl |= DIEPCTL_SNAK; + while ((dep->diepint & DIEPINT_INEPNE) == 0) {} // Disable the endpoint. - epin[epnum].diepctl |= DIEPCTL_EPDIS | (stall ? DIEPCTL_STALL : 0); - while ((epin[epnum].diepint & DIEPINT_EPDISD_Msk) == 0) {} + dep->diepctl |= DIEPCTL_EPDIS | (stall ? DIEPCTL_STALL : 0); + while ((dep->diepint & DIEPINT_EPDISD_Msk) == 0) {} - epin[epnum].diepint = DIEPINT_EPDISD; + dep->diepint = DIEPINT_EPDISD; } // Flush the FIFO, and wait until we have confirmed it cleared. dfifo_flush_tx(dwc2, epnum); } else { - dwc2_epout_t* epout = dwc2->epout; - // Only disable currently enabled non-control endpoint - if ((epnum == 0) || !(epout[epnum].doepctl & DOEPCTL_EPENA)) { - epout[epnum].doepctl |= stall ? DOEPCTL_STALL : 0; + if ((epnum == 0) || !(dep->doepctl & DOEPCTL_EPENA)) { + dep->doepctl |= stall ? DOEPCTL_STALL : 0; } else { // Asserting GONAK is required to STALL an OUT endpoint. // Simpler to use polling here, we don't use the "B"OUTNAKEFF interrupt @@ -403,11 +331,11 @@ static void edpt_disable(uint8_t rhport, uint8_t ep_addr, bool stall) { dwc2->dctl |= DCTL_SGONAK; while ((dwc2->gintsts & GINTSTS_BOUTNAKEFF_Msk) == 0) {} - // Ditto here- disable the endpoint. - epout[epnum].doepctl |= DOEPCTL_EPDIS | (stall ? DOEPCTL_STALL : 0); - while ((epout[epnum].doepint & DOEPINT_EPDISD_Msk) == 0) {} + // Ditto here disable the endpoint. + dep->doepctl |= DOEPCTL_EPDIS | (stall ? DOEPCTL_STALL : 0); + while ((dep->doepint & DOEPINT_EPDISD_Msk) == 0) {} - epout[epnum].doepint = DOEPINT_EPDISD; + dep->doepint = DOEPINT_EPDISD; // Allow other OUT endpoints to keep receiving. dwc2->dctl |= DCTL_CGONAK; @@ -415,343 +343,124 @@ static void edpt_disable(uint8_t rhport, uint8_t ep_addr, bool stall) { } } -// Start of Bus Reset -static void bus_reset(uint8_t rhport) { - dwc2_regs_t* dwc2 = DWC2_REG(rhport); - uint8_t const ep_count = _dwc2_controller[rhport].ep_count; - - tu_memclr(xfer_status, sizeof(xfer_status)); - - _sof_en = false; - - _allocated_ep_in_count = 1; - - // clear device address - dwc2->dcfg &= ~DCFG_DAD_Msk; - - // 1. NAK for all OUT endpoints - for (uint8_t n = 0; n < ep_count; n++) { - dwc2->epout[n].doepctl |= DOEPCTL_SNAK; - } - - // 2. Disable all IN endpoints - for (uint8_t n = 0; n < ep_count; n++) { - if (dwc2->epin[n].diepctl & DIEPCTL_EPENA) { - dwc2->epin[n].diepctl |= DIEPCTL_SNAK | DIEPCTL_EPDIS; - } - } - - dfifo_flush_tx(dwc2, 0x10); // all tx fifo - dfifo_flush_rx(dwc2); - - // 3. Set up interrupt mask - dwc2->daintmsk = TU_BIT(DAINTMSK_OEPM_Pos) | TU_BIT(DAINTMSK_IEPM_Pos); - dwc2->doepmsk = DOEPMSK_STUPM | DOEPMSK_XFRCM; - dwc2->diepmsk = DIEPMSK_TOM | DIEPMSK_XFRCM; - - dfifo_init(rhport); - - // Fixed control EP0 size to 64 bytes - dwc2->epin[0].diepctl &= ~(0x03 << DIEPCTL_MPSIZ_Pos); - dwc2->epout[0].doepctl &= ~(0x03 << DOEPCTL_MPSIZ_Pos); - - xfer_status[0][TUSB_DIR_OUT].max_size = 64; - xfer_status[0][TUSB_DIR_IN].max_size = 64; - - if(dma_enabled(dwc2)) { - dma_setup_prepare(rhport); - } else { - dwc2->epout[0].doeptsiz |= (3 << DOEPTSIZ_STUPCNT_Pos); - } - - dwc2->gintmsk |= GINTMSK_OEPINT | GINTMSK_IEPINT; -} - -static void edpt_schedule_packets(uint8_t rhport, uint8_t const epnum, uint8_t const dir, uint16_t const num_packets, - uint16_t total_bytes) { - (void) rhport; - +static void edpt_schedule_packets(uint8_t rhport, const uint8_t epnum, const uint8_t dir) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); xfer_ctl_t* const xfer = XFER_CTL_BASE(epnum, dir); + dwc2_dep_t* dep = &dwc2->ep[dir == TUSB_DIR_IN ? 0 : 1][epnum]; - // EP0 is limited to one packet each xfer - // We use multiple transaction of xfer->max_size length to get a whole transfer done + uint16_t num_packets; + uint16_t total_bytes; + + // EP0 is limited to one packet per xfer if (epnum == 0) { - total_bytes = tu_min16(ep0_pending[dir], xfer->max_size); - ep0_pending[dir] -= total_bytes; + total_bytes = tu_min16(_dcd_data.ep0_pending[dir], xfer->max_size); + _dcd_data.ep0_pending[dir] -= total_bytes; + num_packets = 1; + } else { + total_bytes = xfer->total_len; + num_packets = tu_div_ceil(total_bytes, xfer->max_size); + if (num_packets == 0) { + num_packets = 1; // zero length packet still count as 1 + } } - // IN and OUT endpoint xfers are interrupt-driven, we just schedule them here. - if (dir == TUSB_DIR_IN) { - dwc2_epin_t* epin = dwc2->epin; - - // A full IN transfer (multiple packets, possibly) triggers XFRC. - epin[epnum].dieptsiz = (num_packets << DIEPTSIZ_PKTCNT_Pos) | - ((total_bytes << DIEPTSIZ_XFRSIZ_Pos) & DIEPTSIZ_XFRSIZ_Msk); - - if(dma_enabled(dwc2)) { - epin[epnum].diepdma = (uintptr_t)xfer->buffer; - - // For ISO endpoint set correct odd/even bit for next frame. - if ((epin[epnum].diepctl & DIEPCTL_EPTYP) == DIEPCTL_EPTYP_0 && (XFER_CTL_BASE(epnum, dir))->interval == 1) { - // Take odd/even bit from frame counter. - uint32_t const odd_frame_now = (dwc2->dsts & (1u << DSTS_FNSOF_Pos)); - epin[epnum].diepctl |= (odd_frame_now ? DIEPCTL_SD0PID_SEVNFRM_Msk : DIEPCTL_SODDFRM_Msk); - } - - epin[epnum].diepctl |= DIEPCTL_EPENA | DIEPCTL_CNAK; + // transfer size: A full OUT transfer (multiple packets, possibly) triggers XFRC. + union { + uint32_t value; + dwc2_ep_tsize_t bm; + } deptsiz; + deptsiz.value = 0; + deptsiz.bm.xfer_size = total_bytes; + deptsiz.bm.packet_count = num_packets; + + dep->tsiz = deptsiz.value; + + // control + union { + dwc2_depctl_t bm; + uint32_t value; + } depctl; + depctl.value = dep->ctl; + + depctl.bm.clear_nak = 1; + depctl.bm.enable = 1; + if (depctl.bm.type == DEPCTL_EPTYPE_ISOCHRONOUS && xfer->interval == 1) { + const uint32_t odd_now = (dwc2->dsts_bm.frame_number & 1u); + if (odd_now) { + depctl.bm.set_data0_iso_even = 1; } else { + depctl.bm.set_data1_iso_odd = 1; + } + } - epin[epnum].diepctl |= DIEPCTL_EPENA | DIEPCTL_CNAK; - - // For ISO endpoint set correct odd/even bit for next frame. - if ((epin[epnum].diepctl & DIEPCTL_EPTYP) == DIEPCTL_EPTYP_0 && (XFER_CTL_BASE(epnum, dir))->interval == 1) { - // Take odd/even bit from frame counter. - uint32_t const odd_frame_now = (dwc2->dsts & (1u << DSTS_FNSOF_Pos)); - epin[epnum].diepctl |= (odd_frame_now ? DIEPCTL_SD0PID_SEVNFRM_Msk : DIEPCTL_SODDFRM_Msk); - } - // Enable fifo empty interrupt only if there are something to put in the fifo. - if (total_bytes != 0) { - dwc2->diepempmsk |= (1 << epnum); - } + const bool is_dma = dma_device_enabled(dwc2); + if(is_dma) { + if (dir == TUSB_DIR_IN && total_bytes != 0) { + dcd_dcache_clean(xfer->buffer, total_bytes); } + dep->diepdma = (uintptr_t) xfer->buffer; + dep->diepctl = depctl.value; // enable endpoint } else { - dwc2_epout_t* epout = dwc2->epout; - - // A full OUT transfer (multiple packets, possibly) triggers XFRC. - epout[epnum].doeptsiz &= ~(DOEPTSIZ_PKTCNT_Msk | DOEPTSIZ_XFRSIZ); - epout[epnum].doeptsiz |= (num_packets << DOEPTSIZ_PKTCNT_Pos) | - ((total_bytes << DOEPTSIZ_XFRSIZ_Pos) & DOEPTSIZ_XFRSIZ_Msk); - - if ((epout[epnum].doepctl & DOEPCTL_EPTYP) == DOEPCTL_EPTYP_0 && - XFER_CTL_BASE(epnum, dir)->interval == 1) { - // Take odd/even bit from frame counter. - uint32_t const odd_frame_now = (dwc2->dsts & (1u << DSTS_FNSOF_Pos)); - epout[epnum].doepctl |= (odd_frame_now ? DOEPCTL_SD0PID_SEVNFRM_Msk : DOEPCTL_SODDFRM_Msk); - } + dep->diepctl = depctl.value; // enable endpoint - if(dma_enabled(dwc2)) { - epout[epnum].doepdma = (uintptr_t)xfer->buffer; + // Enable tx fifo empty interrupt only if there is data. Note must after depctl enable + if (dir == TUSB_DIR_IN && total_bytes != 0) { + dwc2->diepempmsk |= (1 << epnum); } - - epout[epnum].doepctl |= DOEPCTL_EPENA | DOEPCTL_CNAK; } } -/*------------------------------------------------------------------*/ -/* Controller API - *------------------------------------------------------------------*/ - -static void reset_core(dwc2_regs_t* dwc2) { - // reset core - dwc2->grstctl |= GRSTCTL_CSRST; - - // wait for reset bit is cleared - // TODO version 4.20a should wait for RESET DONE mask - while (dwc2->grstctl & GRSTCTL_CSRST) {} - - // wait for AHB master IDLE - while (!(dwc2->grstctl & GRSTCTL_AHBIDL)) {} - - // wait for device mode ? -} - -static bool phy_hs_supported(dwc2_regs_t* dwc2) { - (void) dwc2; - -#if !TUD_OPT_HIGH_SPEED - return false; -#else - return dwc2->ghwcfg2_bm.hs_phy_type != GHWCFG2_HSPHY_NOT_SUPPORTED; -#endif -} - -static void phy_fs_init(dwc2_regs_t* dwc2) { - TU_LOG(DWC2_DEBUG, "Fullspeed PHY init\r\n"); - - // Select FS PHY - dwc2->gusbcfg |= GUSBCFG_PHYSEL; - - // MCU specific PHY init before reset - dwc2_phy_init(dwc2, GHWCFG2_HSPHY_NOT_SUPPORTED); - - // Reset core after selecting PHY - reset_core(dwc2); - - // USB turnaround time is critical for certification where long cables and 5-Hubs are used. - // So if you need the AHB to run at less than 30 MHz, and if USB turnaround time is not critical, - // these bits can be programmed to a larger value. Default is 5 - dwc2->gusbcfg = (dwc2->gusbcfg & ~GUSBCFG_TRDT_Msk) | (5u << GUSBCFG_TRDT_Pos); - - // MCU specific PHY update post reset - dwc2_phy_update(dwc2, GHWCFG2_HSPHY_NOT_SUPPORTED); - - // set max speed - dwc2->dcfg = (dwc2->dcfg & ~DCFG_DSPD_Msk) | (DCFG_DSPD_FS << DCFG_DSPD_Pos); -} - -static void phy_hs_init(dwc2_regs_t* dwc2) { - uint32_t gusbcfg = dwc2->gusbcfg; - - // De-select FS PHY - gusbcfg &= ~GUSBCFG_PHYSEL; - - if (dwc2->ghwcfg2_bm.hs_phy_type == GHWCFG2_HSPHY_ULPI) { - TU_LOG(DWC2_DEBUG, "Highspeed ULPI PHY init\r\n"); - - // Select ULPI - gusbcfg |= GUSBCFG_ULPI_UTMI_SEL; - - // ULPI 8-bit interface, single data rate - gusbcfg &= ~(GUSBCFG_PHYIF16 | GUSBCFG_DDRSEL); +//-------------------------------------------------------------------- +// Controller API +//-------------------------------------------------------------------- +bool dcd_init(uint8_t rhport, const tusb_rhport_init_t* rh_init) { + (void) rh_init; + dwc2_regs_t* dwc2 = DWC2_REG(rhport); - // default internal VBUS Indicator and Drive - gusbcfg &= ~(GUSBCFG_ULPIEVBUSD | GUSBCFG_ULPIEVBUSI); + tu_memclr(&_dcd_data, sizeof(_dcd_data)); - // Disable FS/LS ULPI - gusbcfg &= ~(GUSBCFG_ULPIFSLS | GUSBCFG_ULPICSM); - } else { - TU_LOG(DWC2_DEBUG, "Highspeed UTMI+ PHY init\r\n"); + // Core Initialization + const bool is_highspeed = dwc2_core_is_highspeed(dwc2, TUSB_ROLE_DEVICE); + const bool is_dma = dma_device_enabled(dwc2); + TU_ASSERT(dwc2_core_init(rhport, is_highspeed, is_dma)); - // Select UTMI+ with 8-bit interface - gusbcfg &= ~(GUSBCFG_ULPI_UTMI_SEL | GUSBCFG_PHYIF16); + //------------- 7.1 Device Initialization -------------// + // Set device max speed + uint32_t dcfg = dwc2->dcfg & ~DCFG_DSPD_Msk; + if (is_highspeed) { + dcfg |= DCFG_DSPD_HS << DCFG_DSPD_Pos; - // Set 16-bit interface if supported - if (dwc2->ghwcfg4_bm.phy_data_width) { - gusbcfg |= GUSBCFG_PHYIF16; + // XCVRDLY: transceiver delay between xcvr_sel and txvalid during device chirp is required + // when using with some PHYs such as USB334x (USB3341, USB3343, USB3346, USB3347) + if (dwc2->ghwcfg2_bm.hs_phy_type == GHWCFG2_HSPHY_ULPI) { + dcfg |= DCFG_XCVRDLY; } + } else { + dcfg |= DCFG_DSPD_FS << DCFG_DSPD_Pos; } - // Apply config - dwc2->gusbcfg = gusbcfg; - - // mcu specific phy init - dwc2_phy_init(dwc2, dwc2->ghwcfg2_bm.hs_phy_type); - - // Reset core after selecting PHY - reset_core(dwc2); - - // Set turn-around, must after core reset otherwise it will be clear - // - 9 if using 8-bit PHY interface - // - 5 if using 16-bit PHY interface - gusbcfg &= ~GUSBCFG_TRDT_Msk; - gusbcfg |= (dwc2->ghwcfg4_bm.phy_data_width ? 5u : 9u) << GUSBCFG_TRDT_Pos; - dwc2->gusbcfg = gusbcfg; - - // MCU specific PHY update post reset - dwc2_phy_update(dwc2, dwc2->ghwcfg2_bm.hs_phy_type); - - // Set max speed - uint32_t dcfg = dwc2->dcfg; - dcfg &= ~DCFG_DSPD_Msk; - dcfg |= DCFG_DSPD_HS << DCFG_DSPD_Pos; - - // XCVRDLY: transceiver delay between xcvr_sel and txvalid during device chirp is required - // when using with some PHYs such as USB334x (USB3341, USB3343, USB3346, USB3347) - if (dwc2->ghwcfg2_bm.hs_phy_type == GHWCFG2_HSPHY_ULPI) { - dcfg |= DCFG_XCVRDLY; - } - + dcfg |= DCFG_NZLSOHSK; // send STALL back and discard if host send non-zlp during control status dwc2->dcfg = dcfg; -} - -static bool check_dwc2(dwc2_regs_t* dwc2) { -#if CFG_TUSB_DEBUG >= DWC2_DEBUG - // print guid, gsnpsid, ghwcfg1, ghwcfg2, ghwcfg3, ghwcfg4 - // Run 'dwc2_info.py render-md' and check dwc2_info.md for bit-field value and comparison with other ports - volatile uint32_t const* p = (volatile uint32_t const*) &dwc2->guid; - TU_LOG1("guid, gsnpsid, ghwcfg1, ghwcfg2, ghwcfg3, ghwcfg4\r\n"); - for (size_t i = 0; i < 5; i++) { - TU_LOG1("0x%08" PRIX32 ", ", p[i]); - } - TU_LOG1("0x%08" PRIX32 "\r\n", p[5]); -#endif - // For some reason: GD32VF103 snpsid and all hwcfg register are always zero (skip it) - (void) dwc2; -#if !TU_CHECK_MCU(OPT_MCU_GD32VF103) - uint32_t const gsnpsid = dwc2->gsnpsid & GSNPSID_ID_MASK; - TU_ASSERT(gsnpsid == DWC2_OTG_ID || gsnpsid == DWC2_FS_IOT_ID || gsnpsid == DWC2_HS_IOT_ID); -#endif - - return true; -} - -void dcd_init(uint8_t rhport) { - // Programming model begins in the last section of the chapter on the USB - // peripheral in each Reference Manual. - dwc2_regs_t* dwc2 = DWC2_REG(rhport); - - // Check Synopsys ID register, failed if controller clock/power is not enabled - TU_ASSERT(check_dwc2(dwc2), ); dcd_disconnect(rhport); - if (phy_hs_supported(dwc2)) { - phy_hs_init(dwc2); // Highspeed - } else { - phy_fs_init(dwc2); // core does not support highspeed or hs phy is not present - } - - // Restart PHY clock - dwc2->pcgctl &= ~(PCGCTL_STOPPCLK | PCGCTL_GATEHCLK | PCGCTL_PWRCLMP | PCGCTL_RSTPDWNMODULE); - - /* Set HS/FS Timeout Calibration to 7 (max available value). - * The number of PHY clocks that the application programs in - * this field is added to the high/full speed interpacket timeout - * duration in the core to account for any additional delays - * introduced by the PHY. This can be required, because the delay - * introduced by the PHY in generating the linestate condition - * can vary from one PHY to another. - */ - dwc2->gusbcfg |= (7ul << GUSBCFG_TOCAL_Pos); - // Force device mode dwc2->gusbcfg = (dwc2->gusbcfg & ~GUSBCFG_FHMOD) | GUSBCFG_FDMOD; // Clear A override, force B Valid dwc2->gotgctl = (dwc2->gotgctl & ~GOTGCTL_AVALOEN) | GOTGCTL_BVALOEN | GOTGCTL_BVALOVAL; - // If USB host misbehaves during status portion of control xfer - // (non zero-length packet), send STALL back and discard. - dwc2->dcfg |= DCFG_NZLSOHSK; - - dfifo_flush_tx(dwc2, 0x10); // all tx fifo - dfifo_flush_rx(dwc2); + // Enable required interrupts + dwc2->gintmsk |= GINTMSK_OTGINT | GINTMSK_USBSUSPM | GINTMSK_USBRST | GINTMSK_ENUMDNEM | GINTMSK_WUIM; - // Clear all interrupts - uint32_t int_mask = dwc2->gintsts; - dwc2->gintsts |= int_mask; - int_mask = dwc2->gotgint; - dwc2->gotgint |= int_mask; - - // Required as part of core initialization. - dwc2->gintmsk = GINTMSK_OTGINT | GINTMSK_USBSUSPM | GINTMSK_USBRST | GINTMSK_ENUMDNEM | GINTMSK_WUIM; - - // Configure TX FIFO empty level for interrupt. Default is complete empty - dwc2->gahbcfg |= GAHBCFG_TXFELVL; - - if (dma_enabled(dwc2)) { - const uint16_t epinfo_base = dma_cal_epfifo_base(rhport); - dwc2->gdfifocfg = (epinfo_base << GDFIFOCFG_EPINFOBASE_SHIFT) | epinfo_base; - - // DMA seems to be only settable after a core reset - dwc2->gahbcfg |= GAHBCFG_DMAEN | GAHBCFG_HBSTLEN_2; - }else { - dwc2->gintmsk |= GINTMSK_RXFLVLM; - } - - // Enable global interrupt - dwc2->gahbcfg |= GAHBCFG_GINT; - - // make sure we are in device mode -// TU_ASSERT(!(dwc2->gintsts & GINTSTS_CMOD), ); - -// TU_LOG_HEX(DWC2_DEBUG, dwc2->gotgctl); -// TU_LOG_HEX(DWC2_DEBUG, dwc2->gusbcfg); -// TU_LOG_HEX(DWC2_DEBUG, dwc2->dcfg); -// TU_LOG_HEX(DWC2_DEBUG, dwc2->gahbcfg); + // TX FIFO empty level for interrupt is complete empty + uint32_t gahbcfg = dwc2->gahbcfg; + gahbcfg |= GAHBCFG_TX_FIFO_EPMTY_LVL; + gahbcfg |= GAHBCFG_GINT; // Enable global interrupt + dwc2->gahbcfg = gahbcfg; dcd_connect(rhport); + return true; } void dcd_int_enable(uint8_t rhport) { @@ -827,7 +536,7 @@ void dcd_sof_enable(uint8_t rhport, bool en) { (void) rhport; dwc2_regs_t* dwc2 = DWC2_REG(rhport); - _sof_en = en; + _dcd_data.sof_en = en; if (en) { dwc2->gintsts = GINTSTS_SOF; @@ -852,33 +561,29 @@ void dcd_edpt_close_all(uint8_t rhport) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); uint8_t const ep_count = _dwc2_controller[rhport].ep_count; - _allocated_ep_in_count = 1; + _dcd_data.allocated_epin_count = 0; // Disable non-control interrupt dwc2->daintmsk = (1 << DAINTMSK_OEPM_Pos) | (1 << DAINTMSK_IEPM_Pos); for (uint8_t n = 1; n < ep_count; n++) { - // disable OUT endpoint - if (dwc2->epout[n].doepctl & DOEPCTL_EPENA) { - dwc2->epout[n].doepctl |= DOEPCTL_SNAK | DOEPCTL_EPDIS; - } - xfer_status[n][TUSB_DIR_OUT].max_size = 0; - - // disable IN endpoint - if (dwc2->epin[n].diepctl & DIEPCTL_EPENA) { - dwc2->epin[n].diepctl |= DIEPCTL_SNAK | DIEPCTL_EPDIS; + for (uint8_t d = 0; d < 2; d++) { + dwc2_dep_t* dep = &dwc2->ep[d][n]; + if (dep->ctl & EPCTL_EPENA) { + dep->ctl |= EPCTL_SNAK | EPCTL_EPDIS; + } + xfer_status[n][1-d].max_size = 0; } - xfer_status[n][TUSB_DIR_IN].max_size = 0; } -#if defined(TUP_USBIP_DWC2_ESP32) +#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) _allocated_fifos = 1; #endif dfifo_flush_tx(dwc2, 0x10); // all tx fifo dfifo_flush_rx(dwc2); - dfifo_init(rhport); // re-init dfifo + dfifo_device_init(rhport); // re-init dfifo } bool dcd_edpt_iso_alloc(uint8_t rhport, uint8_t ep_addr, uint16_t largest_packet_size) { @@ -904,21 +609,12 @@ bool dcd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t* buffer, uint16_t to // EP0 can only handle one packet if (epnum == 0) { - ep0_pending[dir] = total_bytes; - - // Schedule the first transaction for EP0 transfer - edpt_schedule_packets(rhport, epnum, dir, 1, ep0_pending[dir]); - } else { - uint16_t num_packets = (total_bytes / xfer->max_size); - uint16_t const short_packet_size = total_bytes % xfer->max_size; - - // Zero-size packet is special case. - if ((short_packet_size > 0) || (total_bytes == 0)) num_packets++; - - // Schedule packets to be sent within interrupt - edpt_schedule_packets(rhport, epnum, dir, num_packets, total_bytes); + _dcd_data.ep0_pending[dir] = total_bytes; } + // Schedule packets to be sent within interrupt + edpt_schedule_packets(rhport, epnum, dir); + return true; } @@ -938,339 +634,410 @@ bool dcd_edpt_xfer_fifo(uint8_t rhport, uint8_t ep_addr, tu_fifo_t* ff, uint16_t xfer->ff = ff; xfer->total_len = total_bytes; - uint16_t num_packets = (total_bytes / xfer->max_size); - uint16_t const short_packet_size = total_bytes % xfer->max_size; - - // Zero-size packet is special case. - if (short_packet_size > 0 || (total_bytes == 0)) num_packets++; - // Schedule packets to be sent within interrupt - edpt_schedule_packets(rhport, epnum, dir, num_packets, total_bytes); + // TODO xfer fifo may only available for slave mode + edpt_schedule_packets(rhport, epnum, dir); return true; } -void dcd_edpt_close(uint8_t rhport, uint8_t ep_addr) { - edpt_disable(rhport, ep_addr, false); -} - void dcd_edpt_stall(uint8_t rhport, uint8_t ep_addr) { + dwc2_regs_t* dwc2 = DWC2_REG(rhport); edpt_disable(rhport, ep_addr, true); - if((tu_edpt_number(ep_addr) == 0) && dma_enabled(DWC2_REG(rhport))) { + if((tu_edpt_number(ep_addr) == 0) && dma_device_enabled(dwc2)) { dma_setup_prepare(rhport); } } void dcd_edpt_clear_stall(uint8_t rhport, uint8_t ep_addr) { - (void) rhport; - dwc2_regs_t* dwc2 = DWC2_REG(rhport); - uint8_t const epnum = tu_edpt_number(ep_addr); uint8_t const dir = tu_edpt_dir(ep_addr); + dwc2_dep_t* dep = &dwc2->ep[dir == TUSB_DIR_IN ? 0 : 1][epnum]; // Clear stall and reset data toggle - if (dir == TUSB_DIR_IN) { - dwc2->epin[epnum].diepctl &= ~DIEPCTL_STALL; - dwc2->epin[epnum].diepctl |= DIEPCTL_SD0PID_SEVNFRM; - } else { - dwc2->epout[epnum].doepctl &= ~DOEPCTL_STALL; - dwc2->epout[epnum].doepctl |= DOEPCTL_SD0PID_SEVNFRM; - } + dep->ctl &= ~EPCTL_STALL;; + dep->ctl |= EPCTL_SD0PID_SEVNFRM; } //-------------------------------------------------------------------- // Interrupt Handler //-------------------------------------------------------------------- +// 7.4.1 Initialization on USB Reset +static void handle_bus_reset(uint8_t rhport) { + dwc2_regs_t *dwc2 = DWC2_REG(rhport); + const uint8_t ep_count = DWC2_EP_COUNT(dwc2); + + tu_memclr(xfer_status, sizeof(xfer_status)); + + _dcd_data.sof_en = false; + _dcd_data.allocated_epin_count = 0; + + // 1. NAK for all OUT endpoints + for (uint8_t n = 0; n < ep_count; n++) { + dwc2->epout[n].doepctl |= DOEPCTL_SNAK; + } + + // Disable all IN endpoints + for (uint8_t n = 0; n < ep_count; n++) { + if (dwc2->epin[n].diepctl & DIEPCTL_EPENA) { + dwc2->epin[n].diepctl |= DIEPCTL_SNAK | DIEPCTL_EPDIS; + } + } + + // 2. Set up interrupt mask for EP0 + dwc2->daintmsk = TU_BIT(DAINTMSK_OEPM_Pos) | TU_BIT(DAINTMSK_IEPM_Pos); + dwc2->doepmsk = DOEPMSK_STUPM | DOEPMSK_XFRCM; + dwc2->diepmsk = DIEPMSK_TOM | DIEPMSK_XFRCM; + + // 4. Set up DFIFO + dfifo_flush_tx(dwc2, 0x10); // all tx fifo + dfifo_flush_rx(dwc2); + dfifo_device_init(rhport); + + // 5. Reset device address + dwc2->dcfg_bm.address = 0; + + // Fixed both control EP0 size to 64 bytes + dwc2->epin[0].ctl &= ~(0x03 << DIEPCTL_MPSIZ_Pos); + dwc2->epout[0].ctl &= ~(0x03 << DOEPCTL_MPSIZ_Pos); + + xfer_status[0][TUSB_DIR_OUT].max_size = 64; + xfer_status[0][TUSB_DIR_IN].max_size = 64; + + if(dma_device_enabled(dwc2)) { + dma_setup_prepare(rhport); + } else { + dwc2->epout[0].doeptsiz |= (3 << DOEPTSIZ_STUPCNT_Pos); + } + + dwc2->gintmsk |= GINTMSK_OEPINT | GINTMSK_IEPINT; +} + +static void handle_enum_done(uint8_t rhport) { + dwc2_regs_t *dwc2 = DWC2_REG(rhport); + tusb_speed_t speed; + switch (dwc2->dsts_bm.enum_speed) { + case DCFG_SPEED_HIGH: + speed = TUSB_SPEED_HIGH; + break; + + case DCFG_SPEED_LOW: + speed = TUSB_SPEED_LOW; + break; + + case DCFG_SPEED_FULL_30_60MHZ: + case DCFG_SPEED_FULL_48MHZ: + default: + speed = TUSB_SPEED_FULL; + break; + } + + // TODO must update GUSBCFG_TRDT according to link speed + dcd_event_bus_reset(rhport, speed, true); +} + +#if 0 +TU_ATTR_ALWAYS_INLINE static inline void print_doepint(uint32_t doepint) { + const char* str[] = { + "XFRC", "DIS", "AHBERR", "SETUP_DONE", + "ORXED", "STATUS_RX", "SETUP_B2B", "RSV7", + "OPERR", "BNA", "RSV10", "ISODROP", + "BBLERR", "NAK", "NYET", "SETUP_RX" + }; + + for(uint32_t i=0; ififo[0]; + const volatile uint32_t* rx_fifo = dwc2->fifo[0]; // Pop control word off FIFO - uint32_t const ctl_word = dwc2->grxstsp; - uint8_t const pktsts = (ctl_word & GRXSTSP_PKTSTS_Msk) >> GRXSTSP_PKTSTS_Pos; - uint8_t const epnum = (ctl_word & GRXSTSP_EPNUM_Msk) >> GRXSTSP_EPNUM_Pos; - uint16_t const bcnt = (ctl_word & GRXSTSP_BCNT_Msk) >> GRXSTSP_BCNT_Pos; - - dwc2_epout_t* epout = &dwc2->epout[epnum]; - -//#if CFG_TUSB_DEBUG >= DWC2_DEBUG -// const char * pktsts_str[] = -// { -// "ASSERT", "Global NAK (ISR)", "Out Data Received", "Out Transfer Complete (ISR)", -// "Setup Complete (ISR)", "ASSERT", "Setup Data Received" -// }; -// TU_LOG_LOCATION(); -// TU_LOG(DWC2_DEBUG, " EP %02X, Byte Count %u, %s\r\n", epnum, bcnt, pktsts_str[pktsts]); -// TU_LOG(DWC2_DEBUG, " daint = %08lX, doepint = %04X\r\n", (unsigned long) dwc2->daint, (unsigned int) epout->doepint); -//#endif - - switch (pktsts) { - // Global OUT NAK: do nothing - case GRXSTS_PKTSTS_GLOBALOUTNAK: + const dwc2_grxstsp_t grxstsp_bm = dwc2->grxstsp_bm; + const uint8_t epnum = grxstsp_bm.ep_ch_num; + + dwc2_dep_t* epout = &dwc2->epout[epnum]; + + switch (grxstsp_bm.packet_status) { + case GRXSTS_PKTSTS_GLOBAL_OUT_NAK: + // Global OUT NAK: do nothing break; - case GRXSTS_PKTSTS_SETUPRX: + case GRXSTS_PKTSTS_SETUP_RX: { // Setup packet received - - // We can receive up to three setup packets in succession, but - // only the last one is valid. - _setup_packet[0] = (*rx_fifo); - _setup_packet[1] = (*rx_fifo); + uint32_t* setup = (uint32_t*)(uintptr_t) _dcd_usbbuf.setup_packet; + // We can receive up to three setup packets in succession, but only the last one is valid. + setup[0] = (*rx_fifo); + setup[1] = (*rx_fifo); break; + } - case GRXSTS_PKTSTS_SETUPDONE: - // Setup packet done (Interrupt) + case GRXSTS_PKTSTS_SETUP_DONE: + // Setup packet done: + // After popping this out, dwc2 asserts a DOEPINT_SETUP interrupt which is handled by handle_epout_irq() epout->doeptsiz |= (3 << DOEPTSIZ_STUPCNT_Pos); break; - case GRXSTS_PKTSTS_OUTRX: { + case GRXSTS_PKTSTS_RX_DATA: { // Out packet received + const uint16_t byte_count = grxstsp_bm.byte_count; xfer_ctl_t* xfer = XFER_CTL_BASE(epnum, TUSB_DIR_OUT); - // Read packet off RxFIFO - if (xfer->ff) { - // Ring buffer - tu_fifo_write_n_const_addr_full_words(xfer->ff, (const void*) (uintptr_t) rx_fifo, bcnt); - } else { - // Linear buffer - dfifo_read_packet(rhport, xfer->buffer, bcnt); - - // Increment pointer to xfer data - xfer->buffer += bcnt; - } + if (byte_count) { + // Read packet off RxFIFO + if (xfer->ff) { + tu_fifo_write_n_const_addr_full_words(xfer->ff, (const void*) (uintptr_t) rx_fifo, byte_count); + } else { + dfifo_read_packet(dwc2, xfer->buffer, byte_count); + xfer->buffer += byte_count; + } - // Truncate transfer length in case of short packet - if (bcnt < xfer->max_size) { - xfer->total_len -= (epout->doeptsiz & DOEPTSIZ_XFRSIZ_Msk) >> DOEPTSIZ_XFRSIZ_Pos; - if (epnum == 0) { - xfer->total_len -= ep0_pending[TUSB_DIR_OUT]; - ep0_pending[TUSB_DIR_OUT] = 0; + // short packet, minus remaining bytes (xfer_size) + if (byte_count < xfer->max_size) { + xfer->total_len -= epout->tsiz_bm.xfer_size; + if (epnum == 0) { + xfer->total_len -= _dcd_data.ep0_pending[TUSB_DIR_OUT]; + _dcd_data.ep0_pending[TUSB_DIR_OUT] = 0; + } } } - } break; + } - // Out packet done (Interrupt) - case GRXSTS_PKTSTS_OUTDONE: - // Occurred on STM32L47 with dwc2 version 3.10a but not found on other version like 2.80a or 3.30a - // May (or not) be 3.10a specific feature/bug or depending on MCU configuration - // XFRC complete is additionally generated when - // - setup packet is received - // - complete the data stage of control write is complete - // It will be handled in handle_epout_irq() + case GRXSTS_PKTSTS_RX_COMPLETE: + // Out packet done + // After this entry is popped from the receive FIFO, dwc2 asserts a Transfer Completed interrupt on + // the specified OUT endpoint which will be handled by handle_epout_irq() break; - default: // Invalid - TU_BREAKPOINT(); - break; + default: break; } } -static void handle_epout_irq(uint8_t rhport) { - dwc2_regs_t* dwc2 = DWC2_REG(rhport); - uint8_t const ep_count = _dwc2_controller[rhport].ep_count; - - // DAINT for a given EP clears when DOEPINTx is cleared. - // OEPINT will be cleared when DAINT's out bits are cleared. - for (uint8_t n = 0; n < ep_count; n++) { - if (dwc2->daint & TU_BIT(DAINT_OEPINT_Pos + n)) { - dwc2_epout_t* epout = &dwc2->epout[n]; - - uint32_t const doepint = epout->doepint; - - TU_ASSERT((epout->doepint & DOEPINT_AHBERR) == 0, ); - - // OUT XFER complete - if (epout->doepint & DOEPINT_XFRC) { - epout->doepint = DOEPINT_XFRC; - - xfer_ctl_t* xfer = XFER_CTL_BASE(n, TUSB_DIR_OUT); - - if(dma_enabled(dwc2)) { - if (doepint & DOEPINT_STUP) { - // STPKTRX is only available for version from 3_00a - if ((doepint & DOEPINT_STPKTRX) && (dwc2->gsnpsid > DWC2_CORE_REV_3_00a)) { - epout->doepint = DOEPINT_STPKTRX; - } - } else if (doepint & DOEPINT_OTEPSPR) { - epout->doepint = DOEPINT_OTEPSPR; - } else { - if ((doepint & DOEPINT_STPKTRX) && (dwc2->gsnpsid > DWC2_CORE_REV_3_00a)) { - epout->doepint = DOEPINT_STPKTRX; - } else { - // EP0 can only handle one packet - if ((n == 0) && ep0_pending[TUSB_DIR_OUT]) { - // Schedule another packet to be received. - edpt_schedule_packets(rhport, n, TUSB_DIR_OUT, 1, ep0_pending[TUSB_DIR_OUT]); - } else { - // Fix packet length - uint16_t remain = (epout->doeptsiz & DOEPTSIZ_XFRSIZ_Msk) >> DOEPTSIZ_XFRSIZ_Pos; - xfer->total_len -= remain; - // this is ZLP, so prepare EP0 for next setup - if(n == 0 && xfer->total_len == 0) { - dma_setup_prepare(rhport); - } - - dcd_event_xfer_complete(rhport, n, xfer->total_len, XFER_RESULT_SUCCESS, true); - } - } - } - } else { - if ((doepint & DOEPINT_STPKTRX) && (dwc2->gsnpsid == DWC2_CORE_REV_3_10a)) { - epout->doepint = DOEPINT_STPKTRX; - } else { - if ((doepint & DOEPINT_OTEPSPR) && (dwc2->gsnpsid == DWC2_CORE_REV_3_10a)) { - epout->doepint = DOEPINT_OTEPSPR; - } - - // EP0 can only handle one packet - if ((n == 0) && ep0_pending[TUSB_DIR_OUT]) { - // Schedule another packet to be received. - edpt_schedule_packets(rhport, n, TUSB_DIR_OUT, 1, ep0_pending[TUSB_DIR_OUT]); - } else { - dcd_event_xfer_complete(rhport, n, xfer->total_len, XFER_RESULT_SUCCESS, true); - } - } - } - } +static void handle_epout_slave(uint8_t rhport, uint8_t epnum, dwc2_doepint_t doepint_bm) { + if (doepint_bm.setup_phase_done) { + dcd_event_setup_received(rhport, _dcd_usbbuf.setup_packet, true); + return; + } - // SETUP packet Setup Phase done. - if (doepint & DOEPINT_STUP) { - epout->doepint = DOEPINT_STUP; - if ((doepint & DOEPINT_STPKTRX) && (dwc2->gsnpsid > DWC2_CORE_REV_3_00a)) { - epout->doepint = DOEPINT_STPKTRX; - } - if(dma_enabled(dwc2) && (dwc2->gsnpsid > DWC2_CORE_REV_3_00a)) { - dma_setup_prepare(rhport); - } + // Normal OUT transfer complete + if (doepint_bm.xfer_complete) { + // only handle data skip if it is setup or status related + // Note: even though (xfer_complete + status_phase_rx) is for buffered DMA only, for STM32L47x (dwc2 v3.00a) they + // can is set when GRXSTS_PKTSTS_SETUP_RX is popped therefore they can bet set before/together with setup_phase_done + if (!doepint_bm.status_phase_rx && !doepint_bm.setup_packet_rx) { + xfer_ctl_t* xfer = XFER_CTL_BASE(epnum, TUSB_DIR_OUT); - dcd_event_setup_received(rhport, (uint8_t*) _setup_packet, true); + if ((epnum == 0) && _dcd_data.ep0_pending[TUSB_DIR_OUT]) { + // EP0 can only handle one packet, Schedule another packet to be received. + edpt_schedule_packets(rhport, epnum, TUSB_DIR_OUT); + } else { + dcd_event_xfer_complete(rhport, epnum, xfer->total_len, XFER_RESULT_SUCCESS, true); } } } } -static void handle_epin_irq(uint8_t rhport) { +static void handle_epin_slave(uint8_t rhport, uint8_t epnum, dwc2_diepint_t diepint_bm) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); - uint8_t const ep_count = _dwc2_controller[rhport].ep_count; - dwc2_epin_t* epin = dwc2->epin; + dwc2_dep_t* epin = &dwc2->epin[epnum]; + xfer_ctl_t* xfer = XFER_CTL_BASE(epnum, TUSB_DIR_IN); - // DAINT for a given EP clears when DIEPINTx is cleared. - // IEPINT will be cleared when DAINT's out bits are cleared. - for (uint8_t n = 0; n < ep_count; n++) { - if (dwc2->daint & TU_BIT(DAINT_IEPINT_Pos + n)) { - // IN XFER complete (entire xfer). - xfer_ctl_t* xfer = XFER_CTL_BASE(n, TUSB_DIR_IN); + if (diepint_bm.xfer_complete) { + if ((epnum == 0) && _dcd_data.ep0_pending[TUSB_DIR_IN]) { + // EP0 can only handle one packet. Schedule another packet to be transmitted. + edpt_schedule_packets(rhport, epnum, TUSB_DIR_IN); + } else { + dcd_event_xfer_complete(rhport, epnum | TUSB_DIR_IN_MASK, xfer->total_len, XFER_RESULT_SUCCESS, true); + } + } - if (epin[n].diepint & DIEPINT_XFRC) { - epin[n].diepint = DIEPINT_XFRC; + // TX FIFO empty bit is read-only. It will only be cleared by hardware when written bytes is more than + // - 64 bytes or + // - Half/Empty of TX FIFO size (configured by GAHBCFG.TXFELVL) + if (diepint_bm.txfifo_empty && (dwc2->diepempmsk & (1 << epnum))) { + const uint16_t remain_packets = epin->tsiz_bm.packet_count; - // EP0 can only handle one packet - if ((n == 0) && ep0_pending[TUSB_DIR_IN]) { - // Schedule another packet to be transmitted. - edpt_schedule_packets(rhport, n, TUSB_DIR_IN, 1, ep0_pending[TUSB_DIR_IN]); - } else { - if((n == 0) && dma_enabled(dwc2)) { - dma_setup_prepare(rhport); - } - dcd_event_xfer_complete(rhport, n | TUSB_DIR_IN_MASK, xfer->total_len, XFER_RESULT_SUCCESS, true); - } + // Process every single packet (only whole packets can be written to fifo) + for (uint16_t i = 0; i < remain_packets; i++) { + const uint16_t remain_bytes = (uint16_t) epin->tsiz_bm.xfer_size; + const uint16_t xact_bytes = tu_min16(remain_bytes, xfer->max_size); + + // Check if dtxfsts has enough space available + if (xact_bytes > ((epin->dtxfsts & DTXFSTS_INEPTFSAV_Msk) << 2)) { + break; } - // XFER FIFO empty - if ((epin[n].diepint & DIEPINT_TXFE) && (dwc2->diepempmsk & (1 << n))) { - // diepint's TXFE bit is read-only, software cannot clear it. - // It will only be cleared by hardware when written bytes is more than - // - 64 bytes or - // - Half of TX FIFO size (configured by DIEPTXF) + // Push packet to Tx-FIFO + if (xfer->ff) { + volatile uint32_t* tx_fifo = dwc2->fifo[epnum]; + tu_fifo_read_n_const_addr_full_words(xfer->ff, (void*)(uintptr_t)tx_fifo, xact_bytes); + } else { + dfifo_write_packet(dwc2, epnum, xfer->buffer, xact_bytes); + xfer->buffer += xact_bytes; + } + } - uint16_t remaining_packets = (epin[n].dieptsiz & DIEPTSIZ_PKTCNT_Msk) >> DIEPTSIZ_PKTCNT_Pos; + // Turn off TXFE if all bytes are written. + if (epin->tsiz_bm.xfer_size == 0) { + dwc2->diepempmsk &= ~(1 << epnum); + } + } +} +#endif - // Process every single packet (only whole packets can be written to fifo) - for (uint16_t i = 0; i < remaining_packets; i++) { - uint16_t const remaining_bytes = (epin[n].dieptsiz & DIEPTSIZ_XFRSIZ_Msk) >> DIEPTSIZ_XFRSIZ_Pos; +#if CFG_TUD_DWC2_DMA_ENABLE +static void handle_epout_dma(uint8_t rhport, uint8_t epnum, dwc2_doepint_t doepint_bm) { + dwc2_regs_t* dwc2 = DWC2_REG(rhport); - // Packet can not be larger than ep max size - uint16_t const packet_size = tu_min16(remaining_bytes, xfer->max_size); + if (doepint_bm.setup_phase_done) { + dma_setup_prepare(rhport); + dcd_dcache_invalidate(_dcd_usbbuf.setup_packet, 8); + dcd_event_setup_received(rhport, _dcd_usbbuf.setup_packet, true); + return; + } - // It's only possible to write full packets into FIFO. Therefore DTXFSTS register of current - // EP has to be checked if the buffer can take another WHOLE packet - if (packet_size > ((epin[n].dtxfsts & DTXFSTS_INEPTFSAV_Msk) << 2)) break; + // OUT XFER complete + if (doepint_bm.xfer_complete) { + // only handle data skip if it is setup or status related + // Normal OUT transfer complete + if (!doepint_bm.status_phase_rx && !doepint_bm.setup_packet_rx) { + if ((epnum == 0) && _dcd_data.ep0_pending[TUSB_DIR_OUT]) { + // EP0 can only handle one packet Schedule another packet to be received. + edpt_schedule_packets(rhport, epnum, TUSB_DIR_OUT); + } else { + dwc2_dep_t* epout = &dwc2->epout[epnum]; + xfer_ctl_t* xfer = XFER_CTL_BASE(epnum, TUSB_DIR_OUT); - // Push packet to Tx-FIFO - if (xfer->ff) { - volatile uint32_t* tx_fifo = dwc2->fifo[n]; - tu_fifo_read_n_const_addr_full_words(xfer->ff, (void*) (uintptr_t) tx_fifo, packet_size); - } else { - dfifo_write_packet(rhport, n, xfer->buffer, packet_size); + // determine actual received bytes + const uint16_t remain = epout->tsiz_bm.xfer_size; + xfer->total_len -= remain; - // Increment pointer to xfer data - xfer->buffer += packet_size; - } + // this is ZLP, so prepare EP0 for next setup + // TODO use status phase rx + if(epnum == 0 && xfer->total_len == 0) { + dma_setup_prepare(rhport); } - // Turn off TXFE if all bytes are written. - if (((epin[n].dieptsiz & DIEPTSIZ_XFRSIZ_Msk) >> DIEPTSIZ_XFRSIZ_Pos) == 0) { - dwc2->diepempmsk &= ~(1 << n); + dcd_dcache_invalidate(xfer->buffer, xfer->total_len); + dcd_event_xfer_complete(rhport, epnum, xfer->total_len, XFER_RESULT_SUCCESS, true); + } + } + } +} + +static void handle_epin_dma(uint8_t rhport, uint8_t epnum, dwc2_diepint_t diepint_bm) { + xfer_ctl_t* xfer = XFER_CTL_BASE(epnum, TUSB_DIR_IN); + + if (diepint_bm.xfer_complete) { + if ((epnum == 0) && _dcd_data.ep0_pending[TUSB_DIR_IN]) { + // EP0 can only handle one packet. Schedule another packet to be transmitted. + edpt_schedule_packets(rhport, epnum, TUSB_DIR_IN); + } else { + if(epnum == 0) { + dma_setup_prepare(rhport); + } + dcd_event_xfer_complete(rhport, epnum | TUSB_DIR_IN_MASK, xfer->total_len, XFER_RESULT_SUCCESS, true); + } + } +} +#endif + +static void handle_ep_irq(uint8_t rhport, uint8_t dir) { + dwc2_regs_t* dwc2 = DWC2_REG(rhport); + const bool is_dma = dma_device_enabled(dwc2); + const uint8_t ep_count = DWC2_EP_COUNT(dwc2); + const uint8_t daint_offset = (dir == TUSB_DIR_IN) ? DAINT_IEPINT_Pos : DAINT_OEPINT_Pos; + dwc2_dep_t* ep_base = &dwc2->ep[dir == TUSB_DIR_IN ? 0 : 1][0]; + + // DAINT for a given EP clears when DEPINTx is cleared. + // EPINT will be cleared when DAINT bits are cleared. + for (uint8_t epnum = 0; epnum < ep_count; epnum++) { + if (dwc2->daint & TU_BIT(daint_offset + epnum)) { + dwc2_dep_t* epout = &ep_base[epnum]; + union { + uint32_t value; + dwc2_diepint_t diepint_bm; + dwc2_doepint_t doepint_bm; + } intr; + intr.value = epout->intr; + + epout->intr = intr.value; // Clear interrupt + + if (is_dma) { + #if CFG_TUD_DWC2_DMA_ENABLE + if (dir == TUSB_DIR_IN) { + handle_epin_dma(rhport, epnum, intr.diepint_bm); + } else { + handle_epout_dma(rhport, epnum, intr.doepint_bm); + } + #endif + } else { + #if CFG_TUD_DWC2_SLAVE_ENABLE + if (dir == TUSB_DIR_IN) { + handle_epin_slave(rhport, epnum, intr.diepint_bm); + } else { + handle_epout_slave(rhport, epnum, intr.doepint_bm); } + #endif } } } } +/* Interrupt Hierarchy + DIEPINT DIEPINT + \ / + \ / + DAINT + / \ + / \ + GINTSTS: OEPInt IEPInt | USBReset | EnumDone | USBSusp | WkUpInt | OTGInt | SOF | RXFLVL + + Note: when OTG_MULTI_PROC_INTRPT = 1, Device Each endpoint interrupt deachint/deachmsk/diepeachmsk/doepeachmsk + are combined to generate dedicated interrupt line for each endpoint. + */ void dcd_int_handler(uint8_t rhport) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); - uint32_t const int_mask = dwc2->gintmsk; - uint32_t const int_status = dwc2->gintsts & int_mask; + const uint32_t gintmask = dwc2->gintmsk; + const uint32_t gintsts = dwc2->gintsts & gintmask; - if (int_status & GINTSTS_USBRST) { + if (gintsts & GINTSTS_USBRST) { // USBRST is start of reset. dwc2->gintsts = GINTSTS_USBRST; -#if defined(TUP_USBIP_DWC2_ESP32) +#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) _allocated_fifos = 1; #endif - bus_reset(rhport); + handle_bus_reset(rhport); } - if (int_status & GINTSTS_ENUMDNE) { + if (gintsts & GINTSTS_ENUMDNE) { // ENUMDNE is the end of reset where speed of the link is detected dwc2->gintsts = GINTSTS_ENUMDNE; - - tusb_speed_t speed; - switch ((dwc2->dsts & DSTS_ENUMSPD_Msk) >> DSTS_ENUMSPD_Pos) { - case DSTS_ENUMSPD_HS: - speed = TUSB_SPEED_HIGH; - break; - - case DSTS_ENUMSPD_LS: - speed = TUSB_SPEED_LOW; - break; - - case DSTS_ENUMSPD_FS_HSPHY: - case DSTS_ENUMSPD_FS: - default: - speed = TUSB_SPEED_FULL; - break; - } - - // TODO must update GUSBCFG_TRDT according to link speed - - dcd_event_bus_reset(rhport, speed, true); + handle_enum_done(rhport); } - if (int_status & GINTSTS_USBSUSP) { + if (gintsts & GINTSTS_USBSUSP) { dwc2->gintsts = GINTSTS_USBSUSP; //dcd_event_bus_signal(rhport, DCD_EVENT_SUSPEND, true); dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); -#if defined(TUP_USBIP_DWC2_ESP32) +#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) _allocated_fifos = 1; #endif } - if (int_status & GINTSTS_WKUINT) { + if (gintsts & GINTSTS_WKUINT) { dwc2->gintsts = GINTSTS_WKUINT; dcd_event_bus_signal(rhport, DCD_EVENT_RESUME, true); } @@ -1278,13 +1045,13 @@ void dcd_int_handler(uint8_t rhport) { // TODO check GINTSTS_DISCINT for disconnect detection // if(int_status & GINTSTS_DISCINT) - if (int_status & GINTSTS_OTGINT) { + if (gintsts & GINTSTS_OTGINT) { // OTG INT bit is read-only - uint32_t const otg_int = dwc2->gotgint; + const uint32_t otg_int = dwc2->gotgint; if (otg_int & GOTGINT_SEDET) { dcd_event_bus_signal(rhport, DCD_EVENT_UNPLUGGED, true); -#if defined(TUP_USBIP_DWC2_ESP32) +#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) _allocated_fifos = 1; #endif } @@ -1292,50 +1059,43 @@ void dcd_int_handler(uint8_t rhport) { dwc2->gotgint = otg_int; } - if(int_status & GINTSTS_SOF) { + if(gintsts & GINTSTS_SOF) { dwc2->gintsts = GINTSTS_SOF; const uint32_t frame = (dwc2->dsts & DSTS_FNSOF) >> DSTS_FNSOF_Pos; // Disable SOF interrupt if SOF was not explicitly enabled since SOF was used for remote wakeup detection - if (!_sof_en) { + if (!_dcd_data.sof_en) { dwc2->gintmsk &= ~GINTMSK_SOFM; } dcd_event_sof(rhport, frame, true); } +#if CFG_TUD_DWC2_SLAVE_ENABLE // RxFIFO non-empty interrupt handling. - if (int_status & GINTSTS_RXFLVL) { + if (gintsts & GINTSTS_RXFLVL) { // RXFLVL bit is read-only + dwc2->gintmsk &= ~GINTMSK_RXFLVLM; // disable RXFLVL interrupt while reading - // Mask out RXFLVL while reading data from FIFO - dwc2->gintmsk &= ~GINTMSK_RXFLVLM; - - // Loop until all available packets were handled do { - handle_rxflvl_irq(rhport); + handle_rxflvl_irq(rhport); // read all packets } while(dwc2->gintsts & GINTSTS_RXFLVL); dwc2->gintmsk |= GINTMSK_RXFLVLM; } +#endif // OUT endpoint interrupt handling. - if (int_status & GINTSTS_OEPINT) { + if (gintsts & GINTSTS_OEPINT) { // OEPINT is read-only, clear using DOEPINTn - handle_epout_irq(rhport); + handle_ep_irq(rhport, TUSB_DIR_OUT); } // IN endpoint interrupt handling. - if (int_status & GINTSTS_IEPINT) { + if (gintsts & GINTSTS_IEPINT) { // IEPINT bit read-only, clear using DIEPINTn - handle_epin_irq(rhport); + handle_ep_irq(rhport, TUSB_DIR_IN); } - - // // Check for Incomplete isochronous IN transfer - // if(int_status & GINTSTS_IISOIXFR) { - // printf(" IISOIXFR!\r\n"); - //// TU_LOG(DWC2_DEBUG, " IISOIXFR!\r\n"); - // } } #if CFG_TUD_TEST_MODE diff --git a/configs/builds.json b/configs/builds.json index e34813cfa..ddfb8e4f8 100644 --- a/configs/builds.json +++ b/configs/builds.json @@ -4,7 +4,7 @@ "file":"libspi_flash.a", "src":"build/esp-idf/spi_flash/libspi_flash.a", "out":"lib/libspi_flash.a", - "targets":["esp32","esp32c2","esp32c3","esp32s2","esp32s3","esp32c6","esp32h2"] + "targets":["esp32","esp32c2","esp32c3","esp32s2","esp32s3","esp32c6","esp32h2","esp32p4"] }, { "file":"libesp_psram.a", @@ -44,6 +44,20 @@ } ], "targets":[ + { + "target": "esp32p4", + "features":["qio_ram"], + "idf_libs":["qio","80m"], + "bootloaders":[ + ["qio","80m"], + ["dio","80m"], + ["qio","40m"], + ["dio","40m"] + ], + "mem_variants":[ + ["dio","80m"] + ] + }, { "target": "esp32c2", "skip": 1, @@ -143,8 +157,7 @@ ["qio","80m","opi_ram"], ["dio","80m","qio_ram"], ["dio","80m","opi_ram"], - ["opi","80m","opi_ram"], - ["opi","80m","qio_ram"] + ["opi","80m","opi_ram"] ] } ] diff --git a/configs/defconfig.common b/configs/defconfig.common index 5bb28cad5..ef4620bf6 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -19,7 +19,7 @@ CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2048 CONFIG_ESP_TASK_WDT_PANIC=y -CONFIG_ESP_TIMER_TASK_STACK_SIZE=4096 +CONFIG_ESP_TIMER_TASK_STACK_SIZE=8192 CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y CONFIG_ESP_WIFI_FTM_ENABLE=y CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=8 @@ -44,6 +44,10 @@ CONFIG_FREERTOS_HZ=1000 CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y # CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION is not set CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024 +CONFIG_FREERTOS_USE_TRACE_FACILITY=y +CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y +CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y +CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y CONFIG_HEAP_POISONING_LIGHT=y CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 CONFIG_HTTPD_WS_SUPPORT=y diff --git a/configs/defconfig.esp32 b/configs/defconfig.esp32 index 2e88a27ed..db01aeab3 100644 --- a/configs/defconfig.esp32 +++ b/configs/defconfig.esp32 @@ -19,3 +19,4 @@ CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST=y CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID=y CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4096 diff --git a/configs/defconfig.esp32c3 b/configs/defconfig.esp32c3 index c497b562d..1baf62540 100644 --- a/configs/defconfig.esp32c3 +++ b/configs/defconfig.esp32c3 @@ -6,3 +6,4 @@ CONFIG_ESP_WIFI_11KV_SUPPORT=y CONFIG_ESP_WIFI_SCAN_CACHE=y CONFIG_ESP_WIFI_MBO_SUPPORT=y CONFIG_ESP_WIFI_11R_SUPPORT=y +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4096 diff --git a/configs/defconfig.esp32c6 b/configs/defconfig.esp32c6 index c39022997..07621cf07 100644 --- a/configs/defconfig.esp32c6 +++ b/configs/defconfig.esp32c6 @@ -35,6 +35,9 @@ CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" # end of OpenThread +# Matter shall use only WiFi +CONFIG_ENABLE_MATTER_OVER_THREAD=n + # # Zigbee # diff --git a/configs/defconfig.esp32p4 b/configs/defconfig.esp32p4 new file mode 100644 index 000000000..8b04e8469 --- /dev/null +++ b/configs/defconfig.esp32p4 @@ -0,0 +1,26 @@ +CONFIG_IDF_EXPERIMENTAL_FEATURES=y +CONFIG_SPIRAM=y +CONFIG_SPIRAM_SPEED_200M=y +# CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1 is not set +CONFIG_LWIP_TCP_SACK_OUT=y + +CONFIG_SLAVE_IDF_TARGET_ESP32C6=y +CONFIG_ESP_SDIO_BUS_WIDTH=4 +CONFIG_ESP_SDIO_CLOCK_FREQ_KHZ=40000 +CONFIG_ESP_SDIO_PIN_CMD=19 +CONFIG_ESP_SDIO_PIN_CLK=18 +CONFIG_ESP_SDIO_PIN_D0=14 +CONFIG_ESP_SDIO_PIN_D1=15 +CONFIG_ESP_SDIO_PIN_D2=16 +CONFIG_ESP_SDIO_PIN_D3=17 + +# +# Chip revision +# +CONFIG_ESP32P4_REV_MIN_0=y +# CONFIG_ESP32P4_REV_MIN_1 is not set +CONFIG_ESP32P4_REV_MIN_FULL=0 +CONFIG_ESP_REV_MIN_FULL=0 +CONFIG_ESP32P4_REV_MAX_FULL=99 +CONFIG_ESP_REV_MAX_FULL=99 +# end of Chip revision diff --git a/configs/pio_end.txt b/configs/pioarduino_end.txt similarity index 100% rename from configs/pio_end.txt rename to configs/pioarduino_end.txt diff --git a/configs/pio_start.txt b/configs/pioarduino_start.txt similarity index 96% rename from configs/pio_start.txt rename to configs/pioarduino_start.txt index a0b780dc9..c5174173d 100644 --- a/configs/pio_start.txt +++ b/configs/pioarduino_start.txt @@ -22,7 +22,7 @@ kinds of creative coding, interactive objects, spaces or physical experiences. http://arduino.cc/en/Reference/HomePage """ -# Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py +# Extends: https://github.com/pioarduino/platform-espressif32/blob/develop/builder/main.py from os.path import basename, join diff --git a/main/idf_component.yml b/main/idf_component.yml index 714b3f0d6..c6bb97f46 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -1,6 +1,6 @@ dependencies: # Required IDF version - idf: ">=5.1" + idf: ">=5.3" espressif/esp32-camera: version: "master" git: https://github.com/espressif/esp32-camera.git @@ -12,12 +12,6 @@ dependencies: require: public rules: - if: "target not in [esp32c2]" - # espressif/esp-dl: - # version: "af7808ba09448ce82c704455975d4cf1e4305fd7" - # git: https://github.com/espressif/esp-dl.git - # require: public - # rules: - # - if: "target in [esp32s3, esp32s2, esp32]" espressif/esp-sr: version: ">=1.4.2" rules: @@ -26,45 +20,4 @@ dependencies: version: "^1.3.0" require: public rules: - - if: "target not in [esp32c2, esp32h2]" - - # esp-sr: "^1.3.1" - # esp32-camera: "^2.0.4" - # esp-dl: - # git: https://github.com/espressif/esp-dl.git - # espressif/esp_rainmaker: - # path: components/esp_rainmaker - # git: https://github.com/espressif/esp-rainmaker.git - - # # Defining a dependency from the registry: - # # https://components.espressif.com/component/example/cmp - # example/cmp: "^3.3.3" # Automatically update minor releases - # - # # Other ways to define dependencies - # - # # For components maintained by Espressif only name can be used. - # # Same as `espressif/cmp` - # component: "~1.0.0" # Automatically update bugfix releases - # - # # Or in a longer form with extra parameters - # component2: - # version: ">=2.0.0" - # - # # For transient dependencies `public` flag can be set. - # # `public` flag doesn't have an effect for the `main` component. - # # All dependencies of `main` are public by default. - # public: true - # - # # For components hosted on non-default registry: - # service_url: "https://componentregistry.company.com" - # - # # For components in git repository: - # test_component: - # path: test_component - # git: ssh://git@gitlab.com/user/components.git - # - # # For test projects during component development - # # components can be used from a local directory - # # with relative or absolute path - # some_local_component: - # path: ../../projects/component + - if: "target not in [esp32c2, esp32h2, esp32p4]" diff --git a/patches/esp32c6_provisioning_bluedroid.diff b/patches/esp32c6_provisioning_bluedroid.diff deleted file mode 100644 index 98371b8aa..000000000 --- a/patches/esp32c6_provisioning_bluedroid.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/components/protocomm/src/simple_ble/simple_ble.c b/components/protocomm/src/simple_ble/simple_ble.c -index 8a4ae0f3d9..cd6421c6e5 100644 ---- a/components/protocomm/src/simple_ble/simple_ble.c -+++ b/components/protocomm/src/simple_ble/simple_ble.c -@@ -225,7 +225,7 @@ esp_err_t simple_ble_start(simple_ble_cfg_t *cfg) - #ifdef CONFIG_BTDM_CTRL_MODE_BTDM - ret = esp_bt_controller_enable(ESP_BT_MODE_BTDM); --#elif defined CONFIG_BTDM_CTRL_MODE_BLE_ONLY || CONFIG_BT_CTRL_MODE_EFF -+#elif defined CONFIG_BTDM_CTRL_MODE_BLE_ONLY || CONFIG_BT_CTRL_MODE_EFF || CONFIG_IDF_TARGET_ESP32C6 - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - #else - ESP_LOGE(TAG, "Configuration mismatch. Select BLE Only or BTDM mode from menuconfig"); diff --git a/patches/mmu_map.diff b/patches/mmu_map.diff deleted file mode 100644 index 3bf56005a..000000000 --- a/patches/mmu_map.diff +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/components/esp_mm/esp_mmu_map.c b/components/esp_mm/esp_mmu_map.c -index b7d927f8fe..6a8c4635f0 100644 ---- a/components/esp_mm/esp_mmu_map.c -+++ b/components/esp_mm/esp_mmu_map.c -@@ -315,6 +315,19 @@ esp_err_t esp_mmu_map_reserve_block_with_caps(size_t size, mmu_mem_caps_t caps, - s_mmu_ctx.mem_regions[found_region_id].max_slot_size -= aligned_size; - ESP_EARLY_LOGV(TAG, "found laddr is 0x%x", laddr); - -+ mem_block_t *mem_block = NULL; -+ mem_region_t *region = &s_mmu_ctx.mem_regions[found_region_id]; -+ TAILQ_FOREACH(mem_block, ®ion->mem_block_head, entries) { -+ if (mem_block == TAILQ_FIRST(®ion->mem_block_head) || mem_block == TAILQ_LAST(®ion->mem_block_head, mem_block_head_)) { -+ TAILQ_REMOVE(®ion->mem_block_head, mem_block, entries); -+ } else { -+ // probably the reservation of MMU region should be disallowed for this case - already some MMU mappings exist? -+ // assert/abort -+ ESP_EARLY_LOGE(TAG, "already some MMU mappings exist?"); -+ abort(); -+ } -+ } -+ - uint32_t vaddr = 0; - if (caps & MMU_MEM_CAP_EXEC) { - vaddr = mmu_ll_laddr_to_vaddr(laddr, MMU_VADDR_INSTRUCTION); diff --git a/tools/add_sdk_json.py b/tools/add_sdk_json.py index d2deb4a87..7b12289bb 100644 --- a/tools/add_sdk_json.py +++ b/tools/add_sdk_json.py @@ -66,7 +66,7 @@ def add_system(systems, host, url, filename, sha, size): dep_skip = False for dep in farray['packages'][0]['platforms'][0]['toolsDependencies']: if dep['name'] == tool_name: - if dep['version'] == tool_version: + if dep['version'] == tool_version and not tool_name.startswith('esp32-arduino-libs'): print('Skipping {0}. Same version {1}'.format(tool_name, tool_version)) dep_skip = True break diff --git a/tools/config.sh b/tools/config.sh index 37805cb48..89cd9856a 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -6,7 +6,7 @@ if [ -z $IDF_PATH ]; then fi if [ -z $IDF_BRANCH ]; then - IDF_BRANCH="release/v5.1" + IDF_BRANCH="release/v5.3" fi if [ -z $AR_PR_TARGET_BRANCH ]; then @@ -49,7 +49,7 @@ AR_PATCHES="$AR_ROOT/patches" AR_PLATFORM_TXT="$AR_OUT/platform.txt" AR_GEN_PART_PY="$AR_TOOLS/gen_esp32part.py" AR_SDK="$AR_TOOLS/esp32-arduino-libs/$IDF_TARGET" -PIO_SDK="FRAMEWORK_SDK_DIR, \"$IDF_TARGET\"" +PIOARDUINO_SDK="FRAMEWORK_SDK_DIR, \"$IDF_TARGET\"" TOOLS_JSON_OUT="$AR_TOOLS/esp32-arduino-libs" if [ -d "$IDF_PATH" ]; then diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index bbc89e089..21efe1a78 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -36,13 +36,20 @@ fi if [ -e "$AR_SDK/$MEMCONF" ]; then rm -rf "$AR_SDK/$MEMCONF" fi -if [ -e "$AR_SDK/platformio-build.py" ]; then - rm -rf "$AR_SDK/platformio-build.py" +if [ -e "$AR_SDK/pioarduino-build.py" ]; then + rm -rf "$AR_SDK/pioarduino-build.py" fi + mkdir -p "$AR_SDK" +mkdir -p "$AR_SDK/lib" function get_actual_path(){ - p="$PWD"; cd "$1"; r="$PWD"; cd "$p"; echo "$r"; + d="$1"; + if [ -d "$d" ]; then + p="$PWD"; cd "$d"; r="$PWD"; cd "$p"; echo "$r"; + else + echo ""; + fi } # @@ -56,6 +63,8 @@ AS_FLAGS="" INCLUDES="" DEFINES="" +EXCLUDE_LIBS=";" + LD_FLAGS="" LD_LIBS="" LD_LIB_FILES="" @@ -63,13 +72,13 @@ LD_LIBS_SEARCH="" LD_SCRIPTS="" LD_SCRIPT_DIRS="" -PIO_CC_FLAGS="" -PIO_C_FLAGS="" -PIO_CXX_FLAGS="" -PIO_AS_FLAGS="" -PIO_LD_FLAGS="" -PIO_LD_FUNCS="" -PIO_LD_SCRIPTS="" +PIOARDUINO_CC_FLAGS="" +PIOARDUINO_C_FLAGS="" +PIOARDUINO_CXX_FLAGS="" +PIOARDUINO_AS_FLAGS="" +PIOARDUINO_LD_FLAGS="" +PIOARDUINO_LD_FUNCS="" +PIOARDUINO_LD_SCRIPTS="" TOOLCHAIN_PREFIX="" if [ "$IS_XTENSA" = "y" ]; then @@ -78,6 +87,17 @@ else TOOLCHAIN="riscv32-esp-elf" fi +# copy zigbee + zboss lib +if [ -d "managed_components/espressif__esp-zigbee-lib/lib/$IDF_TARGET/" ]; then + cp -r "managed_components/espressif__esp-zigbee-lib/lib/$IDF_TARGET"/* "$AR_SDK/lib/" + EXCLUDE_LIBS+="esp_zb_api_ed;" +fi + +if [ -d "managed_components/espressif__esp-zboss-lib/lib/$IDF_TARGET/" ]; then + cp -r "managed_components/espressif__esp-zboss-lib/lib/$IDF_TARGET"/* "$AR_SDK/lib/" + EXCLUDE_LIBS+="zboss_stack.ed;zboss_port.debug;" +fi + #collect includes, defines and c-flags str=`cat build/compile_commands.json | grep arduino-lib-builder-gcc.c | grep command | cut -d':' -f2 | cut -d',' -f1` str="${str:2:${#str}-1}" #remove leading space and quotes @@ -106,7 +126,7 @@ for item in "${@:2:${#@}-5}"; do DEFINES+="$item " fi elif [ "$prefix" = "-O" ]; then - PIO_CC_FLAGS+="$item " + PIOARDUINO_CC_FLAGS+="$item " elif [[ "$item" != "-Wall" && "$item" != "-Werror=all" && "$item" != "-Wextra" ]]; then if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:20}" != "-fdiagnostics-color=" && "${item:0:19}" != "-fdebug-prefix-map=" ]]; then C_FLAGS+="$item " @@ -125,9 +145,9 @@ for item in "${@:2:${#@}-5}"; do if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:20}" != "-fdiagnostics-color=" && "${item:0:19}" != "-fdebug-prefix-map=" ]]; then AS_FLAGS+="$item " if [[ $C_FLAGS == *"$item"* ]]; then - PIO_CC_FLAGS+="$item " + PIOARDUINO_CC_FLAGS+="$item " else - PIO_AS_FLAGS+="$item " + PIOARDUINO_AS_FLAGS+="$item " fi fi fi @@ -143,8 +163,8 @@ for item in "${@:2:${#@}-5}"; do if [[ "$prefix" != "-I" && "$prefix" != "-D" && "$item" != "-Wall" && "$item" != "-Werror=all" && "$item" != "-Wextra" && "$prefix" != "-O" ]]; then if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:20}" != "-fdiagnostics-color=" && "${item:0:19}" != "-fdebug-prefix-map=" ]]; then CPP_FLAGS+="$item " - if [[ $PIO_CC_FLAGS != *"$item"* ]]; then - PIO_CXX_FLAGS+="$item " + if [[ $PIOARDUINO_CC_FLAGS != *"$item"* ]]; then + PIOARDUINO_CXX_FLAGS+="$item " fi fi fi @@ -152,8 +172,8 @@ done set -- $C_FLAGS for item; do - if [[ $PIO_CC_FLAGS != *"$item"* ]]; then - PIO_C_FLAGS+="$item " + if [[ $PIOARDUINO_CC_FLAGS != *"$item"* ]]; then + PIOARDUINO_C_FLAGS+="$item " fi done @@ -180,7 +200,7 @@ else fi if [ "$IDF_TARGET" = "esp32" ]; then LD_SCRIPTS+="-T esp32.rom.redefined.ld " - PIO_LD_SCRIPTS+="esp32.rom.redefined.ld " + PIOARDUINO_LD_SCRIPTS+="esp32.rom.redefined.ld " fi set -- $str for item; do @@ -200,12 +220,14 @@ for item; do add_next=1 LD_FLAGS+="$item " elif [ "${item:0:2}" = "-l" ]; then # -l[lib_name] - LD_LIBS+="$item " - exclude_libs=";m;c;gcc;stdc++;" short_name="${item:2}" - if [[ $exclude_libs != *";$short_name;"* && $LD_LIBS_SEARCH != *"lib$short_name.a"* ]]; then - LD_LIBS_SEARCH+="lib$short_name.a " - #echo "lib add: $item" + if [[ $EXCLUDE_LIBS != *";$short_name;"* ]]; then + LD_LIBS+="$item " + exclude_libs=";m;c;gcc;stdc++;" + if [[ $exclude_libs != *";$short_name;"* && $LD_LIBS_SEARCH != *"lib$short_name.a"* ]]; then + LD_LIBS_SEARCH+="lib$short_name.a " + #echo "1. lib add: $item" + fi fi elif [ "$item" = "-o" ]; then add_next=0 @@ -213,7 +235,7 @@ for item; do is_dir=0 elif [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:19}" != "-fdebug-prefix-map=" && "${item:0:17}" != "-Wl,--start-group" && "${item:0:15}" != "-Wl,--end-group" ]]; then LD_FLAGS+="$item " - PIO_LD_FLAGS+="$item " + PIOARDUINO_LD_FLAGS+="$item " fi fi else @@ -225,10 +247,10 @@ for item; do elif [ "$is_script" = "1" ]; then is_script=0 LD_SCRIPTS+="$item " - PIO_LD_SCRIPTS+="$item " + PIOARDUINO_LD_SCRIPTS+="$item " else LD_FLAGS+="$item " - PIO_LD_FUNCS+="$item " + PIOARDUINO_LD_FUNCS+="$item " fi else if [ "${item:${#item}-2:2}" = ".a" ]; then @@ -244,30 +266,38 @@ for item; do if [[ $LD_LIB_FILES != *"$item"* ]]; then # do we already have lib with the same name? if [[ $LD_LIBS != *"-l$lname"* ]]; then - # echo "collecting lib '$lname' and file: $item" - LD_LIB_FILES+="$item " - LD_LIBS+="-l$lname " + if [[ $EXCLUDE_LIBS != *";$lname;"* ]]; then + #echo "2. collecting lib '$lname' and file: $item" + LD_LIB_FILES+="$item " + LD_LIBS+="-l$lname " + fi else # echo "!!! need to rename: '$lname'" for i in {2..9}; do n_item="${item:0:${#item}-2}_$i.a" n_name=$lname"_$i" if [ -f "$n_item" ]; then - # echo "renamed add: -l$n_name" - LD_LIBS+="-l$n_name " + if [[ $EXCLUDE_LIBS != *";$lname;"* ]]; then + #echo "3. renamed add: -l$n_name" + LD_LIBS+="-l$n_name " + fi break elif [[ $LD_LIB_FILES != *"$n_item"* && $LD_LIBS != *"-l$n_name"* ]]; then - echo "Renaming '$lname' to '$n_name': $item" - cp -f "$item" "$n_item" - LD_LIB_FILES+="$n_item " - LD_LIBS+="-l$n_name " + if [[ $EXCLUDE_LIBS != *";$lname;"* ]]; then + #echo "4. Renaming '$lname' to '$n_name': $item" + cp -f "$item" "$n_item" + LD_LIB_FILES+="$n_item " + LD_LIBS+="-l$n_name " + fi break fi done fi else - # echo "just add: -l$lname" - LD_LIBS+="-l$lname " + if [[ $EXCLUDE_LIBS != *";$lname;"* ]]; then + #echo "5. just add: -l$lname" + LD_LIBS+="-l$lname " + fi fi else echo "*** Skipping $(basename $item): size too small $lsize" @@ -288,82 +318,82 @@ done mkdir -p "$AR_SDK" -# start generation of platformio-build.py -AR_PLATFORMIO_PY="$AR_SDK/platformio-build.py" -cat configs/pio_start.txt > "$AR_PLATFORMIO_PY" +# start generation of pioarduino-build.py +AR_PIOARDUINO_PY="$AR_SDK/pioarduino-build.py" +cat configs/pioarduino_start.txt > "$AR_PIOARDUINO_PY" -echo " ASFLAGS=[" >> "$AR_PLATFORMIO_PY" +echo " ASFLAGS=[" >> "$AR_PIOARDUINO_PY" if [ "$IS_XTENSA" = "y" ]; then - echo " \"-mlongcalls\"" >> "$AR_PLATFORMIO_PY" + echo " \"-mlongcalls\"" >> "$AR_PIOARDUINO_PY" else - echo " \"-march=rv32imc\"" >> "$AR_PLATFORMIO_PY" + echo " \"-march=rv32imc\"" >> "$AR_PIOARDUINO_PY" fi -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" +echo " ]," >> "$AR_PIOARDUINO_PY" +echo "" >> "$AR_PIOARDUINO_PY" -echo " ASPPFLAGS=[" >> "$AR_PLATFORMIO_PY" -set -- $PIO_AS_FLAGS +echo " ASPPFLAGS=[" >> "$AR_PIOARDUINO_PY" +set -- $PIOARDUINO_AS_FLAGS for item; do - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" + echo " \"$item\"," >> "$AR_PIOARDUINO_PY" done -echo " \"-x\", \"assembler-with-cpp\"" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" +echo " \"-x\", \"assembler-with-cpp\"" >> "$AR_PIOARDUINO_PY" +echo " ]," >> "$AR_PIOARDUINO_PY" +echo "" >> "$AR_PIOARDUINO_PY" -echo " CFLAGS=[" >> "$AR_PLATFORMIO_PY" -set -- $PIO_C_FLAGS +echo " CFLAGS=[" >> "$AR_PIOARDUINO_PY" +set -- $PIOARDUINO_C_FLAGS last_item="${@: -1}" for item in "${@:0:${#@}}"; do if [ "${item:0:1}" != "/" ]; then - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" + echo " \"$item\"," >> "$AR_PIOARDUINO_PY" fi done -echo " \"$last_item\"" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" +echo " \"$last_item\"" >> "$AR_PIOARDUINO_PY" +echo " ]," >> "$AR_PIOARDUINO_PY" +echo "" >> "$AR_PIOARDUINO_PY" -echo " CXXFLAGS=[" >> "$AR_PLATFORMIO_PY" -set -- $PIO_CXX_FLAGS +echo " CXXFLAGS=[" >> "$AR_PIOARDUINO_PY" +set -- $PIOARDUINO_CXX_FLAGS last_item="${@: -1}" for item in "${@:0:${#@}}"; do if [ "${item:0:1}" != "/" ]; then - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" + echo " \"$item\"," >> "$AR_PIOARDUINO_PY" fi done -echo " \"$last_item\"" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" +echo " \"$last_item\"" >> "$AR_PIOARDUINO_PY" +echo " ]," >> "$AR_PIOARDUINO_PY" +echo "" >> "$AR_PIOARDUINO_PY" -echo " CCFLAGS=[" >> "$AR_PLATFORMIO_PY" -set -- $PIO_CC_FLAGS +echo " CCFLAGS=[" >> "$AR_PIOARDUINO_PY" +set -- $PIOARDUINO_CC_FLAGS for item; do - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" + echo " \"$item\"," >> "$AR_PIOARDUINO_PY" done -echo " \"-MMD\"" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" +echo " \"-MMD\"" >> "$AR_PIOARDUINO_PY" +echo " ]," >> "$AR_PIOARDUINO_PY" +echo "" >> "$AR_PIOARDUINO_PY" -echo " LINKFLAGS=[" >> "$AR_PLATFORMIO_PY" -set -- $PIO_LD_FLAGS +echo " LINKFLAGS=[" >> "$AR_PIOARDUINO_PY" +set -- $PIOARDUINO_LD_FLAGS for item; do - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" + echo " \"$item\"," >> "$AR_PIOARDUINO_PY" done -set -- $PIO_LD_SCRIPTS +set -- $PIOARDUINO_LD_SCRIPTS for item; do - echo " \"-T\", \"$item\"," >> "$AR_PLATFORMIO_PY" + echo " \"-T\", \"$item\"," >> "$AR_PIOARDUINO_PY" done -set -- $PIO_LD_FUNCS +set -- $PIOARDUINO_LD_FUNCS for item; do - echo " \"-u\", \"$item\"," >> "$AR_PLATFORMIO_PY" + echo " \"-u\", \"$item\"," >> "$AR_PIOARDUINO_PY" done -echo " '-Wl,-Map=\"%s\"' % join(\"\${BUILD_DIR}\", \"\${PROGNAME}.map\")" >> "$AR_PLATFORMIO_PY" +echo " '-Wl,-Map=\"%s\"' % join(\"\${BUILD_DIR}\", \"\${PROGNAME}.map\")" >> "$AR_PIOARDUINO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" +echo " ]," >> "$AR_PIOARDUINO_PY" +echo "" >> "$AR_PIOARDUINO_PY" # include dirs REL_INC="" -echo " CPPPATH=[" >> "$AR_PLATFORMIO_PY" +echo " CPPPATH=[" >> "$AR_PIOARDUINO_PY" set -- $INCLUDES @@ -391,11 +421,11 @@ for item; do out_cpath="$AR_SDK/include/$fname$out_sub" REL_INC+="-iwithprefixbefore $fname$out_sub " if [ "$out_sub" = "" ]; then - echo " join($PIO_SDK, \"include\", \"$fname\")," >> "$AR_PLATFORMIO_PY" + echo " join($PIOARDUINO_SDK, \"include\", \"$fname\")," >> "$AR_PIOARDUINO_PY" else - pio_sub="${out_sub:1}" - pio_sub=`echo $pio_sub | sed 's/\//\\", \\"/g'` - echo " join($PIO_SDK, \"include\", \"$fname\", \"$pio_sub\")," >> "$AR_PLATFORMIO_PY" + pioarduino_sub="${out_sub:1}" + pioarduino_sub=`echo $pioarduino_sub | sed 's/\//\\", \\"/g'` + echo " join($PIOARDUINO_SDK, \"include\", \"$fname\", \"$pioarduino_sub\")," >> "$AR_PIOARDUINO_PY" fi for f in `find "$item" -name '*.h'`; do rel_f=${f#*$item} @@ -422,21 +452,19 @@ for item; do fi fi done -echo " join($PIO_SDK, board_config.get(\"build.arduino.memory_type\", (board_config.get(\"build.flash_mode\", \"dio\") + \"_$OCT_PSRAM\")), \"include\")," >> "$AR_PLATFORMIO_PY" -echo " join(FRAMEWORK_DIR, \"cores\", board_config.get(\"build.core\"))" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" - -mkdir -p "$AR_SDK/lib" +echo " join($PIOARDUINO_SDK, board_config.get(\"build.arduino.memory_type\", (board_config.get(\"build.flash_mode\", \"dio\") + \"_$OCT_PSRAM\")), \"include\")," >> "$AR_PIOARDUINO_PY" +echo " join(FRAMEWORK_DIR, \"cores\", board_config.get(\"build.core\"))" >> "$AR_PIOARDUINO_PY" +echo " ]," >> "$AR_PIOARDUINO_PY" +echo "" >> "$AR_PIOARDUINO_PY" AR_LIBS="$LD_LIBS" -PIO_LIBS="" +PIOARDUINO_LIBS="" set -- $LD_LIBS for item; do - if [ "$PIO_LIBS" != "" ]; then - PIO_LIBS+=", " + if [ "$PIOARDUINO_LIBS" != "" ]; then + PIOARDUINO_LIBS+=", " fi - PIO_LIBS+="\"$item\"" + PIOARDUINO_LIBS+="\"$item\"" done set -- $LD_LIB_FILES @@ -444,19 +472,19 @@ for item; do cp "$item" "$AR_SDK/lib/" done -echo " LIBPATH=[" >> "$AR_PLATFORMIO_PY" -echo " join($PIO_SDK, \"lib\")," >> "$AR_PLATFORMIO_PY" -echo " join($PIO_SDK, \"ld\")," >> "$AR_PLATFORMIO_PY" -echo " join($PIO_SDK, board_config.get(\"build.arduino.memory_type\", (board_config.get(\"build.flash_mode\", \"dio\") + \"_$OCT_PSRAM\")))" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" +echo " LIBPATH=[" >> "$AR_PIOARDUINO_PY" +echo " join($PIOARDUINO_SDK, \"lib\")," >> "$AR_PIOARDUINO_PY" +echo " join($PIOARDUINO_SDK, \"ld\")," >> "$AR_PIOARDUINO_PY" +echo " join($PIOARDUINO_SDK, board_config.get(\"build.arduino.memory_type\", (board_config.get(\"build.flash_mode\", \"dio\") + \"_$OCT_PSRAM\")))" >> "$AR_PIOARDUINO_PY" +echo " ]," >> "$AR_PIOARDUINO_PY" +echo "" >> "$AR_PIOARDUINO_PY" -echo " LIBS=[" >> "$AR_PLATFORMIO_PY" -echo " $PIO_LIBS" >> "$AR_PLATFORMIO_PY" -echo " ]," >> "$AR_PLATFORMIO_PY" -echo "" >> "$AR_PLATFORMIO_PY" +echo " LIBS=[" >> "$AR_PIOARDUINO_PY" +echo " $PIOARDUINO_LIBS" >> "$AR_PIOARDUINO_PY" +echo " ]," >> "$AR_PIOARDUINO_PY" +echo "" >> "$AR_PIOARDUINO_PY" -echo " CPPDEFINES=[" >> "$AR_PLATFORMIO_PY" +echo " CPPDEFINES=[" >> "$AR_PIOARDUINO_PY" set -- $DEFINES for item; do item="${item:2}" #remove -D @@ -464,17 +492,17 @@ for item; do item=(${item//=/ }) re='^[+-]?[0-9]+([.][0-9]+)?$' if [[ ${item[1]} =~ $re ]]; then - echo " (\"${item[0]}\", ${item[1]})," >> "$AR_PLATFORMIO_PY" + echo " (\"${item[0]}\", ${item[1]})," >> "$AR_PIOARDUINO_PY" else - echo " (\"${item[0]}\", '${item[1]}')," >> "$AR_PLATFORMIO_PY" + echo " (\"${item[0]}\", '${item[1]}')," >> "$AR_PIOARDUINO_PY" fi else - echo " \"$item\"," >> "$AR_PLATFORMIO_PY" + echo " \"$item\"," >> "$AR_PIOARDUINO_PY" fi done -# end generation of platformio-build.py -cat configs/pio_end.txt >> "$AR_PLATFORMIO_PY" +# end generation of pioarduino-build.py +cat configs/pioarduino_end.txt >> "$AR_PIOARDUINO_PY" # replace double backslashes with single one DEFINES=`echo "$DEFINES" | tr -s '\'` @@ -502,15 +530,6 @@ sed 's/CHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER/:/arduino-esp32 espressif/esp32-arduino-lib-builder:latest +docker run --rm -it -e "TERM=xterm-256color" -v :/arduino-esp32 espressif/esp32-arduino-lib-builder:release-v5.3 ``` The above command explained: @@ -35,18 +35,16 @@ The above command explained: - `-t`: Allocates a pseudo-TTY. - `-e "TERM=xterm-256color"`: Optional. Sets the terminal type to `xterm-256color` to display colors correctly. - `-v :/arduino-esp32`: Optional. Mounts the Arduino Core for ESP32 repository at `/arduino-esp32` inside the container. Replace `` with the path to the repository on the host machine. If not provided, the container will not copy the compiled libraries to the host machine. - - `espressif/esp32-arduino-lib-builder:latest`: The Docker image to use. + - `espressif/esp32-arduino-lib-builder:release-v5.3`: The Docker image to use. After running the above command, you will be inside the container and can build the libraries using the user interface. By default the docker container will run the user interface script. If you want to run a specific command, you can pass it as an argument to the docker run command. For example, to run a terminal inside the container, you can run: ```bash -docker run -it espressif/esp32-arduino-lib-builder:latest /bin/bash +docker run -it espressif/esp32-arduino-lib-builder:release-v5.3 /bin/bash ``` ## Documentation - - -For more information about this image and the detailed usage instructions, please refer to the Arduino Core for ESP32 documentation. +For more information about this image and the detailed usage instructions, please refer to the [Arduino Core for ESP32 documentation](https://docs.espressif.com/projects/arduino-esp32/en/latest/lib_builder.html#docker-image). diff --git a/tools/docker/run.ps1 b/tools/docker/run.ps1 index 4c49ac505..5ecb01a64 100644 --- a/tools/docker/run.ps1 +++ b/tools/docker/run.ps1 @@ -1,5 +1,8 @@ # This is an example of how to run the docker container. # This script is not part of the container, it is meant to be run on the host machine. +# Note that this file will build the release/v5.3 branch. For other branches, change the tag accordingly. +# You can check the available tags at https://hub.docker.com/r/espressif/esp32-arduino-lib-builder/tags +# As this script is unsigned, you may need to run `Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass` before running it. # Usage: .\run.ps1 # Exit on error @@ -58,4 +61,4 @@ if ($env:LIBBUILDER_GIT_SAFE_DIR) { } Write-Output "Running: docker run $($DOCKER_ARGS -join ' ') espressif/esp32-arduino-lib-builder" -docker run @($DOCKER_ARGS) espressif/esp32-arduino-lib-builder +docker run @($DOCKER_ARGS) espressif/esp32-arduino-lib-builder:release-v5.3 diff --git a/tools/docker/run.sh b/tools/docker/run.sh index 59e967363..c7f97a6f5 100755 --- a/tools/docker/run.sh +++ b/tools/docker/run.sh @@ -2,6 +2,8 @@ # This is an example of how to run the docker container. # This script is not part of the container, it is meant to be run on the host machine. +# Note that this file will build the release/v5.3 branch. For other branches, change the tag accordingly. +# You can check the available tags at https://hub.docker.com/r/espressif/esp32-arduino-lib-builder/tags # Usage: ./run.sh if ! [ -x "$(command -v docker)" ]; then @@ -31,4 +33,4 @@ if [ -n "$LIBBUILDER_GIT_SAFE_DIR" ]; then fi echo "Running: docker run ${DOCKER_ARGS[@]} espressif/esp32-arduino-lib-builder" -docker run ${DOCKER_ARGS[@]} espressif/esp32-arduino-lib-builder +docker run ${DOCKER_ARGS[@]} espressif/esp32-arduino-lib-builder:release-v5.3 diff --git a/tools/gen_platformio_manifest.py b/tools/gen_pioarduino_manifest.py similarity index 94% rename from tools/gen_platformio_manifest.py rename to tools/gen_pioarduino_manifest.py index f02218826..9d2b99c19 100644 --- a/tools/gen_platformio_manifest.py +++ b/tools/gen_pioarduino_manifest.py @@ -53,7 +53,7 @@ def main(dst_dir, version_string, commit_hash): json.dump(MANIFEST_DATA, fp, indent=2) print( - f"Generated PlatformIO manifest file '{manifest_file_path}' with '{converted_version}' version" + f"Generated pioarduino manifest file '{manifest_file_path}' with '{converted_version}' version" ) return 0 diff --git a/tools/gen_tools_json.py b/tools/gen_tools_json.py index f0fc67579..392eed508 100644 --- a/tools/gen_tools_json.py +++ b/tools/gen_tools_json.py @@ -107,7 +107,7 @@ def replace_if_xz(system): out_path = args.out_path; # settings - arduino_tools = ["xtensa-esp32-elf","xtensa-esp32s2-elf","xtensa-esp32s3-elf","xtensa-esp-elf-gdb","riscv32-esp-elf","riscv32-esp-elf-gdb","openocd-esp32"] + arduino_tools = ["xtensa-esp-elf","xtensa-esp-elf-gdb","riscv32-esp-elf","riscv32-esp-elf-gdb","openocd-esp32"] # code start farray = {"packages":[{"platforms":[{"toolsDependencies":[]}],"tools":[]}]} diff --git a/tools/install-esp-idf.sh b/tools/install-esp-idf.sh index bd3d07985..0519ae67a 100755 --- a/tools/install-esp-idf.sh +++ b/tools/install-esp-idf.sh @@ -40,9 +40,7 @@ if [ ! -x $idf_was_installed ] || [ ! -x $commit_predefined ]; then # Temporarily patch the ESP32-S2 I2C LL driver to keep the clock source cd $IDF_PATH patch -p1 -N -i $AR_PATCHES/esp32s2_i2c_ll_master_init.diff - patch -p1 -N -i $AR_PATCHES/mmu_map.diff patch -p1 -N -i $AR_PATCHES/lwip_max_tcp_pcb.diff - patch -p1 -N -i $AR_PATCHES/esp32c6_provisioning_bluedroid.diff cd - fi diff --git a/tools/patch-tinyusb.sh b/tools/patch-tinyusb.sh new file mode 100755 index 000000000..eeaa4d43b --- /dev/null +++ b/tools/patch-tinyusb.sh @@ -0,0 +1,4 @@ +#!/bin/bash +mv components/arduino_tinyusb/src/dcd_dwc2.c components/arduino_tinyusb/src/dcd_dwc2.c.prev +cp components/arduino_tinyusb/tinyusb/src/portable/synopsys/dwc2/dcd_dwc2.c components/arduino_tinyusb/src/dcd_dwc2.c +patch -p1 -N -i components/arduino_tinyusb/patches/dcd_dwc2.patch From 29a5022be082ad90d3b58316c5b0de8860151901 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 18 Dec 2024 16:06:11 +0200 Subject: [PATCH 31/70] Stop building libs automatically for IDF 5.1 --- .github/workflows/cron.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index 30285c8bb..8d38b2fb7 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -32,9 +32,9 @@ jobs: fail-fast: false matrix: include: - - idf_branch: "release/v5.1" - lib_builder_branch: "release/v5.1" - targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" + # - idf_branch: "release/v5.1" + # lib_builder_branch: "release/v5.1" + # targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" - idf_branch: "release/v5.3" lib_builder_branch: "master" targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" From 2f061cbcb7b39f3d2d2d49eaec3a7bf2fb800a67 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Fri, 20 Dec 2024 21:09:48 -0300 Subject: [PATCH 32/70] Update defconfig.esp32c6 and defconfig.esp32h2 to disable OpenThread DNS64 (#257) * Update defconfig.esp32c6 to disable OpenThread DNS64 * Update defconfig.esp32h2 to disable OT DNS64 * Update defconfig.esp32c6 to disable OpenThread DNS64 * Update defconfig.esp32h2 to disable OT DNS64 --- configs/defconfig.esp32c6 | 6 +++++- configs/defconfig.esp32h2 | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/configs/defconfig.esp32c6 b/configs/defconfig.esp32c6 index 07621cf07..8a45b0eed 100644 --- a/configs/defconfig.esp32c6 +++ b/configs/defconfig.esp32c6 @@ -15,7 +15,11 @@ CONFIG_OPENTHREAD_ENABLED=y # Border Router disabled # CONFIG_OPENTHREAD_BORDER_ROUTER=y # CONFIG_OPENTHREAD_RADIO_SPINEL_UART=y -CONFIG_OPENTHREAD_DNS64_CLIENT=y + +# DNS64 and NAT64 will be disabled for a while +# OT IDF issue https://github.com/espressif/esp-idf/issues/15069 +# CONFIG_OPENTHREAD_DNS64_CLIENT=y + # Radio for RPC # CONFIG_OPENTHREAD_RADIO=y # CONFIG_OPENTHREAD_RADIO_NATIVE=y diff --git a/configs/defconfig.esp32h2 b/configs/defconfig.esp32h2 index fe4a47eb6..9bc304886 100644 --- a/configs/defconfig.esp32h2 +++ b/configs/defconfig.esp32h2 @@ -11,7 +11,11 @@ CONFIG_OPENTHREAD_ENABLED=y # Border Router disabled # CONFIG_OPENTHREAD_BORDER_ROUTER=y # CONFIG_OPENTHREAD_RADIO_SPINEL_UART=y -CONFIG_OPENTHREAD_DNS64_CLIENT=y + +# DNS64 and NAT64 will be disabled for a while +# OT IDF issue https://github.com/espressif/esp-idf/issues/15069 +# CONFIG_OPENTHREAD_DNS64_CLIENT=y + # Radio for RPC # CONFIG_OPENTHREAD_RADIO=y # CONFIG_OPENTHREAD_RADIO_NATIVE=y From 44fadb0eb161176b3b5ae3a44eca12635539ea6a Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 8 Jan 2025 14:09:19 +0200 Subject: [PATCH 33/70] Add IDF 5.4 to cron builds --- .github/workflows/cron.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index 8d38b2fb7..889ea13d7 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -38,3 +38,6 @@ jobs: - idf_branch: "release/v5.3" lib_builder_branch: "master" targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" + - idf_branch: "release/v5.4" + lib_builder_branch: "release/v5.4" + targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" From b97cdf80a6e1e73cdcaef98bcdd6fd5508c6214c Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Thu, 9 Jan 2025 09:47:02 -0300 Subject: [PATCH 34/70] fix(pioarduino): Add missing define (#261) --- configs/pioarduino_end.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/pioarduino_end.txt b/configs/pioarduino_end.txt index f942d442d..d9b5d5467 100644 --- a/configs/pioarduino_end.txt +++ b/configs/pioarduino_end.txt @@ -1,4 +1,5 @@ "ARDUINO_ARCH_ESP32", + "CHIP_HAVE_CONFIG_H", ("ESP32", "ESP32"), ("F_CPU", "$BOARD_F_CPU"), ("ARDUINO", 10812), From e68e30112ffad75e96535408dfe25bff6d2f26fb Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 21 Jan 2025 17:37:52 +0200 Subject: [PATCH 35/70] Add IDF v5.5. to cron --- .github/workflows/cron.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index 889ea13d7..31c578ef7 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -41,3 +41,6 @@ jobs: - idf_branch: "release/v5.4" lib_builder_branch: "release/v5.4" targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" + - idf_branch: "master" + lib_builder_branch: "release/v5.5" + targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4,esp32c5" From 833a7f515b95c9450473a1f5c9bb907b0e23cdb0 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Tue, 4 Feb 2025 10:59:04 -0300 Subject: [PATCH 36/70] fix(upload): Add delays and improve error checking (#265) --- tools/config.sh | 7 +++++-- tools/push-to-arduino.sh | 20 +++++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/tools/config.sh b/tools/config.sh index 89cd9856a..3349e4553 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -203,8 +203,11 @@ function github_release_asset_upload(){ # github_release_asset_upload local repo_path="$1" local release_asset_id="$2" - local res=$(curl -s -k -o /dev/null -w "%{http_code}" -X DELETE -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/releases/assets/$release_asset_id") - if [ "$res" -eq 204 ]; then echo 1; else echo 0; fi + local res + local return_code + res=$(curl -s -k -o /dev/null -w "%{http_code}" -X DELETE -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/releases/assets/$release_asset_id") + return_code=$? + if [ "$res" -eq 204 ] && [ "$return_code" -eq 0 ] ; then echo 1; else echo 0; fi } diff --git a/tools/push-to-arduino.sh b/tools/push-to-arduino.sh index c4d1959d3..8b9b552a7 100755 --- a/tools/push-to-arduino.sh +++ b/tools/push-to-arduino.sh @@ -47,16 +47,22 @@ if [ $AR_HAS_COMMIT == "0" ] || [ $LIBS_HAS_ASSET == "0" ]; then fi fi + sleep 5 echo "Creating asset '$LIBS_ZIP_FILENAME'..." - mv -f "dist/esp32-arduino-libs.zip" "dist/$LIBS_ZIP_FILENAME" + LIBS_ASSET_ID=`github_release_asset_upload "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "$LIBS_ZIP_FILENAME" "dist/$LIBS_ZIP_FILENAME"` if [ -z "$LIBS_ASSET_ID" ]; then - echo "ERROR: Failed to upload asset '$LIBS_ZIP_FILENAME'" - exit 1 + echo "ERROR: Failed to upload asset '$LIBS_ZIP_FILENAME. Retrying..." + LIBS_ASSET_ID=`github_release_asset_upload "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "$LIBS_ZIP_FILENAME" "dist/$LIBS_ZIP_FILENAME"` + if [ -z "$LIBS_ASSET_ID" ]; then + echo "ERROR: Failed to upload asset '$LIBS_ZIP_FILENAME'" + exit 1 + fi fi echo "Finished uploading asset '$LIBS_ZIP_FILENAME'. Asset ID: $LIBS_ASSET_ID" + sleep 5 # Calculate the local file checksum and size local_checksum=$(sha256sum "dist/$LIBS_ZIP_FILENAME" | awk '{print $1}') @@ -108,8 +114,12 @@ if [ $AR_HAS_COMMIT == "0" ] || [ $LIBS_HAS_ASSET == "0" ]; then JSON_ASSET_ID=`github_release_asset_upload "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "$LIBS_JSON_FILENAME" "$AR_OUT/package_esp32_index.template.json"` if [ -z "$JSON_ASSET_ID" ]; then - echo "ERROR: Failed to upload asset '$LIBS_JSON_FILENAME'" - exit 1 + echo "ERROR: Failed to upload asset '$LIBS_JSON_FILENAME'. Retrying..." + JSON_ASSET_ID=`github_release_asset_upload "$AR_LIBS_REPO" "$LIBS_RELEASE_ID" "$LIBS_JSON_FILENAME" "$AR_OUT/package_esp32_index.template.json"` + if [ -z "$JSON_ASSET_ID" ]; then + echo "ERROR: Failed to upload asset '$LIBS_JSON_FILENAME'" + exit 1 + fi fi fi From ad3fb2409169c4c06f2ece49236b63e7eec7e16c Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 4 Feb 2025 23:59:06 +0200 Subject: [PATCH 37/70] fix(lcd): Enable optimizations for RGB LCD (#273) --- configs/defconfig.esp32p4 | 4 ++++ configs/defconfig.esp32s3 | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/configs/defconfig.esp32p4 b/configs/defconfig.esp32p4 index 8b04e8469..850b5fd2c 100644 --- a/configs/defconfig.esp32p4 +++ b/configs/defconfig.esp32p4 @@ -24,3 +24,7 @@ CONFIG_ESP_REV_MIN_FULL=0 CONFIG_ESP32P4_REV_MAX_FULL=99 CONFIG_ESP_REV_MAX_FULL=99 # end of Chip revision + +# RGB Display Optimizations +CONFIG_LCD_RGB_ISR_IRAM_SAFE=y +CONFIG_LCD_RGB_RESTART_IN_VSYNC=y diff --git a/configs/defconfig.esp32s3 b/configs/defconfig.esp32s3 index 2c2cba3cd..ce53e7747 100644 --- a/configs/defconfig.esp32s3 +++ b/configs/defconfig.esp32s3 @@ -17,3 +17,7 @@ CONFIG_ULP_COPROC_ENABLED=y CONFIG_ULP_COPROC_TYPE_FSM=y # CONFIG_ULP_COPROC_TYPE_RISCV=y CONFIG_ULP_COPROC_RESERVE_MEM=512 + +# RGB Display Optimizations +CONFIG_LCD_RGB_ISR_IRAM_SAFE=y +CONFIG_LCD_RGB_RESTART_IN_VSYNC=y From 37d69cae6dd8bdbfa877528eb2f5076394b7fb6d Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 12 Feb 2025 11:19:22 +0200 Subject: [PATCH 38/70] Add support for two TinyUSB CDC devices at once (#275) --- components/arduino_tinyusb/Kconfig.projbuild | 8 ++++++++ components/arduino_tinyusb/include/tusb_config.h | 6 +++++- configs/defconfig.common | 3 +++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/components/arduino_tinyusb/Kconfig.projbuild b/components/arduino_tinyusb/Kconfig.projbuild index 65d9c37be..f0a1b4dc6 100755 --- a/components/arduino_tinyusb/Kconfig.projbuild +++ b/components/arduino_tinyusb/Kconfig.projbuild @@ -42,6 +42,14 @@ menu "Arduino TinyUSB" help CDC FIFO size of TX + config TINYUSB_CDC_MAX_PORTS + int "Maximum enabled CDC ports" + range 1 2 + default 1 + depends on TINYUSB_CDC_ENABLED + help + Maximum enabled CDC ports + endmenu menu "Mass Storage (MSC) driver" diff --git a/components/arduino_tinyusb/include/tusb_config.h b/components/arduino_tinyusb/include/tusb_config.h index 458c78cf1..7802bea8f 100755 --- a/components/arduino_tinyusb/include/tusb_config.h +++ b/components/arduino_tinyusb/include/tusb_config.h @@ -115,7 +115,11 @@ extern "C" { #define CFG_TUD_ENDOINT0_SIZE 64 // Enabled Drivers -#define CFG_TUD_CDC CONFIG_TINYUSB_CDC_ENABLED +#ifdef CONFIG_TINYUSB_CDC_MAX_PORTS +#define CFG_TUD_CDC CONFIG_TINYUSB_CDC_MAX_PORTS +#else +#define CFG_TUD_CDC 0 +#endif #define CFG_TUD_MSC CONFIG_TINYUSB_MSC_ENABLED #define CFG_TUD_HID CONFIG_TINYUSB_HID_ENABLED #define CFG_TUD_MIDI CONFIG_TINYUSB_MIDI_ENABLED diff --git a/configs/defconfig.common b/configs/defconfig.common index ef4620bf6..bf5d1197f 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -131,3 +131,6 @@ CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n # Use compact attribute storage mode CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y + +#TinyUSB Config +CONFIG_TINYUSB_CDC_MAX_PORTS=2 From 8cea2374eec3c0c387f8c896fa69ff8777711c3a Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Thu, 13 Feb 2025 08:30:17 -0300 Subject: [PATCH 39/70] fix(docker): Bump base image (#276) * fix(docker): Bump base image * fix(docker): Fix pip install --- tools/docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index 3262cbb2d..699f0bd8e 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -1,5 +1,5 @@ # To Do: Check if it is worth to use espressif/idf as base image (image size will be much bigger) -FROM ubuntu:22.04 +FROM ubuntu:latest # switch to root, let the entrypoint drop back to host user USER root @@ -70,7 +70,7 @@ RUN echo LIBBUILDER_CHECKOUT_REF=$LIBBUILDER_CHECKOUT_REF LIBBUILDER_CLONE_BRANC git checkout $LIBBUILDER_CHECKOUT_REF && \ git submodule update --init --recursive; \ fi && \ - pip3 install --upgrade -r $LIBBUILDER_PATH/tools/config_editor/requirements.txt + pip3 install --break-system-packages --upgrade -r $LIBBUILDER_PATH/tools/config_editor/requirements.txt COPY entrypoint.sh $LIBBUILDER_PATH/entrypoint.sh From 77f5effeaea8aad19cc1fd044b866cca8f163754 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 8 Jan 2025 13:27:51 +0200 Subject: [PATCH 40/70] Configure build for ESP-IDF v5.4 --- tools/config.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/config.sh b/tools/config.sh index 3349e4553..1b2941e97 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -6,11 +6,11 @@ if [ -z $IDF_PATH ]; then fi if [ -z $IDF_BRANCH ]; then - IDF_BRANCH="release/v5.3" + IDF_BRANCH="release/v5.4" fi if [ -z $AR_PR_TARGET_BRANCH ]; then - AR_PR_TARGET_BRANCH="master" + AR_PR_TARGET_BRANCH="release/v3.2.x" fi if [ -z $IDF_TARGET ]; then From 731afdf3bfa2a161aec934747b1d4f606a38255c Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 8 Jan 2025 13:28:16 +0200 Subject: [PATCH 41/70] Remove support for REV0 ESP32-P4 --- configs/defconfig.esp32p4 | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/configs/defconfig.esp32p4 b/configs/defconfig.esp32p4 index 850b5fd2c..9cc5e8392 100644 --- a/configs/defconfig.esp32p4 +++ b/configs/defconfig.esp32p4 @@ -14,17 +14,6 @@ CONFIG_ESP_SDIO_PIN_D1=15 CONFIG_ESP_SDIO_PIN_D2=16 CONFIG_ESP_SDIO_PIN_D3=17 -# -# Chip revision -# -CONFIG_ESP32P4_REV_MIN_0=y -# CONFIG_ESP32P4_REV_MIN_1 is not set -CONFIG_ESP32P4_REV_MIN_FULL=0 -CONFIG_ESP_REV_MIN_FULL=0 -CONFIG_ESP32P4_REV_MAX_FULL=99 -CONFIG_ESP_REV_MAX_FULL=99 -# end of Chip revision - # RGB Display Optimizations CONFIG_LCD_RGB_ISR_IRAM_SAFE=y CONFIG_LCD_RGB_RESTART_IN_VSYNC=y From 784cd9d2626483b40047ad172e06bf897af2b642 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 15 Jan 2025 15:50:23 +0200 Subject: [PATCH 42/70] Add temporarily the option to use toolchains with `_signed` postfix This is to fix an issue with ARM Mac toolchain for IDF v5.4 --- tools/gen_tools_json.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tools/gen_tools_json.py b/tools/gen_tools_json.py index 392eed508..a795285b9 100644 --- a/tools/gen_tools_json.py +++ b/tools/gen_tools_json.py @@ -27,8 +27,8 @@ def replace_if_xz(system): if not system['url'].endswith(".tar.xz"): return system - new_url = system['url'].replace(".tar.xz", ".tar.gz") - new_name = system['archiveFileName'].replace(".tar.xz", ".tar.gz") + new_url = system['url'].replace(".tar.xz", "_signed.tar.gz") + new_name = system['archiveFileName'].replace(".tar.xz", "_signed.tar.gz") new_checksum = "" new_size = 0 @@ -40,8 +40,16 @@ def replace_if_xz(system): (owner, proj, version, filename) = urlx[0] release_manifest_url = "https://github.com/%s/%s/releases/download/%s/%s-%s-checksum.sha256" % (owner, proj, version, proj, version) else: - print("No manifest match") - return system + new_url = system['url'].replace(".tar.xz", ".tar.gz") + new_name = system['archiveFileName'].replace(".tar.xz", ".tar.gz") + # parse the download url to extract all info needed for the checksum file url + urlx = re.findall("^https://github.com/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/releases/download/([a-zA-Z0-9_\-.]+)/([a-zA-Z0-9_\-.]+)$", new_url) + if urlx and len(urlx) > 0: + (owner, proj, version, filename) = urlx[0] + release_manifest_url = "https://github.com/%s/%s/releases/download/%s/%s-%s-checksum.sha256" % (owner, proj, version, proj, version) + else: + print("No manifest match") + return system # check if we have already downloaded and parsed that manifest manifest_index = 0 From cc827d83668c660ba3fa9a2329e756e5e47bb9b2 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Thu, 16 Jan 2025 17:44:36 +0200 Subject: [PATCH 43/70] Fix tools json generation --- tools/gen_tools_json.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tools/gen_tools_json.py b/tools/gen_tools_json.py index a795285b9..f03b73d78 100644 --- a/tools/gen_tools_json.py +++ b/tools/gen_tools_json.py @@ -27,8 +27,10 @@ def replace_if_xz(system): if not system['url'].endswith(".tar.xz"): return system - new_url = system['url'].replace(".tar.xz", "_signed.tar.gz") - new_name = system['archiveFileName'].replace(".tar.xz", "_signed.tar.gz") + new_url = system['url'].replace(".tar.xz", ".tar.gz") + new_name = system['archiveFileName'].replace(".tar.xz", ".tar.gz") + new_signed_url = system['url'].replace(".tar.xz", "_signed.tar.gz") + new_signed_name = system['archiveFileName'].replace(".tar.xz", "_signed.tar.gz") new_checksum = "" new_size = 0 @@ -40,16 +42,8 @@ def replace_if_xz(system): (owner, proj, version, filename) = urlx[0] release_manifest_url = "https://github.com/%s/%s/releases/download/%s/%s-%s-checksum.sha256" % (owner, proj, version, proj, version) else: - new_url = system['url'].replace(".tar.xz", ".tar.gz") - new_name = system['archiveFileName'].replace(".tar.xz", ".tar.gz") - # parse the download url to extract all info needed for the checksum file url - urlx = re.findall("^https://github.com/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/releases/download/([a-zA-Z0-9_\-.]+)/([a-zA-Z0-9_\-.]+)$", new_url) - if urlx and len(urlx) > 0: - (owner, proj, version, filename) = urlx[0] - release_manifest_url = "https://github.com/%s/%s/releases/download/%s/%s-%s-checksum.sha256" % (owner, proj, version, proj, version) - else: - print("No manifest match") - return system + print("No manifest match") + return system # check if we have already downloaded and parsed that manifest manifest_index = 0 @@ -84,6 +78,12 @@ def replace_if_xz(system): release_manifests.append(manifest) # find the new file in the list and get it's size and checksum + for file in release_manifests[manifest_index]['files']: + if file['name'] == new_signed_name: + print("Found a signed version of the file") + new_url = new_signed_url + new_name = new_signed_name + break for file in release_manifests[manifest_index]['files']: if file['name'] == new_name: system['url'] = new_url From 43e5553eeff8e28c296b24c41cd0823d1e4c18cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Tue, 4 Feb 2025 22:59:32 +0100 Subject: [PATCH 44/70] fix(zigbee): Exclude correct libs for 1.6.2 version (#269) --- tools/copy-libs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index 21efe1a78..17014e70d 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -95,7 +95,7 @@ fi if [ -d "managed_components/espressif__esp-zboss-lib/lib/$IDF_TARGET/" ]; then cp -r "managed_components/espressif__esp-zboss-lib/lib/$IDF_TARGET"/* "$AR_SDK/lib/" - EXCLUDE_LIBS+="zboss_stack.ed;zboss_port.debug;" + EXCLUDE_LIBS+="zboss_stack.ed;zboss_port.native.debug;" fi #collect includes, defines and c-flags From ffdf58bb89214802251d334cb1f9cdafadd93f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Wed, 5 Feb 2025 11:14:11 +0100 Subject: [PATCH 45/70] fix(zigbee): Update exclude libs in script (#274) --- tools/copy-libs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index 17014e70d..53e41eee5 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -90,12 +90,12 @@ fi # copy zigbee + zboss lib if [ -d "managed_components/espressif__esp-zigbee-lib/lib/$IDF_TARGET/" ]; then cp -r "managed_components/espressif__esp-zigbee-lib/lib/$IDF_TARGET"/* "$AR_SDK/lib/" - EXCLUDE_LIBS+="esp_zb_api_ed;" + EXCLUDE_LIBS+="esp_zb_api.ed;" fi if [ -d "managed_components/espressif__esp-zboss-lib/lib/$IDF_TARGET/" ]; then cp -r "managed_components/espressif__esp-zboss-lib/lib/$IDF_TARGET"/* "$AR_SDK/lib/" - EXCLUDE_LIBS+="zboss_stack.ed;zboss_port.native.debug;" + EXCLUDE_LIBS+="zboss_stack.ed;zboss_port.native;zboss_port.native.debug;" fi #collect includes, defines and c-flags From 3225f04b8efad7d11286cd27dfef60ac361bfcba Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 18 Feb 2025 11:48:43 +0200 Subject: [PATCH 46/70] Update target branches --- .github/workflows/cron.yml | 8 ++++---- tools/config.sh | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index 31c578ef7..8a8f721db 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -35,11 +35,11 @@ jobs: # - idf_branch: "release/v5.1" # lib_builder_branch: "release/v5.1" # targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" - - idf_branch: "release/v5.3" - lib_builder_branch: "master" - targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" + # - idf_branch: "release/v5.3" + # lib_builder_branch: "master" + # targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" - idf_branch: "release/v5.4" - lib_builder_branch: "release/v5.4" + lib_builder_branch: "master" targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" - idf_branch: "master" lib_builder_branch: "release/v5.5" diff --git a/tools/config.sh b/tools/config.sh index 1b2941e97..79d4feef5 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -10,7 +10,7 @@ if [ -z $IDF_BRANCH ]; then fi if [ -z $AR_PR_TARGET_BRANCH ]; then - AR_PR_TARGET_BRANCH="release/v3.2.x" + AR_PR_TARGET_BRANCH="master" fi if [ -z $IDF_TARGET ]; then From 5d86a90635cc9c695913503315284fd47b4c192a Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Tue, 18 Feb 2025 21:57:38 +0100 Subject: [PATCH 47/70] Delete removed Zigbee RCP mode / rename of libs --- configs/pioarduino_start.txt | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/configs/pioarduino_start.txt b/configs/pioarduino_start.txt index c5174173d..ec10a10dc 100644 --- a/configs/pioarduino_start.txt +++ b/configs/pioarduino_start.txt @@ -45,28 +45,17 @@ flatten_cppdefines = env.Flatten(env['CPPDEFINES']) if "ZIGBEE_MODE_ZCZR" in flatten_cppdefines: env.Append( LIBS=[ - "-lesp_zb_api_zczr", - "-lesp_zb_cli_command", + "-lesp_zb_api.zczr", "-lzboss_stack.zczr", - "-lzboss_port" + "-lzboss_port.native" ] ) if "ZIGBEE_MODE_ED" in flatten_cppdefines: env.Append( LIBS=[ - "-lesp_zb_api_ed", - "-lesp_zb_cli_command", + "-lesp_zb_api.ed", "-lzboss_stack.ed", - "-lzboss_port" - ] - ) -if "ZIGBEE_MODE_RCP" in flatten_cppdefines: - env.Append( - LIBS=[ - "-lesp_zb_api_rcp", - "-lesp_zb_cli_command", - "-lzboss_stack.rcp", - "-lzboss_port" + "-lzboss_port.native" ] ) From 252044546d2eb42a64401c71df580e4841ebcb7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:31:53 +0100 Subject: [PATCH 48/70] feat(zigbee): Enable Zigbee by default on all chips --- configs/defconfig.common | 3 +++ configs/defconfig.esp32c6 | 1 - configs/defconfig.esp32h2 | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/configs/defconfig.common b/configs/defconfig.common index bf5d1197f..2fc18a697 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -134,3 +134,6 @@ CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y #TinyUSB Config CONFIG_TINYUSB_CDC_MAX_PORTS=2 + +# Zigbee Config +CONFIG_ZB_ENABLED=y diff --git a/configs/defconfig.esp32c6 b/configs/defconfig.esp32c6 index 8a45b0eed..d0e2b7bbd 100644 --- a/configs/defconfig.esp32c6 +++ b/configs/defconfig.esp32c6 @@ -45,7 +45,6 @@ CONFIG_ENABLE_MATTER_OVER_THREAD=n # # Zigbee # -CONFIG_ZB_ENABLED=y CONFIG_ZB_ZED=y CONFIG_ZB_RADIO_NATIVE=y # end of Zigbee diff --git a/configs/defconfig.esp32h2 b/configs/defconfig.esp32h2 index 9bc304886..024120d34 100644 --- a/configs/defconfig.esp32h2 +++ b/configs/defconfig.esp32h2 @@ -38,7 +38,6 @@ CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" # # Zigbee # -CONFIG_ZB_ENABLED=y CONFIG_ZB_ZED=y CONFIG_ZB_RADIO_NATIVE=y # end of Zigbee From 4ed776080713d42e786f7179b13b8557fc67707c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Thu, 20 Feb 2025 19:09:07 +0100 Subject: [PATCH 49/70] fix(libs): Add also zcrz and remote zb libs to exclude --- tools/copy-libs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index 53e41eee5..5c71c72ab 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -90,12 +90,12 @@ fi # copy zigbee + zboss lib if [ -d "managed_components/espressif__esp-zigbee-lib/lib/$IDF_TARGET/" ]; then cp -r "managed_components/espressif__esp-zigbee-lib/lib/$IDF_TARGET"/* "$AR_SDK/lib/" - EXCLUDE_LIBS+="esp_zb_api.ed;" + EXCLUDE_LIBS+="esp_zb_api.ed;esp_zb_api.zczr;" fi if [ -d "managed_components/espressif__esp-zboss-lib/lib/$IDF_TARGET/" ]; then cp -r "managed_components/espressif__esp-zboss-lib/lib/$IDF_TARGET"/* "$AR_SDK/lib/" - EXCLUDE_LIBS+="zboss_stack.ed;zboss_port.native;zboss_port.native.debug;" + EXCLUDE_LIBS+="zboss_stack.ed;zboss_stack.zczr;zboss_port.native;zboss_port.native.debug;zboss_port.remote;zboss_port.remote.debug;" fi #collect includes, defines and c-flags From 5db5d9aea007f55e4983ad74de17204649829725 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 25 Feb 2025 10:30:06 +0200 Subject: [PATCH 50/70] Update PR Title and commit messages to Arduino --- tools/check-deploy-needed.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/check-deploy-needed.sh b/tools/check-deploy-needed.sh index e33cc169c..28a95ee7e 100755 --- a/tools/check-deploy-needed.sh +++ b/tools/check-deploy-needed.sh @@ -33,8 +33,8 @@ fi # format new branch name and pr title AR_NEW_BRANCH_NAME="idf-$IDF_BRANCH" -AR_NEW_COMMIT_MESSAGE="IDF $IDF_BRANCH $IDF_COMMIT" -AR_NEW_PR_TITLE="IDF $IDF_BRANCH" +AR_NEW_COMMIT_MESSAGE="ci(libs): ESP-IDF $IDF_BRANCH $IDF_COMMIT" +AR_NEW_PR_TITLE="ci(libs): ESP-IDF $IDF_BRANCH" LIBS_RELEASE_TAG="idf-"${IDF_BRANCH//\//_}"" LIBS_VERSION_PREFIX="$LIBS_RELEASE_TAG-$IDF_COMMIT-v" From 16a6e09d397baa2fb58a34dd6abf45d9307100c4 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 26 Feb 2025 16:14:00 +0200 Subject: [PATCH 51/70] Revert "Update PR Title and commit messages to Arduino" This reverts commit 5db5d9aea007f55e4983ad74de17204649829725. --- tools/check-deploy-needed.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/check-deploy-needed.sh b/tools/check-deploy-needed.sh index 28a95ee7e..e33cc169c 100755 --- a/tools/check-deploy-needed.sh +++ b/tools/check-deploy-needed.sh @@ -33,8 +33,8 @@ fi # format new branch name and pr title AR_NEW_BRANCH_NAME="idf-$IDF_BRANCH" -AR_NEW_COMMIT_MESSAGE="ci(libs): ESP-IDF $IDF_BRANCH $IDF_COMMIT" -AR_NEW_PR_TITLE="ci(libs): ESP-IDF $IDF_BRANCH" +AR_NEW_COMMIT_MESSAGE="IDF $IDF_BRANCH $IDF_COMMIT" +AR_NEW_PR_TITLE="IDF $IDF_BRANCH" LIBS_RELEASE_TAG="idf-"${IDF_BRANCH//\//_}"" LIBS_VERSION_PREFIX="$LIBS_RELEASE_TAG-$IDF_COMMIT-v" From 206744855a44ab7332147431ddc4433c93f9c5df Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Thu, 6 Mar 2025 13:11:22 -0300 Subject: [PATCH 52/70] feat(matter): updates matter version to 1.4 --- main/idf_component.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/idf_component.yml b/main/idf_component.yml index c6bb97f46..8c574bb08 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -17,7 +17,7 @@ dependencies: rules: - if: "target in [esp32s3]" espressif/esp_matter: - version: "^1.3.0" + version: "^1.4.0" require: public rules: - if: "target not in [esp32c2, esp32h2, esp32p4]" From a401c5baa24b14515d6dcc7d0c78d0c216dc5ceb Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Fri, 7 Mar 2025 11:21:26 +0200 Subject: [PATCH 53/70] Enable I2S_ISR_IRAM_SAFE to fix bug in ESP-IDF --- configs/defconfig.common | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/defconfig.common b/configs/defconfig.common index 2fc18a697..621256ba7 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -121,6 +121,7 @@ CONFIG_ESP_COREDUMP_STACK_SIZE=0 CONFIG_MBEDTLS_DYNAMIC_BUFFER=y CONFIG_MBEDTLS_DYNAMIC_FREE_PEER_CERT=y CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y +CONFIG_I2S_ISR_IRAM_SAFE=y # # Matter Settings # From fffa99e734a4505fd36d4caf94fbf5cb5f192c5c Mon Sep 17 00:00:00 2001 From: TANAKA Masayuki Date: Fri, 7 Mar 2025 18:26:53 +0900 Subject: [PATCH 54/70] fix(TinyUSB): USB HUB Subport Added, FIFO sizes(Bias Periodic OUT) It is used by USB HUB. And, Supports USB packets of 128 bytes or more. --- configs/defconfig.common | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configs/defconfig.common b/configs/defconfig.common index 2fc18a697..ad01918a7 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -134,6 +134,9 @@ CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y #TinyUSB Config CONFIG_TINYUSB_CDC_MAX_PORTS=2 +CONFIG_USB_HOST_HUBS_SUPPORTED=y +CONFIG_USB_HOST_HUB_MULTI_LEVEL=y +CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT=y # Zigbee Config CONFIG_ZB_ENABLED=y From 3150a1dfabec2b9fa4b5e8be71af90b4d4c05306 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Fri, 7 Mar 2025 16:58:43 +0200 Subject: [PATCH 55/70] Disable custom IP6 LwIP hook --- configs/defconfig.common | 1 - 1 file changed, 1 deletion(-) diff --git a/configs/defconfig.common b/configs/defconfig.common index c0c91d0c4..48baf5081 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -78,7 +78,6 @@ CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT=y CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT=y -CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM=y CONFIG_LWIP_MULTICAST_PING=y CONFIG_LWIP_BROADCAST_PING=y CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 From ce6f1932b49db1aed494871df72fac97592d08b4 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sat, 8 Mar 2025 19:18:26 -0300 Subject: [PATCH 56/70] fixes Matter 1.4 Resolve Include Macro --- tools/copy-libs.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index 5c71c72ab..7c302ab66 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -525,9 +525,10 @@ for flag_file in "c_flags" "cpp_flags" "S_flags"; do sed 's/\\\"-DCHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=\\\"/-DCHIP_HAVE_CONFIG_H/' $FLAGS_DIR/$flag_file > $FLAGS_DIR/$flag_file.temp mv $FLAGS_DIR/$flag_file.temp $FLAGS_DIR/$flag_file done -CHIP_RESOLVE_DIR="$AR_SDK/include/espressif__esp_matter/connectedhomeip/connectedhomeip/src/lib/address_resolve" -sed 's/CHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER//' $CHIP_RESOLVE_DIR/AddressResolve.h > $CHIP_RESOLVE_DIR/AddressResolve_temp.h -mv $CHIP_RESOLVE_DIR/AddressResolve_temp.h $CHIP_RESOLVE_DIR/AddressResolve.h +# this is not necessary for Matter 1.4, but it is for Matter 1.3 +#CHIP_RESOLVE_DIR="$AR_SDK/include/espressif__esp_matter/connectedhomeip/connectedhomeip/src/lib/address_resolve" +#sed 's/CHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER//' $CHIP_RESOLVE_DIR/AddressResolve.h > $CHIP_RESOLVE_DIR/AddressResolve_temp.h +#mv $CHIP_RESOLVE_DIR/AddressResolve_temp.h $CHIP_RESOLVE_DIR/AddressResolve.h # End of Matter Library adjustments # sdkconfig From 91af3d16ec1ecef6e589bd9ca1b48b4fbe137a46 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 19 Mar 2025 17:37:46 +0200 Subject: [PATCH 57/70] Enable TLS 1.3 --- configs/defconfig.common | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/defconfig.common b/configs/defconfig.common index 48baf5081..096556a9f 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -90,6 +90,7 @@ CONFIG_MBEDTLS_CAMELLIA_C=y CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y # CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN is not set CONFIG_MBEDTLS_SSL_PROTO_DTLS=y +CONFIG_MBEDTLS_SSL_PROTO_TLS1_3=y CONFIG_OPENSSL_ASSERT_DO_NOTHING=y CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=2048 CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y From 5c05937d6ea565806dcba24258812cb8dadbe4af Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 19 Mar 2025 18:51:21 -0300 Subject: [PATCH 58/70] ci(workflows): Lock actions to commits and improve readability --- .github/workflows/cron_build.yml | 19 +++++++++++-------- .github/workflows/docker.yml | 12 ++++++------ .github/workflows/push.yml | 13 +++++++------ .github/workflows/repository_dispatch.yml | 11 ++++++++--- 4 files changed, 32 insertions(+), 23 deletions(-) diff --git a/.github/workflows/cron_build.yml b/.github/workflows/cron_build.yml index 8d13759b7..fd9634928 100644 --- a/.github/workflows/cron_build.yml +++ b/.github/workflows/cron_build.yml @@ -41,7 +41,8 @@ jobs: deploy_needed: ${{ steps.check.outputs.deploy_needed }} targets_list: ${{ steps.check.outputs.targets_list }} steps: - - uses: actions/checkout@v4 + - name: Checkout ${{ inputs.lib_builder_branch }} + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: ref: ${{ inputs.lib_builder_branch }} @@ -65,7 +66,8 @@ jobs: matrix: target: ${{ fromJson(needs.check-if-needed.outputs.targets_list) }} steps: - - uses: actions/checkout@v4 + - name: Checkout ${{ inputs.lib_builder_branch }} + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: ref: ${{ inputs.lib_builder_branch }} @@ -88,13 +90,13 @@ jobs: - name: Upload build if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: build-${{ env.libs_branch }}-${{ matrix.target }} path: build - name: Upload library files - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: libs-${{ env.libs_branch }}-${{ matrix.target }} path: dist @@ -105,7 +107,8 @@ jobs: needs: [check-if-needed, build-libs] if: needs.check-if-needed.outputs.deploy_needed == '1' steps: - - uses: actions/checkout@v4 + - name: Checkout ${{ inputs.lib_builder_branch }} + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: ref: ${{ inputs.lib_builder_branch }} @@ -115,7 +118,7 @@ jobs: echo "libs_branch=${branch//\//_}" >> $GITHUB_ENV - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 with: path: dist pattern: libs-${{ env.libs_branch }}-* @@ -125,7 +128,7 @@ jobs: run: bash ./tools/combine-artifacts.sh - name: Upload full esp32-arduino-libs archive - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: esp32-arduino-libs-${{ env.libs_branch }} path: dist/esp32-arduino-libs.zip @@ -154,7 +157,7 @@ jobs: bash ./tools/push-to-arduino.sh - name: Upload package_esp32_index.template.json - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: package-esp32-index-json-${{ env.libs_branch }} path: out/package_esp32_index.template.json diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index d6166a365..c89352150 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -66,23 +66,23 @@ jobs: echo "URL: $URL" - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Login to Docker Hub if: ${{ github.event_name == 'push' }} - uses: docker/login-action@v3 + uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up QEMU for multiarch builds - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 - name: Build and push - uses: docker/build-push-action@v5 + uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0 with: context: tools/docker push: ${{ github.event_name == 'push' }} @@ -94,7 +94,7 @@ jobs: - name: Update Docker Hub repository description (master branch) if: ${{ github.event_name == 'push' && github.ref_type == 'branch' && github.ref_name == 'master' }} - uses: peter-evans/dockerhub-description@v4 + uses: peter-evans/dockerhub-description@e98e4d1628a5f3be2be7c231e50981aee98723ae # v4.0.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 95610c403..756ab0991 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -28,7 +28,8 @@ jobs: target: [esp32, esp32s2, esp32s3, esp32c2, esp32c3, esp32c6, esp32h2, esp32p4] fail-fast: false steps: - - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Install dependencies run: bash ./tools/prepare-ci.sh @@ -38,13 +39,13 @@ jobs: - name: Upload build if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: build-${{ matrix.target }} path: build - name: Upload archive - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: artifacts-${{ matrix.target }} path: dist @@ -55,7 +56,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 with: path: dist pattern: artifacts-* @@ -69,13 +70,13 @@ jobs: cp out/package_esp32_index.template.json dist/package_esp32_index.template.json - name: Upload full esp32-arduino-libs archive - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: esp32-arduino-libs path: dist/esp32-arduino-libs.tar.gz - name: Upload package_esp32_index.template.json - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: package-esp32-index-json path: dist/package_esp32_index.template.json diff --git a/.github/workflows/repository_dispatch.yml b/.github/workflows/repository_dispatch.yml index a18412a3d..62837976b 100644 --- a/.github/workflows/repository_dispatch.yml +++ b/.github/workflows/repository_dispatch.yml @@ -7,25 +7,30 @@ jobs: name: Dispatch Event runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 0 + - name: Install dependencies run: bash ./tools/prepare-ci.sh + - name: Handle Event env: GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} run: bash ./tools/repository_dispatch.sh + - name: Upload build if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: build path: build + - name: Upload archive - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: artifacts path: dist From c4a6b8f289dee1ea92618dfbd91d981ea2f4d1aa Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Thu, 20 Mar 2025 02:00:16 +0200 Subject: [PATCH 59/70] Revert "Enable TLS 1.3" This reverts commit 91af3d16ec1ecef6e589bd9ca1b48b4fbe137a46. --- configs/defconfig.common | 1 - 1 file changed, 1 deletion(-) diff --git a/configs/defconfig.common b/configs/defconfig.common index 096556a9f..48baf5081 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -90,7 +90,6 @@ CONFIG_MBEDTLS_CAMELLIA_C=y CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y # CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN is not set CONFIG_MBEDTLS_SSL_PROTO_DTLS=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_3=y CONFIG_OPENSSL_ASSERT_DO_NOTHING=y CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=2048 CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y From 2e3852231dfddc35cae7c9017713d8c95a1188b9 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Thu, 20 Mar 2025 23:25:22 -0300 Subject: [PATCH 60/70] Update CMakeLists.txt to use gnu++2a instead of 17 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1268b8e68..b79d85c0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,4 +39,4 @@ idf_build_set_property(COMPILE_DEFINITIONS "-DESP32_ARDUINO_LIB_BUILDER" APPEND) ################## ### ESP Matter ### ################## -idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-DCHIP_HAVE_CONFIG_H" APPEND) +idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++2a;-DCHIP_HAVE_CONFIG_H" APPEND) From 33f0b46c4c79eacc5939fa3598c3563cc07828a0 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 15 Apr 2025 16:41:57 +0300 Subject: [PATCH 61/70] Update TinyUSB DWC2 DCD --- .../arduino_tinyusb/patches/dcd_dwc2.patch | 8 +- components/arduino_tinyusb/src/dcd_dwc2.c | 106 +++++++++--------- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/components/arduino_tinyusb/patches/dcd_dwc2.patch b/components/arduino_tinyusb/patches/dcd_dwc2.patch index 11c1c05c0..14e6975f0 100644 --- a/components/arduino_tinyusb/patches/dcd_dwc2.patch +++ b/components/arduino_tinyusb/patches/dcd_dwc2.patch @@ -19,11 +19,11 @@ dwc2_regs_t* dwc2 = DWC2_REG(rhport); const uint8_t epnum = tu_edpt_number(p_endpoint_desc->bEndpointAddress); @@ -266,7 +277,18 @@ - depctl.bm.set_data0_iso_even = 1; + depctl.set_data0_iso_even = 1; } if (dir == TUSB_DIR_IN) { -- depctl.bm.tx_fifo_num = epnum; -+ //depctl.bm.tx_fifo_num = epnum; +- depctl.tx_fifo_num = epnum; ++ //depctl.tx_fifo_num = epnum; + uint8_t fifo_num = epnum; +#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) + // Special Case for EP5, which is used by CDC but not actually called by the driver @@ -34,7 +34,7 @@ + fifo_num = get_free_fifo(); + } +#endif -+ depctl.bm.tx_fifo_num = fifo_num; ++ depctl.tx_fifo_num = fifo_num; } dwc2_dep_t* dep = &dwc2->ep[dir == TUSB_DIR_IN ? 0 : 1][epnum]; diff --git a/components/arduino_tinyusb/src/dcd_dwc2.c b/components/arduino_tinyusb/src/dcd_dwc2.c index d6796641a..ea931ab90 100644 --- a/components/arduino_tinyusb/src/dcd_dwc2.c +++ b/components/arduino_tinyusb/src/dcd_dwc2.c @@ -41,12 +41,6 @@ #include "device/dcd.h" #include "dwc2_common.h" -#if TU_CHECK_MCU(OPT_MCU_GD32VF103) - #define DWC2_EP_COUNT(_dwc2) DWC2_EP_MAX -#else - #define DWC2_EP_COUNT(_dwc2) ((_dwc2)->ghwcfg2_bm.num_dev_ep + 1) -#endif - //--------------------------------------------------------------------+ // MACRO TYPEDEF CONSTANT ENUM //--------------------------------------------------------------------+ @@ -79,6 +73,16 @@ CFG_TUD_MEM_SECTION static struct { TUD_EPBUF_DEF(setup_packet, 8); } _dcd_usbbuf; +TU_ATTR_ALWAYS_INLINE static inline uint8_t dwc2_ep_count(const dwc2_regs_t* dwc2) { + #if TU_CHECK_MCU(OPT_MCU_GD32VF103) + return DWC2_EP_MAX; + #else + const dwc2_ghwcfg2_t ghwcfg2 = {.value = dwc2->ghwcfg2}; + return ghwcfg2.num_dev_ep + 1; + #endif +} + + //-------------------------------------------------------------------- // DMA //-------------------------------------------------------------------- @@ -102,7 +106,8 @@ bool dcd_dcache_clean_invalidate(const void* addr, uint32_t data_size) { TU_ATTR_ALWAYS_INLINE static inline bool dma_device_enabled(const dwc2_regs_t* dwc2) { (void) dwc2; // Internal DMA only - return CFG_TUD_DWC2_DMA_ENABLE && dwc2->ghwcfg2_bm.arch == GHWCFG2_ARCH_INTERNAL_DMA; + const dwc2_ghwcfg2_t ghwcfg2 = {.value = dwc2->ghwcfg2}; + return CFG_TUD_DWC2_DMA_ENABLE && ghwcfg2.arch == GHWCFG2_ARCH_INTERNAL_DMA; } static void dma_setup_prepare(uint8_t rhport) { @@ -261,20 +266,15 @@ static void edpt_activate(uint8_t rhport, const tusb_desc_endpoint_t* p_endpoint xfer->interval = p_endpoint_desc->bInterval; // Endpoint control - union { - uint32_t value; - dwc2_depctl_t bm; - } depctl; - depctl.value = 0; - - depctl.bm.mps = xfer->max_size; - depctl.bm.active = 1; - depctl.bm.type = p_endpoint_desc->bmAttributes.xfer; + dwc2_depctl_t depctl = {.value = 0}; + depctl.mps = xfer->max_size; + depctl.active = 1; + depctl.type = p_endpoint_desc->bmAttributes.xfer; if (p_endpoint_desc->bmAttributes.xfer != TUSB_XFER_ISOCHRONOUS) { - depctl.bm.set_data0_iso_even = 1; + depctl.set_data0_iso_even = 1; } if (dir == TUSB_DIR_IN) { - //depctl.bm.tx_fifo_num = epnum; + //depctl.tx_fifo_num = epnum; uint8_t fifo_num = epnum; #if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) // Special Case for EP5, which is used by CDC but not actually called by the driver @@ -285,7 +285,7 @@ static void edpt_activate(uint8_t rhport, const tusb_desc_endpoint_t* p_endpoint fifo_num = get_free_fifo(); } #endif - depctl.bm.tx_fifo_num = fifo_num; + depctl.tx_fifo_num = fifo_num; } dwc2_dep_t* dep = &dwc2->ep[dir == TUSB_DIR_IN ? 0 : 1][epnum]; @@ -365,31 +365,22 @@ static void edpt_schedule_packets(uint8_t rhport, const uint8_t epnum, const uin } // transfer size: A full OUT transfer (multiple packets, possibly) triggers XFRC. - union { - uint32_t value; - dwc2_ep_tsize_t bm; - } deptsiz; - deptsiz.value = 0; - deptsiz.bm.xfer_size = total_bytes; - deptsiz.bm.packet_count = num_packets; - + dwc2_ep_tsize_t deptsiz = {.value = 0}; + deptsiz.xfer_size = total_bytes; + deptsiz.packet_count = num_packets; dep->tsiz = deptsiz.value; // control - union { - dwc2_depctl_t bm; - uint32_t value; - } depctl; - depctl.value = dep->ctl; - - depctl.bm.clear_nak = 1; - depctl.bm.enable = 1; - if (depctl.bm.type == DEPCTL_EPTYPE_ISOCHRONOUS && xfer->interval == 1) { - const uint32_t odd_now = (dwc2->dsts_bm.frame_number & 1u); + dwc2_depctl_t depctl = {.value = dep->ctl}; + depctl.clear_nak = 1; + depctl.enable = 1; + if (depctl.type == DEPCTL_EPTYPE_ISOCHRONOUS && xfer->interval == 1) { + const dwc2_dsts_t dsts = {.value = dwc2->dsts}; + const uint32_t odd_now = dsts.frame_number & 1u; if (odd_now) { - depctl.bm.set_data0_iso_even = 1; + depctl.set_data0_iso_even = 1; } else { - depctl.bm.set_data1_iso_odd = 1; + depctl.set_data1_iso_odd = 1; } } @@ -432,7 +423,8 @@ bool dcd_init(uint8_t rhport, const tusb_rhport_init_t* rh_init) { // XCVRDLY: transceiver delay between xcvr_sel and txvalid during device chirp is required // when using with some PHYs such as USB334x (USB3341, USB3343, USB3346, USB3347) - if (dwc2->ghwcfg2_bm.hs_phy_type == GHWCFG2_HSPHY_ULPI) { + const dwc2_ghwcfg2_t ghwcfg2 = {.value = dwc2->ghwcfg2}; + if (ghwcfg2.hs_phy_type == GHWCFG2_HSPHY_ULPI) { dcfg |= DCFG_XCVRDLY; } } else { @@ -667,7 +659,7 @@ void dcd_edpt_clear_stall(uint8_t rhport, uint8_t ep_addr) { // 7.4.1 Initialization on USB Reset static void handle_bus_reset(uint8_t rhport) { dwc2_regs_t *dwc2 = DWC2_REG(rhport); - const uint8_t ep_count = DWC2_EP_COUNT(dwc2); + const uint8_t ep_count = dwc2_ep_count(dwc2); tu_memclr(xfer_status, sizeof(xfer_status)); @@ -697,7 +689,9 @@ static void handle_bus_reset(uint8_t rhport) { dfifo_device_init(rhport); // 5. Reset device address - dwc2->dcfg_bm.address = 0; + dwc2_dcfg_t dcfg = {.value = dwc2->dcfg}; + dcfg.address = 0; + dwc2->dcfg = dcfg.value; // Fixed both control EP0 size to 64 bytes dwc2->epin[0].ctl &= ~(0x03 << DIEPCTL_MPSIZ_Pos); @@ -717,8 +711,9 @@ static void handle_bus_reset(uint8_t rhport) { static void handle_enum_done(uint8_t rhport) { dwc2_regs_t *dwc2 = DWC2_REG(rhport); + const dwc2_dsts_t dsts = {.value = dwc2->dsts}; tusb_speed_t speed; - switch (dwc2->dsts_bm.enum_speed) { + switch (dsts.enum_speed) { case DCFG_SPEED_HIGH: speed = TUSB_SPEED_HIGH; break; @@ -763,12 +758,12 @@ static void handle_rxflvl_irq(uint8_t rhport) { const volatile uint32_t* rx_fifo = dwc2->fifo[0]; // Pop control word off FIFO - const dwc2_grxstsp_t grxstsp_bm = dwc2->grxstsp_bm; - const uint8_t epnum = grxstsp_bm.ep_ch_num; + const dwc2_grxstsp_t grxstsp = {.value = dwc2->grxstsp}; + const uint8_t epnum = grxstsp.ep_ch_num; dwc2_dep_t* epout = &dwc2->epout[epnum]; - switch (grxstsp_bm.packet_status) { + switch (grxstsp.packet_status) { case GRXSTS_PKTSTS_GLOBAL_OUT_NAK: // Global OUT NAK: do nothing break; @@ -790,7 +785,7 @@ static void handle_rxflvl_irq(uint8_t rhport) { case GRXSTS_PKTSTS_RX_DATA: { // Out packet received - const uint16_t byte_count = grxstsp_bm.byte_count; + const uint16_t byte_count = grxstsp.byte_count; xfer_ctl_t* xfer = XFER_CTL_BASE(epnum, TUSB_DIR_OUT); if (byte_count) { @@ -804,7 +799,8 @@ static void handle_rxflvl_irq(uint8_t rhport) { // short packet, minus remaining bytes (xfer_size) if (byte_count < xfer->max_size) { - xfer->total_len -= epout->tsiz_bm.xfer_size; + const dwc2_ep_tsize_t tsiz = {.value = epout->tsiz}; + xfer->total_len -= tsiz.xfer_size; if (epnum == 0) { xfer->total_len -= _dcd_data.ep0_pending[TUSB_DIR_OUT]; _dcd_data.ep0_pending[TUSB_DIR_OUT] = 0; @@ -866,11 +862,13 @@ static void handle_epin_slave(uint8_t rhport, uint8_t epnum, dwc2_diepint_t diep // - 64 bytes or // - Half/Empty of TX FIFO size (configured by GAHBCFG.TXFELVL) if (diepint_bm.txfifo_empty && (dwc2->diepempmsk & (1 << epnum))) { - const uint16_t remain_packets = epin->tsiz_bm.packet_count; + dwc2_ep_tsize_t tsiz = {.value = epin->tsiz}; + const uint16_t remain_packets = tsiz.packet_count; // Process every single packet (only whole packets can be written to fifo) for (uint16_t i = 0; i < remain_packets; i++) { - const uint16_t remain_bytes = (uint16_t) epin->tsiz_bm.xfer_size; + tsiz.value = epin->tsiz; + const uint16_t remain_bytes = (uint16_t) tsiz.xfer_size; const uint16_t xact_bytes = tu_min16(remain_bytes, xfer->max_size); // Check if dtxfsts has enough space available @@ -889,7 +887,8 @@ static void handle_epin_slave(uint8_t rhport, uint8_t epnum, dwc2_diepint_t diep } // Turn off TXFE if all bytes are written. - if (epin->tsiz_bm.xfer_size == 0) { + tsiz.value = epin->tsiz; + if (tsiz.xfer_size == 0) { dwc2->diepempmsk &= ~(1 << epnum); } } @@ -920,7 +919,8 @@ static void handle_epout_dma(uint8_t rhport, uint8_t epnum, dwc2_doepint_t doepi xfer_ctl_t* xfer = XFER_CTL_BASE(epnum, TUSB_DIR_OUT); // determine actual received bytes - const uint16_t remain = epout->tsiz_bm.xfer_size; + const dwc2_ep_tsize_t tsiz = {.value = epout->tsiz}; + const uint16_t remain = tsiz.xfer_size; xfer->total_len -= remain; // this is ZLP, so prepare EP0 for next setup @@ -956,7 +956,7 @@ static void handle_epin_dma(uint8_t rhport, uint8_t epnum, dwc2_diepint_t diepin static void handle_ep_irq(uint8_t rhport, uint8_t dir) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); const bool is_dma = dma_device_enabled(dwc2); - const uint8_t ep_count = DWC2_EP_COUNT(dwc2); + const uint8_t ep_count = dwc2_ep_count(dwc2); const uint8_t daint_offset = (dir == TUSB_DIR_IN) ? DAINT_IEPINT_Pos : DAINT_OEPINT_Pos; dwc2_dep_t* ep_base = &dwc2->ep[dir == TUSB_DIR_IN ? 0 : 1][0]; From 6685e7b71234fe2852b676e1eef9bf93cdcfb29d Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Mon, 12 May 2025 06:59:53 -0300 Subject: [PATCH 62/70] feat(esp_matter): updates esp_matter component to 1.4.1 Fixes many warning messages when compiling sketches that use Arduino Matter Library. Fixes the `asset()` issue with `-DNDEBUG` --- main/idf_component.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/idf_component.yml b/main/idf_component.yml index 8c574bb08..a398fa272 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -17,7 +17,7 @@ dependencies: rules: - if: "target in [esp32s3]" espressif/esp_matter: - version: "^1.4.0" + version: "^1.4.1" require: public rules: - if: "target not in [esp32c2, esp32h2, esp32p4]" From 4304a24cb17f0429d956e9440cb966f65ff68363 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Mon, 12 May 2025 08:25:08 -0300 Subject: [PATCH 63/70] fix(esp_matter): use fixed esp_matter version --- main/idf_component.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/idf_component.yml b/main/idf_component.yml index a398fa272..a85eca541 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -17,7 +17,7 @@ dependencies: rules: - if: "target in [esp32s3]" espressif/esp_matter: - version: "^1.4.1" + version: "1.4.1" require: public rules: - if: "target not in [esp32c2, esp32h2, esp32p4]" From ff441d3fbb9e06307601ad15ff30aa5728901db0 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 13 May 2025 10:41:07 +0200 Subject: [PATCH 64/70] Disable CONFIG_LCD_RGB_ISR_IRAM_SAFE --- configs/defconfig.esp32s3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/defconfig.esp32s3 b/configs/defconfig.esp32s3 index ce53e7747..36fa6b6a5 100644 --- a/configs/defconfig.esp32s3 +++ b/configs/defconfig.esp32s3 @@ -19,5 +19,5 @@ CONFIG_ULP_COPROC_TYPE_FSM=y CONFIG_ULP_COPROC_RESERVE_MEM=512 # RGB Display Optimizations -CONFIG_LCD_RGB_ISR_IRAM_SAFE=y +# CONFIG_LCD_RGB_ISR_IRAM_SAFE is not set CONFIG_LCD_RGB_RESTART_IN_VSYNC=y From d7bdda2c445100aaa3c94cd4728df77b33af323f Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Fri, 16 May 2025 19:56:41 +0200 Subject: [PATCH 65/70] Update cron target branches --- .github/workflows/cron.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index 8a8f721db..ade7e7fa5 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -36,11 +36,11 @@ jobs: # lib_builder_branch: "release/v5.1" # targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" # - idf_branch: "release/v5.3" - # lib_builder_branch: "master" + # lib_builder_branch: "release/v5.3" # targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" - idf_branch: "release/v5.4" lib_builder_branch: "master" targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" - - idf_branch: "master" + - idf_branch: "release/v5.5" lib_builder_branch: "release/v5.5" targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4,esp32c5" From 1a35d2df15ec5279385fe1715af5606c49775415 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Thu, 22 May 2025 19:35:35 +0300 Subject: [PATCH 66/70] fix(deploy): Increase page limit and add pagination to releases --- tools/config.sh | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/tools/config.sh b/tools/config.sh index 79d4feef5..4f17d8a12 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -108,7 +108,7 @@ function github_get_libs_idf(){ # github_get_libs_idf local version_found="" local libs_version="" - while [[ "$libs_version" == "" && "$page" -le 3 ]]; do + while [[ "$libs_version" == "" && "$page" -le 5 ]]; do # Get the latest commit message that matches the prefix and extract the hash from the last commit message version_found=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/commits?sha=$branch_name&per_page=100&page=$page" | \ jq -r --arg prefix "$message_prefix" '[ .[] | select(.commit.message | test($prefix + " [a-f0-9]{8}")) ][0] | .commit.message' | \ @@ -131,7 +131,7 @@ function github_commit_exists(){ #github_commit_exists local page=1 local commits_found=0 - while [ "$page" -le 3 ]; do + while [ "$page" -le 5 ]; do local response=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/commits?sha=$branch_name&per_page=100&page=$page"` if [[ -z "$response" || "$response" == "[]" ]]; then @@ -178,16 +178,52 @@ function github_pr_exists(){ # github_pr_exists function github_release_id(){ # github_release_id local repo_path="$1" local release_tag="$2" - local release=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/releases" | jq --arg release_tag "$release_tag" -r '.[] | select(.tag_name == $release_tag) | .id'` - if [ ! "$release" == "" ] && [ ! "$release" == "null" ]; then echo "$release"; else echo ""; fi + local page=1 + local release_id="" + + while [[ "$page" -le 3 ]]; do + local response=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/releases?per_page=100&page=$page"` + + if [[ -z "$response" || "$response" == "[]" ]]; then + break + fi + + local release=`echo "$response" | jq --arg release_tag "$release_tag" -r '.[] | select(.tag_name == $release_tag) | .id'` + if [ ! "$release" == "" ] && [ ! "$release" == "null" ]; then + release_id=$release + break + fi + + page=$((page+1)) + done + + echo "$release_id" } function github_release_asset_id(){ # github_release_asset_id local repo_path="$1" local release_id="$2" local release_file="$3" - local release_asset=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/releases/$release_id/assets" | jq --arg release_file "$release_file" -r '.[] | select(.name == $release_file) | .id'` - if [ ! "$release_asset" == "" ] && [ ! "$release_asset" == "null" ]; then echo "$release_asset"; else echo ""; fi + local page=1 + local asset_id="" + + while [[ "$page" -le 5 ]]; do + local response=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$repo_path/releases/$release_id/assets?per_page=100&page=$page"` + + if [[ -z "$response" || "$response" == "[]" ]]; then + break + fi + + local release_asset=`echo "$response" | jq --arg release_file "$release_file" -r '.[] | select(.name == $release_file) | .id'` + if [ ! "$release_asset" == "" ] && [ ! "$release_asset" == "null" ]; then + asset_id=$release_asset + break + fi + + page=$((page+1)) + done + + echo "$asset_id" } function github_release_asset_upload(){ # github_release_asset_upload From fdb4a87b69a6e246a6804648af2e9d1410e8f071 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Fri, 30 May 2025 15:50:07 +0300 Subject: [PATCH 67/70] Update TinyUSB DWC2 patch and source --- .../arduino_tinyusb/patches/dcd_dwc2.patch | 4 +- components/arduino_tinyusb/src/dcd_dwc2.c | 71 +++++++++++++------ 2 files changed, 53 insertions(+), 22 deletions(-) diff --git a/components/arduino_tinyusb/patches/dcd_dwc2.patch b/components/arduino_tinyusb/patches/dcd_dwc2.patch index 14e6975f0..2521a38e5 100644 --- a/components/arduino_tinyusb/patches/dcd_dwc2.patch +++ b/components/arduino_tinyusb/patches/dcd_dwc2.patch @@ -56,9 +56,9 @@ +#if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) + _allocated_fifos = 1; +#endif + + usbd_spin_lock(true); handle_bus_reset(rhport); - } - @@ -1008,7 +1037,11 @@ if (gintsts & GINTSTS_USBSUSP) { diff --git a/components/arduino_tinyusb/src/dcd_dwc2.c b/components/arduino_tinyusb/src/dcd_dwc2.c index ea931ab90..b6c3b1b22 100644 --- a/components/arduino_tinyusb/src/dcd_dwc2.c +++ b/components/arduino_tinyusb/src/dcd_dwc2.c @@ -39,6 +39,7 @@ #define DWC2_DEBUG 2 #include "device/dcd.h" +#include "device/usbd_pvt.h" #include "dwc2_common.h" //--------------------------------------------------------------------+ @@ -52,6 +53,7 @@ typedef struct { uint8_t interval; } xfer_ctl_t; +// This variable is modified from ISR context, so it must be protected by critical section static xfer_ctl_t xfer_status[DWC2_EP_MAX][2]; #define XFER_CTL_BASE(_ep, _dir) (&xfer_status[_ep][_dir]) @@ -343,6 +345,9 @@ static void edpt_disable(uint8_t rhport, uint8_t ep_addr, bool stall) { } } +// Since this function returns void, it is not possible to return a boolean success message +// We must make sure that this function is not called when the EP is disabled +// Must be called from critical section static void edpt_schedule_packets(uint8_t rhport, const uint8_t epnum, const uint8_t dir) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); xfer_ctl_t* const xfer = XFER_CTL_BASE(epnum, dir); @@ -553,6 +558,8 @@ void dcd_edpt_close_all(uint8_t rhport) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); uint8_t const ep_count = _dwc2_controller[rhport].ep_count; + usbd_spin_lock(false); + _dcd_data.allocated_epin_count = 0; // Disable non-control interrupt @@ -574,8 +581,9 @@ void dcd_edpt_close_all(uint8_t rhport) { dfifo_flush_tx(dwc2, 0x10); // all tx fifo dfifo_flush_rx(dwc2); - dfifo_device_init(rhport); // re-init dfifo + + usbd_spin_unlock(false); } bool dcd_edpt_iso_alloc(uint8_t rhport, uint8_t ep_addr, uint16_t largest_packet_size) { @@ -593,21 +601,31 @@ bool dcd_edpt_iso_activate(uint8_t rhport, tusb_desc_endpoint_t const * p_endpo bool dcd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t* buffer, uint16_t total_bytes) { uint8_t const epnum = tu_edpt_number(ep_addr); uint8_t const dir = tu_edpt_dir(ep_addr); - xfer_ctl_t* xfer = XFER_CTL_BASE(epnum, dir); - xfer->buffer = buffer; - xfer->ff = NULL; - xfer->total_len = total_bytes; + bool ret; - // EP0 can only handle one packet - if (epnum == 0) { - _dcd_data.ep0_pending[dir] = total_bytes; + usbd_spin_lock(false); + + if (xfer->max_size == 0) { + ret = false; // Endpoint is closed + } else { + xfer->buffer = buffer; + xfer->ff = NULL; + xfer->total_len = total_bytes; + + // EP0 can only handle one packet + if (epnum == 0) { + _dcd_data.ep0_pending[dir] = total_bytes; + } + + // Schedule packets to be sent within interrupt + edpt_schedule_packets(rhport, epnum, dir); + ret = true; } - // Schedule packets to be sent within interrupt - edpt_schedule_packets(rhport, epnum, dir); + usbd_spin_unlock(false); - return true; + return ret; } // The number of bytes has to be given explicitly to allow more flexible control of how many @@ -620,17 +638,27 @@ bool dcd_edpt_xfer_fifo(uint8_t rhport, uint8_t ep_addr, tu_fifo_t* ff, uint16_t uint8_t const epnum = tu_edpt_number(ep_addr); uint8_t const dir = tu_edpt_dir(ep_addr); - xfer_ctl_t* xfer = XFER_CTL_BASE(epnum, dir); - xfer->buffer = NULL; - xfer->ff = ff; - xfer->total_len = total_bytes; + bool ret; - // Schedule packets to be sent within interrupt - // TODO xfer fifo may only available for slave mode - edpt_schedule_packets(rhport, epnum, dir); + usbd_spin_lock(false); - return true; + if (xfer->max_size == 0) { + ret = false; // Endpoint is closed + } else { + xfer->buffer = NULL; + xfer->ff = ff; + xfer->total_len = total_bytes; + + // Schedule packets to be sent within interrupt + // TODO xfer fifo may only available for slave mode + edpt_schedule_packets(rhport, epnum, dir); + ret = true; + } + + usbd_spin_unlock(false); + + return ret; } void dcd_edpt_stall(uint8_t rhport, uint8_t ep_addr) { @@ -657,6 +685,7 @@ void dcd_edpt_clear_stall(uint8_t rhport, uint8_t ep_addr) { //-------------------------------------------------------------------- // 7.4.1 Initialization on USB Reset +// Must be called from critical section static void handle_bus_reset(uint8_t rhport) { dwc2_regs_t *dwc2 = DWC2_REG(rhport); const uint8_t ep_count = dwc2_ep_count(dwc2); @@ -1009,7 +1038,6 @@ static void handle_ep_irq(uint8_t rhport, uint8_t dir) { */ void dcd_int_handler(uint8_t rhport) { dwc2_regs_t* dwc2 = DWC2_REG(rhport); - const uint32_t gintmask = dwc2->gintmsk; const uint32_t gintsts = dwc2->gintsts & gintmask; @@ -1019,7 +1047,10 @@ void dcd_int_handler(uint8_t rhport) { #if TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3) _allocated_fifos = 1; #endif + + usbd_spin_lock(true); handle_bus_reset(rhport); + usbd_spin_unlock(true); } if (gintsts & GINTSTS_ENUMDNE) { From c93087a5f761ba2bdfebcd95755522829393cc65 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 4 Jun 2025 22:01:11 +0300 Subject: [PATCH 68/70] fix(logging): Silence stdout from IDF installation --- tools/install-esp-idf.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/install-esp-idf.sh b/tools/install-esp-idf.sh index 0519ae67a..06a67c354 100755 --- a/tools/install-esp-idf.sh +++ b/tools/install-esp-idf.sh @@ -33,7 +33,8 @@ fi if [ ! -x $idf_was_installed ] || [ ! -x $commit_predefined ]; then git -C $IDF_PATH submodule update --init --recursive - $IDF_PATH/install.sh + echo "Installing ESP-IDF..." + $IDF_PATH/install.sh > /dev/null export IDF_COMMIT=$(git -C "$IDF_PATH" rev-parse --short HEAD) export IDF_BRANCH=$(git -C "$IDF_PATH" symbolic-ref --short HEAD || git -C "$IDF_PATH" tag --points-at HEAD) From b6d66cd945ee32675e14a73a526db8ea7b7e346a Mon Sep 17 00:00:00 2001 From: Liu Zhongwei Date: Wed, 31 Jan 2024 21:04:32 +0800 Subject: [PATCH 69/70] feat(repo): update action & README feat(README): add v3.0.0 bugfix(action): remove origin yml feat(README): update high_perf feat(README): remove debug version feat(docs): add v3.0.2 feat(docs): update actions feat(docs): add v3.1.1 feat(docs): add v3.0.7 --- .github/workflows/build_sdk_auto.yml | 31 +++++ .github/workflows/build_sdk_manual_v2.yml | 40 ++++++ .github/workflows/build_sdk_manual_v3.yml | 56 ++++++++ .github/workflows/cron.yml | 46 ------- .github/workflows/docker.yml | 102 --------------- .github/workflows/push.yml | 83 ------------ .github/workflows/repository_dispatch.yml | 36 ------ README.md | 150 +++++++++++++++++----- docs/_static/auto_step_0-1.png | Bin 0 -> 34260 bytes docs/_static/auto_step_0-2.png | Bin 0 -> 87101 bytes docs/_static/auto_step_1.png | Bin 0 -> 78583 bytes docs/_static/auto_step_2.png | Bin 0 -> 157054 bytes docs/_static/auto_step_3.png | Bin 0 -> 174714 bytes docs/_static/auto_step_4.png | Bin 0 -> 176748 bytes docs/_static/auto_step_5.png | Bin 0 -> 98037 bytes docs/_static/auto_step_6.png | Bin 0 -> 62061 bytes docs/_static/auto_step_7.png | Bin 0 -> 75007 bytes docs/_static/manual_step_0_0.png | Bin 0 -> 68863 bytes docs/_static/manual_step_0_1.png | Bin 0 -> 81610 bytes docs/_static/manual_step_0_2.png | Bin 0 -> 99831 bytes docs/_static/manual_step_1.png | Bin 0 -> 48115 bytes docs/_static/manual_step_2.png | Bin 0 -> 106893 bytes docs/_static/manual_step_3.png | Bin 0 -> 85913 bytes tools/prepare-ci.sh | 3 +- 24 files changed, 250 insertions(+), 297 deletions(-) create mode 100644 .github/workflows/build_sdk_auto.yml create mode 100644 .github/workflows/build_sdk_manual_v2.yml create mode 100644 .github/workflows/build_sdk_manual_v3.yml delete mode 100644 .github/workflows/cron.yml delete mode 100644 .github/workflows/docker.yml delete mode 100644 .github/workflows/push.yml delete mode 100644 .github/workflows/repository_dispatch.yml create mode 100644 docs/_static/auto_step_0-1.png create mode 100644 docs/_static/auto_step_0-2.png create mode 100644 docs/_static/auto_step_1.png create mode 100644 docs/_static/auto_step_2.png create mode 100644 docs/_static/auto_step_3.png create mode 100644 docs/_static/auto_step_4.png create mode 100644 docs/_static/auto_step_5.png create mode 100644 docs/_static/auto_step_6.png create mode 100644 docs/_static/auto_step_7.png create mode 100644 docs/_static/manual_step_0_0.png create mode 100644 docs/_static/manual_step_0_1.png create mode 100644 docs/_static/manual_step_0_2.png create mode 100644 docs/_static/manual_step_1.png create mode 100644 docs/_static/manual_step_2.png create mode 100644 docs/_static/manual_step_3.png diff --git a/.github/workflows/build_sdk_auto.yml b/.github/workflows/build_sdk_auto.yml new file mode 100644 index 000000000..c7b5aa6fd --- /dev/null +++ b/.github/workflows/build_sdk_auto.yml @@ -0,0 +1,31 @@ +name: Auto Build SDK For All Targets + +on: + push: + branches: + - '*' + - '!master' + +jobs: + run: + name: Build ${{ github.ref_name }} SDK For all + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install dependencies + run: bash ./tools/prepare-ci.sh + + - name: Build + shell: bash + run: | + echo "Building for all" + bash ./build.sh -e -t all + + - name: Upload archive + uses: actions/upload-artifact@v4 + with: + name: artifacts + path: dist \ No newline at end of file diff --git a/.github/workflows/build_sdk_manual_v2.yml b/.github/workflows/build_sdk_manual_v2.yml new file mode 100644 index 000000000..634551727 --- /dev/null +++ b/.github/workflows/build_sdk_manual_v2.yml @@ -0,0 +1,40 @@ +name: Manual Build SDK (v2) For the Specific Target + +on: + workflow_dispatch: + inputs: + target: + type: choice + description: Choose Target + default: 'all' + options: + - 'all' + - 'esp32' + - 'esp32s2' + - 'esp32s3' + - 'esp32c3' + +jobs: + run: + name: Build ${{ github.ref_name }} SDK (v2) For ${{ github.event.inputs.target }} + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install dependencies + run: bash ./tools/prepare-ci.sh + + - name: Build + shell: bash + run: | + export TARGET_TYPE=${{ github.event.inputs.target }} + echo "Building for $TARGET_TYPE" + bash ./build.sh -e -t $TARGET_TYPE + + - name: Upload archive + uses: actions/upload-artifact@v3 + with: + name: artifacts + path: dist \ No newline at end of file diff --git a/.github/workflows/build_sdk_manual_v3.yml b/.github/workflows/build_sdk_manual_v3.yml new file mode 100644 index 000000000..409dc4e43 --- /dev/null +++ b/.github/workflows/build_sdk_manual_v3.yml @@ -0,0 +1,56 @@ +name: Manual Build SDK (v3) For the Specific Target + +on: + workflow_dispatch: + inputs: + target: + type: choice + description: Choose Target + default: 'all' + options: + - 'all' + - 'esp32' + - 'esp32s2' + - 'esp32s3' + - 'esp32c3' + - 'esp32c6' + - 'esp32h6' + - 'esp32p4' + log_level: + type: choice + description: Choose Log Level + default: 'default' + options: + - 'default' + - 'none' + - 'verbose' + - 'debug' + - 'info' + - 'warning' + - 'error' + +jobs: + run: + name: Build ${{ github.ref_name }} SDK (v3) For ${{ github.event.inputs.target }} + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install dependencies + run: bash ./tools/prepare-ci.sh + + - name: Build + shell: bash + run: | + export TARGET_TYPE=${{ github.event.inputs.target }} + export LOG_LEVEL=${{ github.event.inputs.log_level }} + echo "Building for $TARGET_TYPE (log_level: $LOG_LEVEL)" + bash ./build.sh -e -t $TARGET_TYPE -D $LOG_LEVEL + + - name: Upload archive + uses: actions/upload-artifact@v4 + with: + name: artifacts + path: dist \ No newline at end of file diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml deleted file mode 100644 index ade7e7fa5..000000000 --- a/.github/workflows/cron.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Cron Deploy - -on: - schedule: -# ┌───────────── minute (0 - 59) -# │ ┌───────────── hour (0 - 23) -# │ │ ┌───────────── day of the month (1 - 31) -# │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) -# │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) -# │ │ │ │ │ -# │ │ │ │ │ -# │ │ │ │ │ -# * * * * * - - cron: '0 */6 * * *' - workflow_dispatch: # For manually rebuilding the libraries - -defaults: - run: - shell: bash - -jobs: - build-libs: - name: Build with IDF ${{ matrix.idf_branch }} - if: github.repository_owner == 'espressif' - uses: ./.github/workflows/cron_build.yml - with: - idf_branch: ${{ matrix.idf_branch }} - lib_builder_branch: ${{ matrix.lib_builder_branch }} - targets: ${{ matrix.targets }} - secrets: inherit - strategy: - fail-fast: false - matrix: - include: - # - idf_branch: "release/v5.1" - # lib_builder_branch: "release/v5.1" - # targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2" - # - idf_branch: "release/v5.3" - # lib_builder_branch: "release/v5.3" - # targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" - - idf_branch: "release/v5.4" - lib_builder_branch: "master" - targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4" - - idf_branch: "release/v5.5" - lib_builder_branch: "release/v5.5" - targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4,esp32c5" diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index c89352150..000000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,102 +0,0 @@ -name: Build and push Docker image - -on: - push: - branches: - - 'master' - - 'release/*' - tags: - - 'v*.*' - pull_request: - paths: - - ".github/workflows/docker.yml" - - "tools/config_editor/requirements.txt" - - "tools/docker/Dockerfile" - - "tools/docker/entrypoint.sh" - -env: - # Build the image for amd64 and arm64 - BUILD_PLATFORMS: linux/amd64,linux/arm64 - DOCKERHUB_REPO: ${{ github.repository_owner }}/esp32-arduino-lib-builder - -jobs: - docker: - # Disable the job in forks - if: ${{ github.event_name == 'pull_request' || github.repository_owner == 'espressif' }} - name: Build docker image and push if needed - runs-on: ubuntu-latest - steps: - # Depending on the branch/tag, set CLONE_BRANCH_OR_TAG variable (used in the Dockerfile - # as a build arg) and TAG_NAME (used when tagging the image). - # - # The following 3 steps cover the alternatives (tag, release branch, master branch): - - name: Set variables (tags) - if: ${{ github.ref_type == 'tag' }} - run: | - echo "CLONE_BRANCH_OR_TAG=$GITHUB_REF_NAME" >> $GITHUB_ENV - echo "TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV - echo "URL=${{ github.server_url }}/${{ github.repository }}.git" >> $GITHUB_ENV - - - name: Set variables (release branches) - if: ${{ github.ref_type == 'branch' && startsWith(github.ref_name, 'release/') }} - run: | - echo "CLONE_BRANCH_OR_TAG=$GITHUB_REF_NAME" >> $GITHUB_ENV - echo "TAG_NAME=release-${GITHUB_REF_NAME##release/}" >> $GITHUB_ENV - echo "URL=${{ github.server_url }}/${{ github.repository }}.git" >> $GITHUB_ENV - - - name: Set variables (main branch) - if: ${{ github.ref_type == 'branch' && github.ref_name == 'master' }} - run: | - echo "CLONE_BRANCH_OR_TAG=master" >> $GITHUB_ENV - echo "TAG_NAME=latest" >> $GITHUB_ENV - echo "URL=${{ github.server_url }}/${{ github.repository }}.git" >> $GITHUB_ENV - - - name: Set variables (pull requests) - if: ${{ github.event_name == 'pull_request' }} - run: | - echo "CLONE_BRANCH_OR_TAG=${{ github.event.pull_request.head.ref }}" >> $GITHUB_ENV - echo "TAG_NAME=PR_${{ github.event.number }}" >> $GITHUB_ENV - echo "URL=${{ github.server_url }}/${{ github.event.pull_request.head.repo.full_name }}.git" >> $GITHUB_ENV - - # Display the variables set above, just in case. - - name: Check variables - run: | - echo "CLONE_BRANCH_OR_TAG: $CLONE_BRANCH_OR_TAG" - echo "TAG_NAME: $TAG_NAME" - echo "URL: $URL" - - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Login to Docker Hub - if: ${{ github.event_name == 'push' }} - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Set up QEMU for multiarch builds - uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 - - - name: Build and push - uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0 - with: - context: tools/docker - push: ${{ github.event_name == 'push' }} - tags: ${{ env.DOCKERHUB_REPO }}:${{ env.TAG_NAME }} - platforms: ${{ env.BUILD_PLATFORMS }} - build-args: | - LIBBUILDER_CLONE_URL=${{ env.URL }} - LIBBUILDER_CLONE_BRANCH_OR_TAG=${{ env.CLONE_BRANCH_OR_TAG }} - - - name: Update Docker Hub repository description (master branch) - if: ${{ github.event_name == 'push' && github.ref_type == 'branch' && github.ref_name == 'master' }} - uses: peter-evans/dockerhub-description@e98e4d1628a5f3be2be7c231e50981aee98723ae # v4.0.0 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - repository: ${{ env.DOCKERHUB_REPO }} - readme-filepath: ./tools/docker/README.md diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml deleted file mode 100644 index 756ab0991..000000000 --- a/.github/workflows/push.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: ESP32 Arduino Libs CI - -on: - push: - branches: - - master - pull_request: - paths: - - "**" - - "!**.md" - - "!.github/workflows/cron_build.yml" - - "!.github/workflows/cron.yml" - - "!.github/workflows/docker.yml" - - "!.github/workflows/repository_dispatch.yml" - - "!tools/config_editor/**" - - "!tools/docker/**" - -concurrency: - group: esp-idf-libs-${{github.event.pull_request.number || github.ref}} - cancel-in-progress: true - -jobs: - build-libs: - name: Build Libs for ${{ matrix.target }} - runs-on: ubuntu-latest - strategy: - matrix: - target: [esp32, esp32s2, esp32s3, esp32c2, esp32c3, esp32c6, esp32h2, esp32p4] - fail-fast: false - steps: - - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Install dependencies - run: bash ./tools/prepare-ci.sh - - - name: Build Libs for ${{ matrix.target }} - run: bash ./build.sh -e -t ${{ matrix.target }} - - - name: Upload build - if: failure() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: build-${{ matrix.target }} - path: build - - - name: Upload archive - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: artifacts-${{ matrix.target }} - path: dist - - combine-artifacts: - name: Combine artifacts - needs: build-libs - runs-on: ubuntu-latest - steps: - - name: Download artifacts - uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 - with: - path: dist - pattern: artifacts-* - merge-multiple: true - - - shell: bash - run: | - mkdir -p out - find dist -name 'arduino-esp32-libs-esp*.tar.gz' -exec tar zxvf {} -C out \; - cd out/tools/esp32-arduino-libs && tar zcf ../../../dist/esp32-arduino-libs.tar.gz * && cd ../../.. - cp out/package_esp32_index.template.json dist/package_esp32_index.template.json - - - name: Upload full esp32-arduino-libs archive - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: esp32-arduino-libs - path: dist/esp32-arduino-libs.tar.gz - - - name: Upload package_esp32_index.template.json - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: package-esp32-index-json - path: dist/package_esp32_index.template.json - diff --git a/.github/workflows/repository_dispatch.yml b/.github/workflows/repository_dispatch.yml deleted file mode 100644 index 62837976b..000000000 --- a/.github/workflows/repository_dispatch.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Remote Trigger - -on: repository_dispatch - -jobs: - run: - name: Dispatch Event - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - fetch-depth: 0 - - - name: Install dependencies - run: bash ./tools/prepare-ci.sh - - - name: Handle Event - env: - GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} - GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} - GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} - run: bash ./tools/repository_dispatch.sh - - - name: Upload build - if: failure() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: build - path: build - - - name: Upload archive - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: artifacts - path: dist diff --git a/README.md b/README.md index 16452f7e1..348ef322f 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,136 @@ -# ESP32 Arduino Lib Builder [![ESP32 Arduino Libs CI](https://github.com/espressif/esp32-arduino-lib-builder/actions/workflows/push.yml/badge.svg)](https://github.com/espressif/esp32-arduino-lib-builder/actions/workflows/push.yml) +# ESP32 Arduino Lib Builder -This repository contains the scripts that produce the libraries included with esp32-arduino. +This repository contains the scripts that produce the SDK included with esp32-arduino. It not only supports local compilation but also provides an automated compilation and SDK download process through GitHub Actions. -Tested on Ubuntu (32 and 64 bit), Raspberry Pi and MacOS. +If you want to directly use the precompiled SDK based on the branches below, please check the [arduino-esp32-SDK](https://github.com/esp-arduino-libs/arduino-esp32-sdk) repository. -### Build on Ubuntu and Raspberry Pi -```bash -sudo apt-get install git wget curl libssl-dev libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache jq -sudo pip install --upgrade pip -git clone https://github.com/espressif/esp32-arduino-lib-builder -cd esp32-arduino-lib-builder -./build.sh -``` +## Contents -### Using the User Interface +- [ESP32 Arduino Lib Builder](#esp32-arduino-lib-builder) + - [Contents](#contents) + - [Feature](#feature) + - [Branches](#branches) + - [Release Versions](#release-versions) + - [High Performance Versions](#high-performance-versions) + - [How to Use](#how-to-use) + - [Compilation in Github](#compilation-in-github) + - [Compilation in Local](#compilation-in-local) -You can more easily build the libraries using the user interface found in the `tools/config_editor/` folder. -It is a Python script that allows you to select and edit the options for the libraries you want to build. -The script has mouse support and can also be pre-configured using the same command line arguments as the `build.sh` script. -For more information and troubleshooting, please refer to the [UI README](tools/config_editor/README.md). +## Feature -To use it, follow these steps: +In comparison to the original [esp32-arduino-lib-builder](https://github.com/espressif/esp32-arduino-lib-builder), this repository is used for recompiling specific versions of the SDK in `arduino-esp32` and has the following branches: -1. Make sure you have the following prerequisites: - - Python 3.9 or later - - All the dependencies listed in the previous section +* `release/*` is used to recompile the original SDK for a specified version. +* `high_perf/*` is used to recompile high performance versions based on a specified SDK version. It changes some configurations (as below) and can achieve higher performance in some cases, especially for avoiding [screen drifting](https://docs.espressif.com/projects/esp-faq/en/latest/software-framework/peripherals/lcd.html#why-do-i-get-drift-overall-drift-of-the-display-when-esp32-s3-is-driving-an-rgb-lcd-screen) when using RGB LCDs. (Only available for v3.x and above versions) -2. Install the required UI packages using `pip install -r tools/config_editor/requirements.txt`. + * For ESP32-S3 SoCs: -3. Execute the script `tools/config_editor/app.py` from any folder. It will automatically detect the path to the root of the repository. + * All: -4. Configure the compilation and ESP-IDF options as desired. + * It changes the optimization level from `-Os` to `-O2` by enabling `CONFIG_COMPILER_OPTIMIZATION_PERF=y`. + * It increases the size of the data cache line width from `32` to `64` by enabling `CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y`. -5. Click on the "Compile Static Libraries" button to start the compilation process. + * For ESP32-S3R8 (Octal PSRAM): -6. The script will show the compilation output in a new screen. Note that the compilation process can take many hours, depending on the number of libraries selected and the options chosen. + * It enables the function **XIP on PSRAM** by enabling `CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y` and `CONFIG_SPIRAM_RODATA=y` (< v3.1.1). + * It enables the function **XIP on PSRAM** by enabling `CONFIG_SPIRAM_XIP_FROM_PSRAM=y` (>= v3.1.1). -7. If the compilation is successful and the option to copy the libraries to the Arduino Core folder is enabled, it will already be available for use in the Arduino IDE. Otherwise, you can find the compiled libraries in the `esp32-arduino-libs` folder alongside this repository. - - Note that the copy operation doesn't currently support the core downloaded from the Arduino IDE Boards Manager, only the manual installation from the [`arduino-esp32`](https://github.com/espressif/arduino-esp32) repository. + * For ESP32-P4 SoCs: -### Documentation + * All: -For more information about how to use the Library builder, please refer to this [Documentation page](https://docs.espressif.com/projects/arduino-esp32/en/latest/lib_builder.html?highlight=lib%20builder) + * It increases the size of the L2 cache line width from `64` to `128` by enabling `CONFIG_CACHE_L2_CACHE_LINE_128B=y`. + * It increases the size of the L2 cache line size from `128KB` to `256KB` by enabling `CONFIG_CACHE_L2_CACHE_256KB=y`. + +> [!WARNING] +> For the ESP32-P4 in version v3.1.1, enabling `CONFIG_COMPILER_OPTIMIZATION_PERF=y` and `CONFIG_SPIRAM_XIP_FROM_PSRAM=y` will cause the chip to fail to boot properly. + +## Branches + +### Release Versions + +* [release/v2.0.13](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v2.0.13) +* [release/v3.0.0-alpha3](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.0-alpha3) +* [release/v3.0.0](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.0) +* [release/v3.0.2](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.2) +* [release/v3.0.7](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.7) +* [release/v3.1.1](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.1.1) + +### High Performance Versions + +As only v3.x and above versions support the required high-performance configurations, the branches here are only used for compiling the high_perf version of v3.x. + +* [high_perf/v3.0.0-alpha3](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.0-alpha3) +* [high_perf/v3.0.0](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.0) +* [high_perf/v3.0.2](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.2) +* [high_perf/v3.0.7](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.7) +* [high_perf/v3.1.1](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.1.1) + +> [!TIP] +> [Precompiled SDKs](https://github.com/esp-arduino-libs/arduino-esp32-sdk?tab=readme-ov-file#for-sdks-suffixed-with--h) + +## How to Use + +### Compilation in Github + +1. Click `Fork` to fork this repository into your account. + + + +2. Uncheck the `Copy the master branch only` option and click `Create fork`. + + + +3. If you want to change the default configurations, follow the below steps: + + * Choose a branch based on the version you want to recompile. Here take `release/v3.0.0-alpha3` as an example. + + + + * To change the default configurations, mofify the files in the `configs` folder based on your application requirements. + + + + * Commit the changes. + + + + * Select `Create a new branch for this commit and start a pull request`, change the branch name if needed and click `Propose changes`. + + + + * Do not create a pull request, just click `Action`. Here you can see the compilation process. (Default to compile all targets) + + + + + +4. If you don't need to change the default configurations or just want to compile a specific target, follow the below steps: + + * Click `Actions`, here are two workflows, `Manual Build SDK For (v2) the Specific Target` is used to compile the v2.x version, and `Manual Build SDK For (v3) the Specific Target` is used to compile the v3.x version. + + + + * If you want to compile the **v2.x version**, click `Manual Build SDK For (v2) the Specific Target`, then click `Run workflow`. Here you can select the branch (only available for the `xx/v2.x.x` branches) and the target. + + + + * If you want to compile the **v3.x version**, click `Manual Build SDK For (v3) the Specific Target`, then click `Run workflow`. Here you can select the branch (only available for the `xx/v3.x.x` branches), the target and log level. So there are no `debug/v3.x.x` branches, you can specify the log level when compiling. + + + + * Then the compilation process will start. After it is complete, download the zip file from the `Artifacts`. + + + + + +5. To replace the original SDK, please refer to the [steps](https://github.com/esp-arduino-libs/arduino-esp32-sdk#how-to-use) for more details. + +### Compilation in Local + +1. Choose a branch version based on your application requirements and download it to the local. +2. Modify the files in the `configs` folder based on your application requirements. +3. Consult its README for compilation instructions. Note that the process involves downloading `ESP-IDF`, `arduino-esp32`, and several large components, which may take a considerable amount of time. Please be patient. +4. After the compilation is complete, the SDK will be located in the `out` folder. +5. To replace the original SDK, please refer to the [steps](https://github.com/esp-arduino-libs/arduino-esp32-sdk#how-to-use) for more details. diff --git a/docs/_static/auto_step_0-1.png b/docs/_static/auto_step_0-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e6c61e207a02dbf43ad5c1c71bb1a1fb04df836b GIT binary patch literal 34260 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 BpJo66 literal 0 HcmV?d00001 diff --git a/docs/_static/auto_step_0-2.png b/docs/_static/auto_step_0-2.png new file mode 100644 index 0000000000000000000000000000000000000000..3acfe314ff4f6ccde63c5085c055b7b0fb84befb GIT binary patch literal 87101 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

Iel)`}tKvqX5eP^YxW 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 ByXdx8ogiw?! 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 literal 0 HcmV?d00001 diff --git a/docs/_static/auto_step_2.png b/docs/_static/auto_step_2.png new file mode 100644 index 0000000000000000000000000000000000000000..78032d6933a7a98a25f41dafef97b1bc17992b0e GIT binary patch literal 157054 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 D+!mr4 literal 0 HcmV?d00001 diff --git a/docs/_static/auto_step_3.png b/docs/_static/auto_step_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f35e04a4d14f9527dd2d87800f17321001ed51c1 GIT binary patch literal 174714 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

Zmz4Wif5x^z}C+yfrIWz*)~lug?$_ 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

FY6$)< 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�WzfvO*%Bit!VyOE{ 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 SS!V6|r;W~^$T@Cv|NjCyzEU3m literal 0 HcmV?d00001 diff --git a/docs/_static/auto_step_5.png b/docs/_static/auto_step_5.png new file mode 100644 index 0000000000000000000000000000000000000000..96584833a93a528e76e3b96eb3af2bfe44b59293 GIT binary patch literal 98037 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 aR!vJzNzbmcVr%a`c)<0S@}JNA@qYoUe%I;% literal 0 HcmV?d00001 diff --git a/docs/_static/auto_step_6.png b/docs/_static/auto_step_6.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd0481683618f9029abb47599bca50b2e744ee0 GIT binary patch literal 62061 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%0DcdQRfW_-U6q}9GmJRpxe?%Q>uNpMQ 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�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%0A8$KNKrP$-6c*5SE9xQxL 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 I{ORZa3p$`pKL7v# literal 0 HcmV?d00001 diff --git a/docs/_static/manual_step_1.png b/docs/_static/manual_step_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a049f935a61a63c2621a67f768e1a2dcab8d06d6 GIT binary patch literal 48115 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 W8!um>St{r^>5;nLgYx@N{`ntoR2Yl^ literal 0 HcmV?d00001 diff --git a/docs/_static/manual_step_2.png b/docs/_static/manual_step_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1f7aded53033e583573b3eb1076f25c3ca3755 GIT binary patch literal 106893 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

    odF7mb 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 literal 0 HcmV?d00001 diff --git a/docs/_static/manual_step_3.png b/docs/_static/manual_step_3.png new file mode 100644 index 0000000000000000000000000000000000000000..19e14e320603a20c8a76ac325095275ce7b1707c GIT binary patch literal 85913 zcmeFZcQjnzyFV@wBoU;Egdov7i5fMD=q-9Dx-ka9=tD$8LJ+-|=)Lz*BZ%Hh3`U~Q zV6-t9<#)XEx$k$rcdg$acddKZ?|XmibJoJy=j^l3+0XOrr@fx-<4aXJva8fr2?z+t z6y#rM5D;9ZBOthNaG4mmvXao)2mA@~($aI)Fmr$4gieIj(llYZpW_4cP{FcKe@cUPyyx%$h7#uhVQ z%s;>WF=Dx-e#$WKcHAu8ySTDzaxgmWZJAr7G$or8>s3*lDe&)t3b#v2?+Fzy-g*JU zMdD!JW+8%ygcl{bwFF5?)d>i$UIqc5rKh4SYT*dsF|%|ux8m`DI04^FKp-yV;bdk3 zwsL)7Ze;^TTNoaIEF~Cp1y%S|oTRO6LGoVCR+?U_S{7blizk*0Qj%B2Jw$;4 zAXcts4?H0D4lbe|5)6NhD+-*SU*=_a@K+aCumppi%F74Rj?PvO1b75^__$>}KyHs2 zB(FXYceb<^)p#NMuOWbz1cR-stCJ`%ue-ZDk2^n)qq7a~qbEELSS!R_F}cs|7MFk zgZKOn?;{>Q-aos$f~@~vx}V?qr~CQCqAx)nR`z-?KoBbj7vK{l7#{Npi~Kd(KezS& zxGl&h@Ymh*p+prRW;Ry3AWK)!}~XL&MEXifBgF;|0Np#n_T}U*MEru|E13Vmac!3>%T;S|5E3FOV|G{a$Wt$ zy|Z!vd^&f)c{3jc1AZ&PC70(4T9<*t=d$Go0)htw3NM~%c}%a*dK*PU=gzi;ZPY&B z3?`|#%{{Ess%lMsj|H++;%PfNavP&)sD^MxZ#wd4k9fOdm)(lF#J=QMkx=Mce^l&= z2a#M-D!Z-Rep_0Ai;`>^*VWg0t*_PT%Hw79p~p}_T}gcj1}kA4w|ioQEFH|}x8c6{ zmnZuB7hh`}*B?y+*&7~zHm@;m{n@-LJAdJiHs7aK!atg??)sDb(QM_rNbyJWjoGDh zI{baKUl#xS95@O5AAIqt<%Lfo-kZq-$$KfiiRNLJF=Xasj@8E(T+(#a`Y!Nj$jEf0F^42zDQQ@h$79Q{xNfA%=SEjNt%0Dr-<;DVKv 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 Date: Tue, 17 Jun 2025 20:51:40 +0800 Subject: [PATCH 70/70] feat(repo): add v3.2.0 --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 348ef322f..90f182cae 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ In comparison to the original [esp32-arduino-lib-builder](https://github.com/esp * It increases the size of the L2 cache line size from `128KB` to `256KB` by enabling `CONFIG_CACHE_L2_CACHE_256KB=y`. > [!WARNING] -> For the ESP32-P4 in version v3.1.1, enabling `CONFIG_COMPILER_OPTIMIZATION_PERF=y` and `CONFIG_SPIRAM_XIP_FROM_PSRAM=y` will cause the chip to fail to boot properly. +> For the ESP32-P4 in version v3.1.1 and above, enabling `CONFIG_COMPILER_OPTIMIZATION_PERF=y` and `CONFIG_SPIRAM_XIP_FROM_PSRAM=y` will cause the chip to fail to boot properly. ## Branches @@ -55,6 +55,7 @@ In comparison to the original [esp32-arduino-lib-builder](https://github.com/esp * [release/v3.0.2](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.2) * [release/v3.0.7](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.7) * [release/v3.1.1](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.1.1) +* [release/v3.2.0](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.2.0) ### High Performance Versions @@ -65,6 +66,7 @@ As only v3.x and above versions support the required high-performance configurat * [high_perf/v3.0.2](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.2) * [high_perf/v3.0.7](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.7) * [high_perf/v3.1.1](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.1.1) +* [high_perf/v3.2.0](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.2.0) > [!TIP] > [Precompiled SDKs](https://github.com/esp-arduino-libs/arduino-esp32-sdk?tab=readme-ov-file#for-sdks-suffixed-with--h)

    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 literal 0 HcmV?d00001 diff --git a/docs/_static/auto_step_7.png b/docs/_static/auto_step_7.png new file mode 100644 index 0000000000000000000000000000000000000000..7882ff3775d9066d61af4d0d702cfd0275913ec7 GIT binary patch literal 75007 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 L_NU4pFaPo%W5W)o literal 0 HcmV?d00001 diff --git a/docs/_static/manual_step_0_0.png b/docs/_static/manual_step_0_0.png new file mode 100644 index 0000000000000000000000000000000000000000..4e8d9ca9d07a161e7812745829a84994dceb4666 GIT binary patch literal 68863 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 literal 0 HcmV?d00001 diff --git a/docs/_static/manual_step_0_1.png b/docs/_static/manual_step_0_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1a75c69bc34b912b83dff32fb400c2ad3f51d2d9 GIT binary patch literal 81610 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