Commit Graph

29076 Commits

Author SHA1 Message Date
Frantisek Hrbata
a558ad506e tools: fix custom sdkconfig renaming in set-target
Currently the set-target has sdkconfig file name hardcoded to the
default one and doesn't honor custom config paths or names.
IMHO the only place where we can really now the config file name
is in cmake. But also the config should be really renamed only if
the set-target action is running.

This moves the config file renaming into cmake and it's performed only
when _IDF_PY_SET_TARGET_ACTION env. var. is set to 'ON'. This should
hopefully guarantee that it's really renamed only while set-target is
running.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-03-08 16:45:55 +01:00
Frantisek Hrbata
1ca9e63e79 tools: add target consistency checks to cmake
Extend target checks in cmake, in case it's run directly and not via
idf.py or if idf.py misses something. This may happen
for example if cmake variables are set in project's CMakeLists.txt.

Some clean-ups are included along with the new checks and tests.

1. __target_check() function is removed. IIUC it should never fail,
   because the selected target is explicitly passed as environmental
   variable to kconfgen. Meaning the IDF_TARGET from environment variable may
   not be actually used in kconfgen if IDF_TARGET is already set it cmake cache.
   Note that the IDF_TARGET environment variable used for kconfgen is not
   based on the actual IDF_TARGET environment variable set for idf.py, but
   rather on the value set in __target_init() with

	set(IDF_TARGET ${env_idf_target} CACHE STRING "IDF Build Target")

   My understanding is that the original check was introduced to handle
   situation, where IDF_TARGET was already set in cmake's cache and
   the IDF_TARGET from environment variable was different. Since
   the kconfgen would use the original environment variable(not
   explicitly passed as it is now) the IDF_TARGET in cmake and in
   sdkconfig could differ. IOW I think the original check was introduced
   to cope with the following cmake behaviour

	set(VARIABLE "value1" CACHE STRING "test variable")
	set(VARIABLE "value2" CACHE STRING "test variable")
	message("Variable value: ${VARIABLE}")
	output: Variable value: value1

2. I scratched by head how it is possible that the following code
   in __target_check()

   	if(NOT ${IDF_TARGET} STREQUAL ${env_idf_target})

   could fail if IDF_TARGET is not set. For example in clean project

	IDF_TARGET=esp32 idf.py reconfigure

   Here env_idf_target==esp32 and IDF_TARGET is not set, so I would
   expect that cmake will fail with error message that the cache
   and env target do not match. The thing is that the variable
   evaluation is done before the if command, so it actually
   sees this

   	if(NOT  STREQUAL esp32)

   which is false and the error is not printed. It can be seen
   with 'cmake --trace-expand' command. I don't know if this
   was used on purpose or it worked just as a coincidence, but
   I find it very confusing, so I added explicit check if the
   IDF_TARGET is defined before the actual check. Same for
   CMAKE_TOOLCHAIN_FILE.

3. Error messages are not formated(line-wrapped) by cmake's markup
   so it's easier to check the output in tests.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-03-08 16:45:47 +01:00
Frantisek Hrbata
8e912faad1 tools: add target consistency checks for target specified with -D option
Extend existing target consistency checks for the two following cases.
1. Target does not match currently used toolchain
   $ IDF_TARGET=esp32s2 idf.py reconfigure
   $ idf.py -DIDF_TARGET=esp32c3 build

2. Target is ambiguous, because it's specified also as env. var.
   IDF_TARGET=esp32s3 idf.py set-target esp32c2

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-03-08 16:43:42 +01:00
Frantisek Hrbata
0d859f2786 tools: move target guessing into cmake
The _guess_or_check_idf_target() function has sdkconfig and sdkconfig.defaults
file names hardcoded. Since config file names may be specified with SDKCONFIG
or SDKCONFIG_DEFAULTS cmake vars, directly in CMakeLists.txt or passed in with
the -D cmake option, they are not respected.

Problem is when SDKCONFIG or SDKCONFIG_DEFAULTS is set in
CMakeLists.txt. While idf can detect cmake vars passed through it
to cmake via the -D option, detecting SDKCONFIG and SDKCONFIG_DEFAULTS
vars settings in CMakeLists.txt would require to parse it. This seems
like error prone approach. Also if the vars defined by the -D option
are passed directly to cmake, not via idf, they will not be visible to idf.

It seems reasonable to move the logic into cmake, where we know the correct
SDKCONFIG and SDKCONFIG_DEFAULTS values. So the IDF_TARGET detection/guessing
is moved into targets.cmake, where the IDF_TARGET is actually set. The target
is guessed based on the following precendence.

1) $ENV{IDF_TARGET}
2) IDF_TARGET
3) SDKCONFIG
4) sdkconfig
5) SDKCONFIG_DEFAULTS if non-empty or
   $ENV{SDKCONFIG_DEFAULTS} if non-empty or
   sdkconfig.defaults
6) esp32

All config files referred in $ENV{SDKCONFIG_DEFAULTS} and SDKCONFIG_DEFAULTS
are searched, compared to the current behaviour. First target found in the
above chain is used.

The original _guess_or_check_idf_target() is renamed to _check_idf_target() and
used for the target consistency checks only.

The get_sdkconfig_filename() helper is now used to get the sdkconfig file
for consistency checks. It looks in SDKCONFIG specified with the -D
option and project_description.json.

With this change config full paths are reported in messages, so it's clear
e.g. from which config the target was guessed from or which config has
consistency problem. test_non_default_target.py was adjusted to this
change and also new test for testing the IDF_TARGET guessing was added.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-03-08 16:37:58 +01:00
Frantisek Hrbata
a8a4d7c66d tools: add get_sdkconfig_filename() helper
Get project's current sdkconfig file name. It looks in SDKCONFIG cmake var
defined by the -D option and project_description.json. If not found return
default sdkconfig.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-03-08 16:37:58 +01:00
Frantisek Hrbata
e89f980193 tools: add _parse_cmdl_cmakecache() helper
This parses cmakes cache vars defined on command line with -D options
into dictionary. It allows to simplify the check for new cache entries
and also can be re-used for other checks.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-03-08 16:37:58 +01:00
xiaqilin
f1cf243385 ieee802154: update lib to change esp32h2 clock init
esptool: remove no_stub for esp32h2
2023-03-08 21:12:40 +08:00
Djordje Nedic
29e8025750 docs: Simplify OpenOCD udev rules instructions for manual Linux installation
Instead of pointing the user to the OpenOCD documentation, we simply instruct them to copy a single file and point them directly to it.
2023-03-08 13:49:21 +01:00
Zim Kalinowski
05037957c7 Merge branch 'docs/broken_links_2' into 'master'
docs: fix broken links

See merge request espressif/esp-idf!22611
2023-03-08 18:12:24 +08:00
Zhang Wen Xu
10864e353a Merge branch 'support/openthread_upstream_update' into 'master'
openthread: update openthread upstream

See merge request espressif/esp-idf!22559
2023-03-08 18:00:07 +08:00
Martin Vychodil
e0a206ec8b Merge branch 'bugfix/esp_partition_unload_fix' into 'master'
esp_partition: Fixed use-after-free issue (coverity)

Closes IDF-6165 and IDF-6999

See merge request espressif/esp-idf!22608
2023-03-08 17:41:36 +08:00
Harshit Malpani
866e6b0d6b
esp-tls: Fix esp-tls component to resolve esp_http_client example failure for Linux target.
esp_http_client does not use lwip component when building for linux target. Using lwip configs directly in esp-tls caused the test failures
2023-03-08 14:56:04 +05:30
Tomas Sebestik
db39395a27 Merge branch 'dangerjs/improove_jira_links_check' into 'master'
DangerJS - Improved check for Jira links

Closes IDFSYNTEST-30, JIRA-123, IDF-6852, and IDF-6854

See merge request espressif/esp-idf!22457
2023-03-08 17:25:29 +08:00
xueyunfei
ad0b32c662 lwip: solve some routers do not forward multicast packet issue 2023-03-08 16:58:29 +08:00
Adam Múdry
16915556a3 fatfs: fstat - enable setting a custom preferred block size
Enables setting a custom st_blksize in fatfs vfs fstat function.
Directly affects file buffer size for fatfs.
Increasing the value helps with fread and fgets speeds, however increases heap usage.
Added info to docs about improving I/O performance.
2023-03-08 09:09:47 +01:00
Rahul Tank
eb304455d5 Nimble: Added change to give time to allocate buffers, in case previous
allocation fails

Closes https://github.com/espressif/esp-idf/issues/10849
2023-03-08 12:31:41 +05:30
Jiang Jiang Jian
7dd7498212 Merge branch 'bugfix/add_mmu_pwr_ctrl_reg_to_retention_link' into 'master'
bugfix: esp32c6 light sleep minor fixes

Closes WIFI-5353

See merge request espressif/esp-idf!22619
2023-03-08 14:44:51 +08:00
Rahul Tank
d89736babf Nimble: Update example configuration to enable ext adv feature only for BLE5.0 supported chips 2023-03-08 11:59:43 +05:30
Jiang Guang Ming
fc9538c63d Merge branch 'feature/add_more_pytest_config_to_flash_mmap' into 'master'
flash mmap: more config options for flash mmap test app

See merge request espressif/esp-idf!21991
2023-03-08 13:44:29 +08:00
Omar Chebib
0fa63be9d1 Merge branch 'bugfix/fix_psram_kconfig_help' into 'master'
psram: removed deprecated statement about coredump and external BSS

See merge request espressif/esp-idf!22561
2023-03-08 13:31:53 +08:00
Martin Vychodil
744742cb3d host_test:
[fatfs, wl]: partition.c interim update to work around non-Linux target
 [partition_api_test]: cleanup, new function for tmp filename generation
2023-03-08 05:06:30 +00:00
Martin Vychodil
a2b4b27b62 esp_partition: Fixed use-after-free issue (coverity) 2023-03-08 05:06:30 +00:00
Martin Vychodil
cd747165df Merge branch 'fix/sdmmc_cmd_sector_count_shouldnt_be_zero' into 'master'
sdmmc: read/write/erase return early on sector count == 0

Closes IDFGH-9203

See merge request espressif/esp-idf!22440
2023-03-08 13:01:51 +08:00
Kapil Gupta
80be82eca2 Merge branch 'bugfix/wifi_enterprise_example_typo' into 'master'
esp_wifi: fix typo in wifi_enterprise example README

Closes IDFGH-8595

See merge request espressif/esp-idf!22462
2023-03-08 12:13:06 +08:00
xiehang
481c264d0d Add cert test example 2023-03-08 11:03:33 +08:00
xiehang
de4091b0d8 esp_phy: Add RF certification APIs 2023-03-08 11:03:16 +08:00
Ivan Grokhotkov
e0009e6d9e Specification Kconfig description 2023-03-08 11:01:49 +08:00
xiehang
9c8b7fc0dd esp_phy: Update esp32c3/s3 phy lib and add test lib 2023-03-08 11:01:31 +08:00
zhangwenxu
976cdd7d7e openthread: update openthread upstream
* openthread upstream(091f68ed)
2023-03-08 10:55:51 +08:00
Jiang Jiang Jian
fe979e6513 Merge branch 'feature/merge_c3_s3_bt_files_to_one' into 'master'
Merge ESP32C3 and ESP32S3 BLE bt.c, esp_bt.h and kconfig files to one

Closes BT-3209

See merge request espressif/esp-idf!22453
2023-03-08 10:53:01 +08:00
Dai Zi Yan
a8fc7e90c2 Merge branch 'docs/update_out-of-sync_documents' into 'master'
Docs/update out of sync documents

See merge request espressif/esp-idf!22600
2023-03-08 10:32:39 +08:00
Jiang Jiang Jian
54b0779b34 Merge branch 'support/esp32h2_phy_lib' into 'master'
esp_phy: update esp32h2 libphy

See merge request espressif/esp-idf!22622
2023-03-07 23:53:51 +08:00
wuzhenghui
43bf9fd3ab bugfix: fix wrong lock in sleep retention entry destroy 2023-03-07 20:56:13 +08:00
Darian Leung
353b25410a freertos: Refactor configASSERTs for scheduler suspension
This commit adds a common macro for the differing configASSERT() calls that
check if the scheduler is suspended outside a critical section. This macro
allows vanilla behavior to be restored for single core builds. Also added
comments explaining why xTaskGetSchedulerState() is called instead when
building for SMP.
2023-03-07 18:12:15 +08:00
daiziyan
9ba9dc04b0 docs: updated flash-encryption, startup, memory-types and misc_system_api 2023-03-07 18:06:52 +08:00
Darian
daf4150846 Merge branch 'refactor/freertos_port_malloc_macros' into 'master'
FreeRTOS(IDF): Refactor pvPortMalloc()/vPortFree(), Implement IDF heap wrapper for FreeRTOS.

Closes IDF-3997

See merge request espressif/esp-idf!22565
2023-03-07 17:30:10 +08:00
KonstantinKondrashov
11815b324f examples: Enables eFuse example tests for C6/H2/S3
Closes IDF-7011
2023-03-07 17:04:42 +08:00
Li Shuai
ffcec33057 modem clock: enable all clock enable of wifi module when PMU switch to ACTIVE from sleep state 2023-03-07 16:19:39 +08:00
Mahavir Jain
56dc272514 Merge branch 'feature/esp32h2_secure_boot' into 'master'
esp32h2: add secure boot feature support

Closes IDF-6281 and IDF-6681

See merge request espressif/esp-idf!22625
2023-03-07 15:27:04 +08:00
jiangguangming
87f2eb9e2a esp_rom: put rom cache related functions to cache.h 2023-03-07 14:51:24 +08:00
Zim Kalinowski
afbdb0f3ef Merge branch 'bugfix/console-fix-ignored-warnings' into 'master'
console: fix and re-enable no-format warnings

Closes IDF-6791

See merge request espressif/esp-idf!22534
2023-03-07 14:23:05 +08:00
Zim Kalinowski
9c75cbfecd Merge branch 'bugfix/efuse-fix-ignored-warnings' into 'master'
efuse: reenable and fix no-format warnings

Closes IDF-6794

See merge request espressif/esp-idf!22629
2023-03-07 14:18:05 +08:00
Jiang Jiang Jian
58b3692540 Merge branch 'bugfix/add_unregister_wpa3_cb' into 'master'
wpa_supplicant : Fix issues encountered in WFA testing

Closes WIFI-5386

See merge request espressif/esp-idf!22396
2023-03-07 14:15:20 +08:00
zhangwenxu
566ea41de9 esp_phy: update esp32h2 libphy
* phy_version: 101,0, 90773fa-dirty, Feb 27 2023, 16:19:13
2023-03-07 14:07:45 +08:00
Omar Chebib
9852cb49f7 psram: removed deprecated statement about coredump and external BSS 2023-03-07 05:59:08 +00:00
Konstantin Kondrashov
cf68a4c136 Merge branch 'feature/esp_timer_uses_shared_isr' into 'master'
esp_timer: Adds TASK and ISR AFFINITY to core options

Closes IDFGH-9053

See merge request espressif/esp-idf!21923
2023-03-07 13:38:23 +08:00
Jiang Jiang Jian
d1adc453b0 Merge branch 'bugfix/some_small_fix_for_sleep_examples' into 'master'
examples: some small fix for sleep examples

See merge request espressif/esp-idf!19052
2023-03-07 13:07:10 +08:00
Song Ruo Jing
ab8e3ef791 Merge branch 'contrib/github_pr_10733' into 'master'
Update gpio_example_main.c (GitHub PR)

Closes IDFGH-9357

See merge request espressif/esp-idf!22305
2023-03-07 11:48:37 +08:00
BOT
d3fa898f80 Update gpio_example_main.c
Add comments to clarify how the bits of GPIO_OUTPUT_PIN_SEL and GPIO_INPUT_PIN_SEL are defined after the OR bit operator

Merges https://github.com/espressif/esp-idf/pull/10733
2023-03-07 11:48:36 +08:00
Island
3ab20c1d26 Merge branch 'feature/support_ble_on_esp32h2' into 'master'
Feature/support ble on esp32h2

Closes IDF-6416 and IDF-6337

See merge request espressif/esp-idf!22221
2023-03-07 11:43:57 +08:00