Experimenting with Winbond 25Q128, it seems to work.
Forcing to 3.3V (as I am using SD card also), and setting standard pins plus external flash chip select on GPIO22, I burn fuses:
Code: Select all
XPD_SDIO_FORCE Ignore MTDI pin (GPIO12) for VDD_SDIO on reset = 1 R/W (0x1)
XPD_SDIO_REG If XPD_SDIO_FORCE, enable VDD_SDIO reg on reset = 1 R/W (0x1)
XPD_SDIO_TIEH If XPD_SDIO_FORCE & XPD_SDIO_REG, 1=3.3V 0=1.8V = 1 R/W (0x1)
SPI_PAD_CONFIG_CLK Override SD_CLK pad (GPIO6/SPICLK) = 6 R/W (0x6)
SPI_PAD_CONFIG_Q Override SD_DATA_0 pad (GPIO7/SPIQ) = 7 R/W (0x7)
SPI_PAD_CONFIG_D Override SD_DATA_1 pad (GPIO8/SPID) = 8 R/W (0x8)
SPI_PAD_CONFIG_HD Override SD_DATA_2 pad (GPIO9/SPIHD) = 9 R/W (0x9)
SPI_PAD_CONFIG_CS0 Override SD_CMD pad (GPIO11/SPICS0) = 22 R/W (0x16)
I tried v2.1 branch (esptool beta1), but always got:
Code: Select all
rst:0x10 (RTCWDT_RTC_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT)
flash read err, 1000
Falling back to built-in command interpreter.
Then I set ESP-IDF to 'master' branch (seems to need latest beta3 of esptool), I can flash and work:
Code: Select all
I (50) boot: ESP-IDF v2.0-rc1-803-g1e0710f1 2nd stage bootloader
I (50) boot: compile time 22:04:06
I (85) boot: Enabling RNG early entropy source...
I (85) boot: SPI Speed : 40MHz
I (85) boot: SPI Mode : DIO
I (93) boot: SPI Flash Size : 16MB
But if I try to set QIO in menuconfig, I get a message:
Code: Select all
I (82) qio_mode: Enabling QIO for flash chip WinBond
E (83) qio_mode: Quad I/O is only supported for standard pin numbers or ESP32-D2WD. Falling back to Dual I/O.
Is that correct?