Skip to content

Incompatible settings for CONFIG_FREERTOS_UNICORE and CONFIG_SPIRAM (IDFGH-10359) #11617

@derrick-senva

Description

@derrick-senva

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.

v5.0.2

Operating System used.

Windows

How did you build your project?

Command line with Make

If you are using Windows, please specify command line type.

None

Development Kit.

Custom Board

Power Supply used.

USB

What is the expected behavior?

A 2nd stage bootloader built with single-core mode and PSRAM disabled should be able to boot into application firmware built with dual-core mode and PSRAM enabled.

What is the actual behavior?

The application firmware crashes on an IllegalInstruction.

Steps to reproduce.

  1. Build a bootloader and partition table with ESP-IDF v5.0.2 on an ESP32 with sdkconfig.txt below. The main configuration settings that are in question are CONFIG_SPIRAM is not set and CONFIG_FREERTOS_UNICORE=y.

sdkconfig-original.txt

  1. Build application firmware with the sdkconfig modified as shown in sdkconfig-diff.txt below. The settings that were manually changed in menuconfig are CONFIG_SPIRAM=y and CONFIG_FREERTOS_UNICORE is not set. The rest seem to be automatically updated based on those two.

sdkconfig-diff.txt

  1. Flash all three binaries and reset the ESP32.

  2. Below is the output log from the serial port.

output_log.txt

More Information.

Our project is using multiple components: Secure Boot v2, encrypted flash, encrypted NVS partition, FAT partition, PSRAM, Ethernet, WiFi, lwIP, MQTT, Modbus, and OTA firmware updates. The crash shown above seems to happen very early before it reaches any of our actual application code in app_main().

If the bootloader is rebuilt using the same sdkconfig as the application firmware, the crash does not occur. Incidentally, I noticed that CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y is added automatically when CONFIG_SPIRAM=y and CONFIG_FREERTOS_UNICORE is not set are configured. Is this related to the issue?

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions