Commit Graph

83 Commits

Author SHA1 Message Date
Marius Vikhammer
b733e190f0 Merge branch 'bugfix/ulp_riscv_rtc_i2c_test_fix_v5.4' into 'release/v5.4'
fix(ulp_riscv_i2c): Fix spurious pass in RTC I2C multi-device test (v5.4)

See merge request espressif/esp-idf!48527
2026-06-01 16:05:24 +08:00
Sudeep Mohanty
babd3e3ac8 fix(ulp_riscv_i2c): Fix spurious pass in RTC I2C multi-device test
The test was passing without real I2C communication due to a GPIO
mismatch (slave on GPIO 6/7 vs RTC I2C master on GPIO 2/3), single-byte
zero-coincidence, unchecked ULP return values, and an insufficient
RTC I2C timeout.

Fix slave GPIOs, increase test length, check I2C return values, add
proper assertions, and set an adequate RTC I2C timeout.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 15:24:43 +02:00
Sudeep Mohanty
dd2dd96a0e fix(lp_core): repair LP UART read_bytes RX handling
Fix read_bytes handling in lp_core_uart.c. Fix HP-side read_bounds guard
checks in test_lp_core_uart.c: the ULP export header types shared symbols as
uint32_t while the LP image maps a larger struct; avoid struct subscript on
that symbol so GCC 14 -Warray-bounds= passes in CI (build_non_test_related_apps).

Made-with: Cursor
2026-04-29 14:19:28 +02:00
Sudeep Mohanty
2544368c14 fix(lp_core): fix multi-device LP UART test failures on esp32p4
The multi-device LP UART tests were failing on esp32p4 due to several
issues in the test harness:

- LP ROM boot banner: On chips with LP ROM (esp32p4), the LP core emits
  a ROM banner on LP UART during startup, corrupting the first bytes of
  test data. Set skip_lp_rom_boot=true in the ULP config for write, read
  and mismatch tests to suppress this.

- Stale FIFO data: The HP UART RX FIFO could accumulate garbage during
  pin mux setup. Add uart_flush_input() after HP UART driver installation
  and before each read phase. Call lp_core_uart_clear_buf() before LP-side
  read tests to flush the LP UART RX FIFO as well.

- Missing synchronization: The HP reader could start listening before
  the LP transmitter was ready (or vice versa), causing data loss at
  higher baud rates. Add signal exchange (unity_send_signal /
  unity_wait_for_signal) to coordinate LP-to-HP data transfers.

- Short read timeout: The uart_read_bytes() timeout of 10 ms was too
  aggressive for slower baud rates. Increase to 100 ms.

Made-with: Cursor
2026-04-29 11:53:37 +02:00
Sudeep Mohanty
bf6a44f5d1 test(lp_core): use soc_filtered_targets for all LP core pytest parametrization
Several LP core pytest files were either hardcoded to specific chip lists
or using a less-precise SOC capability filter:

- test_lp_core_multi_device: was locked to ['esp32c6'] pending a workaround
  for LP I2C on esp32p4; all three active LP core chips now have
  SOC_LP_I2C_SUPPORTED=1, so switch to soc_filtered_targets.

- test_lp_uart_wakeup_modes: was using SOC_LP_CORE_SUPPORTED which is
  semantically wrong for a UART test; change to SOC_ULP_LP_UART_SUPPORTED.

- LP core example pytests (build_system, interrupt, gpio_intr_pulse_counter,
  lp_timer_interrupt): replace hardcoded ['esp32c5', 'esp32c6', 'esp32p4']
  with soc_filtered_targets('SOC_LP_CORE_SUPPORTED == 1') so that new
  chips automatically get coverage when their SOC cap is enabled.

Made-with: Cursor
2026-04-28 15:30:47 +02:00
Sudeep Mohanty
b8d99436a5 test(lp_core): extend LP UART multi-device test coverage
Refactor the LP UART multi-device tests to use a single parameterised
helper pair (test_lp_uart_write_cfg / test_lp_uart_read_cfg) instead of
one-off functions per config, and extend coverage to:

- write and read tests for 5-, 6-, 7-bit and even-parity configurations
- negative tests: word-length mismatch (FRAM_ERR recovery on LP side,
  garbled receive on HP side)
- LP GPIO Matrix routing tests (SOC_LP_GPIO_MATRIX_SUPPORTED chips only):
  swaps the default TX/RX GPIO numbers so both pins go through the LP GPIO
  Matrix, covering the lp_gpio_connect_in/out_signal() branch of
  lp_uart_config_io() that was previously untested at the data-transfer
  level; the same physical cross-wiring as all other LP UART tests is reused

Add rtc_gpio_deinit() cleanup at the end of single-board LP UART tests
so configured pins are returned to HP/digital mode and do not interfere
with subsequent tests that may reuse the same GPIOs.
2026-04-28 15:30:17 +02:00
Sudeep Mohanty
ffd41dc3e1 fix(lp_core): fix LP UART init parameter validation
Align data_bits, flow_ctrl, and rx_flow_ctrl_thresh checks with uart_param_config().

Made-with: Cursor
2026-04-28 11:51:55 +02:00
Evgeny Torbin
f7395255da test: format all test scripts 2026-03-11 07:34:34 +01:00
Sudeep Mohanty
4f981ea920 fix(lp_adc): Update ADC threshold values for LP core LP ADC test 2026-02-09 12:37:58 +01:00
Marius Vikhammer
fcafa0de5d test(ulp): added larger delay in ULP FSM I_WR_REG instruction test
Test is flakey, could possibly be due to the ULP occasionally needing
a bit more time to start up.
2025-11-17 16:23:41 +08:00
Marius Vikhammer
5173e81565 ci(ulp): reset board between ulp-fsm tests 2025-10-24 11:33:22 +08:00
Marius Vikhammer
ea68500941 Merge branch 'bugfix/lp_core_array_bounds_p4_v5.4' into 'release/v5.4'
fix(lp_core): fixed array-bound warning when compiling on P4 with -Os (v5.4)

See merge request espressif/esp-idf!41614
2025-09-01 10:52:46 +08:00
Marius Vikhammer
7c90e1c6b4 fix(lp_core): fixed array-bound warning when compiling on P4 with -Os
Closes https://github.com/espressif/esp-idf/issues/17054
2025-08-29 13:17:53 +08:00
Marius Vikhammer
74b003cfa1 ci(ulp): fixed default config not running in CI 2025-08-29 09:56:45 +08:00
Sudeep Mohanty
6b75576db2 change(lp-core): Update LP I2C and LP UART drivers to use raw interrupt status
This commit updates the LP I2C and LP UART drivers to use the raw
interrupt status without enabling the interrupts.
2025-05-19 10:33:21 +02:00
wuzhenghui
33aca83c63 change(ci): remove esp32c5 from readme since esp32c5 skipped CI build 2025-04-25 17:13:27 +08:00
gaoxu
b227da9b2b ci(adc): enable P4 ADC test and correct ADC performance thresh 2025-04-01 15:05:36 +08:00
Sudeep Mohanty
1e5308211d fix(lp_uart): Fixed flaky LP UART unit tests
This commit fixes some flaky LP UART multi device tests. It also adds
code to put the HP core to light sleep for few tests.
2025-02-17 10:29:04 +01:00
Marius Vikhammer
8406735635 fix(lp_core): updated lp rom newlib API addresses 2024-10-24 10:45:55 +08:00
Armando
56af6b5fc4 test(sleep): vad wakeup hp core test 2024-10-16 17:27:27 +08:00
Armando
60c005d1dc test(vad): vad wakeup test 2024-10-16 17:27:27 +08:00
Marius Vikhammer
564d777018 Merge branch 'feature/lp_core_40_mhz' into 'master'
feat(system): support choosing xtal as rtc-fast clock src on P4 and C5

Closes IDF-10203

See merge request espressif/esp-idf!32450
2024-09-20 10:57:15 +08:00
Marius Vikhammer
00eb97725b feat(system): support choosing xtal as rtc-fast clock src on P4 and C5
With xtal as rtc-fast clock source the LP-Core can run at twice the default
clock frequency. 40 MHz as opposed to 20 MHz.
2024-09-19 17:30:44 +08:00
Wu Zheng Hui
6abe40e590 Merge branch 'feature/optimize_esp32p4_active_power_eco1' into 'master'
feat(system): Optimize esp32p4 active state  power consumption

Closes PM-103 and IDF-7688

See merge request espressif/esp-idf!32950
2024-09-11 23:15:29 +08:00
wuzhenghui
c41d432397 fix(ulp): fix uart driver delete order in lp uart test case 2024-09-11 10:53:00 +08:00
Sudeep Mohanty
594880dae4 test(lp_adc): Added LP Core unit tests for testing LP ADC
Added a unit test to verify that LP ADC1 works and can be read from the
LP Core.
2024-09-10 08:45:11 +02:00
Marius Vikhammer
692eb01fe1 fix(lp-core): fixed ULP shared mem address being wrong on P4 2024-07-23 14:12:18 +08:00
Marius Vikhammer
d70383422b feat(lp-core): add reduced footprint print functions 2024-07-19 09:48:20 +08:00
Marius Vikhammer
92bf402911 Merge branch 'feature/ulp_hp_core_printf_debug' into 'master'
feat(ulp): add option for routing LP-printf to HP console

See merge request espressif/esp-idf!32166
2024-07-18 16:03:27 +08:00
Marius Vikhammer
74a04c140c feat(ulp): add option for routing LP-printf to HP console 2024-07-17 17:16:40 +08:00
Marius Vikhammer
9b387caf19 fix(etm): add ulp etm ll functions 2024-07-16 10:04:18 +08:00
Marius Vikhammer
d1132ddfa2 Merge branch 'feature/lp_core_etm' into 'master'
feat(lp-core): added support for using ETM events as wake-up source

Closes IDF-10201 and IDF-6360

See merge request espressif/esp-idf!31810
2024-07-08 12:23:03 +08:00
Marius Vikhammer
de2a66ebe0 feat(lp-core): added support for using ETM events as wake-up source 2024-07-08 11:04:34 +08:00
Marius Vikhammer
41d39a419f fix(pmp): fixed alignment of PMP addr for RTC mem on C5
Also refactored it for C6/H2/C61 to keep the approach consistent between targets
2024-07-04 16:24:46 +08:00
laokaiyao
cb22b8aaf7 ci(esp32c5): enable c5 target test 2024-07-02 16:45:49 +08:00
Sudeep Mohanty
70a0b4a1bf test: Added LP core unit tests for LP SPI
This commit adds tests for LP SPI master and LP SPI slave devices.
2024-06-26 13:43:55 +02:00
Marius Vikhammer
aae3aa5e5f feat(lp-core): bringup lp-core for C5 MP
LP-Core is now able to boot and run on C5 MP chip.
2024-06-19 09:18:47 +08:00
wuzhenghui
cca222948a fix(esp_driver_gpio): manage lp_io module clock by driver
Closes https://github.com/espressif/esp-idf/issues/13683
2024-06-05 17:56:37 +08:00
Marius Vikhammer
de77d04358 feat(ulp): add lp core panic handler 2024-05-28 14:42:59 +08:00
Sudeep Mohanty
3fd3c37507 Merge branch 'fix/fix_flaky_lp_uart_tests' into 'master'
Fixed unstable LP UART tests and added new tests

Closes IDFCI-2137

See merge request espressif/esp-idf!30524
2024-05-27 14:39:14 +08:00
Marius Vikhammer
7a89223aed fix(lp_core_test): fixed race-condition in lp core tests 2024-05-15 10:50:23 +08:00
Marius Vikhammer
76b7d12329 Merge branch 'feature/lp_core_interrupts' into 'master'
feat(ulp): support interrupts for C6/P4 LP core

Closes IDFGH-11986 and IDF-7200

See merge request espressif/esp-idf!30399
2024-04-29 14:36:54 +08:00
Marius Vikhammer
c5a513cf49 feat(ulp): support interrupts for C6/P4 LP core
Closes https://github.com/espressif/esp-idf/issues/13059
2024-04-28 17:03:23 +08:00
Sudeep Mohanty
3cbe88427e test(lp-core): Added unit test for lp_core_printf
This commit adds a unit test for the lp_core_printf API.
2024-04-26 16:56:48 +02:00
Sudeep Mohanty
be8a0568c5 test(lp-core): Fixed unstable LP UART tests
This commit fixes some flaky LP UART unit tests.
2024-04-26 14:32:16 +02:00
Sudeep Mohanty
df7e51fb8d feat(lp-uart): Added unit tests for LP UART when used from LP Core
This commit adds unit tests for the LP UART peripheral.
2024-04-22 18:34:48 +02:00
Marius Vikhammer
1fa59c442b fix(ulp): fixed lp-core not booting during sleep
LP core was unable to boot when system was in deepsleep.
This was due to lp uart init in LP rom using XTAL as clk source,
which is normally powered down during sleep.

This would cause lp uart to get stuck while printing ROM output,
and the app would never boot.

Also fixed wrong wakeup cause used by HP core for ULP wake up
2024-04-18 11:36:30 +08:00
Sudeep Mohanty
5228dc348b feat(lp_i2c): Added LP I2C support on the esp32p4
This commit adds support for the LP I2C peripheral to be used from the
LP core on the esp32p4.
2024-03-26 08:31:54 +01:00
Marius Vikhammer
a32fb07e7b feat(ulp): add basic support for running lp core on C5 2024-03-13 17:37:29 +08:00
Sudeep Mohanty
1c015a3f0d feat(ulp-riscv): Added unit test for RTC I2C
This commit adds a unit-test for RTC I2C operation on the ULP RISC-V.
2024-02-21 11:46:19 +01:00