Merge pull request #2955 from hathach/fix-dwc2-issue

Work around for esp32s3 racing/timing issue with macos
This commit is contained in:
Ha Thach
2025-01-21 00:09:51 +07:00
committed by GitHub
8 changed files with 17 additions and 21 deletions

View File

@@ -114,7 +114,7 @@ commands:
name: Build name: Build
command: | command: |
if [ << parameters.toolchain >> == esp-idf ]; then if [ << parameters.toolchain >> == esp-idf ]; then
docker run --rm -v $PWD:/project -w /project espressif/idf:v5.3.1 python tools/build.py << parameters.family >> docker run --rm -v $PWD:/project -w /project espressif/idf:v5.3.2 python tools/build.py << parameters.family >>
else else
# Toolchain option default is gcc # Toolchain option default is gcc
if [ << parameters.toolchain >> == arm-clang ]; then if [ << parameters.toolchain >> == arm-clang ]; then

View File

@@ -4,9 +4,6 @@ inputs:
toolchain: toolchain:
description: 'Toolchain name' description: 'Toolchain name'
required: true required: true
toolchain_version:
description: 'Toolchain version'
required: false
outputs: outputs:
build_option: build_option:
@@ -27,7 +24,6 @@ runs:
uses: ./.github/actions/setup_toolchain/espressif uses: ./.github/actions/setup_toolchain/espressif
with: with:
toolchain: ${{ inputs.toolchain }} toolchain: ${{ inputs.toolchain }}
toolchain_version: ${{ inputs.toolchain_version }}
- name: Get Toolchain URL - name: Get Toolchain URL
if: >- if: >-

View File

@@ -6,7 +6,8 @@ inputs:
required: true required: true
toolchain_version: toolchain_version:
description: 'Toolchain version' description: 'Toolchain version'
required: true required: false
default: 'v5.3.2'
runs: runs:
using: "composite" using: "composite"
@@ -39,3 +40,9 @@ runs:
du -sh $DOCKER_ESP_IDF du -sh $DOCKER_ESP_IDF
docker load --input $DOCKER_ESP_IDF docker load --input $DOCKER_ESP_IDF
shell: bash shell: bash
- name: Tag Local Image
run: |
docker tag espressif/idf:${{ inputs.toolchain_version }} espressif/idf:tinyusb
docker images
shell: bash

View File

@@ -118,7 +118,7 @@ jobs:
runs-on: [self-hosted, Linux, X64, hifiphile] runs-on: [self-hosted, Linux, X64, hifiphile]
env: env:
BUILD_ARGS: ${{ join(fromJSON(needs.set-matrix.outputs.json)['arm-iar'], ' ') }} BUILD_ARGS: ${{ join(fromJSON(needs.set-matrix.outputs.json)['arm-iar'], ' ') }}
# IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }} IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}
steps: steps:
- name: Clean workspace - name: Clean workspace
run: | run: |

View File

@@ -41,7 +41,6 @@ jobs:
uses: ./.github/actions/setup_toolchain uses: ./.github/actions/setup_toolchain
with: with:
toolchain: ${{ inputs.toolchain }} toolchain: ${{ inputs.toolchain }}
toolchain_version: 'v5.3.1'
- name: Get Dependencies - name: Get Dependencies
uses: ./.github/actions/get_deps uses: ./.github/actions/get_deps
@@ -61,7 +60,7 @@ jobs:
- name: Build - name: Build
run: | run: |
if [ "${{ inputs.toolchain }}" == "esp-idf" ]; then if [ "${{ inputs.toolchain }}" == "esp-idf" ]; then
docker run --rm -v $PWD:/project -w /project espressif/idf:v5.3.1 python tools/build.py ${{ matrix.arg }} docker run --rm -v $PWD:/project -w /project espressif/idf:tinyusb python tools/build.py ${{ matrix.arg }}
else else
python tools/build.py -s ${{ inputs.build-system }} ${{ steps.setup-toolchain.outputs.build_option }} ${{ steps.set-one-per-family.outputs.build_option }} ${{ matrix.arg }} python tools/build.py -s ${{ inputs.build-system }} ${{ steps.setup-toolchain.outputs.build_option }} ${{ steps.set-one-per-family.outputs.build_option }} ${{ matrix.arg }}
fi fi

View File

@@ -94,8 +94,8 @@ jobs:
hil-hfp: hil-hfp:
if: github.repository_owner == 'hathach' if: github.repository_owner == 'hathach'
runs-on: [self-hosted, Linux, X64, hifiphile] runs-on: [self-hosted, Linux, X64, hifiphile]
#env: env:
# IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }} IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}
steps: steps:
- name: Clean workspace - name: Clean workspace
run: | run: |

View File

@@ -175,20 +175,14 @@ bool usb_init(void) {
// maybe we can use USB_OTG_MODE_DEFAULT and switch using dwc2 driver // maybe we can use USB_OTG_MODE_DEFAULT and switch using dwc2 driver
#if CFG_TUD_ENABLED #if CFG_TUD_ENABLED
.otg_mode = USB_OTG_MODE_DEVICE, .otg_mode = USB_OTG_MODE_DEVICE,
.otg_speed = BOARD_TUD_RHPORT ? USB_PHY_SPEED_HIGH : USB_PHY_SPEED_FULL,
#elif CFG_TUH_ENABLED #elif CFG_TUH_ENABLED
.otg_mode = USB_OTG_MODE_HOST, .otg_mode = USB_OTG_MODE_HOST,
.otg_speed= BOARD_TUH_RHPORT ? USB_PHY_SPEED_HIGH : USB_PHY_SPEED_FULL,
#endif #endif
// https://github.com/hathach/tinyusb/issues/2943#issuecomment-2601888322
// Set speed to undefined (auto-detect) to avoid timinng/racing issue with S3 with host such as macOS
.otg_speed = USB_PHY_SPEED_UNDEFINED,
}; };
// OTG IOs config
// const usb_phy_otg_io_conf_t otg_io_conf = USB_PHY_SELF_POWERED_DEVICE(config->vbus_monitor_io);
// if (config->self_powered) {
// phy_conf.otg_io_conf = &otg_io_conf;
// }
// ESP_RETURN_ON_ERROR(usb_new_phy(&phy_conf, &phy_hdl), TAG, "Install USB PHY failed");
usb_new_phy(&phy_conf, &phy_hdl); usb_new_phy(&phy_conf, &phy_hdl);
return true; return true;

View File

@@ -565,7 +565,7 @@ void dcd_int_handler(uint8_t rhport)
if (is & USB_ISTAT_SOFTOK_MASK) { if (is & USB_ISTAT_SOFTOK_MASK) {
KHCI->ISTAT = USB_ISTAT_SOFTOK_MASK; KHCI->ISTAT = USB_ISTAT_SOFTOK_MASK;
dcd_event_bus_signal(rhport, DCD_EVENT_SOF, true); dcd_event_sof(rhport, tu_u16(KHCI->FRMNUMH, KHCI->FRMNUML), true);
} }
if (is & USB_ISTAT_STALL_MASK) { if (is & USB_ISTAT_STALL_MASK) {