]> granicus.if.org Git - esp-idf/commit
feature(psram): configure flash and psram speed during runtime
authorWangjialin <wangjialin@espressif.com>
Fri, 20 Apr 2018 08:59:25 +0000 (16:59 +0800)
committerWangjialin <wangjialin@espressif.com>
Fri, 20 Apr 2018 12:51:44 +0000 (20:51 +0800)
commitb1dcb52fec4d427cc831240d675e6804d9aebc6f
tree8d633a827064659cf16f0538d922b87e7a01ce20
parent22fbcd276c90049b906702fde1744fd24d438be3
feature(psram): configure flash and psram speed during runtime

1. Bootloader reads SPI configuration from bin header, so that the burning configuration can be different with compiling configuration.
2. Psram mode init will overwrite original flash speed mode, so that users can change psram and flash speed after OTA.
3. Flash read mode(QIO/DIO…) will not be changed in app bin. It is decided by bootloader, OTA can not change this mode.
4. Add read flash ID function, and save flash ID in g_rom_flashchip
5. Set drive ability for all related GPIOs
6. Check raise VDDSDIO voltage in 80Mhz mode
7. Add check flash ID and update settings in bootloader
8. Read flash ID once and keep in global variable
9. Read flash image header once and reuse the result

Tested cases:
1. Test new and old version of bootloader
boot Flash 20M —> app Flash 80M + Psram 80M
boot Flash 40M —> app Flash 80M + Psram 80M
boot Flash 80M —> app Flash 80M + Psram 80M
boot Flash 20M —> app Flash 80M + Psram 40M
boot Flash 40M —> app Flash 80M + Psram 40M
boot Flash 80M —> app Flash 80M + Psram 40M
boot Flash 20M —> app Flash 40M + Psram 40M
boot Flash 40M —> app Flash 40M + Psram 40M
boot Flash 80M —> app Flash 40M + Psram 40M
2. Working after esp_restart reboot.
components/bootloader_support/include_priv/flash_qio_mode.h
components/bootloader_support/src/bootloader_init.c
components/bootloader_support/src/flash_qio_mode.c
components/esp32/include/rom/spi_flash.h
components/esp32/spiram_psram.c