diff --git a/cores/arduino/SERCOM.cpp b/cores/arduino/SERCOM.cpp index 14021cc7e..090836104 100644 --- a/cores/arduino/SERCOM.cpp +++ b/cores/arduino/SERCOM.cpp @@ -673,7 +673,27 @@ void SERCOM::initSPIClock(SercomSpiClockMode clockMode, uint32_t baudrate) void SERCOM::resetSPI() { + const uint32_t primask = __get_PRIMASK(); + __disable_irq(); +#ifdef USE_ZERODMA + dmaAbortTx(); + dmaAbortRx(); +#endif // USE_ZERODMA + + _txnQueue.clear(); + _spi.currentTxn = nullptr; + _spi.index = 0; + _spi.length = 0; + _spi.active = false; + _spi.useDma = false; + _spi.dmaNeedTx = false; + _spi.dmaNeedRx = false; + _spi.dmaTxDone = false; + _spi.dmaRxDone = false; + _spi.returnValue = SercomSpiError::SUCCESS; + resetSERCOM(); + __set_PRIMASK(primask); } void SERCOM::setDataOrderSPI(SercomDataOrder dataOrder) diff --git a/libraries/Ethernet/examples/SecureClient/.circuitplayground_m0.test.skip b/libraries/Ethernet/examples/SecureClient/.circuitplayground_m0.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.feather_m4_can.test.skip b/libraries/Ethernet/examples/SecureClient/.feather_m4_can.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.hallowing.test.skip b/libraries/Ethernet/examples/SecureClient/.hallowing.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.hallowing_m4.test.skip b/libraries/Ethernet/examples/SecureClient/.hallowing_m4.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.metro_m0.test.skip b/libraries/Ethernet/examples/SecureClient/.metro_m0.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.metro_m0:usbstack=tinyusb.test.skip b/libraries/Ethernet/examples/SecureClient/.metro_m0:usbstack=tinyusb.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.metro_m4.test.skip b/libraries/Ethernet/examples/SecureClient/.metro_m4.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.metro_m4:speed=120,usbstack=tinyusb.test.skip b/libraries/Ethernet/examples/SecureClient/.metro_m4:speed=120,usbstack=tinyusb.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.pybadge_m4.test.skip b/libraries/Ethernet/examples/SecureClient/.pybadge_m4.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.pygamer_m4.test.skip b/libraries/Ethernet/examples/SecureClient/.pygamer_m4.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.pyportal_m4.test.skip b/libraries/Ethernet/examples/SecureClient/.pyportal_m4.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/Ethernet/examples/SecureClient/.pyportal_m4_titano.test.skip b/libraries/Ethernet/examples/SecureClient/.pyportal_m4_titano.test.skip new file mode 100644 index 000000000..e69de29bb