Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CircuitPython 10 will change partition table for 4MB ESP32-S3 flash boards #432

Open
dhalbert opened this issue Feb 7, 2025 · 2 comments
Labels
enhancement New feature or request

Comments

@dhalbert
Copy link

dhalbert commented Feb 7, 2025

Hi @hathach -- Our plan for CircuitPython 10 is to change the partition table for ESP32-S3 4MB flash boards from partitions-4MB.csv to partitions-4MB-noota.csv. Currently there is not enough room in the ota_0 partition to include BLE support.

These are the boards that would be affected:

`
adafruit_feather_esp32s3_reverse_tft
adafruit_feather_esp32s3_tft
adafruit_qtpy_esp32s3_n4r2
deneyap_kart_1a_v2
lolin_s3_mini
magiclick_s3_n4r2
waveshare_esp32_s3_zero

We will warn CircuitPython users in advance that they will need to upgrade their bootloaders. We are wondering for these boards:

  • should tinyuf2 build two versions of bootloaders for each of these boards, with and without ota1, and produce two sets of artifacts?
  • or should there be new board definitions, e.g. adafruit_feather_esp32s3_no_ota
  • or whether we should make a major version change (1.0.0 and beyond) that makes this incompatible change.

Any other ideas? Your comments are appreciated.

There may be non-CircuitPython users of tinyuf2 who would be affected by such an incompatible change. If you are such a user, could you speak up?

@tannewt

@dhalbert dhalbert added the enhancement New feature or request label Feb 7, 2025
@tannewt
Copy link
Member

tannewt commented Feb 7, 2025

Thanks for writing this up Dan.

I want to point out that we'd like to do this before CircuitPython 10. It'll work with CP9 too. It is needed for 10 so that we can have a larger firmware image. When the bootloader hasn't been updated, then the bootloader should error.

@hathach
Copy link
Member

hathach commented Feb 10, 2025

@dhalbert I think it is better to just produce 2 zip/uf2, it is much easier to maintain than duplicate every boards. Default build script will use the noota partiion, ci will produce both with/without_ota. For naming, it is up to you, but I think we can add _with_ota for dual banks and keep the default (no ota) which user will tend to download.

We can make the change with version 0.30.0 (or even 1.0.0 if you like) we can keep producing dual uf2/zip for a few version in the future and can drop it if CI begin to take too long. Let me know what you think we can start roll out new release for new bootloader scheme

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants