Bootlin a publicat prima versiune a setului de instrumente Snagboot, conceput pentru a restabili funcționarea și firmware-ul flash al dispozitivelor încorporate care au oprit pornirea, de exemplu, din cauza coruperii firmware-ului. Codul Snagboot este scris în Python și este licențiat conform GPLv2.
Majoritatea platformelor încorporate, în cazul deteriorării firmware-ului, oferă interfețe USB sau UART pentru restabilirea funcționării și transferul unei imagini de pornire, dar aceste interfețe sunt specifice fiecărei platforme și necesită utilizarea utilităților de recuperare legate de produse de la producători individuali pentru a fi recuperate. Snagboot este un analog al utilităților specializate, în mare parte proprietare, pentru restaurarea și intermiterea dispozitivelor, cum ar fi STM32CubeProgrammer, SAM-BA ISP, UUU și sunxi-fel.
Snagboot este proiectat să funcționeze cu o gamă largă de plăci și dispozitive încorporate, ceea ce elimină nevoia dezvoltatorilor de sisteme încorporate de a învăța specificul utilizării diferitelor utilități. De exemplu, prima versiune a snagboot poate fi folosită pentru a recupera dispozitive bazate pe SoC-urile ST STM32MP1, Microchip SAMA5, NXP i.MX6/7/8, Texas Instruments AM335x, Allwinner SUNXI și Texas Instruments AM62x.
Setul de instrumente include două utilitare pentru descărcare și intermitent:
- snagrecover - folosește mecanisme specifice producătorului pentru a lucra cu codul în ROM pentru a inițializa RAM extern și a lansa încărcătorul de pornire U-Boot fără a modifica conținutul memoriei permanente.
- snagflash - interacționează cu rularea U-Boot pentru a flashiza imaginea sistemului în memoria imuabilă folosind DFU (Device Firmware Upgrade), UMS (USB Mass Storage) sau Fastboot.
Sursa: opennet.ru
