summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/esp32/esp32_common.cmake6
-rw-r--r--ports/esp32/mpconfigport.h3
2 files changed, 8 insertions, 1 deletions
diff --git a/ports/esp32/esp32_common.cmake b/ports/esp32/esp32_common.cmake
index e3b1b81ca..ea60c395a 100644
--- a/ports/esp32/esp32_common.cmake
+++ b/ports/esp32/esp32_common.cmake
@@ -244,7 +244,11 @@ set(MICROPY_TARGET ${COMPONENT_TARGET})
if(CONFIG_IDF_TARGET_ARCH_XTENSA)
set(MICROPY_CROSS_FLAGS -march=xtensawin)
elseif(CONFIG_IDF_TARGET_ARCH_RISCV)
- set(MICROPY_CROSS_FLAGS -march=rv32imc)
+ if (CONFIG_IDF_TARGET_ESP32P4)
+ set(MICROPY_CROSS_FLAGS "-march=rv32imc -march-flags=zcmp")
+ else()
+ set(MICROPY_CROSS_FLAGS -march=rv32imc)
+ endif()
endif()
# Set compile options for this port.
diff --git a/ports/esp32/mpconfigport.h b/ports/esp32/mpconfigport.h
index 55503ff0b..69419ce00 100644
--- a/ports/esp32/mpconfigport.h
+++ b/ports/esp32/mpconfigport.h
@@ -44,6 +44,9 @@
#define MICROPY_EMIT_RV32 (0)
#else
#define MICROPY_EMIT_RV32 (1)
+#if CONFIG_IDF_TARGET_ESP32P4
+#define MICROPY_EMIT_RV32_ZCMP (1)
+#endif
#endif
#else
#define MICROPY_EMIT_XTENSAWIN (1)