Commit Graph

338 Commits

Author SHA1 Message Date
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
laokaiyao
fc000cd7b7 ci(doc): enable doc build for esp32c5 2024-04-18 19:39:29 +08: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
Marius Vikhammer
4533f16c34 fix(rtc_memory): fix conflict between LP-ROM and RTC reserved 2024-04-17 13:37:56 +08:00
Marek Fiala
f2b75d81b3 fix(system): fix idf.py build ulp examples containing spaces in path on Win 2024-04-09 14:00:34 +02:00
Alexey Lapshin
4879bac36c feat(ulp): use --mcpu=esp32s3 for esp32s3 2024-04-04 16:12:39 +08:00
Marius Vikhammer
cbc632bd04 fix(lp_core): fix kconfig not allowing using all of LP mem for P4 lp core 2024-03-28 16:39:16 +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
Dr. Michael Lauer
08dead4b31 feat(ulp-riscv): Add convenience print function that supports different widths
This commit adds a convenience function to print hex numbers of
different widths on the ULP RISC-V core.

Closes https://github.com/espressif/esp-idf/pull/13180
2024-03-19 09:41:05 +01:00
Marius Vikhammer
4700f709ca Merge branch 'feature/c5_ulp' into 'master'
feat(ulp): add basic support for running lp core on C5

Closes IDF-8637

See merge request espressif/esp-idf!29496
2024-03-19 11:33:51 +08:00
Wu Zheng Hui
ba4b493df8 Merge branch 'fix/lp_core_uart_clk_init' into 'master'
fix(lp_uart): Fixed LP UART bus clock initialization flow

See merge request espressif/esp-idf!29680
2024-03-18 10:21:42 +08:00
Sudeep Mohanty
6d73dda897 fix(lp_uart): Fixed LP UART bus clock initialization flow
This MR updates the LP UART bus clock initialization flow to avoid
a lock up when accessing the LP UART peripheral.
2024-03-15 09:28:35 +01:00
Sudeep Mohanty
b90a279587 feat(lp-core): Added ability to print from LP ROM on the LP core
This commit adds the ability to use LP ROM functions from the LP core.
This allows the LP core code to utilize standard functions such as those
for printing from the LP ROM and therefore help reduce the code size on
the LP core.
2024-03-14 18:45:02 +01:00
Sudeep Mohanty
26fd843376 feat(lp_core): Added support for LP UART on LP core for esp32p4
This commit enables LP UART support for the LP core on the esp32p4.
2024-03-14 18:45:02 +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
Sudeep Mohanty
993c8d4f0e fix(ulp-riscv): Wrapped all RTC I2C and UART operations in critical sections
This commit adds a workaround for a bug where the RTC I2C operations
result in a Bus Error when interrupts are enabled. The commit also adds
a critical section protection for UART print operations.
2024-02-21 11:45:06 +01:00
Sudeep Mohanty
d352ec615a feat(ulp-riscv): Added utility functions for atomicity
This commit adds utility functions to enter and exit critical sections
in the code flow by disabling and enabling interrupts.
2024-02-21 11:45:06 +01:00
Sudeep Mohanty
bc74cf808d feat(ulp-riscv): Added Kconfig option to enable ULP RISC-V interrupts
This commit adds a Kconfig option, CONFIG_ULP_RISCV_INTERRUPT_ENABLE, to
enable interrupts on the ULP RISC-V core on the esp32s2 and esp32s3.
2024-02-21 11:45:06 +01:00
Omar Chebib
5a32ca10ad feat(lp_core): add a public function to get the timer cycle count
Closes https://github.com/espressif/esp-idf/issues/13101
2024-02-09 16:50:02 +08:00
Sudeep Mohanty
7acc152f1c Merge branch 'bugfix/rtc_i2c_not_in_od_mode' into 'master'
fix(ulp_riscv): Updated RTC I2C to use open-drain IOs

See merge request espressif/esp-idf!28799
2024-02-06 15:40:24 +08:00
Marius Vikhammer
dff1e5df88 feat(lp_core): add support for lp timer and lp gpio on P4 2024-02-06 09:41:20 +08:00
Sudeep Mohanty
e93c3068a0 fix(ulp_riscv): Updated RTC I2C to use open-drain IOs
This commit updates the RTC I2C driver in the ULP RISC-V to initialize
all I2C IOs in open-drain mode.
2024-01-30 14:54:45 +01:00
Sudeep Mohanty
df00205db3 Merge branch 'bugfix_lp_i2c_not_in_od_mode' into 'master'
fix(lp_i2c): Fixed an issue where the LP_I2C IO lines were not in open-drain mode

Closes IDFGH-11883

See merge request espressif/esp-idf!28739
2024-01-29 16:47:07 +08:00
Song Ruo Jing
10b41d7a24 Merge branch 'refactor/soc_rtc_h_file' into 'master'
refactor(rtc): move soc/rtc.h from soc to esp_hw_support component

Closes IDF-8941

See merge request espressif/esp-idf!28238
2024-01-26 20:20:20 +08:00
Sudeep Mohanty
36ac4631ae fix(lp_i2c): Fixed an issue where the LP_I2C IO lines were not in open-drain mode
This commit fixes an issue where in the LP I2C IO lines were not
initialized in open-drain mode.

Closes https://github.com/espressif/esp-idf/issues/12969
2024-01-26 11:25:25 +01:00
Song Ruo Jing
cf93777077 refactor(rtc): move soc/rtc.h from soc to esp_hw_support component
Deprecated rtc_xtal_freq_t, replaced with soc_xtal_freq_t defined in
clk_tree_defs.h in soc component.
2024-01-25 19:15:33 +08:00
Marius Vikhammer
1bcfde4e7f fix(ulp): enable astyle linter and format ULP component 2024-01-22 11:43:38 +08:00
Sudeep Mohanty
94e2516f6c feat(ulp-riscv): Added support for RTC IO interrupts for ULP RISC-V
This commit adds a feature to register RTC IO interrupt handlers for the
ULP RISC-V co-processor.
2024-01-18 15:59:45 +01:00
Sudeep Mohanty
b9ecc1e57a feat(ulp-riscv): Added SW interrupt capability for ULP RISC-V
This commit adds a feature to ULP RISC-V where the user can trigger
a software interrupt on the ULP RISC-V core.
2024-01-18 15:59:40 +01:00
Sudeep Mohanty
70241d13a2 feat(ulp-riscv): Added interrupt allocator and de-allocator
This commit adds methods to allocate and de-allocate interrupt handlers
for the ULP RISC-V.
2024-01-18 15:59:35 +01:00
Sudeep Mohanty
a6461eab77 feat(ulp-riscv): Added interrupt vector handling for ULP RISC-V
This commit adds interrupt vector processing for the ULP RISC-V co-processor.
2024-01-18 15:59:27 +01:00
Marius Vikhammer
13dd2c9aae Merge branch 'contrib/github_pr_12785' into 'master'
Provide ulp_adc_deinit() API to fix ADC1 handle leakage (GitHub PR)

Closes IDFGH-11673

See merge request espressif/esp-idf!27916
2024-01-12 12:03:52 +08:00
Fu Hanxi
d76334d83a Merge branch 'test/fix_lp_core_config_mismatch_issue' into 'master'
test: fix lp_core config file name mismatch issue

See merge request espressif/esp-idf!28217
2024-01-04 20:22:13 +08:00
Marius Vikhammer
c05b6533ce change(ulp): added test for ulp adc init/deinit 2024-01-04 10:55:25 +08:00
Armando
3c5a4f9e8a ci(p4): added todo jira for disabled tests on p4 2024-01-04 09:36:38 +08:00
Armando
1ab742b3c3 ci(p4): enable esp32p4 target test 2024-01-04 09:34:55 +08:00
Fu Hanxi
d1f5497f43
test: fix lp_core config file name mismatch issue 2024-01-02 09:36:01 +01:00
wuzhenghui
a967a207c9
feat(ulp): add api to get lp_cpu wakeup cause and clear wakeup source at startup
Closes https://github.com/espressif/esp-idf/issues/12651
2023-12-18 11:29:53 +08:00
paul
8596d46774 fix(ulp_adc): Provide ulp_adc_deinit() API to fix ADC1 handle leakage 2023-12-12 23:55:03 +03:00
Marius Vikhammer
0c067fcb05 feat(ulp/lp_core): Added basic support for building and running a LP-Core app on ESP32P4 2023-11-29 10:50:40 +08:00
Marius Vikhammer
d293ad94bd feat(pm): removed dependency on driver component 2023-11-13 15:49:12 +08:00
wuzhenghui
ad2629af54 ci(ulp_test): fix fake sleep of the maincore in ulp pytest cases 2023-10-30 11:18:01 +08:00
Sudeep Mohanty
96933837ce Merge branch 'ci/ulp_test_app_depends_components' into 'master'
ci(system): Restrict ULP test apps being built and run on CI

Closes IDF-8401

See merge request espressif/esp-idf!26628
2023-10-24 14:31:57 +08:00
Marius Vikhammer
679b1dc4bb Merge branch 'docs/ulp_lp_uart' into 'master'
docs(ulp): add info about lp-uart to lp-core docs

See merge request espressif/esp-idf!26405
2023-10-24 08:30:29 +08:00
Sudeep Mohanty
f6ecaa12e9 ci(system): Restrict ULP test apps being built and run on CI
This commit updates the dependency list of the ULP test apps. These test
apps will now only build and run when the ULP component is updated.
2023-10-23 10:54:36 +02:00
Marius Vikhammer
789a8b3446 docs(ulp): add info about lp-uart to lp-core docs 2023-10-23 12:11:34 +08:00
Jakob Hasse
548022fbe6 refactor(linux): excluded all non-Linux components from build
* All components which won't build (yet) on Linux are excluded.
  This enables switching to Linux in an application without
  explicitly setting COMPONENTS to main in the main
  CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available

doc(linux): brought section
  "Component Linux/Mock Support Overview" up to date
2023-10-16 17:06:54 +08:00
Marius Vikhammer
d27dd4d9cb Merge branch 'docs/show_include_path' into 'master'
docs: show include path and require component as part of API header

Closes IDF-3134, DOC-1032, and DOC-3629

See merge request espressif/esp-idf!25092
2023-10-11 09:36:14 +08:00
gaoxu
bc2a6bd730 feat(uart): spilt LP and HP uart set_baudrate function 2023-10-08 10:10:02 +08:00
gaoxu
3e3e928209 feat(uart): move periph_ll_uart_enabled to uart_ll.h 2023-10-08 10:10:02 +08:00
gaoxu
4541ad134d feat(uart): add RCC atomic block to uart/lp-uart peripheral 2023-10-08 10:10:02 +08:00
Marius Vikhammer
ebe68c3ee3 docs(build): add header include path and component require to api reference 2023-10-07 11:47:45 +08:00
Chen Yu Dong
ac17132bb4 Merge branch 'ci/move_build_test_rules_files_folder' into 'master'
fix(ci): change build-test-rules files folder

See merge request espressif/esp-idf!26076
2023-09-22 11:28:48 +08:00
Song Ruo Jing
2d458a3f93 feat(lp_io): Add support for ESP32P4 2023-09-20 19:39:41 +08:00
Chen Yudong
2e11919f70 fix(ci): change build-test-rules files folder 2023-09-20 19:17:06 +08:00
Darian Leung
287bdc5e61 fix(test_apps): Trim builds of component test apps
Some component test apps do not use the "set(COMPONENTS main)" command in their
project level "CMakeLists.txt", thus leading to their builds pulling in all
ESP-IDF components.

This commit trims the build of multiple component test apps:

- Add "set(COMPONENTS main ...)" to project level "CMakeLists.txt"
- Add missing "PRIV_REQUIRES" in some "main" component "CMakeLists.txt"

Also removed repeated configuraiton options in legacy_i2c_driver/sdkconfig.ci.defaults
as they are already specified in legacy_i2c_driver/sdkconfig.defaults
2023-09-18 17:16:37 +08:00
Marius Vikhammer
cb3a98f9d5 fix(ulp-i2c): fixed ulp i2c not working from main cpu if compiled with 0S or O2
Compiler would optimize register write to use s8i which do not work for IO registers

Closes https://github.com/espressif/esp-idf/issues/12214
2023-09-13 09:41:00 +08:00
Sudeep Mohanty
abc89df287 Merge branch 'bugfix/ulp_riscv_reg_ops_header_inclusion' into 'master'
fix(ulp_riscv): Fixed the header inclusion dependency for ulp_riscv_register_ops.h

Closes IDFGH-10922

See merge request espressif/esp-idf!25599
2023-08-29 11:15:26 +08:00
Sudeep Mohanty
ac4a0649bb fix(ulp_riscv): Fixed the header inclusion dependency for ulp_riscv_register_ops.h
There are redefinition compilation warnings for the register operation
macros when a ULP program was compiled which included soc.h before
ulp_riscv_register_ops.h. This commit fixes the issues by delegating the
exclusion macro to the CMakeLists.txt file.

Closes: https://github.com/espressif/esp-idf/issues/12116
2023-08-28 17:39:48 +08:00
morris
4a45479336 refactor(lp_periph): move enable and reset control to LL driver 2023-08-28 05:17:56 +00:00
Marius Vikhammer
78c4a7dcf2 Merge branch 'ci/ulp_i2c_multi_device_tests' into 'master'
ci(lp_core): added multi-device test for lp core i2c

See merge request espressif/esp-idf!25278
2023-08-15 11:22:01 +08:00
Marius Vikhammer
b11bec1ad2 ci(lp_core): added multi-device test for lp core i2c 2023-08-14 12:11:13 +08:00
Cao Sen Miao
262dac9c4d change(ulp): change some hal(ll) function name to new ones 2023-08-10 11:55:54 +08:00
Sudeep Mohanty
00955f7e59 fix(lp_i2c): Fixed a bug where the LP_I2C did not send NACK for 16-byte reads
This commit updates the LP_I2C driver used by the LP CPU wherein the
driver did not send out a NACK when we do a read of multiple of the FIFO
depth bytes. This was because the LP I2C controller was configured to
send an ACK when the Rx FIFO reaches the threshold instead of a NACK.
This commit updates the behavior.
2023-08-08 06:35:15 +00:00
Sudeep Mohanty
5b46ef3cdd fix(lp_i2c): Fixed a bug where LP I2C write got stuck
This commit fixes a bug where an I2C write got stuck when using the
lp_core_i2c_master_write_read_device() API. This was because the LP I2C
HW was not programmed with an END condition and therefore did not know
the end of a transaction.

Closes: https://github.com/espressif/esp-idf/issues/11958
2023-08-08 06:35:15 +00:00
Sudeep Mohanty
4464599dad fix(lp_i2c): Fixed incorrect clock setting for LP_I2C
The LP_I2C clock setting was incorrect and a lower frequency value was
being set during initialization. This commit fixes the behavior.
2023-08-08 06:35:15 +00:00
Armando
8bcef5abb0 refactor(adc): maintain s_adc_tsen_enabled in adc driver 2023-07-06 17:28:49 +08:00
Sudeep Mohanty
f6df189437 fix(lp-core): Added missing return statement to lp_core_printf() 2023-07-03 11:01:17 +02:00
Sudeep Mohanty
38c1759fb4 lp-core-uart: Added support for printf to the LP core
This commit adds a minimal logging driver for the LP core. The logging
driver provides a printf function which is built on top of the LP UART
driver. The commit also adds an example to demonstrate how to use print
statements in an LP core program.
2023-06-21 11:16:13 +02:00
Sudeep Mohanty
3638082670 lp-core-uart: Added LP UART support for LP core
This commit adds a UART driver for the LP core to interact with the LP
UART. The commit also adds an example to demonstrate the usage of the LP
UART driver.
2023-06-21 11:16:13 +02:00
Sudeep Mohanty
ab8ed8980a Merge branch 'feature/support_abort_on_lp_core' into 'master'
lp-core: Added support for abort() function on the LP core

See merge request espressif/esp-idf!24204
2023-06-20 19:08:49 +08:00
Song Ruo Jing
921713fff4 uart: Support LP_UART port with UART driver on esp32c6 2023-06-16 07:31:40 +00:00
Sudeep Mohanty
424a72cba6 lp-core: Added support for abort() function on the LP core
This commit adds support for the abort() function on the LP core.
2023-06-14 10:24:35 +02:00
boarchuz
07332abbaa fix ULP FSM reg ops with addr > 0xFF 2023-06-12 18:59:25 +10:00
Sudeep Mohanty
ba2daf3c9e ulp-riscv-touch: Added support for the touch sensor on ULP RISC-V
This commit adds a driver for reading the touch sensor from the ULP
RISC-V core during sleep. The commit also adds an example to demonstrate
this feature.

Closes https://github.com/espressif/esp-idf/issues/10480
2023-06-09 08:41:34 +02:00
Marius Vikhammer
ccda256058 Merge branch 'docs/ulp_lp_core' into 'master'
ulp: add lp core docs

Closes IDF-5816

See merge request espressif/esp-idf!24013
2023-06-07 10:43:23 +08:00
Marius Vikhammer
d19600e0a7 ulp/lp-core: added docs describing the lp core 2023-06-06 17:42:03 +08:00
Marius Vikhammer
f54503d822 Merge branch 'bugfix/ulp_fsm_ci' into 'master'
ulp-system/ulp-fsm: clean up test cases

Closes IDFCI-1665

See merge request espressif/esp-idf!24015
2023-06-06 10:29:31 +08:00
Marius Vikhammer
a1dff18a0e ulp-system/ulp-fsm: clean up test cases 2023-06-01 11:34:22 +08:00
Marius Vikhammer
dacc51dd2b ulp/lp-core: added gpio API for lp core as well as an example showcasing it. 2023-05-29 11:13:47 +08:00
Sudeep Mohanty
ec742abb25 lp-i2c: Added support for LP I2C peripheral to LP core
This commit adds support for the LP I2C peripheral driver to be used by
the LP core. An example is also added to demonstrate the usage of the LP
I2C peripheral from the LP core.
2023-05-19 07:27:51 +02:00
Jakob Hasse
c8791f30c0 compiler: replaced noreturn by __noreturn__ in header files
* noreturn may be replaced by third-party macros,
  rendering it ineffective

* Closes https://github.com/espressif/esp-idf/issues/11339
2023-05-11 16:07:45 +08:00
Zim Kalinowski
099ffe6243 Merge branch 'feature/c6_ulp_timer' into 'master'
ulp: lp timer support for lp core

Closes IDF-6956, IDF-6830, and IDF-6835

See merge request espressif/esp-idf!23453
2023-05-10 03:06:35 +08:00
Sudeep Mohanty
662e0812f4 ulp-riscv-i2c: Add ULP RISC-V I2C read/write timeout config option
The commit 88e4c06028 introduced a loop timeout for all ULP RISC-V I2C
transactions to avoid getting stuck in a forever loop. The loop timeout
was set to 500 msec by default. This commit improves on the concept by
making the loop timeout configurable via a Kconfig option in terms of
CPU ticks. If the timeout is set to -1 value then the transaction loops
will never timeout, therefore restoring the driver behavior before the
timeout was introduced.

The commit also updates the I2C Fast mode timings for esp32s2 which need
to be adjusted due to bus timing constraints.

Closes https://github.com/espressif/esp-idf/issues/11154
2023-05-09 11:17:01 +02:00
Marius Vikhammer
3ced7b12e8 ulp: add support for using lp timer with lp core on C6 2023-05-06 14:13:14 +08:00
Marius Vikhammer
1a5e47bd07 ci: fixed test apps overriding pytest configs 2023-04-26 11:07:35 +08:00
Marius Vikhammer
359b237cc5 ulp: added sleep support for lp core
Added support for running LP core while hp core sleeps, as well
as waking up the hp core.
2023-04-25 11:51:35 +08:00
Sudeep Mohanty
88e4c06028 ulp-riscv-i2c: Updated ULP RISC-V I2C driver to abort when met with errors
The current ULP RISC-V RTC I2C driver got stuck in an infinite loop if
there is a I2C transaction error. This commit amends the driver flow to
abort the read/write operation if met with errors. It also adds a loop
timeout to avoid getting stuck in an infinite loop.The commit also
updates the default bus timing parameters for RTC I2C to be faster.
This commit also adds documentation help to guide users when they meet
with issues while working with the RTC I2C driver on the ULP RISC-V coprocessor.
2023-03-29 13:25:46 +02:00
Marius Vikhammer
b7fcf1c139 ulp-fsm: fixed potential sleep tests failures
If the ULP sent the wake-up signal before the main CPU went to sleep,
then the test case would get stuck in sleep.

Increased delay before sending the wake-up signal.
2023-03-22 11:39:33 +08:00
Zim Kalinowski
5016eb6269 ulp: fix and re-enable no-format warnings 2023-03-12 21:47:24 +01:00
Marius Vikhammer
284dabf17f ulp: added basic support for building and running a binary in the lp core 2023-03-09 10:12:23 +08:00
Sudeep Mohanty
a67d15fdea ulp: Added APIs to handle ULP signal ISRs for the main CPU
This commit introduces APIs to handle ULP signal ISRs when the main core
is not in sleepmode.

Closes https://github.com/espressif/esp-idf/issues/10737
2023-02-24 07:25:39 +00:00
Alexey Lapshin
61a7342acd tools: add riscv zicsr/zifencei because they were separated from i
https://groups.google.com/a/groups.riscv.org/g/sw-dev/c/aE1ZeHHCYf4
2023-02-22 05:33:03 +00:00
Alexey Lapshin
5389ac4e04 tools: cmake: ignore linker RWX segment warnings 2023-02-22 05:33:03 +00:00
Sudeep Mohanty
522a216385 Merge branch 'feature/ulp_elf_output' into 'master'
ulp: Updated ULP CMakeLists.txt to output binary with .elf extension

Closes IDF-3060

See merge request espressif/esp-idf!22414
2023-02-20 15:08:35 +08:00
Sudeep Mohanty
8f93e4d0d5 ulp: Updated ULP CMakeLists.txt to output binary with .elf extension
This commit updates the ULP CMakeLists.txt to output the ULP binary with
a .elf extension. Currently the output file does not use any extension.
2023-02-17 10:44:24 +01:00
Omar Chebib
5e5343d429 TWDT: Use the new TWDT Kconfig options in the examples and tests 2023-02-17 11:22:25 +08:00
Sudeep Mohanty
3cc399f399 ulp-riscv: Added API ulp_riscv_reset to reset the ULP core
This commit adds a new API ulp_reisv_reset() to enable reseting of the
ULP core from the main core. This is particularly necessary in case the
ULP crashes due to any reason. Earlier the only way to recover the ULP
was to do a power reset. This commit also adds new test cases which
exercise this scenario.
2023-02-08 07:52:34 +00:00