"flash_files" : {
"0x1000" : "bootloader/bootloader.bin",
"${PARTITION_TABLE_OFFSET}" : "partition_table/partition-table.bin",
- "${CONFIG_APP_OFFSET}" : "${PROJECT_NAME}.bin",
+ "${APP_PARTITION_OFFSET}" : "${PROJECT_NAME}.bin",
"${PHY_PARTITION_OFFSET}" : "${PHY_PARTITION_BIN_FILE}"
},
"bootloader" : { "offset" : "0x1000",
endif()
add_custom_command(OUTPUT "${unsigned_partition_bin}"
- COMMAND "${PYTHON}" "${CMAKE_CURRENT_SOURCE_DIR}/gen_esp32part.py" -q ${md5_opt} ${flashsize_opt}
+ COMMAND "${PYTHON}" "${CMAKE_CURRENT_SOURCE_DIR}/gen_esp32part.py" -q --offset ${PARTITION_TABLE_OFFSET} ${md5_opt} ${flashsize_opt}
${partition_csv} ${unsigned_partition_bin}
DEPENDS ${partition_csv} "${CMAKE_CURRENT_SOURCE_DIR}/gen_esp32part.py"
VERBATIM)
parser.add_argument('--quiet', '-q', help="Don't print status messages to stderr", action='store_true')
+ parser.add_argument('--partition-table-offset', help='The offset of the partition table in flash. Only consulted if partition table is in CSV format.', type=str, default='0x8000')
+
search_type = parser.add_mutually_exclusive_group()
search_type.add_argument('--partition-name', '-p', help='The name of the required partition', type=str, default=None)
search_type.add_argument('--type', '-t', help='The type of the required partition', type=str, default=None)
quiet = args.quiet
+ gen.offset_part_table = int(args.partition_table_offset, 0)
+
input = args.input.read()
input_is_binary = input[0:2] == gen.PartitionDefinition.MAGIC_BYTES
if input_is_binary:
get_filename_component(PARTITION_CSV_PATH "${CONFIG_PARTITION_TABLE_FILENAME}" ABSOLUTE BASE_DIR "${PROJECT_PATH}")
if(NOT EXISTS "${PARTITION_CSV_PATH}")
- message(FATAL_ERROR "Partition table CSV file ${PARTITION_CSV_PATH} not found. Change custom partition CSV path in menuconfig.")
+ message(WARNING "Partition table CSV file ${PARTITION_CSV_PATH} not found. "
+ "Change custom partition CSV path in menuconfig.")
endif()
else()
# Other .csv files are always in the component directory
function(get_partition_info variable get_part_info_args)
separate_arguments(get_part_info_args)
execute_process(COMMAND
- ${COMPONENT_PATH}/parttool.py -q ${get_part_info_args} ${PARTITION_CSV_PATH}
+ ${COMPONENT_PATH}/parttool.py -q
+ --partition-table-offset ${PARTITION_TABLE_OFFSET}
+ ${get_part_info_args}
+ ${PARTITION_CSV_PATH}
OUTPUT_VARIABLE result
+ RESULT_VARIABLE exit_code
OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT ${exit_code} EQUAL 0 AND NOT ${exit_code} EQUAL 1)
+ # can't fail here as it would prevent the user from running 'menuconfig' again
+ message(WARNING "parttool.py execution failed (${result}), problem with partition CSV file (see above)")
+ endif()
set(${variable} ${result} PARENT_SCOPE)
endfunction()