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_OBJ = $(BUILD_DIR_BASE)/phy_init_data.o
PHY_INIT_DATA_BIN = $(BUILD_DIR_BASE)/phy_init_data.bin 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 # Command to flash PHY init data partition
PHY_INIT_DATA_FLASH_CMD = $(ESPTOOLPY_SERIAL) write_flash $(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 += $(PHY_INIT_DATA_ADDR) $(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 $(PHY_INIT_DATA_OBJ): $(ESP32_COMPONENT_PATH)/phy_init_data.h $(BUILD_DIR_BASE)/include/sdkconfig.h
$(summary) CC $(notdir $@) $(summary) CC $(notdir $@)
@@ -39,4 +26,7 @@ phy_init_data-flash: $(BUILD_DIR_BASE)/phy_init_data.bin
phy_init_data-clean: phy_init_data-clean:
rm -f $(PHY_INIT_DATA_BIN) $(PHY_INIT_DATA_OBJ) 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 endif # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION

View File

@@ -28,12 +28,21 @@ config PARTITION_TABLE_CUSTOM_FILENAME
relative to the project root directory. relative to the project root directory.
config PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET config PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET
hex "App offset in flash" if PARTITION_TABLE_CUSTOM hex "Factory app partition offset" if PARTITION_TABLE_CUSTOM
default 0x10000 default 0x10000
help help
If using a custom partition table, specify the offset in the flash If using a custom partition table, specify the offset in the flash
where 'make flash' should write the built app. 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 config PARTITION_TABLE_FILENAME
string string
default partitions_singleapp.csv if PARTITION_TABLE_SINGLE_APP default partitions_singleapp.csv if PARTITION_TABLE_SINGLE_APP
@@ -45,6 +54,11 @@ config APP_OFFSET
default PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET if PARTITION_TABLE_CUSTOM default PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET if PARTITION_TABLE_CUSTOM
default 0x10000 # this is the factory app offset used by the default tables 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 endmenu

View File

@@ -1,4 +1,5 @@
# Name, Type, SubType, Offset, Size # 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 nvs, data, nvs, 0x9000, 0x6000
phy_init, data, phy, 0xf000, 0x1000 phy_init, data, phy, 0xf000, 0x1000
factory, app, factory, 0x10000, 1M 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 # 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 nvs, data, nvs, 0x9000, 0x4000
otadata, data, ota, 0xd000, 0x2000 otadata, data, ota, 0xd000, 0x2000
phy_init, data, phy, 0xf000, 0x1000 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