diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 298701299d..7975299010 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -56,7 +56,7 @@ variables: # Docker images BOT_DOCKER_IMAGE_TAG: ":latest" - ESP_IDF_DOC_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env:v4.4-1-v4" + ESP_IDF_DOC_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env:v4.4-1-v5" ESP_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-env:v4.4-1" AFL_FUZZER_TEST_IMAGE: "$CI_DOCKER_REGISTRY/afl-fuzzer-test:v4.4-1-1" CLANG_STATIC_ANALYSIS_IMAGE: "${CI_DOCKER_REGISTRY}/clang-static-analysis:v4.4-1-2" diff --git a/.gitlab/ci/docs.yml b/.gitlab/ci/docs.yml index 4292c5f0df..86275ab0e2 100644 --- a/.gitlab/ci/docs.yml +++ b/.gitlab/ci/docs.yml @@ -69,7 +69,7 @@ check_docs_lang_sync: parallel: matrix: - DOCLANG: ["en", "zh_CN"] - DOCTGT: ["esp32", "esp32s2", "esp32s3", "esp32c3"] + DOCTGT: ["esp32", "esp32s2", "esp32s3", "esp32c3", "esp8684"] check_docs_gh_links: image: $ESP_IDF_DOC_ENV_IMAGE @@ -209,6 +209,7 @@ deploy_docs_production: DOCS_DEPLOY_SERVER_USER: "$DOCS_PROD_SERVER_USER" DOCS_DEPLOY_PATH: "$DOCS_PROD_PATH" DOCS_DEPLOY_URL_BASE: "https://docs.espressif.com/projects/esp-idf" + DEPLOY_STABLE: 1 check_doc_links: extends: diff --git a/components/esp_wifi/Kconfig b/components/esp_wifi/Kconfig index 44bb8977b6..c786c8473b 100644 --- a/components/esp_wifi/Kconfig +++ b/components/esp_wifi/Kconfig @@ -1,6 +1,6 @@ menu "Wi-Fi" - visible if !IDF_TARGET_ESP32H2 && !IDF_TARGET_ESP8684 # TODO: remove 8684 after supported. IDF-3905 + visible if !IDF_TARGET_ESP32H2 config ESP32_WIFI_ENABLED bool diff --git a/components/soc/esp32/include/soc/Kconfig.soc_caps.in b/components/soc/esp32/include/soc/Kconfig.soc_caps.in index bd17c50857..badcf053cf 100644 --- a/components/soc/esp32/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32/include/soc/Kconfig.soc_caps.in @@ -43,6 +43,10 @@ config SOC_PCNT_SUPPORTED bool default y +config SOC_WIFI_SUPPORTED + bool + default y + config SOC_SDIO_SLAVE_SUPPORTED bool default y diff --git a/components/soc/esp32/include/soc/soc_caps.h b/components/soc/esp32/include/soc/soc_caps.h index 0e323b6b6a..84bba07f0c 100644 --- a/components/soc/esp32/include/soc/soc_caps.h +++ b/components/soc/esp32/include/soc/soc_caps.h @@ -70,6 +70,7 @@ #define SOC_BT_SUPPORTED 1 #define SOC_CLASSIC_BT_SUPPORTED 1 #define SOC_PCNT_SUPPORTED 1 +#define SOC_WIFI_SUPPORTED 1 #define SOC_SDIO_SLAVE_SUPPORTED 1 #define SOC_TWAI_SUPPORTED 1 #define SOC_EMAC_SUPPORTED 1 diff --git a/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in b/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in index 872eb97b5d..4a5af67c1d 100644 --- a/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in @@ -55,6 +55,10 @@ config SOC_XT_WDT_SUPPORTED bool default y +config SOC_WIFI_SUPPORTED + bool + default y + config SOC_SUPPORTS_SECURE_DL_MODE bool default y diff --git a/components/soc/esp32c3/include/soc/soc_caps.h b/components/soc/esp32c3/include/soc/soc_caps.h index 710397f997..4dee6ff9c4 100644 --- a/components/soc/esp32c3/include/soc/soc_caps.h +++ b/components/soc/esp32c3/include/soc/soc_caps.h @@ -38,6 +38,7 @@ #define SOC_TEMP_SENSOR_SUPPORTED 1 #define SOC_FLASH_ENCRYPTION_XTS_AES 1 #define SOC_XT_WDT_SUPPORTED 1 +#define SOC_WIFI_SUPPORTED 1 #define SOC_SUPPORTS_SECURE_DL_MODE 1 #define SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS 3 #define SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS 1 diff --git a/components/soc/esp32s2/include/soc/Kconfig.soc_caps.in b/components/soc/esp32s2/include/soc/Kconfig.soc_caps.in index 9ffbec6069..9328ebdc22 100644 --- a/components/soc/esp32s2/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32s2/include/soc/Kconfig.soc_caps.in @@ -43,6 +43,10 @@ config SOC_PCNT_SUPPORTED bool default y +config SOC_WIFI_SUPPORTED + bool + default y + config SOC_ULP_SUPPORTED bool default y diff --git a/components/soc/esp32s2/include/soc/soc_caps.h b/components/soc/esp32s2/include/soc/soc_caps.h index a0e3453de2..1c6febf44a 100644 --- a/components/soc/esp32s2/include/soc/soc_caps.h +++ b/components/soc/esp32s2/include/soc/soc_caps.h @@ -49,6 +49,7 @@ #define SOC_RISCV_COPROC_SUPPORTED 1 #define SOC_USB_OTG_SUPPORTED 1 #define SOC_PCNT_SUPPORTED 1 +#define SOC_WIFI_SUPPORTED 1 #define SOC_ULP_SUPPORTED 1 #define SOC_CCOMP_TIMER_SUPPORTED 1 #define SOC_DIG_SIGN_SUPPORTED 1 diff --git a/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in b/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in index 481bad19a1..3ef810b362 100644 --- a/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in @@ -143,6 +143,10 @@ config SOC_PCNT_SUPPORTED bool default y +config SOC_WIFI_SUPPORTED + bool + default y + config SOC_TWAI_SUPPORTED bool default y diff --git a/components/soc/esp32s3/include/soc/soc_caps.h b/components/soc/esp32s3/include/soc/soc_caps.h index 1dc1fba1e2..0985b35385 100644 --- a/components/soc/esp32s3/include/soc/soc_caps.h +++ b/components/soc/esp32s3/include/soc/soc_caps.h @@ -27,6 +27,7 @@ /*-------------------------- COMMON CAPS ---------------------------------------*/ #define SOC_ADC_SUPPORTED 1 #define SOC_PCNT_SUPPORTED 1 +#define SOC_WIFI_SUPPORTED 1 #define SOC_TWAI_SUPPORTED 1 #define SOC_GDMA_SUPPORTED 1 #define SOC_LCDCAM_SUPPORTED 1 diff --git a/components/soc/esp8684/include/soc/Kconfig.soc_caps.in b/components/soc/esp8684/include/soc/Kconfig.soc_caps.in index 6cf821286d..42e4c27013 100644 --- a/components/soc/esp8684/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp8684/include/soc/Kconfig.soc_caps.in @@ -17,15 +17,11 @@ config SOC_GDMA_SUPPORTED config SOC_BT_SUPPORTED bool - default y + default n -config SOC_DIG_SIGN_SUPPORTED +config SOC_WIFI_SUPPORTED bool - default y - -config SOC_HMAC_SUPPORTED - bool - default y + default n config SOC_ASYNC_MEMCPY_SUPPORTED bool @@ -59,6 +55,10 @@ config SOC_ICACHE_ACCESS_RODATA_SUPPORTED bool default y +config SOC_FLASH_ENCRYPTION_XTS_AES + bool + default y + config SOC_AES_SUPPORT_DMA bool default y diff --git a/components/soc/esp8684/include/soc/soc_caps.h b/components/soc/esp8684/include/soc/soc_caps.h index ba8a2a9166..00484a9fb3 100644 --- a/components/soc/esp8684/include/soc/soc_caps.h +++ b/components/soc/esp8684/include/soc/soc_caps.h @@ -13,9 +13,8 @@ #define SOC_CPU_CORES_NUM 1 #define SOC_ADC_SUPPORTED 1 #define SOC_GDMA_SUPPORTED 1 -#define SOC_BT_SUPPORTED 1 -#define SOC_DIG_SIGN_SUPPORTED 1 -#define SOC_HMAC_SUPPORTED 1 +#define SOC_BT_SUPPORTED 0 // Enable during bringup, IDF-4357 +#define SOC_WIFI_SUPPORTED 0 // Enable during bringup, IDF-3905 #define SOC_ASYNC_MEMCPY_SUPPORTED 1 /*-------------------------- COMMON CAPS ---------------------------------------*/ @@ -26,6 +25,7 @@ #define SOC_RTC_SLOW_MEM_SUPPORTED 0 #define SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY 0 #define SOC_ICACHE_ACCESS_RODATA_SUPPORTED 1 +#define SOC_FLASH_ENCRYPTION_XTS_AES 1 /*-------------------------- AES CAPS -----------------------------------------*/ #define SOC_AES_SUPPORT_DMA (1) diff --git a/docs/conf_common.py b/docs/conf_common.py index cfb203550b..9ac164db38 100644 --- a/docs/conf_common.py +++ b/docs/conf_common.py @@ -12,6 +12,7 @@ from __future__ import print_function, unicode_literals import os.path +import re from esp_docs.conf_docs import * # noqa: F403,F401 @@ -44,6 +45,10 @@ CLASSIC_BT_DOCS = ['api-reference/bluetooth/classic_bt.rst', 'api-reference/bluetooth/esp_spp.rst', 'api-reference/bluetooth/esp_gap_bt.rst'] +WIFI_DOCS = ['api-guides/wifi.rst', + 'api-guides/wifi-security.rst', + 'api-guides/wireshark-user-guide.rst'] + SDMMC_DOCS = ['api-reference/peripherals/sdmmc_host.rst', 'api-reference/peripherals/sd_pullup_requirements.rst'] @@ -56,6 +61,8 @@ DEDIC_GPIO_DOCS = ['api-reference/peripherals/dedic_gpio.rst'] PCNT_DOCS = ['api-reference/peripherals/pcnt.rst'] +RMT_DOCS = ['api-reference/peripherals/rmt.rst'] + DAC_DOCS = ['api-reference/peripherals/dac.rst'] TEMP_SENSOR_DOCS = ['api-reference/peripherals/temp_sensor.rst'] @@ -90,7 +97,8 @@ ESP32_DOCS = ['api-guides/ulp_instruction_set.rst', 'security/secure-boot-v1.rst', 'api-reference/peripherals/secure_element.rst', 'api-reference/peripherals/dac.rst', - 'hw-reference/esp32/**'] + FTDI_JTAG_DOCS + 'hw-reference/esp32/**', + 'api-guides/RF_calibration.rst'] + FTDI_JTAG_DOCS ESP32S2_DOCS = ['hw-reference/esp32s2/**', 'api-guides/ulps2_instruction_set.rst', @@ -99,17 +107,21 @@ ESP32S2_DOCS = ['hw-reference/esp32s2/**', 'api-reference/peripherals/spi_slave_hd.rst', 'api-reference/peripherals/temp_sensor.rst', 'api-reference/system/async_memcpy.rst', - 'api-reference/peripherals/touch_element.rst'] + FTDI_JTAG_DOCS + 'api-reference/peripherals/touch_element.rst', + 'api-guides/RF_calibration.rst'] + FTDI_JTAG_DOCS ESP32S3_DOCS = ['hw-reference/esp32s3/**', 'api-reference/system/ipc.rst', - 'api-guides/flash_psram_config.rst'] + 'api-guides/flash_psram_config.rst', + 'api-guides/RF_calibration.rst'] # No JTAG docs for this one as it gets gated on SOC_USB_SERIAL_JTAG_SUPPORTED down below. -ESP32C3_DOCS = ['hw-reference/esp32c3/**'] +ESP32C3_DOCS = ['hw-reference/esp32c3/**', + 'api-guides/RF_calibration.rst'] # format: {tag needed to include: documents to included}, tags are parsed from sdkconfig and peripheral_caps.h headers conditional_include_dict = {'SOC_BT_SUPPORTED':BT_DOCS, + 'SOC_WIFI_SUPPORTED':WIFI_DOCS, 'SOC_CLASSIC_BT_SUPPORTED':CLASSIC_BT_DOCS, 'SOC_SDMMC_HOST_SUPPORTED':SDMMC_DOCS, 'SOC_SDIO_SLAVE_SUPPORTED':SDIO_SLAVE_DOCS, @@ -119,6 +131,7 @@ conditional_include_dict = {'SOC_BT_SUPPORTED':BT_DOCS, 'SOC_DEDICATED_GPIO_SUPPORTED':DEDIC_GPIO_DOCS, 'SOC_SPIRAM_SUPPORTED':SPIRAM_DOCS, 'SOC_PCNT_SUPPORTED':PCNT_DOCS, + 'SOC_RMT_SUPPORTED':RMT_DOCS, 'SOC_DAC_SUPPORTED':DAC_DOCS, 'SOC_TOUCH_SENSOR_NUM':TOUCH_SENSOR_DOCS, 'SOC_ULP_SUPPORTED':ULP_DOCS, @@ -173,3 +186,20 @@ with open('../page_redirects.txt') as f: if len(line.split(' ')) != 2: raise RuntimeError('Invalid line in page_redirects.txt: %s' % line) html_redirect_pages = [tuple(line.split(' ')) for line in lines] + + +# Callback function for user setup that needs be done after `config-init`-event +# config.idf_target is not available at the initial config stage +def conf_setup(app, config): + config.add_warnings_content = 'This document is not updated for {} yet, so some of the content may not be correct.'.format(config.idf_target.upper()) + + add_warnings_file = '{}/../docs_not_updated/{}.txt'.format(app.confdir, config.idf_target) + try: + with open(add_warnings_file) as warning_file: + config.add_warnings_pages = warning_file.read().splitlines() + except FileNotFoundError: + # Not for all target + pass + + +user_setup_callback = conf_setup diff --git a/docs/docs_not_updated/esp8684.txt b/docs/docs_not_updated/esp8684.txt new file mode 100644 index 0000000000..f3abea91d7 --- /dev/null +++ b/docs/docs_not_updated/esp8684.txt @@ -0,0 +1,234 @@ +languages +contribute/contributor-agreement +contribute/documenting-code +contribute/creating-examples +contribute/style-guide +contribute/copyright-guide +contribute/install-pre-commit-hook +contribute/index +api-guides/core_dump_internals +api-guides/event-handling +api-guides/performance/speed +api-guides/performance/size +api-guides/performance/ram-usage +api-guides/performance/index +api-guides/jtag-debugging/debugging-examples +api-guides/jtag-debugging/configure-ft2232h-jtag +api-guides/jtag-debugging/tips-and-quirks +api-guides/jtag-debugging/using-debugger +api-guides/jtag-debugging/building-openocd-macos +api-guides/jtag-debugging/building-openocd-linux +api-guides/jtag-debugging/configure-other-jtag +api-guides/jtag-debugging/building-openocd-windows +api-guides/jtag-debugging/index +api-guides/jtag-debugging/configure-builtin-jtag +api-guides/partition-tables +api-guides/ulps2_instruction_set +api-guides/app_trace +api-guides/ulp_macros +api-guides/thread-local-storage +api-guides/ulp +api-guides/error-handling +api-guides/tools/idf-tools +api-guides/tools/idf-component-manager +api-guides/tools/idf-windows-installer +api-guides/tools/idf-monitor +api-guides/tools/idf-docker-image +api-guides/tools/index +api-guides/startup +api-guides/hlinterrupts +api-guides/RF_calibration +api-guides/unit-tests +api-guides/deep-sleep-stub +api-guides/ulp_instruction_set +api-guides/blufi +api-guides/lwip +api-guides/flash_psram_config +api-guides/usb-serial-jtag-console +api-guides/linker-script-generation +api-guides/wifi +api-guides/usb-otg-console +api-guides/wireshark-user-guide +api-guides/bootloader +api-guides/esp-wifi-mesh +api-guides/ulp-legacy +api-guides/build-system +api-guides/freertos-smp +api-guides/core_dump +api-guides/inc/external-ram-esp32-notes +api-guides/dfu +api-guides/linux-host-testing +api-guides/esp-ble-mesh/ble-mesh-index +api-guides/esp-ble-mesh/ble-mesh-feature-list +api-guides/esp-ble-mesh/ble-mesh-terminology +api-guides/esp-ble-mesh/ble-mesh-architecture +api-guides/esp-ble-mesh/ble-mesh-faq +api-guides/external-ram +api-guides/ulp-risc-v +api-guides/hardware-abstraction +api-guides/wifi-security +api-guides/index +api-guides/openthread +api-guides/unit-tests-legacy +api-guides/fatal-errors +api-guides/memory-types +api-guides/build-system-legacy +api-guides/general-notes +third-party-tools/platformio +COPYRIGHT +libraries-and-frameworks/libs-frameworks +libraries-and-frameworks/index +libraries-and-frameworks/cloud-frameworks +versions +gnu-make-legacy +api-reference/api-conventions +api-reference/template +api-reference/provisioning/protocomm +api-reference/provisioning/provisioning +api-reference/provisioning/index +api-reference/provisioning/wifi_provisioning +api-reference/storage/vfs +api-reference/storage/spiffs +api-reference/storage/wear-levelling +api-reference/storage/fatfs +api-reference/storage/nvs_partition_gen +api-reference/storage/spi_flash_concurrency +api-reference/storage/spi_flash +api-reference/storage/spi_flash_override_driver +api-reference/storage/nvs_flash +api-reference/storage/sdmmc +api-reference/storage/mass_mfg +api-reference/storage/index +api-reference/peripherals/adc +api-reference/peripherals/usb_host +api-reference/peripherals/sigmadelta +api-reference/peripherals/timer +api-reference/peripherals/twai +api-reference/peripherals/hmac +api-reference/peripherals/usb_device +api-reference/peripherals/gpio +api-reference/peripherals/sdspi_host +api-reference/peripherals/dac +api-reference/peripherals/spi_slave +api-reference/peripherals/i2s +api-reference/peripherals/pcnt +api-reference/peripherals/touch_element +api-reference/peripherals/lcd +api-reference/peripherals/mcpwm +api-reference/peripherals/secure_element +api-reference/peripherals/ledc +api-reference/peripherals/temp_sensor +api-reference/peripherals/spi_features +api-reference/peripherals/sdio_slave +api-reference/peripherals/touch_pad +api-reference/peripherals/spi_slave_hd +api-reference/peripherals/ds +api-reference/peripherals/i2c +api-reference/peripherals/dedic_gpio +api-reference/peripherals/sd_pullup_requirements +api-reference/peripherals/spi_master +api-reference/peripherals/index +api-reference/peripherals/sdmmc_host +api-reference/peripherals/uart +api-reference/peripherals/rmt +api-reference/kconfig +api-reference/network/esp_openthread +api-reference/network/esp_eth +api-reference/network/esp_netif_driver +api-reference/network/tcpip_adapter_migration +api-reference/network/esp_dpp +api-reference/network/esp_now +api-reference/network/esp-wifi-mesh +api-reference/network/esp_smartconfig +api-reference/network/esp_wifi +api-reference/network/index +api-reference/network/esp_netif +api-reference/system/sleep_modes +api-reference/system/ota +api-reference/system/app_trace +api-reference/system/perfmon +api-reference/system/esp_function_with_shared_stack +api-reference/system/efuse +api-reference/system/async_memcpy +api-reference/system/random +api-reference/system/esp_timer +api-reference/system/esp_event +api-reference/system/freertos +api-reference/system/system_time +api-reference/system/log +api-reference/system/internal-unstable +api-reference/system/app_image_format +api-reference/system/freertos_additions +api-reference/system/himem +api-reference/system/power_management +api-reference/system/mem_alloc +api-reference/system/esp_event_legacy +api-reference/system/wdts +api-reference/system/inc/power_management_esp32s2_and_later +api-reference/system/heap_debug +api-reference/system/ipc +api-reference/system/esp_https_ota +api-reference/system/esp_err +api-reference/system/console +api-reference/system/intr_alloc +api-reference/system/index +api-reference/system/system +api-reference/system/pthread +api-reference/bluetooth/esp_spp +api-reference/bluetooth/esp_avrc +api-reference/bluetooth/controller_vhci +api-reference/bluetooth/esp_bt_defs +api-reference/bluetooth/esp_hf_ag +api-reference/bluetooth/esp_bt_main +api-reference/bluetooth/esp_bt_device +api-reference/bluetooth/esp_gatts +api-reference/bluetooth/esp_gattc +api-reference/bluetooth/bt_common +api-reference/bluetooth/nimble/index +api-reference/bluetooth/esp_hf_client +api-reference/bluetooth/esp_a2dp +api-reference/bluetooth/esp_blufi +api-reference/bluetooth/bt_le +api-reference/bluetooth/esp_hf_defs +api-reference/bluetooth/esp_gap_bt +api-reference/bluetooth/esp_gatt_defs +api-reference/bluetooth/esp-ble-mesh +api-reference/bluetooth/index +api-reference/bluetooth/esp_gap_ble +api-reference/bluetooth/classic_bt +api-reference/error-codes +api-reference/index +api-reference/protocols/icmp_echo +api-reference/protocols/esp_serial_slave_link +api-reference/protocols/mqtt +api-reference/protocols/esp_http_server +api-reference/protocols/esp_sdio_slave_protocol +api-reference/protocols/esp_local_ctrl +api-reference/protocols/esp_crt_bundle +api-reference/protocols/esp_websocket_client +api-reference/protocols/esp_http_client +api-reference/protocols/esp_https_server +api-reference/protocols/openssl_apis +api-reference/protocols/esp_spi_slave_protocol +api-reference/protocols/modbus +api-reference/protocols/esp_tls +api-reference/protocols/mdns +api-reference/protocols/index +api-reference/protocols/asio +security/flash-encryption +security/secure-boot-v2 +about +resources +get-started/establish-serial-connection +get-started/macos-setup-scratch +get-started/vscode-setup +get-started/linux-setup-scratch +get-started/eclipse-setup +get-started/windows-setup +get-started/toolchain-setup-scratch +get-started/windows-setup-scratch +get-started/linux-setup +get-started/index +get-started/windows-setup-update +get-started/macos-setup +index diff --git a/docs/doxygen/Doxyfile_esp8684 b/docs/doxygen/Doxyfile_esp8684 new file mode 100644 index 0000000000..2f3bda1516 --- /dev/null +++ b/docs/doxygen/Doxyfile_esp8684 @@ -0,0 +1,2 @@ +INPUT += \ + $(PROJECT_PATH)/components/driver/esp32c3/include/driver/temp_sensor.h diff --git a/docs/en/api-guides/core_dump.rst b/docs/en/api-guides/core_dump.rst index 7982611455..30d2343ed0 100644 --- a/docs/en/api-guides/core_dump.rst +++ b/docs/en/api-guides/core_dump.rst @@ -61,7 +61,7 @@ There are a number of core dump related configuration options which user can cho The value is in ms. **Handling of UART core dumps in IDF Monitor (Components -> Core dump -> Delay before print to UART)** - + The value is base64 encoded. * Decode and show summary (info_corefile) @@ -211,3 +211,11 @@ Generic command syntax: ``espcoredump.py [options] command [args]`` --print-mem, -m Print memory dump. Only valid when info_corefile. **** Path to program ELF file. + +Related Documents +^^^^^^^^^^^^^^^^^ + +.. toctree:: + :maxdepth: 1 + + core_dump_internals diff --git a/docs/en/api-guides/core_dump_internals.rst b/docs/en/api-guides/core_dump_internals.rst index d335d374db..4000a1d2f2 100644 --- a/docs/en/api-guides/core_dump_internals.rst +++ b/docs/en/api-guides/core_dump_internals.rst @@ -1,9 +1,7 @@ -:orphan: - Anatomy of core dump image -------------------------- -Core dump component can be configured to use old legacy binary format or the new ELF one. The ELF format is recommended for new designs. It provides more information about the CPU and memory state of a program at the moment when panic handler is entered. +Core dump component can be configured to use old legacy binary format or the new ELF one. The ELF format is recommended for new designs. It provides more information about the CPU and memory state of a program at the moment when panic handler is entered. The memory state embeds a snapshot of all tasks mapped in the memory space of the program. The CPU state contains register values when the core dump has been generated. Core dump file uses a subset of the ELF structures to register these information. Loadable ELF segments are used for the memory state of the process while ELF notes (ELF.PT_NOTE) are used for process metadata (pid, registers, signal, ...). Especially, the CPU status is stored in a note with a special name and type (``CORE``, ``NT_PRSTATUS type``). @@ -22,7 +20,7 @@ Here is an overview of coredump layout: :figclass: align-center Core dump binary image format - + Note: The format of image file showed on the above pictures represents current version of image and can be changed in future releases. Overview of implementation @@ -36,5 +34,5 @@ The figure below describes some basic aspects related to implementation of core :figclass: align-center Core dump implementation overview - -Note: The diagram above hide some details and represents current implementation of the core dump and can be changed later. \ No newline at end of file + +Note: The diagram above hide some details and represents current implementation of the core dump and can be changed later. \ No newline at end of file diff --git a/docs/en/api-guides/index.rst b/docs/en/api-guides/index.rst index f7ef4665b1..8d81a53e2f 100644 --- a/docs/en/api-guides/index.rst +++ b/docs/en/api-guides/index.rst @@ -31,7 +31,7 @@ API Guides OpenThread Partition Tables Performance - RF Calibration + :not esp8684: RF Calibration :esp32: Secure Boot <../security/secure-boot-v1> Secure Boot V2 <../security/secure-boot-v2> Thread Local Storage @@ -42,5 +42,5 @@ API Guides Unit Testing (Linux Host) :SOC_USB_OTG_SUPPORTED: USB OTG Console :SOC_USB_SERIAL_JTAG_SUPPORTED: USB Serial/JTAG Controller Console - Wi-Fi Driver - Wi-Fi Security + :SOC_WIFI_SUPPORTED: Wi-Fi Driver + :SOC_WIFI_SUPPORTED: Wi-Fi Security diff --git a/docs/en/api-guides/jtag-debugging/esp8684.inc b/docs/en/api-guides/jtag-debugging/esp8684.inc new file mode 100644 index 0000000000..299542fe69 --- /dev/null +++ b/docs/en/api-guides/jtag-debugging/esp8684.inc @@ -0,0 +1,142 @@ +.. This file gets included from other .rst files in this folder. +.. It contains target-specific snippets. +.. Comments and '---' lines act as delimiters. +.. +.. This is necessary mainly because RST doesn't support substitutions +.. (defined in RST, not in Python) inside code blocks. If that is ever implemented, +.. These code blocks can be moved back to the main .rst files, with target-specific +.. file names being replaced by substitutions. + +.. run-openocd + +:: + + openocd -f board/esp8684-BOARD_NAME.cfg + +.. |run-openocd-device-name| replace:: ESP8684 + +--- + +.. run-openocd-output + +:: + + CHIP SPECIFIC LOG OUTPUT + +.. |run-openocd-cfg-file-err| replace:: ``Can't find board/esp8684-BOARD_NAME.cfg`` + +--- + +.. run-openocd-upload + +:: + + openocd -f board/esp8684-BOARD_NAME.cfg -c "program_esp filename.bin 0x10000 verify exit" + +--- + +.. run-openocd-src-linux + +.. code-block:: bash + + src/openocd -f board/esp8684-BOARD_NAME.cfg + +--- + +.. run-openocd-src-win + +.. code-block:: batch + + src\openocd -f board/esp8684-BOARD_NAME.cfg + +--- + +.. idf-py-openocd-default-cfg + +.. |idf-py-def-cfg| replace:: ``-f board/esp8684-BOARD_NAME.cfg`` + +--- + +.. run-openocd-appimage-offset + +:: + + openocd -f board/esp8684-BOARD_NAME.cfg -c "init; halt; esp appimage_offset 0x210000" + +--- + +.. openocd-cfg-files + +.. list-table:: OpenOCD configuration files for ESP8684 + :widths: 25 75 + :header-rows: 1 + + * - Name + - Description + * - Content + - Content + +--- + +.. openocd-target-specific-config-vars + +--- + +--- + +.. jtag-pins + +.. list-table:: ESP8684 pins and JTAG signals + :widths: 25 75 + :header-rows: 1 + + * - ESP8684 Pin + - JTAG Signal + * - MTDO / GPIOX + - TDO + * - MTDI / GPIOX + - TDI + * - MTCK / GPIOX + - TCK + * - MTMS / GPIOX + - TMS + +.. |jtag-sel-gpio| replace:: GPIOX +.. |jtag-gpio-list| replace:: GPIOX + +--- + +.. run-openocd-d3 + +:: + + openocd -l openocd_log.txt -d3 -f board/esp8684-BOARD_NAME.cfg + +--- + +.. run-openocd-d3-tee + +:: + + openocd -d3 -f board/esp8684-BOARD_NAME.cfg 2>&1 | tee openocd.log + +--- + +.. run-gdb-remotelog + +:: + + riscv32-esp-elf-gdb -ex "set remotelogfile gdb_log.txt" + +--- + +.. devkit-defs + +.. |devkit-name| replace:: ESP8684 +.. |devkit-name-with-link| replace:: LINK TO DEVKIT + +--- + +.. devkit-hw-config + +--- diff --git a/docs/en/api-guides/lwip.rst b/docs/en/api-guides/lwip.rst index ecae070395..62db8d248c 100644 --- a/docs/en/api-guides/lwip.rst +++ b/docs/en/api-guides/lwip.rst @@ -395,7 +395,7 @@ Calling ``send()`` or ``sendto()`` repeatedly on a UDP socket may eventually fai Increasing the number of TX buffers in the :ref:`Wi-Fi ` or :ref:`Ethernet ` project configuration (as applicable) may also help. -.. only:: not esp32 +.. only:: not esp32 and SOC_WIFI_SUPPORTED Increasing the number of TX buffers in the :ref:`Wi-Fi ` project configuration may also help. @@ -421,7 +421,9 @@ The :example_file:`wifi/iperf/sdkconfig.defaults` file for the iperf example con - If there is enough free IRAM, select :ref:`CONFIG_LWIP_IRAM_OPTIMIZATION` to improve TX/RX throughput -If using a Wi-Fi network interface, please also refer to :ref:`wifi-buffer-usage`. +.. only:: SOC_WIFI_SUPPORTED + + If using a Wi-Fi network interface, please also refer to :ref:`wifi-buffer-usage`. Minimum latency ^^^^^^^^^^^^^^^ @@ -441,7 +443,10 @@ Most lwIP RAM usage is on-demand, as RAM is allocated from the heap as needed. T - Reducing :ref:`CONFIG_LWIP_TCPIP_RECVMBOX_SIZE`, :ref:`CONFIG_LWIP_TCP_RECVMBOX_SIZE` and :ref:`CONFIG_LWIP_UDP_RECVMBOX_SIZE` reduce memory usage at the expense of throughput, depending on usage. - Disable :ref:`CONFIG_LWIP_IPV6` can save about 39 KB for firmware size and 2KB RAM when system power up and 7KB RAM when TCPIP stack running. If there is no requirement for supporting IPV6 then it can be disabled to save flash and RAM footprint. -If using Wi-Fi, please also refer to :ref:`wifi-buffer-usage`. +.. only:: SOC_WIFI_SUPPORTED + + If using Wi-Fi, please also refer to :ref:`wifi-buffer-usage`. + Peak Buffer Usage +++++++++++++++++ diff --git a/docs/en/api-guides/memory-types.rst b/docs/en/api-guides/memory-types.rst index dcea174e5d..fdf515472d 100644 --- a/docs/en/api-guides/memory-types.rst +++ b/docs/en/api-guides/memory-types.rst @@ -125,7 +125,7 @@ The same region of RTC fast memory can be accessed as both instruction and data In single core mode, remaining RTC fast memory is added to the heap unless the option :ref:`CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP` is disabled. This memory can be used interchangeably with :ref:`DRAM`, but is slightly slower to access and not DMA capable. -.. only:: not esp32 +.. only:: not esp32 and not esp8684 Remaining RTC fast memory is added to the heap unless the option :ref:`CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP` is disabled. This memory can be used interchangeably with :ref:`DRAM`, but is slightly slower to access. diff --git a/docs/en/api-guides/partition-tables.rst b/docs/en/api-guides/partition-tables.rst index 132d4343a9..c6dbca1c9c 100644 --- a/docs/en/api-guides/partition-tables.rst +++ b/docs/en/api-guides/partition-tables.rst @@ -88,6 +88,7 @@ The ESP-IDF bootloader ignores any partition types other than ``app`` (0x00) and SubType ~~~~~~~ +{IDF_TARGET_ESP_PHY_REF:default = ":ref:`CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION`", esp8684 = "(not updated yet)"} The 8-bit subtype field is specific to a given partition type. ESP-IDF currently only specifies the meaning of the subtype field for ``app`` and ``data`` partition types. @@ -109,7 +110,7 @@ See enum :cpp:type:`esp_partition_subtype_t` for the full list of subtypes defin - ``phy`` (1) is for storing PHY initialisation data. This allows PHY to be configured per-device, instead of in firmware. - In the default configuration, the phy partition is not used and PHY initialisation data is compiled into the app itself. As such, this partition can be removed from the partition table to save space. - - To load PHY data from this partition, open the project configuration menu (``idf.py menuconfig``) and enable :ref:`CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION` option. You will also need to flash your devices with phy init data as the esp-idf build system does not do this automatically. + - To load PHY data from this partition, open the project configuration menu (``idf.py menuconfig``) and enable {IDF_TARGET_ESP_PHY_REF} option. You will also need to flash your devices with phy init data as the esp-idf build system does not do this automatically. - ``nvs`` (2) is for the :doc:`Non-Volatile Storage (NVS) API <../api-reference/storage/nvs_flash>`. - NVS is used to store per-device PHY calibration data (different to initialisation data). diff --git a/docs/en/api-guides/performance/ram-usage.rst b/docs/en/api-guides/performance/ram-usage.rst index b106cbf6bf..91fc27e028 100644 --- a/docs/en/api-guides/performance/ram-usage.rst +++ b/docs/en/api-guides/performance/ram-usage.rst @@ -100,7 +100,7 @@ There are some ESP-IDF configuration options that can reduce heap usage at runti .. list:: - lwIP documentation has a section to configure :ref:`lwip-ram-usage`. - - :ref:`wifi-buffer-usage` describes options to either reduce numbers of "static" buffers or reduce the maximum number of "dynamic" buffers in use, in order to minimize memory usage at possible cost of performance. Note that "static" Wi-Fi buffers are still allocated from heap when Wi-Fi is initialized and will be freed if Wi-Fi is deinitialized. + :SOC_WIFI_SUPPORTED: - :ref:`wifi-buffer-usage` describes options to either reduce numbers of "static" buffers or reduce the maximum number of "dynamic" buffers in use, in order to minimize memory usage at possible cost of performance. Note that "static" Wi-Fi buffers are still allocated from heap when Wi-Fi is initialized and will be freed if Wi-Fi is deinitialized. :esp32: - The Ethernet driver allocates DMA buffers for the internal Ethernet MAC when it is initialized - configuration options are :ref:`CONFIG_ETH_DMA_BUFFER_SIZE`, :ref:`CONFIG_ETH_DMA_RX_BUFFER_NUM`, :ref:`CONFIG_ETH_DMA_TX_BUFFER_NUM`. - mbedTLS TLS session memory usage can be minimized by enabling the ESP-IDF feature :ref:`CONFIG_MBEDTLS_DYNAMIC_BUFFER`. :esp32: - In single core mode only, it's possible to use IRAM as byte accessible memory (added to the regular heap) by enabling :ref:`CONFIG_ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY`. Note that this option carries a performance penalty and the risk of security issues caused by executable data. If this option is enabled then it's possible to set other options to prefer certain buffers be allocated from this memory: :ref:`mbedTLS `, :ref:`NimBLE `. @@ -130,7 +130,7 @@ The following options will reduce IRAM usage of some ESP-IDF features: - Enable :ref:`CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH`. Provided these functions are not (incorrectly) used from ISRs, this option is safe to enable in all configurations. - Enable :ref:`CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH`. Enabling this option will place snapshot-related functions, such as ``vTaskGetSnapshot`` or ``uxTaskGetSnapshotAll``, in flash. - - Disable Wi-Fi options :ref:`CONFIG_ESP32_WIFI_IRAM_OPT` and/or :ref:`CONFIG_ESP32_WIFI_RX_IRAM_OPT`. Disabling these options will free available IRAM at the cost of Wi-Fi performance. + :SOC_WIFI_SUPPORTED: - Disable Wi-Fi options :ref:`CONFIG_ESP32_WIFI_IRAM_OPT` and/or :ref:`CONFIG_ESP32_WIFI_RX_IRAM_OPT`. Disabling these options will free available IRAM at the cost of Wi-Fi performance. :esp32c3 or esp32s3: - :ref:`CONFIG_SPI_FLASH_ROM_IMPL` enabling this option will free some IRAM but will mean that esp_flash bugfixes and new flash chip support is not available. :esp32: - :ref:`CONFIG_SPI_FLASH_ROM_DRIVER_PATCH` disabling this option will free some IRAM but is only available in some flash configurations (see the configuration item help text). - Disabling :ref:`CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR` prevents posting ``esp_event`` events from :ref:`iram-safe-interrupt-handlers` but will save some IRAM. diff --git a/docs/en/api-guides/performance/speed.rst b/docs/en/api-guides/performance/speed.rst index d834d0c8ba..e16b612ec1 100644 --- a/docs/en/api-guides/performance/speed.rst +++ b/docs/en/api-guides/performance/speed.rst @@ -163,8 +163,8 @@ Common priorities are: - FreeRTOS Timer Task to handle FreeRTOS timer callbacks is created when the scheduler initializes and has minimum task priority (1, :ref:`configurable `). - :doc:`/api-guides/event-handling` system task to manage the default system event loop and execute callbacks has high priority (20, ``ESP_TASK_EVENT_PRIO``). This configuration is only used if the application calls :cpp:func:`esp_event_loop_create_default`, it's possible to call :cpp:func:`esp_event_loop_create` with a custom task configuration instead. - :doc:`/api-guides/lwip` TCP/IP task has high priority (18, ``ESP_TASK_TCPIP_PRIO``). - - :doc:`Wi-Fi Driver ` task has high priority (23). - - Wi-Fi wpa_supplicant component may create dedicated tasks while the Wi-Fi Protected Setup (WPS), WPA2 EAP-TLS, Device Provisioning Protocol (DPP) or BSS Transition Management (BTM) features are in use. These tasks all have low priority (2). + :SOC_WIFI_SUPPORTED: - :doc:`Wi-Fi Driver ` task has high priority (23). + :SOC_WIFI_SUPPORTED: - Wi-Fi wpa_supplicant component may create dedicated tasks while the Wi-Fi Protected Setup (WPS), WPA2 EAP-TLS, Device Provisioning Protocol (DPP) or BSS Transition Management (BTM) features are in use. These tasks all have low priority (2). :SOC_BT_SUPPORTED: - :doc:`Bluetooth Controller ` task has high priority (23, ``ESP_TASK_BT_CONTROLLER_PRIO``). The Bluetooth Controller needs to respond to requests with low latency, so it should always be close to the highest priority task in the system. :SOC_BT_SUPPORTED: - :doc:`NimBLE Bluetooth Host ` host task has high priority (21). - The Ethernet driver creates a task for the MAC to receive Ethernet frames. If using the default config ``ETH_MAC_DEFAULT_CONFIG`` then the priority is medium-high (15). This setting can be changed by passing a custom :cpp:class:`eth_mac_config_t` struct when initializing the Ethernet MAC. @@ -180,8 +180,8 @@ Common priorities are: - FreeRTOS Timer Task to handle FreeRTOS timer callbacks is created when the scheduler initializes and has minimum task priority (1, :ref:`configurable `). This task is pinned to Core 0. - :doc:`/api-guides/event-handling` system task to manage the default system event loop and execute callbacks has high priority (20, ``ESP_TASK_EVENT_PRIO``) and pinned to Core 0. This configuration is only used if the application calls :cpp:func:`esp_event_loop_create_default`, it's possible to call :cpp:func:`esp_event_loop_create` with a custom task configuration instead. - :doc:`/api-guides/lwip` TCP/IP task has high priority (18, ``ESP_TASK_TCPIP_PRIO``) and is not pinned to any core (:ref:`configurable`). - - :doc:`Wi-Fi Driver ` task has high priority (23) and is pinned to Core 0 by default (:ref:`configurable`). - - Wi-Fi wpa_supplicant component may create dedicated tasks while the Wi-Fi Protected Setup (WPS), WPA2 EAP-TLS, Device Provisioning Protocol (DPP) or BSS Transition Management (BTM) features are in use. These tasks all have low priority (2) and are not pinned to any core. + :SOC_WIFI_SUPPORTED: - :doc:`Wi-Fi Driver ` task has high priority (23) and is pinned to Core 0 by default (:ref:`configurable`). + :SOC_WIFI_SUPPORTED: - Wi-Fi wpa_supplicant component may create dedicated tasks while the Wi-Fi Protected Setup (WPS), WPA2 EAP-TLS, Device Provisioning Protocol (DPP) or BSS Transition Management (BTM) features are in use. These tasks all have low priority (2) and are not pinned to any core. :SOC_BT_SUPPORTED: - :doc:`Bluetooth Controller ` task has high priority (23, ``ESP_TASK_BT_CONTROLLER_PRIO``) and is pinned to Core 0 by default (:ref:`configurable <{IDF_TARGET_CONTROLLER_CORE_CONFIG}>`). The Bluetooth Controller needs to respond to requests with low latency, so it should always be close to the highest priority task assigned to a single CPU. :SOC_BT_SUPPORTED: - :doc:`NimBLE Bluetooth Host ` host task has high priority (21) and is pinned to Core 0 by default (:ref:`configurable `). :esp32: - :doc:`Bluedroid Bluetooth Host ` creates multiple tasks when used: @@ -234,6 +234,8 @@ To obtain the best performance for a particular interrupt handler: Improving Network Speed ----------------------- -* For Wi-Fi, see :ref:`How-to-improve-Wi-Fi-performance` and :ref:`wifi-buffer-usage` -* For lwIP TCP/IP (Wi-Fi and Ethernet), see :ref:`lwip-performance` -* The :example:`wifi/iperf` example contains a configuration that is heavily optimized for Wi-Fi TCP/IP throughput. Append the contents of the files :example_file:`wifi/iperf/sdkconfig.defaults`, :example_file:`wifi/iperf/sdkconfig.defaults.{IDF_TARGET_PATH_NAME}` and :example_file:`wifi/iperf/sdkconfig.ci.99` to your project ``sdkconfig`` file in order to add all of these options. Note that some of these options may have trade-offs in terms of reduced debuggability, increased firmware size, increased memory usage, or reduced performance of other features. To get the best result, read the documentation pages linked above and use this information to determine exactly which options are best suited for your app. +.. list:: + + :SOC_WIFI_SUPPORTED: * For Wi-Fi, see :ref:`How-to-improve-Wi-Fi-performance` and :ref:`wifi-buffer-usage` + * For lwIP TCP/IP (Wi-Fi and Ethernet), see :ref:`lwip-performance` + :SOC_WIFI_SUPPORTED: * The :example:`wifi/iperf` example contains a configuration that is heavily optimized for Wi-Fi TCP/IP throughput. Append the contents of the files :example_file:`wifi/iperf/sdkconfig.defaults`, :example_file:`wifi/iperf/sdkconfig.defaults.{IDF_TARGET_PATH_NAME}` and :example_file:`wifi/iperf/sdkconfig.ci.99` to your project ``sdkconfig`` file in order to add all of these options. Note that some of these options may have trade-offs in terms of reduced debuggability, increased firmware size, increased memory usage, or reduced performance of other features. To get the best result, read the documentation pages linked above and use this information to determine exactly which options are best suited for your app. diff --git a/docs/en/api-reference/peripherals/index.rst b/docs/en/api-reference/peripherals/index.rst index 7f31970323..86aa9c58d9 100644 --- a/docs/en/api-reference/peripherals/index.rst +++ b/docs/en/api-reference/peripherals/index.rst @@ -19,7 +19,7 @@ Peripherals API ledc :SOC_MCPWM_SUPPORTED: mcpwm :SOC_PCNT_SUPPORTED: pcnt - rmt + :SOC_RMT_SUPPORTED: rmt :esp32 or esp32s3: sd_pullup_requirements :SOC_SDMMC_HOST_SUPPORTED: sdmmc_host sdspi_host diff --git a/docs/en/api-reference/system/inc/espefuse_summary_ESP8684.rst b/docs/en/api-reference/system/inc/espefuse_summary_ESP8684.rst new file mode 100644 index 0000000000..d9c76873ac --- /dev/null +++ b/docs/en/api-reference/system/inc/espefuse_summary_ESP8684.rst @@ -0,0 +1,10 @@ +.. code-block:: none + + TO BE UPDATED WITH TARGET SPECIFIC INFORMATION, IDF-4223 + +To get a dump for all eFuse registers. + +.. code-block:: none + + + TO BE UPDATED WITH TARGET SPECIFIC INFORMATION, IDF-4223 diff --git a/docs/en/hw-reference/index.rst b/docs/en/hw-reference/index.rst index 0349b29007..af3be65001 100644 --- a/docs/en/hw-reference/index.rst +++ b/docs/en/hw-reference/index.rst @@ -6,7 +6,7 @@ .. toctree:: :maxdepth: 3 - Technical Reference Manual (PDF) <{IDF_TARGET_TRM_EN_URL}> + :not esp8684: Technical Reference Manual (PDF) <{IDF_TARGET_TRM_EN_URL}> :esp32: ESP32 Datasheet (PDF) :esp32s2: ESP32-S2 Datasheet (PDF) :esp32c3: ESP32-C3 Datasheet (PDF) diff --git a/docs/en/security/esp8684_log.inc b/docs/en/security/esp8684_log.inc new file mode 100644 index 0000000000..4d6e47427f --- /dev/null +++ b/docs/en/security/esp8684_log.inc @@ -0,0 +1,18 @@ + +.. first_boot_enc + +.. code-block:: none + + Update with ESP8684 specific info IDF-4208 + + +------ + +.. already_en_enc + +.. code-block:: none + + Update with ESP8684 specific info IDF-4208 + + +------ diff --git a/docs/requirements.txt b/docs/requirements.txt index 16bd54ca82..319c030566 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1 +1 @@ -esp-docs==0.1.1 +esp-docs==0.2.0 diff --git a/docs/zh_CN/api-guides/index.rst b/docs/zh_CN/api-guides/index.rst index cc8b6637e4..09defeaa6f 100644 --- a/docs/zh_CN/api-guides/index.rst +++ b/docs/zh_CN/api-guides/index.rst @@ -31,7 +31,7 @@ API 指南 Memory Types 分区表 Performance - 射频校准 + :not esp8684: 射频校准 :esp32: 安全启动 <../security/secure-boot-v1> 安全启动 V2 <../security/secure-boot-v2> 线程本地存储 @@ -42,5 +42,5 @@ API 指南 单元测试 (Linux Host) :SOC_USB_OTG_SUPPORTED: USB 控制台 :SOC_USB_SERIAL_JTAG_SUPPORTED: USB Serial/JTAG Controller Console - Wi-Fi 驱动 - Wi-Fi Security + :SOC_WIFI_SUPPORTED: Wi-Fi 驱动 + :SOC_WIFI_SUPPORTED: Wi-Fi Security diff --git a/docs/zh_CN/api-guides/jtag-debugging/esp8684.inc b/docs/zh_CN/api-guides/jtag-debugging/esp8684.inc new file mode 100644 index 0000000000..299542fe69 --- /dev/null +++ b/docs/zh_CN/api-guides/jtag-debugging/esp8684.inc @@ -0,0 +1,142 @@ +.. This file gets included from other .rst files in this folder. +.. It contains target-specific snippets. +.. Comments and '---' lines act as delimiters. +.. +.. This is necessary mainly because RST doesn't support substitutions +.. (defined in RST, not in Python) inside code blocks. If that is ever implemented, +.. These code blocks can be moved back to the main .rst files, with target-specific +.. file names being replaced by substitutions. + +.. run-openocd + +:: + + openocd -f board/esp8684-BOARD_NAME.cfg + +.. |run-openocd-device-name| replace:: ESP8684 + +--- + +.. run-openocd-output + +:: + + CHIP SPECIFIC LOG OUTPUT + +.. |run-openocd-cfg-file-err| replace:: ``Can't find board/esp8684-BOARD_NAME.cfg`` + +--- + +.. run-openocd-upload + +:: + + openocd -f board/esp8684-BOARD_NAME.cfg -c "program_esp filename.bin 0x10000 verify exit" + +--- + +.. run-openocd-src-linux + +.. code-block:: bash + + src/openocd -f board/esp8684-BOARD_NAME.cfg + +--- + +.. run-openocd-src-win + +.. code-block:: batch + + src\openocd -f board/esp8684-BOARD_NAME.cfg + +--- + +.. idf-py-openocd-default-cfg + +.. |idf-py-def-cfg| replace:: ``-f board/esp8684-BOARD_NAME.cfg`` + +--- + +.. run-openocd-appimage-offset + +:: + + openocd -f board/esp8684-BOARD_NAME.cfg -c "init; halt; esp appimage_offset 0x210000" + +--- + +.. openocd-cfg-files + +.. list-table:: OpenOCD configuration files for ESP8684 + :widths: 25 75 + :header-rows: 1 + + * - Name + - Description + * - Content + - Content + +--- + +.. openocd-target-specific-config-vars + +--- + +--- + +.. jtag-pins + +.. list-table:: ESP8684 pins and JTAG signals + :widths: 25 75 + :header-rows: 1 + + * - ESP8684 Pin + - JTAG Signal + * - MTDO / GPIOX + - TDO + * - MTDI / GPIOX + - TDI + * - MTCK / GPIOX + - TCK + * - MTMS / GPIOX + - TMS + +.. |jtag-sel-gpio| replace:: GPIOX +.. |jtag-gpio-list| replace:: GPIOX + +--- + +.. run-openocd-d3 + +:: + + openocd -l openocd_log.txt -d3 -f board/esp8684-BOARD_NAME.cfg + +--- + +.. run-openocd-d3-tee + +:: + + openocd -d3 -f board/esp8684-BOARD_NAME.cfg 2>&1 | tee openocd.log + +--- + +.. run-gdb-remotelog + +:: + + riscv32-esp-elf-gdb -ex "set remotelogfile gdb_log.txt" + +--- + +.. devkit-defs + +.. |devkit-name| replace:: ESP8684 +.. |devkit-name-with-link| replace:: LINK TO DEVKIT + +--- + +.. devkit-hw-config + +--- diff --git a/docs/zh_CN/api-guides/partition-tables.rst b/docs/zh_CN/api-guides/partition-tables.rst index db57159d28..4a2e6f48f0 100644 --- a/docs/zh_CN/api-guides/partition-tables.rst +++ b/docs/zh_CN/api-guides/partition-tables.rst @@ -88,6 +88,7 @@ Type 字段可以指定为 app (0x00) 或者 data (0x01),也可以直接使用 SubType 字段 ~~~~~~~~~~~~ +{IDF_TARGET_ESP_PHY_REF:default = ":ref:`CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION`", esp8684 = "(not updated yet)"} SubType 字段长度为 8 bit,内容与具体分区 Type 有关。目前,esp-idf 仅仅规定了 “app” 和 “data” 两种分区类型的子类型含义。 @@ -109,7 +110,7 @@ SubType 字段长度为 8 bit,内容与具体分区 Type 有关。目前,esp - ``phy`` (1) 分区用于存放 PHY 初始化数据,从而保证可以为每个设备单独配置 PHY,而非必须采用固件中的统一 PHY 初始化数据。 - 默认配置下,phy 分区并不启用,而是直接将 phy 初始化数据编译至应用程序中,从而节省分区表空间(直接将此分区删掉)。 - - 如果需要从此分区加载 phy 初始化数据,请打开项目配置菜单(``idf.py menuconfig``),并且使能 :ref:`CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION` 选项。此时,您还需要手动将 phy 初始化数据烧至设备 flash(esp-idf 编译系统并不会自动完成该操作)。 + - 如果需要从此分区加载 phy 初始化数据,请打开项目配置菜单(``idf.py menuconfig``),并且使能 {IDF_TARGET_ESP_PHY_REF} 选项。此时,您还需要手动将 phy 初始化数据烧至设备 flash(esp-idf 编译系统并不会自动完成该操作)。 - ``nvs`` (2) 是专门给 :doc:`非易失性存储 (NVS) API <../api-reference/storage/nvs_flash>` 使用的分区。 - 用于存储每台设备的 PHY 校准数据(注意,并不是 PHY 初始化数据)。 diff --git a/docs/zh_CN/api-reference/peripherals/index.rst b/docs/zh_CN/api-reference/peripherals/index.rst index 54ac56de2e..7831a281da 100644 --- a/docs/zh_CN/api-reference/peripherals/index.rst +++ b/docs/zh_CN/api-reference/peripherals/index.rst @@ -19,7 +19,7 @@ ledc :SOC_MCPWM_SUPPORTED: mcpwm :SOC_PCNT_SUPPORTED: pcnt - rmt + :SOC_RMT_SUPPORTED: rmt :esp32 or esp32s3: sd_pullup_requirements :SOC_SDMMC_HOST_SUPPORTED: sdmmc_host sdspi_host diff --git a/docs/zh_CN/api-reference/system/inc/espefuse_summary_ESP8684.rst b/docs/zh_CN/api-reference/system/inc/espefuse_summary_ESP8684.rst new file mode 100644 index 0000000000..d9c76873ac --- /dev/null +++ b/docs/zh_CN/api-reference/system/inc/espefuse_summary_ESP8684.rst @@ -0,0 +1,10 @@ +.. code-block:: none + + TO BE UPDATED WITH TARGET SPECIFIC INFORMATION, IDF-4223 + +To get a dump for all eFuse registers. + +.. code-block:: none + + + TO BE UPDATED WITH TARGET SPECIFIC INFORMATION, IDF-4223 diff --git a/docs/zh_CN/hw-reference/index.rst b/docs/zh_CN/hw-reference/index.rst index eab3bee3a3..c9587c6ffb 100644 --- a/docs/zh_CN/hw-reference/index.rst +++ b/docs/zh_CN/hw-reference/index.rst @@ -6,7 +6,7 @@ .. toctree:: :maxdepth: 3 - {IDF_TARGET_NAME} 技术参考手册 (PDF) <{IDF_TARGET_TRM_CN_URL}> + :not esp8684: {IDF_TARGET_NAME} 技术参考手册 (PDF) <{IDF_TARGET_TRM_CN_URL}> :esp32: ESP32 技术规格书 (PDF) :esp32s2: ESP32-S2 技术规格书 (PDF) :esp32c3: ESP32-C3 技术规格书 (PDF) diff --git a/docs/zh_CN/security/esp8684_log.inc b/docs/zh_CN/security/esp8684_log.inc new file mode 100644 index 0000000000..4d6e47427f --- /dev/null +++ b/docs/zh_CN/security/esp8684_log.inc @@ -0,0 +1,18 @@ + +.. first_boot_enc + +.. code-block:: none + + Update with ESP8684 specific info IDF-4208 + + +------ + +.. already_en_enc + +.. code-block:: none + + Update with ESP8684 specific info IDF-4208 + + +------ diff --git a/examples/system/startup_time/sdkconfig.defaults.esp8684 b/examples/system/startup_time/sdkconfig.defaults.esp8684 new file mode 100644 index 0000000000..ec89023c83 --- /dev/null +++ b/examples/system/startup_time/sdkconfig.defaults.esp8684 @@ -0,0 +1,5 @@ +# Not calibrating RTC_SLOW_CLK saves a small amount of time during boot. +# +# Setting option to zero is only recommended if not using sleep modes, or +# if you don't need accurate sleep times. +CONFIG_ESP8684_RTC_CLK_CAL_CYCLES=0 diff --git a/examples/wifi/iperf/sdkconfig.defaults.esp8684 b/examples/wifi/iperf/sdkconfig.defaults.esp8684 new file mode 100644 index 0000000000..ae5867daa6 --- /dev/null +++ b/examples/wifi/iperf/sdkconfig.defaults.esp8684 @@ -0,0 +1,22 @@ +# +# ESP8684 +# +CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=20 +CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=40 +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=40 +CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y +CONFIG_ESP32_WIFI_TX_BA_WIN=32 +CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP32_WIFI_RX_BA_WIN=32 + +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=40960 +CONFIG_LWIP_TCP_WND_DEFAULT=40960 +CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 +CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 +CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 + +CONFIG_ESP8684_DEFAULT_CPU_FREQ_160=y +CONFIG_ESP8684_DEFAULT_CPU_FREQ_MHZ=160 + +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHFREQ_80M=y