summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/make.mk1
-rw-r--r--hw/bsp/spresense/board.mk3
-rw-r--r--src/class/msc/msc_device.c11
3 files changed, 14 insertions, 1 deletions
diff --git a/examples/make.mk b/examples/make.mk
index 9daf60e35..24f8c5572 100644
--- a/examples/make.mk
+++ b/examples/make.mk
@@ -61,6 +61,7 @@ GDB = $(CROSS_COMPILE)gdb
OBJCOPY = $(CROSS_COMPILE)objcopy
SIZE = $(CROSS_COMPILE)size
MKDIR = mkdir
+PYTHON = python
ifeq ($(CMDEXE),1)
CP = copy
diff --git a/hw/bsp/spresense/board.mk b/hw/bsp/spresense/board.mk
index a46c42bd6..ba291e817 100644
--- a/hw/bsp/spresense/board.mk
+++ b/hw/bsp/spresense/board.mk
@@ -70,4 +70,5 @@ $(BUILD)/$(PROJECT).spk: $(MKSPK)
# flash
flash: $(BUILD)/$(PROJECT).spk
- @$(TOP)/hw/mcu/sony/cxd56/tools/flash_writer.py -s -c $(SERIAL) -d -b 115200 -n $<
+ @echo FLASH $<
+ @$(PYTHON) $(TOP)/hw/mcu/sony/cxd56/tools/flash_writer.py -s -c $(SERIAL) -d -b 115200 -n $<
diff --git a/src/class/msc/msc_device.c b/src/class/msc/msc_device.c
index 6b3a392a8..0fd592129 100644
--- a/src/class/msc/msc_device.c
+++ b/src/class/msc/msc_device.c
@@ -611,6 +611,17 @@ bool mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t
TU_ASSERT( send_csw(rhport, p_msc) );
}
}
+
+ #if TU_CHECK_MCU(CXD56)
+ // WORKAROUND: cxd56 has its own nuttx usb stack which does not forward Set/ClearFeature(Endpoint) to DCD.
+ // There is no way for us to know when EP is un-stall, therefore we will unconditionally un-stall here and
+ // hope everything will work
+ if ( usbd_edpt_stalled(rhport, p_msc->ep_in) )
+ {
+ usbd_edpt_clear_stall(rhport, p_msc->ep_in);
+ send_csw(rhport, p_msc);
+ }
+ #endif
}
return true;