phy init data: Read PHY init data partition offset from menuconfig

This commit is contained in:
Angus Gratton 2016-11-16 12:22:32 +11:00 committed by Ivan Grokhotkov
parent 4db29f74a0
commit 6d4ab76db2
4 changed files with 55 additions and 49 deletions

View File

@ -3,24 +3,11 @@ ifdef CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION
PHY_INIT_DATA_OBJ = $(BUILD_DIR_BASE)/phy_init_data.o
PHY_INIT_DATA_BIN = $(BUILD_DIR_BASE)/phy_init_data.bin
PARTITION_TABLE_COMPONENT_PATH := $(COMPONENT_PATH)/../partition_table
ESP32_COMPONENT_PATH := $(COMPONENT_PATH)
GEN_ESP32PART := $(PYTHON) $(PARTITION_TABLE_COMPONENT_PATH)/gen_esp32part.py -q
# Path to partition CSV file is relative to project path for custom
# partition CSV files, but relative to component dir otherwise.
PARTITION_TABLE_ROOT := $(call dequote,$(if $(CONFIG_PARTITION_TABLE_CUSTOM),$(PROJECT_PATH),$(PARTITION_TABLE_COMPONENT_PATH)))
PARTITION_TABLE_CSV_PATH := $(call dequote,$(abspath $(PARTITION_TABLE_ROOT)/$(subst $(quote),,$(CONFIG_PARTITION_TABLE_FILENAME))))
PARTITION_TABLE_BIN := $(BUILD_DIR_BASE)/$(notdir $(PARTITION_TABLE_CSV_PATH:.csv=.bin))
# Parse partition table and get offset of PHY init data partition
PHY_INIT_GET_ADDR_CMD := $(GEN_ESP32PART) $(PARTITION_TABLE_CSV_PATH) | $(GEN_ESP32PART) - | sed -n -e "s/[^,]*,data,phy,\\([^,]*\\),.*/\\1/p"
PHY_INIT_DATA_ADDR = $(shell $(PHY_INIT_GET_ADDR_CMD))
# Command to flash PHY init data partition
PHY_INIT_DATA_FLASH_CMD = $(ESPTOOLPY_SERIAL) write_flash $(PHY_INIT_DATA_ADDR) $(PHY_INIT_DATA_BIN)
ESPTOOL_ALL_FLASH_ARGS += $(PHY_INIT_DATA_ADDR) $(PHY_INIT_DATA_BIN)
PHY_INIT_DATA_FLASH_CMD = $(ESPTOOLPY_SERIAL) write_flash $(CONFIG_PHY_DATA_OFFSET) $(PHY_INIT_DATA_BIN)
ESPTOOL_ALL_FLASH_ARGS += $(CONFIG_PHY_DATA_OFFSET) $(PHY_INIT_DATA_BIN)
ESP32_COMPONENT_PATH := $(COMPONENT_PATH)
$(PHY_INIT_DATA_OBJ): $(ESP32_COMPONENT_PATH)/phy_init_data.h $(BUILD_DIR_BASE)/include/sdkconfig.h
$(summary) CC $(notdir $@)
@ -39,4 +26,7 @@ phy_init_data-flash: $(BUILD_DIR_BASE)/phy_init_data.bin
phy_init_data-clean:
rm -f $(PHY_INIT_DATA_BIN) $(PHY_INIT_DATA_OBJ)
all: phy_init_data
flash: phy_init_data
endif # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION

View File

@ -1,49 +1,63 @@
menu "Partition Table"
choice
prompt "Partition Table"
default PARTITION_TABLE_SINGLE_APP
help
The partition table to flash to the ESP32. The partition table
determines where apps, data and other resources are expected to
be found.
prompt "Partition Table"
default PARTITION_TABLE_SINGLE_APP
help
The partition table to flash to the ESP32. The partition table
determines where apps, data and other resources are expected to
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.
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.
config PARTITION_TABLE_SINGLE_APP
bool "Single factory app, no OTA"
bool "Single factory app, no OTA"
config PARTITION_TABLE_TWO_OTA
bool "Factory app, two OTA definitions"
bool "Factory app, two OTA definitions"
config PARTITION_TABLE_CUSTOM
bool "Custom partition table CSV"
bool "Custom partition table CSV"
endchoice
config PARTITION_TABLE_CUSTOM_FILENAME
string "Custom partition CSV file" if PARTITION_TABLE_CUSTOM
default partitions.csv
help
Name of the custom partition CSV filename. This path is evaluated
relative to the project root directory.
string "Custom partition CSV file" if PARTITION_TABLE_CUSTOM
default partitions.csv
help
Name of the custom partition CSV filename. This path is evaluated
relative to the project root directory.
config PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET
hex "App offset in flash" if PARTITION_TABLE_CUSTOM
default 0x10000
help
If using a custom partition table, specify the offset in the flash
where 'make flash' should write the built app.
hex "Factory app partition offset" if PARTITION_TABLE_CUSTOM
default 0x10000
help
If using a custom partition table, specify the offset in the flash
where 'make flash' should write the built app.
config PARTITION_TABLE_CUSTOM_PHY_DATA_OFFSET
hex "PHY data partition offset" if PARTITION_TABLE_CUSTOM
depends on ESP32_PHY_INIT_DATA_IN_PARTITION
default 0xf000
help
If using a custom partition table, specify the offset in the flash
where 'make flash' should write the initial PHY data file.
config PARTITION_TABLE_FILENAME
string
default partitions_singleapp.csv if PARTITION_TABLE_SINGLE_APP
default partitions_two_ota.csv if PARTITION_TABLE_TWO_OTA
default PARTITION_TABLE_CUSTOM_FILENAME if PARTITION_TABLE_CUSTOM
string
default partitions_singleapp.csv if PARTITION_TABLE_SINGLE_APP
default partitions_two_ota.csv if PARTITION_TABLE_TWO_OTA
default PARTITION_TABLE_CUSTOM_FILENAME if PARTITION_TABLE_CUSTOM
config APP_OFFSET
hex
default PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET if PARTITION_TABLE_CUSTOM
default 0x10000 # this is the factory app offset used by the default tables
hex
default PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET if PARTITION_TABLE_CUSTOM
default 0x10000 # this is the factory app offset used by the default tables
config PHY_DATA_OFFSET
hex
default PARTITION_TABLE_CUSTOM_PHY_DATA_OFFSET if PARTITION_TABLE_CUSTOM
default 0xf000 # this is the factory app offset used by the default tables
endmenu

View File

@ -1,4 +1,5 @@
# Name, Type, SubType, Offset, Size
# Note: if you change the phy_init or app partition offset, make sure to change the offset in Kconfig.projbuild
nvs, data, nvs, 0x9000, 0x6000
phy_init, data, phy, 0xf000, 0x1000
factory, app, factory, 0x10000, 1M

1 # Name # Name, Type, SubType, Offset, Size Type SubType Offset Size
2 # Note: if you change the phy_init or app partition offset, make sure to change the offset in Kconfig.projbuild
3 nvs nvs, data, nvs, 0x9000, 0x6000 data nvs 0x9000 0x6000
4 phy_init phy_init, data, phy, 0xf000, 0x1000 data phy 0xf000 0x1000
5 factory factory, app, factory, 0x10000, 1M app factory 0x10000 1M

View File

@ -1,4 +1,5 @@
# Name, Type, SubType, Offset, Size
# Note: if you change the phy_init or app partition offset, make sure to change the offset in Kconfig.projbuild
nvs, data, nvs, 0x9000, 0x4000
otadata, data, ota, 0xd000, 0x2000
phy_init, data, phy, 0xf000, 0x1000

1 # Name # Name, Type, SubType, Offset, Size Type SubType Offset Size
2 # Note: if you change the phy_init or app partition offset, make sure to change the offset in Kconfig.projbuild
3 nvs nvs, data, nvs, 0x9000, 0x4000 data nvs 0x9000 0x4000
4 otadata otadata, data, ota, 0xd000, 0x2000 data ota 0xd000 0x2000
5 phy_init phy_init, data, phy, 0xf000, 0x1000 data phy 0xf000 0x1000