-
-
Notifications
You must be signed in to change notification settings - Fork 735
Open
Description
The function will always return the fallback value for the firmware offset
def get_app_partition_offset(pt_table, pt_offset):
# Get the default boot partition offset
app_params = get_partition_info(pt_table, pt_offset, {"name": "boot"})
return app_params.get("offset", "0x10000")
There is no entry boot
regarding the documentation https://docs.espressif.com/projects/esp-idf/en/v5.5/esp32/api-guides/partition-tables.html and looking into the predefined standard partitions.csv https://github.com/tasmota/esp-idf/tree/release/v5.5/components/partition_table
changing to:
def get_partition_info(pt_path, pt_offset, pt_params):
if not os.path.isfile(pt_path):
sys.stderr.write(
"Missing partition table file `%s`\n" % pt_path
)
env.Exit(1)
cmd = [
get_python_exe(),
os.path.join(FRAMEWORK_DIR, "components", "partition_table", "parttool.py"),
"-q",
"--partition-table-offset",
hex(pt_offset),
"--partition-table-file",
pt_path,
"get_partition_info",
"--info",
"size",
"offset",
]
if pt_params.get("name") == "boot":
cmd.append("--partition-boot-default")
else:
cmd.extend(
[
"--partition-type",
pt_params["type"],
"--partition-subtype",
pt_params["subtype"],
]
)
result = exec_command(cmd)
if result["returncode"] != 0:
sys.stderr.write(
"Couldn't extract information for %s/%s from the partition table\n"
% (pt_params["type"], pt_params["subtype"])
)
sys.stderr.write(result["out"] + "\n")
sys.stderr.write(result["err"] + "\n")
env.Exit(1)
size = offset = 0
if result["out"].strip():
size, offset = result["out"].strip().split(" ", 1)
return {"size": size, "offset": offset}
def get_app_partition_offset(pt_table, pt_offset):
# Get the default boot partition offset
ota_app_params = get_partition_info(pt_table, pt_offset, {"type": "app", "subtype": "ota_0"})
if ota_app_params.get("offset"):
return ota_app_params["offset"]
factory_app_params = get_partition_info(pt_table, pt_offset, {"type": "app", "subtype": "factory"})
return factory_app_params.get("offset", "0x10000")
does bring the expected results
Metadata
Metadata
Assignees
Labels
No labels