partition_table: Add a "single factory app (large)" option for 1.5MB app size

Needed to build some examples in their default configurations (especially
ESP32-C3). Wasn't noticed until the CI checks for partition size were added.
This commit is contained in:
Angus Gratton 2021-04-12 17:29:49 +10:00
parent b45b817e6f
commit 920edd4e73
13 changed files with 116 additions and 38 deletions

View File

@ -9,21 +9,79 @@ menu "Partition Table"
be found.
The predefined partition table CSV descriptions can be found
in the components/partition_table directory. Otherwise it's
possible to create a new custom partition CSV for your application.
in the components/partition_table directory. These are mostly intended
for example and development use, it's expect that for production use you
will copy one of these CSV files and create a custom partition CSV for
your application.
config PARTITION_TABLE_SINGLE_APP
bool "Single factory app, no OTA"
help
This is the default partition table, designed to fit into a 2MB or
larger flash with a single 1MB app partition.
The corresponding CSV file in the IDF directory is
components/partition_table/partitions_singleapp.csv
This partition table is not suitable for an app that needs OTA
(over the air update) capability.
config PARTITION_TABLE_SINGLE_APP_LARGE
bool "Single factory app (large), no OTA"
help
This is a variation of the default partition table, that expands
the 1MB app partition size to 1.5MB to fit more code.
The corresponding CSV file in the IDF directory is
components/partition_table/partitions_singleapp_large.csv
This partition table is not suitable for an app that needs OTA
(over the air update) capability.
config PARTITION_TABLE_TWO_OTA
bool "Factory app, two OTA definitions"
help
This is a basic OTA-enabled partition table with a factory app
partition plus two OTA app partitions. All are 1MB, so this
partition table requires 4MB or larger flash size.
The corresponding CSV file in the IDF directory is
components/partition_table/partitions_two_ota.csv
config PARTITION_TABLE_CUSTOM
bool "Custom partition table CSV"
help
Specify the path to the partition table CSV to use for your project.
Consult the Partition Table section in the ESP-IDF Programmers Guide
for more information.
config PARTITION_TABLE_SINGLE_APP_ENCRYPTED_NVS
bool "Single factory app, no OTA, encrypted NVS"
depends on !ESP32_COREDUMP_ENABLE_TO_FLASH && NVS_ENCRYPTION
help
This is a variation of the default "Single factory app, no OTA" partition table
that supports encrypted NVS when using flash encryption. See the Flash Encryption section
in the ESP-IDF Programmers Guide for more information.
The corresponding CSV file in the IDF directory is
components/partition_table/partitions_singleapp_encr_nvs.csv
config PARTITION_TABLE_SINGLE_APP_LARGE_ENC_NVS
bool "Single factory app (large), no OTA, encrypted NVS"
depends on !ESP32_COREDUMP_ENABLE_TO_FLASH && NVS_ENCRYPTION
help
This is a variation of the "Single factory app (large), no OTA" partition table
that supports encrypted NVS when using flash encryption. See the Flash Encryption section
in the ESP-IDF Programmers Guide for more information.
The corresponding CSV file in the IDF directory is
components/partition_table/partitions_singleapp_large_encr_nvs.csv
config PARTITION_TABLE_TWO_OTA_ENCRYPTED_NVS
bool "Factory app, two OTA definitions, encrypted NVS"
depends on !ESP_COREDUMP_ENABLE_TO_FLASH && NVS_ENCRYPTION
help
This is a variation of the "Factory app, two OTA definitions" partition table
that supports encrypted NVS when using flash encryption. See the Flash Encryption section
in the ESP-IDF Programmers Guide for more information.
The corresponding CSV file in the IDF directory is
components/partition_table/partitions_two_ota_encr_nvs.csv
endchoice
config PARTITION_TABLE_CUSTOM_FILENAME
@ -38,6 +96,9 @@ menu "Partition Table"
default "partitions_singleapp.csv" if PARTITION_TABLE_SINGLE_APP && !ESP_COREDUMP_ENABLE_TO_FLASH
default "partitions_singleapp_coredump.csv" if PARTITION_TABLE_SINGLE_APP && ESP_COREDUMP_ENABLE_TO_FLASH
default "partitions_singleapp_encr_nvs.csv" if PARTITION_TABLE_SINGLE_APP_ENCRYPTED_NVS
default "partitions_singleapp_large.csv" if PARTITION_TABLE_SINGLE_APP_LARGE && !ESP_COREDUMP_ENABLE_TO_FLASH
default "partitions_singleapp_large_coredump.csv" if PARTITION_TABLE_SINGLE_APP_LARGE && ESP_COREDUMP_ENABLE_TO_FLASH # NOERROR
default "partitions_singleapp_large_encr_nvs.csv" if PARTITION_TABLE_SINGLE_APP_LARGE_ENC_NVS
default "partitions_two_ota.csv" if PARTITION_TABLE_TWO_OTA && !ESP_COREDUMP_ENABLE_TO_FLASH
default "partitions_two_ota_coredump.csv" if PARTITION_TABLE_TWO_OTA && ESP_COREDUMP_ENABLE_TO_FLASH
default "partitions_two_ota_encr_nvs.csv" if PARTITION_TABLE_TWO_OTA_ENCRYPTED_NVS

View File

@ -0,0 +1,5 @@
# Name, Type, SubType, Offset, Size, Flags
# Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
nvs, data, nvs, , 0x6000,
phy_init, data, phy, , 0x1000,
factory, app, factory, , 1500K,
1 # Name, Type, SubType, Offset, Size, Flags
2 # Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
3 nvs, data, nvs, , 0x6000,
4 phy_init, data, phy, , 0x1000,
5 factory, app, factory, , 1500K,

View File

@ -0,0 +1,6 @@
# Name, Type, SubType, Offset, Size
# Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
nvs, data, nvs, , 0x6000
phy_init, data, phy, , 0x1000
factory, app, factory, , 1500K
coredump, data, coredump, , 64K
1 # Name, Type, SubType, Offset, Size
2 # Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
3 nvs, data, nvs, , 0x6000
4 phy_init, data, phy, , 0x1000
5 factory, app, factory, , 1500K
6 coredump, data, coredump, , 64K

View File

@ -0,0 +1,6 @@
# Name, Type, SubType, Offset, Size, Flags
# Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
nvs, data, nvs, , 0x6000,
phy_init, data, phy, , 0x1000,
factory, app, factory, , 1500K,
nvs_key, data, nvs_keys,, 0x1000, encrypted
1 # Name, Type, SubType, Offset, Size, Flags
2 # Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
3 nvs, data, nvs, , 0x6000,
4 phy_init, data, phy, , 0x1000,
5 factory, app, factory, , 1500K,
6 nvs_key, data, nvs_keys,, 0x1000, encrypted

View File

@ -1,6 +1,12 @@
# Override some defaults so BT stack is enabled
# in this example
#
# Partition Table
# (It's possible to fit Blufi in 1MB app partition size with some other optimizations, but
# default config is close to 1MB.)
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
#
# BT config
#

View File

@ -25,18 +25,6 @@ CONFIG_APP_BUILD_BOOTLOADER=y
CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
# end of Build type
#
# Partition Table
#
CONFIG_PARTITION_TABLE_SINGLE_APP=y
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
# CONFIG_PARTITION_TABLE_CUSTOM is not set
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv"
CONFIG_PARTITION_TABLE_OFFSET=0x8000
CONFIG_PARTITION_TABLE_MD5=y
# end of Partition Table
#
# Application manager
#

View File

@ -25,18 +25,6 @@ CONFIG_APP_BUILD_BOOTLOADER=y
CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
# end of Build type
#
# Partition Table
#
CONFIG_PARTITION_TABLE_SINGLE_APP=y
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
# CONFIG_PARTITION_TABLE_CUSTOM is not set
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv"
CONFIG_PARTITION_TABLE_OFFSET=0x8000
CONFIG_PARTITION_TABLE_MD5=y
# end of Partition Table
#
# Application manager
#

View File

@ -26,18 +26,6 @@ CONFIG_APP_BUILD_BOOTLOADER=y
CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
# end of Build type
#
# Partition Table
#
CONFIG_PARTITION_TABLE_SINGLE_APP=y
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
# CONFIG_PARTITION_TABLE_CUSTOM is not set
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv"
CONFIG_PARTITION_TABLE_OFFSET=0x8000
CONFIG_PARTITION_TABLE_MD5=y
# end of Partition Table
#
# Application manager
#

View File

@ -1 +1,7 @@
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
#
# Partition Table
#
# Leave some room for larger apps without needing to reduce other features
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y

View File

@ -1 +1,7 @@
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
#
# Partition Table
#
# Leave some room for larger apps without needing to reduce other features
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y

View File

@ -2,3 +2,9 @@ CONFIG_ASIO_SSL_SUPPORT=y
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
#
# Partition Table
#
# Leave some room for larger apps without needing to reduce other features
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y

View File

@ -1 +1,7 @@
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
#
# Partition Table
#
# Leave some room for larger apps without needing to reduce other features
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y

View File

@ -1 +1,7 @@
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
#
# Partition Table
#
# Leave some room for larger apps without needing to reduce other features
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y