Voilà ce que j'ai trouvé :
* FL_download fait une backup des certificats en mémoire archive, là où il y a de la place (avec un comportement bizarre quand il n'y a pas de bloc 'unused', mais bon)
* En entrant par le point d'entrée du boot utilisé par l'AMS (vecteur ROM_BASE + $100) (donc juste après le FL_download), une routine du boot efface toutes les backup de certificats qu'elle peut trouver en Flash (dont celle faite par l'AMS
), puis en crée une à $5F0000 (pour une 92+).
* Si jamais un problème survient pendant le transfert, le boot est relancé depuis son point d'entrée principal après avoir viré une pile (vecteur ROM_BASE + $4). Une routine efface toutes les backups de certificats qu'elle peut trouver en Flash (dont celle faite par la dernière exécution du boot
).
* Je n'ai vu nulle part de routine de restauration de backup de certificats dans le boot.
* Le trap #11 - Fonction 6 de l'AMS, exécuté au reset, possède un appel de sous-routine capable de restaurer entièrement les certificats. Le code qui est avant vérifie peut-être entre autres si les certificats actuels sont valides (la fonction est grosse, je n'ai pas trop regardé). La sous-routine est capable de restaurer des certificats écrits en dur dans l'AMS (à ROM_BASE + $12003); je n'ai pas vu de code qui allait chercher une sauvegarde dans la mémoire archive.
Donc :
1) Je ne comprends rien à ce code pas cohérent du tout, qui n'a pas l'air de marcher.
2) Je ne vois pas trop comment TIB-Receiver pourrait se débrouiller pour permettre la restauration de la backup.