mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
spi_flash: only link flash vendor which is officially supported to save IRAM
This commit is contained in:
parent
2e55775f95
commit
0f8f13d21d
@ -129,9 +129,9 @@ repos:
|
||||
pass_filenames: false
|
||||
- id: check-generated-soc-caps-kconfig
|
||||
name: Check soc caps kconfig files are generated (based on components/soc/IDF_TARGET/include/soc/soc_caps.h)
|
||||
entry: tools/gen_soc_caps_kconfig/gen_soc_caps_kconfig.py -d 'components/soc/*/include/soc/' 'components/esp_rom/*/'
|
||||
entry: tools/gen_soc_caps_kconfig/gen_soc_caps_kconfig.py -d 'components/soc/*/include/soc/' 'components/esp_rom/*/' 'components/spi_flash/*/'
|
||||
language: python
|
||||
files: 'components/soc/.+/include/soc/.+_caps\.h|components/esp_rom/.+/.+_caps\.h|kconfig\.soc_caps.in'
|
||||
files: 'components/soc/.+/include/soc/.+_caps\.h|components/esp_rom/.+/.+_caps\.h|kconfig\.soc_caps.in|components/spi_flash/.+/.+_caps\.h'
|
||||
pass_filenames: false
|
||||
additional_dependencies:
|
||||
- pyparsing
|
||||
|
@ -219,9 +219,12 @@ menu "SPI Flash driver"
|
||||
menu "Auto-detect flash chips"
|
||||
visible if !SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST
|
||||
|
||||
orsource "./$IDF_TARGET/Kconfig.soc_caps.in"
|
||||
|
||||
config SPI_FLASH_SUPPORT_ISSI_CHIP
|
||||
bool "ISSI"
|
||||
default y
|
||||
default y if SPI_FLASH_VENDOR_ISSI_SUPPORTED
|
||||
default n
|
||||
help
|
||||
Enable this to support auto detection of ISSI chips if chip vendor not directly
|
||||
given by ``chip_drv`` member of the chip struct. This adds support for variant
|
||||
@ -229,7 +232,8 @@ menu "SPI Flash driver"
|
||||
|
||||
config SPI_FLASH_SUPPORT_MXIC_CHIP
|
||||
bool "MXIC"
|
||||
default y
|
||||
default y if SPI_FLASH_VENDOR_MXIC_SUPPORTED
|
||||
default n
|
||||
help
|
||||
Enable this to support auto detection of MXIC chips if chip vendor not directly
|
||||
given by ``chip_drv`` member of the chip struct. This adds support for variant
|
||||
@ -237,7 +241,8 @@ menu "SPI Flash driver"
|
||||
|
||||
config SPI_FLASH_SUPPORT_GD_CHIP
|
||||
bool "GigaDevice"
|
||||
default y
|
||||
default y if SPI_FLASH_VENDOR_GD_SUPPORTED
|
||||
default n
|
||||
help
|
||||
Enable this to support auto detection of GD (GigaDevice) chips if chip vendor not
|
||||
directly given by ``chip_drv`` member of the chip struct. If you are using Wrover
|
||||
@ -250,7 +255,8 @@ menu "SPI Flash driver"
|
||||
|
||||
config SPI_FLASH_SUPPORT_WINBOND_CHIP
|
||||
bool "Winbond"
|
||||
default y
|
||||
default y if SPI_FLASH_VENDOR_WINBOND_SUPPORTED
|
||||
default n
|
||||
help
|
||||
Enable this to support auto detection of Winbond chips if chip vendor not directly
|
||||
given by ``chip_drv`` member of the chip struct. This adds support for variant
|
||||
@ -259,8 +265,8 @@ menu "SPI Flash driver"
|
||||
config SPI_FLASH_SUPPORT_BOYA_CHIP
|
||||
bool "BOYA"
|
||||
# ESP32 doens't usually use this chip, default n to save iram.
|
||||
default n if IDF_TARGET_ESP32
|
||||
default y
|
||||
default y if SPI_FLASH_VENDOR_BOYA_SUPPORTED
|
||||
default n
|
||||
help
|
||||
Enable this to support auto detection of BOYA chips if chip vendor not directly
|
||||
given by ``chip_drv`` member of the chip struct. This adds support for variant
|
||||
@ -269,8 +275,8 @@ menu "SPI Flash driver"
|
||||
config SPI_FLASH_SUPPORT_TH_CHIP
|
||||
bool "TH"
|
||||
# ESP32 doens't usually use this chip, default n to save iram.
|
||||
default n if IDF_TARGET_ESP32
|
||||
default y
|
||||
default y if SPI_FLASH_VENDOR_TH_SUPPORTED
|
||||
default n
|
||||
help
|
||||
Enable this to support auto detection of TH chips if chip vendor not directly
|
||||
given by ``chip_drv`` member of the chip struct. This adds support for variant
|
||||
|
24
components/spi_flash/esp32/Kconfig.soc_caps.in
Normal file
24
components/spi_flash/esp32/Kconfig.soc_caps.in
Normal file
@ -0,0 +1,24 @@
|
||||
#####################################################
|
||||
# This file is auto-generated from SoC caps
|
||||
# using gen_soc_caps_kconfig.py, do not edit manually
|
||||
#####################################################
|
||||
|
||||
config SPI_FLASH_VENDOR_XMC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_GD_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_ISSI_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_MXIC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_WINBOND_SUPPORTED
|
||||
bool
|
||||
default y
|
29
components/spi_flash/esp32/flash_vendor_caps.h
Normal file
29
components/spi_flash/esp32/flash_vendor_caps.h
Normal file
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* This file records the flash vendor that we offically supported.
|
||||
* we have many chip-specific files, like ``spi_flash_chip_gd.c``,
|
||||
* which means that this file is used for GD flash chips.
|
||||
*
|
||||
* The following definations illustrate what flash vendor is officially
|
||||
* supported by ESP chips. If a flash vendor is officially supported, the chip
|
||||
* specific file will be linked by default, vice versa. You can also adjust this
|
||||
* manually in Kconfig options.
|
||||
*
|
||||
* For example:
|
||||
* Following `SPI_FLASH_VENDOR_ISSI_SUPPORTED` is (1), which means file `spi_flash_chip_issi.c`
|
||||
* will be linked.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define SPI_FLASH_VENDOR_XMC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_GD_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_ISSI_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_MXIC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_WINBOND_SUPPORTED (1)
|
32
components/spi_flash/esp32c2/Kconfig.soc_caps.in
Normal file
32
components/spi_flash/esp32c2/Kconfig.soc_caps.in
Normal file
@ -0,0 +1,32 @@
|
||||
#####################################################
|
||||
# This file is auto-generated from SoC caps
|
||||
# using gen_soc_caps_kconfig.py, do not edit manually
|
||||
#####################################################
|
||||
|
||||
config SPI_FLASH_VENDOR_XMC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_GD_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_ISSI_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_MXIC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_WINBOND_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_BOYA_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_TH_SUPPORTED
|
||||
bool
|
||||
default y
|
14
components/spi_flash/esp32c2/flash_vendor_caps.h
Normal file
14
components/spi_flash/esp32c2/flash_vendor_caps.h
Normal file
@ -0,0 +1,14 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define SPI_FLASH_VENDOR_XMC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_GD_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_ISSI_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_MXIC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_WINBOND_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_BOYA_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_TH_SUPPORTED (1)
|
32
components/spi_flash/esp32c3/Kconfig.soc_caps.in
Normal file
32
components/spi_flash/esp32c3/Kconfig.soc_caps.in
Normal file
@ -0,0 +1,32 @@
|
||||
#####################################################
|
||||
# This file is auto-generated from SoC caps
|
||||
# using gen_soc_caps_kconfig.py, do not edit manually
|
||||
#####################################################
|
||||
|
||||
config SPI_FLASH_VENDOR_XMC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_GD_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_ISSI_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_MXIC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_WINBOND_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_BOYA_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_TH_SUPPORTED
|
||||
bool
|
||||
default y
|
14
components/spi_flash/esp32c3/flash_vendor_caps.h
Normal file
14
components/spi_flash/esp32c3/flash_vendor_caps.h
Normal file
@ -0,0 +1,14 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define SPI_FLASH_VENDOR_XMC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_GD_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_ISSI_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_MXIC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_WINBOND_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_BOYA_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_TH_SUPPORTED (1)
|
8
components/spi_flash/esp32c6/Kconfig.soc_caps.in
Normal file
8
components/spi_flash/esp32c6/Kconfig.soc_caps.in
Normal file
@ -0,0 +1,8 @@
|
||||
#####################################################
|
||||
# This file is auto-generated from SoC caps
|
||||
# using gen_soc_caps_kconfig.py, do not edit manually
|
||||
#####################################################
|
||||
|
||||
config SPI_FLASH_VENDOR_XMC_SUPPORTED
|
||||
bool
|
||||
default y
|
8
components/spi_flash/esp32c6/flash_vendor_caps.h
Normal file
8
components/spi_flash/esp32c6/flash_vendor_caps.h
Normal file
@ -0,0 +1,8 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define SPI_FLASH_VENDOR_XMC_SUPPORTED (1)
|
8
components/spi_flash/esp32h2/Kconfig.soc_caps.in
Normal file
8
components/spi_flash/esp32h2/Kconfig.soc_caps.in
Normal file
@ -0,0 +1,8 @@
|
||||
#####################################################
|
||||
# This file is auto-generated from SoC caps
|
||||
# using gen_soc_caps_kconfig.py, do not edit manually
|
||||
#####################################################
|
||||
|
||||
config SPI_FLASH_VENDOR_XMC_SUPPORTED
|
||||
bool
|
||||
default y
|
8
components/spi_flash/esp32h2/flash_vendor_caps.h
Normal file
8
components/spi_flash/esp32h2/flash_vendor_caps.h
Normal file
@ -0,0 +1,8 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define SPI_FLASH_VENDOR_XMC_SUPPORTED (1)
|
32
components/spi_flash/esp32h4/Kconfig.soc_caps.in
Normal file
32
components/spi_flash/esp32h4/Kconfig.soc_caps.in
Normal file
@ -0,0 +1,32 @@
|
||||
#####################################################
|
||||
# This file is auto-generated from SoC caps
|
||||
# using gen_soc_caps_kconfig.py, do not edit manually
|
||||
#####################################################
|
||||
|
||||
config SPI_FLASH_VENDOR_XMC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_GD_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_ISSI_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_MXIC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_WINBOND_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_BOYA_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_TH_SUPPORTED
|
||||
bool
|
||||
default y
|
14
components/spi_flash/esp32h4/flash_vendor_caps.h
Normal file
14
components/spi_flash/esp32h4/flash_vendor_caps.h
Normal file
@ -0,0 +1,14 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define SPI_FLASH_VENDOR_XMC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_GD_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_ISSI_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_MXIC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_WINBOND_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_BOYA_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_TH_SUPPORTED (1)
|
32
components/spi_flash/esp32s2/Kconfig.soc_caps.in
Normal file
32
components/spi_flash/esp32s2/Kconfig.soc_caps.in
Normal file
@ -0,0 +1,32 @@
|
||||
#####################################################
|
||||
# This file is auto-generated from SoC caps
|
||||
# using gen_soc_caps_kconfig.py, do not edit manually
|
||||
#####################################################
|
||||
|
||||
config SPI_FLASH_VENDOR_XMC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_GD_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_ISSI_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_MXIC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_WINBOND_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_BOYA_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_TH_SUPPORTED
|
||||
bool
|
||||
default y
|
14
components/spi_flash/esp32s2/flash_vendor_caps.h
Normal file
14
components/spi_flash/esp32s2/flash_vendor_caps.h
Normal file
@ -0,0 +1,14 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define SPI_FLASH_VENDOR_XMC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_GD_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_ISSI_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_MXIC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_WINBOND_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_BOYA_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_TH_SUPPORTED (1)
|
32
components/spi_flash/esp32s3/Kconfig.soc_caps.in
Normal file
32
components/spi_flash/esp32s3/Kconfig.soc_caps.in
Normal file
@ -0,0 +1,32 @@
|
||||
#####################################################
|
||||
# This file is auto-generated from SoC caps
|
||||
# using gen_soc_caps_kconfig.py, do not edit manually
|
||||
#####################################################
|
||||
|
||||
config SPI_FLASH_VENDOR_XMC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_GD_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_ISSI_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_MXIC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_WINBOND_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_BOYA_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SPI_FLASH_VENDOR_TH_SUPPORTED
|
||||
bool
|
||||
default y
|
15
components/spi_flash/esp32s3/flash_vendor_caps.h
Normal file
15
components/spi_flash/esp32s3/flash_vendor_caps.h
Normal file
@ -0,0 +1,15 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define SPI_FLASH_VENDOR_XMC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_GD_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_ISSI_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_MXIC_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_WINBOND_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_BOYA_SUPPORTED (1)
|
||||
#define SPI_FLASH_VENDOR_TH_SUPPORTED (1)
|
@ -140,6 +140,7 @@ The following options will reduce IRAM usage of some ESP-IDF features:
|
||||
- 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.
|
||||
- Disabling :ref:`CONFIG_SPI_MASTER_ISR_IN_IRAM` prevents spi_master interrupts from being serviced while writing to flash, and may otherwise reduce spi_master performance, but will save some IRAM.
|
||||
- Setting :ref:`CONFIG_HAL_DEFAULT_ASSERTION_LEVEL` to disable assertion for HAL component will save some IRAM especially for HAL code who calls `HAL_ASSERT` a lot and resides in IRAM.
|
||||
- Refer to sdkconfig menu ``Auto-detect flash chips`` and you can disable flash drivers which you don't need to save some IRAM.
|
||||
|
||||
|
||||
.. only:: esp32c3
|
||||
|
@ -47,6 +47,10 @@ Quad mode (QIO/QOUT) is supported on following chip types:
|
||||
6. XMC
|
||||
7. BOYA
|
||||
|
||||
.. note::
|
||||
|
||||
For every flash chip vendor listed above will only be supported by default when the flash is officially supported. If you want to enable/disable the flash series you can go through Kconfig manu ``Auto-detect flash chips``.
|
||||
|
||||
Optional Features
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user