Enable BLE where we can. Switch 4MB, non-USB board default partitioning
over to a single 2MB firmware bank. Old boards override this setting to
keep the same behavior.
This also adds alpha support for the ESP32-C2 (aka ESP8684).
Fixes#5926 and fixes#7170
It is enabled on:
* SAMD51 boards with 1MB flash (SKU ending in 20A)
* Feather RP2040 DVI. Others have PIO usb host.
* All ESP32 boards.
* All nRF boards
Fixes#8676
It is likely due to the multiple heap setup on ESP32. An allocation
fails into one heap because the size is too large but caused an
assertion instead of failing over to the next heap.
Fixes#9026
The original implementation couldn't allocate to a region that was
just freed even though the freed region was the same size as the
new request. This was due to allocation sizes being rounded up
during search but not when marking the region in use.
Fixes https://github.com/adafruit/Adafruit_Learning_System_Guides/issues/2746
- add tuh_event_hook_cb() in SRAM, required when updated to latest tinyusb
- bump up pico-pio-usb to latest
- bump up tinyusb to latest for new tuh_hid_receive_abort(), and all endpoint abort when
SET_CONFIGURATION
the mbedtls version is a bit different so there are some new #ifdefs
needed.
Tested with the ssl test from https://github.com/adafruit/circuitpython/issues/8910
on Adafruit MatrixPortal S3 (no pico w testing done)
The new ones handle resource tracking for us. They also do a
better job running when the flash cache is disabled, which is the
source of bugs when interacting with flash over USB.
Fixes#6998 and fixes#8379
This simplifies allocating outside of the VM because the VM doesn't
take up all remaining memory by default.
On ESP we delegate to the IDF for allocations. For all other ports,
we use TLSF to manage an outer "port" heap. The IDF uses TLSF
internally and we use their fork for the other ports.
This also removes the dynamic C stack sizing. It wasn't often used
and is not possible with a fixed outer heap.
Fixes#8512. Fixes#7334.