Commit Graph

368 Commits

Author SHA1 Message Date
Jeff Epler b47e23c9c5
Finish removing reserved psram 2023-11-13 15:31:35 -06:00
Jeff Epler fb840159fb
Remove some stuff about reserved psram & supervisor allocations
this is obsoleted by the new split heap code 🎉
2023-11-13 12:55:26 -06:00
Dimitrios Kouzis-Loukas 07050f2e6f Consistency improvement on I2S mclk support for Espressif port #8570 2023-11-11 06:42:38 -05:00
Dimitrios Kouzis-Loukas 3921520fed Issue #8570 fix 2023-11-08 19:53:18 -05:00
Scott Shawcroft 8137e2d6d2
Switch all ports to auto-growing split heap
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.
2023-11-01 15:24:16 -07:00
Daniel James f9d3ec5027
Support for publishing TXT records via mDNS
- Update lwIP+Raspberry Pi implementation to use lwIP API correctly
- Add translations
2023-10-30 20:39:38 -07:00
Jeff Epler 774f6ac6ab
Switch to using MP_ERROR_TEXT instead of translate, globally 2023-10-30 09:49:06 +01:00
Jeff Epler de541cf155
Fix pointer-ness, const-ness of compressed messages
micropython puts the pointer-ness into the typedef; we can put the
const-ness there too.

this reduces the delta to micropython; for instance, emitinlinextensa
and emitinlinethumb now match upstream.
2023-10-25 21:40:11 +02:00
Jeff Epler 55874b6470
Rename compressed_string_t to mp_rom_error_text_t to match upstream 2023-10-25 08:14:13 +02:00
Scott Shawcroft e1df598199
Split displayio hardware support from core
These are moved:
* Display -> busdisplay.BusDisplay
* FourWire -> fourwire.FourWire
* EPaperDisplay -> epaperdisplay.EPaperDisplay
* I2CDisplay -> i2cdisplaybus.I2CDisplayBus

`paralleldisplay` is now `paralleldisplaybus` (and registered as
`paralleldisplay` too).

Bus related helpers are split out of display_core into bus_core.
It is in still displayio since it is a dependency of both
busdisplay and epaperdisplay.

Fixes #7667
2023-10-24 15:43:34 -07:00
Scott Shawcroft 89467ecdab
Merge tag '8.2.7' into merge_in_8.2.7 2023-10-20 15:21:30 -07:00
Scott Shawcroft 9633c4e78f
Merge remote-tracking branch 'adafruit/main' into v1.20-merge 2023-10-11 11:21:57 -07:00
Scott Shawcroft 15c5e8c806
Fix pin adc unit check
IDF5 made 0 valid. Use the NO_ADC macro instead
2023-10-06 15:55:43 -07:00
Scott Shawcroft a15c111d5c
Merge pull request #7718 from microdev1/watchdog-rp
Update WatchDog implementation
2023-10-02 14:17:29 -07:00
Scott Shawcroft 4c21f22114
Improve RGBMatrix allocation tracking
This prevents leaks but not all use-after-free issues.
2023-09-29 14:55:42 -07:00
Dan Halbert 68a2927385 MP_REGISTER_ROOT_POINTER for port-specific root pointers 2023-09-29 15:46:42 -04:00
Jeff Epler f80d08e207
Make dot clock displays with a masked portion on the left work 2023-09-27 15:15:32 -05:00
Scott Shawcroft 3684640ada
Merge pull request #8430 from jepler/dotclock-enhancements
Dotclock enhancements
2023-09-27 11:39:37 -07:00
Scott Shawcroft 3fdfb9bd32
Update ADC and I2S APIs for 5.1
This fixes ESP32 because the BufferedIn used the old ADC API and
I2S did too indirectly.

Fixes #8429
2023-09-26 16:06:54 -07:00
Jeff Epler 03141d40af
espressif: i2c: initialize "has_lock"
Otherwise, a stack-constructed i2c instance might get some other value
here.
2023-09-26 07:48:59 -05:00
MicroDev 27fd60d739
implement suggested changes
- update the docs
- split out common `watchdog_reset`
- revert to using `None` instead of `WatchDogMode.NONE`
2023-09-24 15:23:38 +00:00
MicroDev 05812e0618
Merge branch 'main' into watchdog-rp 2023-09-24 05:13:22 +00:00
Scott Shawcroft 1480d70d17
Fix builds
* Disable bleio on C3 with 4MB flash.
* Fix gpio include path in board.c's that use it.
2023-09-22 10:03:20 -07:00
Scott Shawcroft 16d1dc2be0
Update all target sdkconfig 2023-09-22 10:03:20 -07:00
Scott Shawcroft 6649b17fb5
H2 works 2023-09-22 10:03:20 -07:00
Scott Shawcroft 7bad82a219
C6 compiles, runs but wifi crashes 2023-09-22 10:02:35 -07:00
Scott Shawcroft e22eefabd7
First stab at 5.1 update 2023-09-22 10:02:30 -07:00
Scott Shawcroft 8f3c6422ee
Fix MDNS after the user turns off wifi
We need to reset our MDNS state instead of just the IDF's.
2023-09-20 14:46:42 -07:00
Dan Halbert 2c0fa0f7dc initial merge from v1.20.0; just satisifying conflicts 2023-09-19 11:10:12 -04:00
Scott Shawcroft 0547ef61f9
Update dotclock for IDF 5.0 2023-09-15 14:43:37 -07:00
Scott Shawcroft 4087960dfd
Fix MDNS. C3 works 2023-09-14 15:04:07 -07:00
Scott Shawcroft 952118f6c3
Update new boards. Reduce memory use in S2 2023-09-14 11:19:38 -07:00
Scott Shawcroft a3d37122a7
Fix PSRAM address 2023-09-13 11:40:09 -07:00
Scott Shawcroft cb6b4d0d4a
Fix esp-camera. 32 was dropped so the path doesn't have esp32 in it. 2023-09-13 11:40:09 -07:00
Scott Shawcroft e90c07ed87
More esp fixing 2023-09-13 11:36:31 -07:00
MicroDev 7a7f1e6efa
fix arch switch statement in ulp
Co-authored-by: Casey Webb <caseywebb@protonmail.com>
2023-09-13 11:35:14 -07:00
MicroDev 3d2cfa162a
enable `paralleldisplay` on `esp32` and `esp32s3` 2023-09-13 11:35:14 -07:00
MicroDev c38972b51c
update ulp implementation 2023-09-13 11:35:14 -07:00
MicroDev 242a720593
fix psram crash 2023-09-13 11:35:14 -07:00
MicroDev a18e015888
update idf to v5.0 2023-09-13 11:33:51 -07:00
Dan Halbert 9f1d52601e merge from 8.2.x 2023-09-12 20:14:30 -04:00
Bill Sideris 9acc542957
Deinit all the pins. 2023-09-12 23:25:01 +03:00
Bill Sideris 6e9c21baba
Deinit all the pins. 2023-09-11 23:35:54 +03:00
Scott Shawcroft 885dbec599
Merge pull request #8357 from eightycc/memorymap
Add memorymap support to RP2 port
2023-09-08 11:28:11 -07:00
Jeff Epler 5e26862b2c
Allow use of CONFIG_SPIRAM_USE_CAPS_ALLOC
.. and switch makerfabs tft7 over to it as a test.

We have our existing way of "reserving" PSRAM for esp-idf (we actually
control it all but add back the "reserved" part). However, this does
not work with off the shelf esp_lcd, which only will allocate a
framebuffer in PSRAM if CONFIG_SPIRAM_USE_CAPS_ALLOC (or CONFIG_SPIRAM_USE_ALLOC)
is defined, not if CONFIG_SPIRAM_USE_MEMMAP is.

This new way is possibly compatible with more esp-idf code, but it complicates
CircuitPython's initial startup since nothing until port_heap_init is
permitted to use the CP heap or supervisor allocator. In practice this
seems to be OK today.

Right now this doesn't change the setting across all boards with PSRAM and so
it does not revert esp-idf to its prior state. Instead, what I'm thinking is
that we can do it during or just after the IDF5 update when sdkconfig files
will be getting an overhaul anyway.
2023-09-05 12:43:22 -05:00
Jeff Epler b7d1147f67
Bump the stack size of the uart task
With DEBUG build and a consle UART, this would occur early during startup on makerfabs tft7:
```
I (0) cpu_start: Starting scheduler on APP CPU.
I (10) uart: queue free spaces: 20

***ERROR*** A stack overflow in task uart_event_task has been detected.


Backtrace: 0x403786f2:0x3fce9f40 0x403820a9:0x3fce9f60 0x403850da:0x3fce9f80 0x40383a7d:0x3fcea000 0x40382158:0x3fcea030 0x4038214e:0xa5a5a5a5 |<-CORRUPTED
```

Decoded backtrace was not enlightening:
```
0x403786f2: panic_abort at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/esp_system/panic.c:408
0x403820a9: esp_system_abort at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/esp_system/esp_system.c:137
0x403850da: vApplicationStackOverflowHook at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/freertos/port/xtensa/port.c:407
0x40383a7d: vTaskSwitchContext at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/freertos/tasks.c:3505
0x40382158: _frxt_dispatch at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/freertos/port/xtensa/portasm.S:436
0x4038214e: _frxt_int_exit at /home/jepler/src/circuitpython/ports/espressif/build-makerfabs_tft7/esp-idf/../../esp-idf/components/freertos/port/xtensa/portasm.S:231
0x00000000: ?? ??:0
```

Adding an additional 512 bytes of stack allowed CircuitPython to start
successfully.
2023-09-05 12:07:09 -05:00
Bob Abeles 66b3eccaf6 8334: RP2040 lacks raw memory map access 2023-08-31 20:25:20 -07:00
Jeff Epler 80a1d1a20a
Add support for a non-displayed left portion of screen 2023-08-31 14:52:26 -05:00
Jeff Epler ed9cacf41d
Add DotClockFramebuffer 2023-08-30 10:30:15 -05:00
Scott Shawcroft 9daccc08c5
Forbidden pins are now correctly "in use" on ESP
This removes duplicate code to make debug UART pins in use via
never reset. It is done through forbidden pins automatically now.

Fixes #8288
2023-08-28 15:55:14 -07:00