From 869cf5eba59d084f4cf484fa9ad3bf48cdd28574 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Wed, 12 Jan 2022 14:55:22 -0800 Subject: [PATCH] Run USB on the same core as CP --- ports/espressif/Makefile | 8 +++++--- ports/espressif/supervisor/usb.c | 7 +++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ports/espressif/Makefile b/ports/espressif/Makefile index 825663d87b..36d4726ddf 100644 --- a/ports/espressif/Makefile +++ b/ports/espressif/Makefile @@ -289,6 +289,7 @@ IDF_PATH = $(realpath ./esp-idf) $(BUILD)/esp-idf: $(Q)$(MKDIR) -p $@ +TARGET_SDKCONFIG = esp-idf-config/sdkconfig-$(IDF_TARGET).defaults FLASH_SDKCONFIG = esp-idf-config/sdkconfig-$(CIRCUITPY_ESP_FLASH_SIZE).defaults ifeq ($(DEBUG), 1) DEBUG_SDKCONFIG = esp-idf-config/sdkconfig-debug.defaults @@ -317,10 +318,11 @@ $(BUILD)/esp-idf/partition_table/partition-table.bin: $(BUILD)/esp-idf/config/sd IDF_PATH=$(IDF_PATH) ninja -C $(BUILD)/esp-idf partition_table/partition-table.bin # run menuconfig and then remove standard settings -menuconfig: $(BUILD)/esp-idf/config +menuconfig: $(BUILD)/esp-idf/config $(BUILD)/esp-idf/config/sdkconfig.h $(Q)ninja -C $(BUILD)/esp-idf menuconfig - $(Q)diff --old-line-format= --unchanged-line-format= esp-idf-config/sdkconfig.defaults $(BUILD)/esp-idf/sdkconfig > $(BUILD)/sdkconfig.diff || true - $(Q)grep -Fvxf $(DEBUG_SDKCONFIG) -f $(FLASH_SDKCONFIG) $(BUILD)/sdkconfig.diff > boards/$(BOARD)/sdkconfig + # Newer versions of the idf will have save-defconfig that will only include non-default values. + # We should use that when available. For now, we sort out everything. + python tools/update_sdkconfig.py --board=$(BOARD) --debug=$(DEBUG) # qstr builds include headers so we need to make sure they are up to date $(HEADER_BUILD)/qstr.split: | $(BUILD)/esp-idf/config/sdkconfig.h diff --git a/ports/espressif/supervisor/usb.c b/ports/espressif/supervisor/usb.c index 7be3e84536..30f9be82a3 100644 --- a/ports/espressif/supervisor/usb.c +++ b/ports/espressif/supervisor/usb.c @@ -109,13 +109,16 @@ void init_usb_hardware(void) { usb_hal_init(&hal); configure_pins(&hal); - (void)xTaskCreateStatic(usb_device_task, + // Pin the USB task to the same core as CircuitPython. This way we leave + // the other core for networking. + (void)xTaskCreateStaticPinnedToCore(usb_device_task, "usbd", USBD_STACK_SIZE, NULL, 5, usb_device_stack, - &usb_device_taskdef); + &usb_device_taskdef, + xPortGetCoreID()); } /**