Files
dragonpilot/panda/scripts/restore_flash_spi.py
Vehicle Researcher 161005a0c1 openpilot v0.10.2 release
date: 2025-11-19T19:10:11
master commit: a29fdbd02407d41ecbcc69d151bb4837bfba3cbc
2025-11-19 19:10:16 -08:00

28 lines
723 B
Python
Executable File

#!/usr/bin/env python3
from panda import Panda, PandaDFU, STBootloaderSPIHandle
if __name__ == "__main__":
try:
from openpilot.system.hardware import HARDWARE
HARDWARE.recover_internal_panda()
Panda.wait_for_dfu(None, 5)
except Exception:
pass
p = PandaDFU(None)
assert isinstance(p._handle, STBootloaderSPIHandle)
cfg = p.get_mcu_type().config
print("restoring from backup...")
addr = cfg.bootstub_address
for i, sector_size in enumerate(cfg.sector_sizes):
print(f"- sector #{i}")
p._handle.erase_sector(i)
with open(f"sector_{i}.bin", "rb") as f:
dat = f.read()
assert len(dat) == sector_size
p._handle.program(addr, dat)
addr += len(dat)
p.reset()