Types de protection en écriture et programmation · Transceivers et facteurs de forme · Transceivers et câbles optiques · Documentation · CodingBox
CodingBox Documentation

Types de protection en écriture et programmation

Le facteur de forme indique où se trouvent les champs d’un module. Un second axe, indépendant, détermine si vous pouvez les modifier : la façon dont le module protège sa mémoire contre l’écriture. Les fabricants utilisent cinq approches, chacune exigeant une méthode de programmation différente. Reconnaître le type en premier évite des heures de tentatives d’écriture infructueuses.

Les cinq types de protection

#TypeComment le reconnaîtreComment le programmer
1Non protégéAccepte les écritures immédiatementÉcriture directe — mais à horloge lente
2Broche de protection en écriture matérielleLecture seule quoi que vous tentiez ; aucun mot de passe n’aideContrôler la ligne WP pendant l’écriture
3Mot de passe (contrôleur firmware)WRITE FAIL tant qu’aucun mot de passe n’est saisiSaisir d’abord le mot de passe à 0x7B
4Stockage temporaire + commande de sauvegardeLes écritures « réussissent » mais reviennent en arrière après un cycle d’alimentationEnvoyer la séquence de sauvegarde du fournisseur
5CombinéNécessite une séquence d’E/S propre au fournisseur pour déverrouillerAlgorithme de programmation du fournisseur (scripts)

1. Non protégé

L’EEPROM n’a aucune restriction d’écriture. La difficulté pratique est le minutage : une programmation fiable exige généralement une horloge deux fils d’environ 1 kHz — à peu près dix fois plus lente que la vitesse de lecture normale. À vitesse standard, les écritures échouent par intermittence et laissent des pages partiellement écrites. Un signe révélateur associé : sur certains modules simples, seul A0h se lit proprement tandis que A2h renvoie des erreurs.

2. Broche de protection en écriture matérielle

La broche WP de l’EEPROM est reliée à l’alimentation par une résistance, si bien que la puce démarre verrouillée. Déverrouiller consiste à tirer la ligne WP vers la masse par un chemin de plus faible impédance pendant que l’écriture est en cours — ce que seule une carte programmateur ayant le contrôle de cette ligne peut faire. Le logiciel seul ne peut pas contourner ce type : le module reste en lecture seule malgré les cycles d’alimentation et les tentatives de mot de passe.

3. Protégé par mot de passe (contrôleur firmware)

Selon SFF-8472, le bloc A2h réserve une zone de mot de passe de 7 octets à partir de l’octet 0x7B ; la plupart des modules utilisent un mot de passe de 4 octets. Un contrôleur dans le module compare ce qui y est écrit avec sa valeur stockée, et ne déverrouille les écritures EEPROM qu’ensuite. Sans le mot de passe, chaque écriture renvoie WRITE FAIL.

  • Saisissez le mot de passe correct, puis écrivez.
  • S’il est inconnu : une recherche par dictionnaire des mots de passe connus des fournisseurs (voir Recodage de l’EEPROM pour les valeurs courantes) ou le fabricant.
  • Ces contrôleurs sont sensibles à la vitesse d’horloge et aux intervalles entre blocs — une raison de plus de programmer lentement.

4. Stockage temporaire avec commande de sauvegarde

Les écritures arrivent dans une mémoire volatile. Tout semble correct — jusqu’à ce que le module subisse un cycle d’alimentation et que l’ancien code revienne. Le firmware du fournisseur a besoin d’une commande de sauvegarde explicite (une séquence d’octets propriétaire) pour valider l’image temporaire dans la mémoire permanente. Aucune norme ne la définit ; la séquence de chaque fournisseur est différente et est capturée sous forme de script.

5. Protection combinée

Les modules les plus récents cumulent plusieurs mécanismes : la protection matérielle WP et un mot de passe et une commande de sauvegarde et des préconditions opérationnelles — par exemple, le module doit être placé en mode basse consommation avant d’accepter les écritures. C’est typique des modules sur des révisions récentes de SFF-8472 qui exposent 256+ pages au-delà de l’octet A2h 0x80, ainsi que des modules CMIS. La programmation exige l’algorithme du fabricant, généralement partagé avec les clients achetant en volume.

Comment identifier le type

  1. Essayez une simple lecture : A2h se lit-il proprement ? (Le type 1 échoue souvent ici.)
  2. Essayez une écriture d’un seul octet sur un champ non protégé. Succès immédiat → type 1. WRITE FAIL → type 3 (ou 5). Succès silencieux qui revient en arrière après un cycle d’alimentation → type 4.
  3. Saisissez des mots de passe connus. Toujours en lecture seule → type 2 (matériel) ou type 5 (combiné).
  4. Vérifiez le facteur de forme et la révision de la spécification — les modules CMIS et les révisions tardives de SFF-8472 sont généralement de type 5.

Dans CodingBox

  • Réglages de mot de passe — l’adresse de table, l’adresse du mot de passe (0x7B) et la valeur se règlent dans Mémoire protégée en écriture et mots de passe ; les mots de passe connus sont appliqués depuis la base.
  • Scripts — les scripts de programmation de CodingBox contiennent les séquences de sauvegarde des fournisseurs et les algorithmes de déverrouillage pour les types 4 et 5.
  • Écriture octet par octet et horloge lente pour les modules qui échouent à vitesse standard.
  • La protection WP matérielle est gérée par la carte programmateur, pas par le logiciel.
  • Chaque lecture est enregistrée dans la code database avant que vous n’écriviez, si bien qu’une tentative ratée est toujours récupérable.

Symptômes sur le banc — WRITE FAIL, une écriture qui revient en arrière, un mot de passe refusé — et la conduite à tenir pour chacun : Erreurs de lecture et d’écriture EEPROM.

Pourquoi ces types existent — EEPROM discret face à une carte émulée par MCU, commandes de sauvegarde, miroirs firmware et signatures tels que le firmware les implémente : Contrôleur et firmware.


Si vous trouvez une inexactitude ou une erreur dans cet article, sélectionnez le passage concerné et appuyez sur Ctrl+Enter pour .