There are some register description errors in parts of rom/gpio.h
This commit update the incorrect comments in rom/gpio.h And now
esp_rom_gpio.h is recommend instead of rom/gpio.h. So this commit adds
macro SIG_GPIO_OUT_IDX in esp_rom_gpio_connect_out_signal
function and removes the reference to gpio.h in some source files.
Closes https://github.com/espressif/esp-idf/issues/11737
When using PSRAM of rev0, the Flash and PSRAM should use different clock pins. But if using newer PSRAM, this is not necesary. This MR fixed the issue that allocating CLK of PSRAM to the same pin as Flash may crash.
Prior to this commit, when calling:
- spi_timing_enter_mspi_low_speed_mode()
- spi_timing_enter_mspi_high_speed_mode()
psram timing is not tuned. This will lead to a stall during early
startup. This bug is on S3, for 80MHz DDR PSRAM
This commit will add psram timing tuning, in these two functions.
All the partition handling API functions and data-types were moved from the 'spi_flash' component to the new one named 'esp_partition'. See Storage 5.x migration guide for more details
This commit gives basic mmu driver framework. Now it is able to maintain
mmu virtual address usage on esp32, esp32s2 and esp32s3. Usage to
external virtual address should rely on mmu functions to know which
address range is available, instead of hardcoded.
This commit also improves psram memory that is added to the heap
allocator. Now it's added to the heap, according to the memory
alignment.
Closes https://github.com/espressif/esp-idf/issues/8295
Prior to this commit, esp_psram/include/esp_private/mmu.h contains some
APIs that is used for:
- copy flash content to psram
- necessary sync APIs used by flash_mmap.c, due to above feature
This commit rename it to mmu_psram_flash.h, therefore mmu.h can be used
for real mmu related APIs.
This commit also moves above mention funcitons in `mmu.c` and
`mmu_psram.c` to `mmu_psram_flash.c`, leaving `mmu.c` to be used for
real mmu driver.
After this commit, when physical address is larger than vaddr range,
driver will still map as much as it can, but also give a verbose level
log to show the actual mapped size
SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY was always enabled on S2 and S3, but this option is not
compatible with ESP_COREDUMP_ENABLE_TO_FLASH. Make it configurable to allow users to deactive
it so that ESP_COREDUMP_ENABLE_TO_FLASH can be used.
As heap block may be allocated into multiple non-contiguous chunks, to
reserve enough memory for dma/internal usage, we do the malloc in the
step of max available block.
On ESP32 we use this way, this commit follows this way, on ESP32S2 and
ESP32S3