]> granicus.if.org Git - esp-idf/commitdiff
phy init data: Read PHY init data partition offset from menuconfig
authorAngus Gratton <angus@espressif.com>
Wed, 16 Nov 2016 01:22:32 +0000 (12:22 +1100)
committerIvan Grokhotkov <ivan@espressif.com>
Fri, 18 Nov 2016 12:11:16 +0000 (20:11 +0800)
components/esp32/Makefile.projbuild
components/partition_table/Kconfig.projbuild
components/partition_table/partitions_singleapp.csv
components/partition_table/partitions_two_ota.csv

index 1b54f1844d587ae54007b82e718fc25c56d65df8..01f8d03c5af8f1f12c88233952059039be716f56 100644 (file)
@@ -3,34 +3,21 @@ 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 $@)
        printf "#include \"phy_init_data.h\"\n" | $(CC) -I $(BUILD_DIR_BASE)/include -I $(ESP32_COMPONENT_PATH) -I $(ESP32_COMPONENT_PATH)/include -c -o $@ -xc -
-       
+
 $(PHY_INIT_DATA_BIN): $(PHY_INIT_DATA_OBJ)
        $(summary) BIN $(notdir $@)
-       $(OBJCOPY) -O binary $< $@ 
+       $(OBJCOPY) -O binary $< $@
 
-phy_init_data: $(PHY_INIT_DATA_BIN) 
+phy_init_data: $(PHY_INIT_DATA_BIN)
 
 phy_init_data-flash: $(BUILD_DIR_BASE)/phy_init_data.bin
        @echo "Flashing PHY init data..."
@@ -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
index fa2685d7a1632a68baaa576cffb1fada7db5a480..1f019a6e3fd21b497e814305de3ef70a9a20f3b0 100644 (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
 
index 8517b1196f88154d2243fdf7a211a8f6934a7cb9..e1647008ee59268e827c1229eb674146a1c2320f 100644 (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
index 58c1127d8c33349351b5618b5ba481cf7f771c8e..afb43967a34fcd2835275929ff2865a50bdef8f8 100644 (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