Commit Graph

16754 Commits

Author SHA1 Message Date
Armando
3c8f6dd1cf SPI_BUS_LOCK: fix a concurrency issue
define: lock_bits = (lock->status & LOCK_MASK) >> LOCK_SHIFT;  This `lock_bits` is the Bit 29-20 of the lock->status

1. spi_hdl_1:
   acquire_end_core():
   uint32_t status = lock_status_clear(lock, dev_handle->mask & LOCK_MASK);
   Becuase this is the first `spi_hdl_1`, so after this , lock_bits == 0`b0. status == 0

2. spi_hdl_2:
   acquire_core:
   uint32_t status = lock_status_fetch_set(lock, dev_handle->mask & LOCK_MASK);
   Then here status is 0`b0, but lock_bits == 0`b10. Because this is the `spi_hdl_2`

3. spi_hdl_2:
   `acquire_core` return true, because status == 0. `spi_bus_lock_acquire_start(spi_hdl_2)` then won't block.

4. spi_hdl_2:
   spi_device_polling_end(spi_hdl_2).

5. spi_hdl_1:
   acquire_end_core:
   status is 0, so it cleas the lock->acquiring_dev

6. spi_hdl_2:
   spi_device_polling_end:
   assert(handle == get_acquiring_dev(host)); Fail

Closes https://github.com/espressif/esp-idf/issues/8179
2022-09-06 16:59:02 +08:00
Wang Meng Yang
cf8abdb554 Merge branch 'bugfix/remove_bt_dft_init_semicolon' into 'master'
bt: Remove trailing semicolon from bt dft initializer

Closes IDFGH-8058

See merge request espressif/esp-idf!19773
2022-09-01 11:30:21 +08:00
morris
82f2ad9b6d Merge branch 'bugfix/propagate_isr_allocation_failure' into 'master'
Fix MCPWM multiplication overflow

Closes IDFGH-8151 and IDFGH-8155

See merge request espressif/esp-idf!19829
2022-09-01 10:44:15 +08:00
morris
6088f53966 Merge branch 'refactor/add_ledc_i2c_soc_caps' into 'master'
soc_caps: Introduce SOC_LEDC_SUPPORTED and SOC_I2C_SUPPORTED caps to IDF

See merge request espressif/esp-idf!19885
2022-08-31 23:42:24 +08:00
morris
4daa04481b Merge branch 'bugfix/usb_serial_jtag_console_crash' into 'master'
console: fix a crash when initializing usb_serial_jtag console

Closes IDFGH-8166

See merge request espressif/esp-idf!19866
2022-08-31 22:17:16 +08:00
Song Ruo Jing
6a60ecf780 soc_caps: Introduce SOC_LEDC_SUPPORTED and SOC_I2C_SUPPORTED caps to IDF
Wrap the ledc, i2c source files with the new caps in CMakeLists and linker.lf.
This could avoid potential source file not found warning during linking time.
2022-08-31 20:43:22 +08:00
Ivan Grokhotkov
4d9018e925 Merge branch 'feature/ulp_cmake_cleanups' into 'master'
ulp: CMake and python cleanups

See merge request espressif/esp-idf!19817
2022-08-31 17:59:05 +08:00
morris
731db1c873 mcpwm: fix multiplication overflow in converting us to compare ticks
Closes https://github.com/espressif/esp-idf/issues/9648
2022-08-31 17:38:29 +08:00
morris
a0d03a60cd legacy_timer: propagate isr register failure
Closes https://github.com/espressif/esp-idf/issues/9651
2022-08-31 17:18:55 +08:00
wuzhenghui
c31aaeda2a ll: add reset interface to rtc_cntl_ll 2022-08-31 01:59:36 +00:00
wuzhenghui
82ffe7e438 replacing reset by register operations with ROM interfaces to decouple the effects of register name changes 2022-08-31 01:59:36 +00:00
wuzhenghui
88c123f805 esp_rom: add esp_rom_software_reset and esp_rom_software_reset_cpu interface 2022-08-31 01:59:36 +00:00
Ivan Grokhotkov
5b88c6b142
console: pass esp_console_repl_universal_t pointer to the repl task
For usb_serial_jtag REPL only, xTaskCreate was passing a pointer to
esp_console_repl_com_t, while esp_console_repl_task was expecting
a pointer to esp_console_repl_universal_t.

The way the two structures are defined, this makes no difference, and
the pointer values are the same. Still, this could potentially break
in the future.

(I am not sure what is the distinction between repl_com (common?) and
repl_universal; it seems that `int uart_channel` could just as well
be part of esp_console_repl_com_t; alternatively, as suggested in the
previous commit, this structure could contain a callback function
pointer, which would allow `esp_console_new_repl_*` functions to
specify how stdin/stdout should be initialized by the REPL task.)
2022-08-30 19:37:15 +02:00
Ivan Grokhotkov
c1d5717013
console: fix a crash when initializing usb_serial_jtag console
The crash occurred when calling setvbuf(stdin,...) with stdin==NULL.
This happened because esp_console_repl_task started running before
its args->uart_channel was initialized; then esp_console_repl_task
went into the code path 'uart_channel != CONFIG_ESP_CONSOLE_UART_NUM',
and tried to 'fopen("/dev/uart/0");`
Since the UART VFS is not registered when ESP_CONSOLE_USB_SERIAL_JTAG
option is enabled, fopen failed and 'stdin' was NULL.
Fix by moving the initialization of repl task arguments before the
start of the task, same as it is done for the usb_cdcacm case.

The crash started happening after the commit 287ab7566b. I haven’t
verified this, but I guess the reason why it wasn’t happening before
was that xTaskCreate was not correctly yielding to the newly created
higher-priority 'repl' task, therefore the code which was setting
the repl task arguments after xTaskCreate had time to execute.

It should be noted that the 'uart_channel' argument is a bit hacky,
in the first place. The code should be refactored to pass a callback
function to the repl task, and let this callback initialize stdin and
stdout based on the chosen console channel. Then esp_console_repl_task
does not require assumptions about the specific interface used.

Closes https://github.com/espressif/esp-idf/issues/9662
2022-08-30 19:16:51 +02:00
Mahavir Jain
0a93ee1337 Merge branch 'bugfix/ctx_lock_wifi_prov' into 'master'
Fixed provisioning manager deinit

Closes IDFGH-8171

See merge request espressif/esp-idf!19828
2022-08-30 23:09:29 +08:00
Marius Vikhammer
dfaaefe2ce Merge branch 'bugfix/uart_sclk_freq' into 'master'
uart: fixed sclk_freq not init warning when compiling with asserts disabled

Closes IDFGH-8144

See merge request espressif/esp-idf!19792
2022-08-30 16:24:38 +08:00
morris
1ca3fad458 Merge branch 'bugfix/gpio_ut_usj' into 'master'
gpio: add a test case to test the ability of disabling USB D+ pin pull-up

See merge request espressif/esp-idf!19838
2022-08-30 14:09:45 +08:00
Gao Xu
0da21aca0d Merge branch 'bugfix/fix_spi_hd_quad_issue_esp32c3' into 'master'
essl_spi: fix wrong dummy cycle under quad spi mode ant add a test to verify spi quad mod

Closes IDF-5182 and IDF-5181

See merge request espressif/esp-idf!18680
2022-08-30 10:53:11 +08:00
Simon
f8c3d093f0 Merge branch 'bugfix/btld_flash_ram' into 'master'
bootloader_flash: Some bootloader flash functions are not put in IRAM

See merge request espressif/esp-idf!19832
2022-08-30 10:51:52 +08:00
Ivan Grokhotkov
9aecfe2b9d
ulp: fix typo in peripherals ld file names 2022-08-30 02:34:28 +02:00
Ivan Grokhotkov
2916bf9b6c
ulp: esp32ulp_mapgen: remove the special case for RISC-V, cleanup
There are multiple changes in this commit:

1. Unify the RISC-V and ULP-FSM code paths in esp32ulp_mapgen.py.
   It seems that these were originally introduced because `nm` output
   for the RISC-V case contained symbol sizes, while for the ULP-FSM
   no symbol sizes were reported. This makes sense, because the
   ULP-FSM object files are produced from assembly source, symbol
   sizes have to be added manually using the .size directive.
   In the case of RISC-V, the object files are built from C sources
   and the sizes are automatically added by the compiler.

   Now 'posix' output format is used for both RISC-V and ULP-FSM.

2. Move BASE_ADDR out of esp32ulp_mapgen.py. This now has to be passed
   from CMake, which should make it easier to modify if a new chip
   with a different RTC RAM base address is added.

3. Add C++ guards to the generated header file.

4. Switch from optparse to argparse for similarity with other IDF
   tools.

5. Add type annotations.
2022-08-30 02:34:28 +02:00
Ivan Grokhotkov
4b03e233d0
ulp: cmake: simplify the dependency on the generated LD script
* "dummy loop to force pre-processed linker file generation" seems to
  be unnecessary. It looks like the idea was copied from the
  dependency of ULP-FSM preprocessed source files on the LD script.
* Can use add_dependencies instead of
  set_target_properties(...LINK_DEPENDS...) which is more readable
* Use target_link_options instead of target_link_libraries, which is
  supported starting from CMake 3.13. Unlike target_link_libraries,
  it doesn't require manually quoting the pats.
2022-08-30 02:34:28 +02:00
Ivan Grokhotkov
67bd7a300a
ulp: cmake: add the target early, use target_* commands everywhere
Instead of collecting options in various variables, use CMake
commands like target_sources and target_link_options.
2022-08-30 02:34:28 +02:00
Ivan Grokhotkov
1a73374f82
ulp: move the expected ULP-FSM toolchain version from .mk to CMake
toolchain_ulp_version.mk is a remnant of the time when we had two
build systems, and CMake had to read the expected version from a
makefile.
2022-08-30 02:34:28 +02:00
Ivan Grokhotkov
b7efde18c6 Merge branch 'bugfix/vfs_build_warning' into 'master'
vfs: use recommended `esp_cpu_dbgr_is_attached` API

See merge request espressif/esp-idf!19843
2022-08-30 07:18:40 +08:00
Fu Hanxi
4f3610f957 Merge branch 'ci/upload_elf_map_to_minio' into 'master'
ci: upload elf map file to s3 server to reduce artifacts size

Closes IDFCI-1385

See merge request espressif/esp-idf!19756
2022-08-30 01:06:11 +08:00
Mahavir Jain
8b8d525a6c
vfs: use recommended esp_cpu_dbgr_is_attached API
This fixes deprecation warning with earlier API
`cpu_hal_is_debugger_attached`.
2022-08-29 22:15:11 +05:30
Jiang Jiang Jian
8d9c51f76d Merge branch 'feature/add_txpwr_api_on_esp32c2' into 'master'
add set/get txpwr api for esp32c2

See merge request espressif/esp-idf!19520
2022-08-29 23:35:25 +08:00
Roland Dobai
1a006cb718 Merge branch 'feature/freertos_smp_sysview' into 'master'
sysview: Adds FreeRTOS SMP port

Closes IDF-4995

See merge request espressif/esp-idf!18615
2022-08-29 23:09:42 +08:00
Zhi Wei Jian
4a5662bc25 Merge branch 'feature/add_qa_test_funcs' into 'master'
Add QA test Functions for esp32

See merge request espressif/esp-idf!19735
2022-08-29 21:04:02 +08:00
Martin Vychodil
38acc3f7bf Merge branch 'feature/vfs_driver_interface' into 'master'
esp/vfs: VFS semihosting interface support

Closes OCD-98

See merge request espressif/esp-idf!16932
2022-08-29 20:52:17 +08:00
Song Ruo Jing
46886286c4 gpio: add a test case to test the ability of disabling USB D+ pin pull-up 2022-08-29 19:38:13 +08:00
Isha Pardikar
b8fc63d658 wifi_provisioning: Fixed prov_ctx_lock of deinit provisioning manager 2022-08-29 16:08:56 +05:30
Cao Sen Miao
0de699532d bootloader_flash: Some bootloader flash functions are not put in IRAM 2022-08-29 17:24:05 +08:00
Fu Hanxi
0d7f5b3d84 adc: skip linking static functions when not COMPILER_OPTIMIZATION_DEFAULT 2022-08-29 16:57:31 +08:00
Fu Hanxi
317f6bc024 esp_pm: fix esp32c2 no sleep_enable_memory_retention error 2022-08-29 16:57:31 +08:00
morris
b82d6ce928 md5_hash: fix copyright checker 2022-08-29 15:40:37 +08:00
wuzhenghui
fbeb6195c2 esp_rom: add esp32c6 header files 2022-08-29 15:40:37 +08:00
Kapil Gupta
06db6c2098 Merge branch 'bugfix/wps_ssid_len_validation' into 'master'
wpa_supplicant: Add WPS ssid length validation

See merge request espressif/esp-idf!19486
2022-08-29 13:55:17 +08:00
Jiang Jiang Jian
33b51563dc Merge branch 'feature/mem-corruption-check-when-comprehensif-poisoning' into 'master'
heap: provide the tlsf_check_hook() definition to implement a check of memory corruption

Closes IDFGH-5643

See merge request espressif/esp-idf!19485
2022-08-29 12:21:43 +08:00
Simon
949ddc3501 Merge branch 'test/add_c2_extflash_test' into 'master'
esp_flash: Add EXT flash test on ESP32-C2

See merge request espressif/esp-idf!19700
2022-08-29 11:42:58 +08:00
zwl
30e47072f9 add set/get txpwr api and fix issues such as disconnect and abnormal tx behavior for esp32c2 2022-08-29 11:32:18 +08:00
Michael (XIAO Xufeng)
4fb1ccdd4e Merge branch 'feature/c2_efuse_with_26mhz' into 'master'
efuse(es32c2): Supports 26MHz XTAL

Closes IDF-5427

See merge request espressif/esp-idf!18851
2022-08-29 01:43:57 +08:00
Armando (Dou Yiwen)
49dc1a32c5 Merge branch 'bugfix/remove_esp_adc_wno_flag' into 'master'
esp_adc: remove wno flag

Closes IDF-5765

See merge request espressif/esp-idf!19791
2022-08-26 22:32:24 +08:00
Armando (Dou Yiwen)
ac63c0afd7 Merge branch 'feature/basic_mmu_framework' into 'master'
mmu: basic mmu driver framework

Closes IDFGH-6659 and IDF-5825

See merge request espressif/esp-idf!19547
2022-08-26 22:19:10 +08:00
morris
ebd3081d97 Merge branch 'bugfix/fix_rtc_gpio_hold' into 'master'
gpio: Fix missing set hold bit in rtc gpio register

Closes IDFGH-2489

See merge request espressif/esp-idf!19760
2022-08-26 18:13:14 +08:00
Armando
ebe5861565 esp_psram: added a test for unaligned access 2022-08-26 17:59:06 +08:00
Armando
2d44dc1eed mmu: driver framework, for vaddr maintenance
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
2022-08-26 17:59:06 +08:00
Armando
50a8d8412e esp_adc: remove wno flag 2022-08-26 15:08:18 +08:00
Guillaume Souchere
4571e19387 heap: Add test to check that the corruption of free memory is detected
This commit extends the heap test set by adding a test to check corruption
detection in free memory block.

For each byte of the free block memory, the test changes the value of the byte,
call multi_heap_check(), make sure that the function returns 'corruption detected'
only when comprehensive poisoning is set, restore the good value of the byte, calls
multi_heap_check() again and make sure that it returns 'OK'.
2022-08-26 08:25:39 +02:00