From 9ffafd53b22798a6f1cb3f580f975e66413cd87e Mon Sep 17 00:00:00 2001 From: Konstantin Kondrashov Date: Wed, 14 Feb 2024 17:41:20 +0200 Subject: [PATCH] fix(bootloader_support): Adds bootloader_flash_update_size() for the rest chips Closes https://github.com/espressif/esp-idf/issues/13179 --- .../bootloader_flash/src/bootloader_flash_config_esp32c2.c | 7 ++++++- .../bootloader_flash/src/bootloader_flash_config_esp32c3.c | 7 ++++++- .../bootloader_flash/src/bootloader_flash_config_esp32c5.c | 5 +++++ .../bootloader_flash/src/bootloader_flash_config_esp32c6.c | 7 ++++++- .../bootloader_flash/src/bootloader_flash_config_esp32h2.c | 7 ++++++- .../bootloader_flash/src/bootloader_flash_config_esp32p4.c | 5 +++++ .../bootloader_flash/src/bootloader_flash_config_esp32s3.c | 7 ++++++- .../system/build_test/sdkconfig.ci.spi_flash_opts | 1 + 8 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 tools/test_apps/system/build_test/sdkconfig.ci.spi_flash_opts diff --git a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c2.c b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c2.c index dec91e78ae..8aa9df3493 100644 --- a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c2.c +++ b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c2.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -34,6 +34,11 @@ void bootloader_flash_update_id() chip->device_id = bootloader_read_flash_id(); } +void bootloader_flash_update_size(uint32_t size) +{ + rom_spiflash_legacy_data->chip.chip_size = size; +} + void IRAM_ATTR bootloader_flash_cs_timing_config() { SET_PERI_REG_MASK(SPI_MEM_USER_REG(0), SPI_MEM_CS_HOLD_M | SPI_MEM_CS_SETUP_M); diff --git a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c3.c b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c3.c index 52dfafa991..efcae99098 100644 --- a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c3.c +++ b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c3.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -35,6 +35,11 @@ void bootloader_flash_update_id() chip->device_id = bootloader_read_flash_id(); } +void bootloader_flash_update_size(uint32_t size) +{ + rom_spiflash_legacy_data->chip.chip_size = size; +} + void IRAM_ATTR bootloader_flash_cs_timing_config() { SET_PERI_REG_MASK(SPI_MEM_USER_REG(0), SPI_MEM_CS_HOLD_M | SPI_MEM_CS_SETUP_M); diff --git a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c5.c b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c5.c index 2dd79f2c60..a87d800dfc 100644 --- a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c5.c +++ b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c5.c @@ -31,6 +31,11 @@ void bootloader_flash_update_id() chip->device_id = bootloader_read_flash_id(); } +void bootloader_flash_update_size(uint32_t size) +{ + rom_spiflash_legacy_data->chip.chip_size = size; +} + void IRAM_ATTR bootloader_flash_cs_timing_config() { SET_PERI_REG_MASK(SPI_MEM_USER_REG(0), SPI_MEM_CS_HOLD_M | SPI_MEM_CS_SETUP_M); diff --git a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c6.c b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c6.c index eaa3b161cd..4e6701de9a 100644 --- a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c6.c +++ b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32c6.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -31,6 +31,11 @@ void bootloader_flash_update_id() chip->device_id = bootloader_read_flash_id(); } +void bootloader_flash_update_size(uint32_t size) +{ + rom_spiflash_legacy_data->chip.chip_size = size; +} + void IRAM_ATTR bootloader_flash_cs_timing_config() { SET_PERI_REG_MASK(SPI_MEM_USER_REG(0), SPI_MEM_CS_HOLD_M | SPI_MEM_CS_SETUP_M); diff --git a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32h2.c b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32h2.c index f4a436f49d..11b366b1de 100644 --- a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32h2.c +++ b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32h2.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -32,6 +32,11 @@ void bootloader_flash_update_id() chip->device_id = bootloader_read_flash_id(); } +void bootloader_flash_update_size(uint32_t size) +{ + rom_spiflash_legacy_data->chip.chip_size = size; +} + void IRAM_ATTR bootloader_flash_cs_timing_config() { SET_PERI_REG_MASK(SPI_MEM_USER_REG(0), SPI_MEM_CS_HOLD_M | SPI_MEM_CS_SETUP_M); diff --git a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32p4.c b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32p4.c index 5e9433ca3f..2ac9b2d0e1 100644 --- a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32p4.c +++ b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32p4.c @@ -28,6 +28,11 @@ void bootloader_flash_update_id() chip->device_id = bootloader_read_flash_id(); } +void bootloader_flash_update_size(uint32_t size) +{ + rom_spiflash_legacy_data->chip.chip_size = size; +} + void IRAM_ATTR bootloader_flash_cs_timing_config() { SET_PERI_REG_MASK(SPI_MEM_C_USER_REG, SPI_MEM_C_CS_HOLD_M | SPI_MEM_C_CS_SETUP_M); diff --git a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32s3.c b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32s3.c index c02aad5bbf..046553332c 100644 --- a/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32s3.c +++ b/components/bootloader_support/bootloader_flash/src/bootloader_flash_config_esp32s3.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -41,6 +41,11 @@ void bootloader_flash_update_id() chip->device_id = bootloader_read_flash_id(); } +void bootloader_flash_update_size(uint32_t size) +{ + rom_spiflash_legacy_data->chip.chip_size = size; +} + void IRAM_ATTR bootloader_flash_cs_timing_config() { //SPI0/1 share the cs_hold / cs_setup, cd_hold_time / cd_setup_time, cs_hold_delay registers for FLASH, so we only need to set SPI0 related registers here diff --git a/tools/test_apps/system/build_test/sdkconfig.ci.spi_flash_opts b/tools/test_apps/system/build_test/sdkconfig.ci.spi_flash_opts new file mode 100644 index 0000000000..b39a57479b --- /dev/null +++ b/tools/test_apps/system/build_test/sdkconfig.ci.spi_flash_opts @@ -0,0 +1 @@ +CONFIG_SPI_FLASH_SIZE_OVERRIDE=y