espressif / esptool

Espressif SoC serial bootloader utility
https://docs.espressif.com/projects/esptool
GNU General Public License v2.0
5.49k stars 1.37k forks source link

Make the addition of support for new flash chips easier (ESPTOOL-719) #903

Open ESP32DE opened 1 year ago

ESP32DE commented 1 year ago

Is your feature request related to a problem?

No response

Describe the solution you'd like

We have the usually flash sizes for usually SPI flashes. For testing newer flash we can set the manufacturer and size there.

How will it be handled for DDR / octal Flashes, since there are more and more manufacturer on DDR octal side also HYPERBUS? I can't find the DDR octal flash sizes "table" for the used MX25UM in the S3-WROOM-2 or i am going been old.

there is a header yes, but where we can add more manufacturer we did in the esptool "DETECTED_FLASH_SIZE"

example: ESP32-S3-WROOM-2 N32R8v it is 32MB Flash

Stub running...
Manufacturer: c2
Device: 8039
Detected flash size: 32MB
Flash type set in eFuse: octal (8 data lines)

Just a question and an idea note what happens next: i noted that the outside flash package is "eFused" octal ( 8 data lines ) in the DevKit-C and WROOM-2 ( N32R8v ) and burned - why extended Flash efused and eMbedded PSRAM ( also 8 data lines ) not? this give me an experimental idea to try to append more as 8MB PSRAM ( octal ) on the exposed shared flash lines next days.. great. but i think - it will fail cause it is not supported by the IDF "bootloader" and toolchain ..yet .. but i will try to run it outher this limitations customized.

Describe alternatives you've considered

No response

Additional context

No response

radimkarnis commented 1 year ago

Hi @ESP32DE, I am sorry, but I am not sure what your feature request is about.

Your example shows the current behavior of esptool. Do you think more information should be displayed? Or are you asking for support for new flash chips?

Please describe your feature request a little more. Thank you!

ESP32DE commented 1 year ago

Hi @radimkarnis,

asking for support for new (octal) flash chips. I can't see/found the octal flash list/DETECTED_FLASH_SIZE entry for the used MX25UM25645G in ESP32-S3-WROOM-2 / ESP32-S3-N32R8v-DevKitC-1 in esptool.

image image

Is this 32MB octal and the 16MB octal the only one which is supported by espressif? Where we entry/add newer manufacturer octal flash chips, with manufacturer code and chip size like we do/did in DETECTED_FLASH_SIZE?

esptool info example from ESP32-S3-WROOM-2 which is based on ESP32-S3R8v : in this case 32MB variation:

Detecting chip type... ESP32-S3
Chip is ESP32-S3 (revision v0.1)
Features: WiFi, BLE
Crystal is 40MHz
MAC: XX:XX:XX:XX:XX:XX
Uploading stub...
Running stub...
Stub running...
Manufacturer: c2 ..............<<< where we add this for newer octal chips ---(dedected flash size ) 
Device: 8039  .................<<< device ID which was read from device
Detected flash size: 32MB .....<<<  that we know chip size or from where comes this info ?
Flash type set in eFuse: octal (8 data lines)
Hard resetting via RTS pin... 

txs

edit: 3 examples and more info for you:

same manufacturer "Macronix" IC FLASH but in 512MBIT SPI/OC 24CSPBGA MX25UM51245GXDI00

Infineon 512 MBIT S28HS512TGABHI010

GigaDevice 1Gbit GD55LX01GEFIRR

..and many more MP exist now.

ESP32-S3 supports up to 1 GB off-package flash and 1 GB off-package RAM. I go this direction and solder 4Gbit Flash and 2Gbit PSRAM next near time . Also here the Infineon packages and GigaDevice packages for testing and a 4Gbit PSRAM as samples.

dobairoland commented 1 year ago

I'm afraid that adding support for new flash chips is not very easy and straightforward at this moment. Yes, it is possible to add a new size to lists like you mention. It might work if one of the drivers can be used automatically. However, especially for larger chips new drivers are needed and the general ones could not be used (different ROM calls & SPI commands are needed supporting larger address space, or sometimes just different SPI command is needed because the manufacturer is different).

I renamed the title to better sum up what is needed here.

We are planning some big changes regarding the flasher stub. So I'm afraid this won't be addressed soon.

ESP32DE commented 1 year ago

I'm afraid that adding support for new flash chips is not very easy and straightforward at this moment. Yes, it is possible to add a new size to lists like you mention. It might work if one of the drivers can be used automatically. However, especially for larger chips new drivers are needed and the general ones could not be used (different ROM calls & SPI commands are needed supporting larger address space, or sometimes just different SPI command is needed because the manufacturer is different).

I renamed the title to better sum up what is needed here.

We are planning some big changes regarding the flasher stub. So I'm afraid this won't be addressed soon.

hi @dobairoland ,

exactly this. thank you.

i noted the drivers/header in esp_rom this the way i would add the new manufacturer; i was wounder where the 32MB info comes - so i thinked it is in the flasher stub binary embedded ... which we can not change / add, expand "so easy".

thanks for rename the title - it is very better and clear what is mean, sry @radimkarnis for not to be clearer what i was request and thanks for you effort to try figure this out and help me.

JFYI: ESP32-S3-WoWZa-N256R256 (compatible wroom pin and size ) makes the start and is now in a test phase (without castellated holes ) (release day 13. Oct 2023 castellated holes )

i use the same flash which is on WROOM-2 ( MX25UM256..) from this side the test goes successful now bigger and more to the limits and different manufacturer's ( there is also a 4Gbit DDR Octal p(s)(D)RAM sampler also to test )

image ( has just been delivered )

best wishes ;-)