Page 1 of 1

WROOM-32 (DevKitC) QIO/40MHz operation keeps resetting

Posted: Wed Jan 18, 2017 2:35 am
by ajaymm58
I tried to configure QIO/40MHz operation (using menuconfig), and I see the following on UART0-console:

Code: Select all

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
Falling back to built-in command interpreter.
OK
>ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:QIO, clock div:2
load:0x3fff0008,len:8
load:0xffffffff,len:-1
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:QIO, clock div:2
load:0x3fff0008,len:8
load:0xffffffff,len:-1
Is this a known issue?
Programming the image using 'make flahsh' is ok.

DIO mode it operates correctly.

Code: Select all

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0008,len:8
load:0x3fff0010,len:3384
load:0x40078000,len:7452
ho 0 tail 12 room 4
load:0x40080000,len:252
entry 0x40080034
I (46) boot: ESP-IDF v1.0-387-gca9f62a 2nd stage bootloader
My build environment is Windows 10 host running MSYS2 (from esp32_win32_msys2_environment_and_toolcahin-20170111.zip)
and esp-idf sync from 1/15/2017

Also, I would like to run QSPI flash at 80MHz on DevKitC. Is that supported?

Re: WROOM-32 (DevKitC) QIO/40MHz operation keeps resetting

Posted: Wed Jan 18, 2017 3:26 am
by ESP_Sprite
Yes, it is a known issue. The boot code in the ROM of the ESP32 isn't directly compatible with the specific instructions the flash chip needs to use QIO mode. We are working on a workaround, expected to get into esp-idf in the coming weeks, but for now, QIO mode does not work here.

Re: WROOM-32 (DevKitC) QIO/40MHz operation keeps resetting

Posted: Thu Jan 19, 2017 1:25 am
by ajaymm58
Thanks for the confirmation regarding QIO mode support.
1. Is DIO @80MHz tested on DevKitC (ESP-WROOM-32)?
2. Can you kindly list the target device families from GigaDevice and Winbond for which QIO mode will be supported?
3. For the planned feature support on this matter, will SPI Flash devices with QPI mode of operation in consideration?

Re: WROOM-32 (DevKitC) QIO/40MHz operation keeps resetting

Posted: Thu Jan 19, 2017 5:00 pm
by loboris
ajaymm58 wrote:Thanks for the confirmation regarding QIO mode support.
1. Is DIO @80MHz tested on DevKitC (ESP-WROOM-32)?
2. Can you kindly list the target device families from GigaDevice and Winbond for which QIO mode will be supported?
3. For the planned feature support on this matter, will SPI Flash devices with QPI mode of operation in consideration?
SparkFun ESP32 Thing has Winbond W25Q32FVSS SPI Flash and works without problem in QIO mode on 80MHz.

Code: Select all

configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:QIO, clock div:1
load:0x3fff0008,len:8
load:0x3fff0010,len:3384
load:0x40078000,len:7504
load:0x40080000,len:252
entry 0x40080034
I (28) boot: ESP-IDF v1.0-434-ga14bef8 2nd stage bootloader
I (29) boot: compile time 17:51:24
I (62) boot: Enabling RNG early entropy source...
I (63) boot: SPI Speed      : 80MHz
I (63) boot: SPI Mode       : QIO
I (73) boot: SPI Flash Size : 4MB

Re: WROOM-32 (DevKitC) QIO/40MHz operation keeps resetting

Posted: Fri Mar 24, 2017 8:48 pm
by ajaymm58
ESP_Sprite wrote:Yes, it is a known issue. The boot code in the ROM of the ESP32 isn't directly compatible with the specific instructions the flash chip needs to use QIO mode. We are working on a workaround, expected to get into esp-idf in the coming weeks, but for now, QIO mode does not work here.
Is there any update on QIO mode support?
Can you confirm if W25Q32FVZPIG device is supported to work in QIO mode at 80MHz?

I appreciate the response from loboris @SparkFun, but would like to see support for in the bootloader in ESP-IDF

Re: WROOM-32 (DevKitC) QIO/40MHz operation keeps resetting

Posted: Sun Mar 26, 2017 11:33 pm
by ESP_Angus
ajaymm58 wrote:
ESP_Sprite wrote:Yes, it is a known issue. The boot code in the ROM of the ESP32 isn't directly compatible with the specific instructions the flash chip needs to use QIO mode. We are working on a workaround, expected to get into esp-idf in the coming weeks, but for now, QIO mode does not work here.
Is there any update on QIO mode support?
Can you confirm if W25Q32FVZPIG device is supported to work in QIO mode at 80MHz?

I appreciate the response from loboris @SparkFun, but would like to see support for in the bootloader in ESP-IDF
Sorry for not updating this thread earlier. Support for QIO mode on other flash chips (including Winbond) has been added to IDF and is supported in the V2.0 release candidates and the current IDF master branch.

If you select QIO mode in "make menuconfig" and reflash the bootloader then it should correctly detect the chip model and enable QIO.

ESP-WROOM32 modules support QIO mode at 80MHz provided that no other devices are connected to the relevant SPI pins of the module. For other module/board designs, QIO support and maximum clock speed will depend on the board design.

Angus