Il y a une grosse dizaine d’années, j’ai installé un SSD dans un iPod de première génération (le modèle FireWire). Et à l’époque, j’avais noté que je n’avais pas pu utiliser une carte CompactFlash et que le SSD était particulièrement lent pour la synchronisation, bien plus que le disque dur 1,8 pouce d’origine. J’ai enfin compris pourquoi.
C’est grâce à SquashHour9940 sur Reddit, qui a cherché à comprendre pourquoi ça ne fonctionnait pas. C’est compliqué, et c’est lié à l’architecture de l’iPod.
le premier point, c’est le SoC PP5002 de l’iPod. Il pend en charge l’IDE (pour le disque dur) mais aussi les cartes mémoire en général. Les cartes CompactFlash sont un peu particulières sur un point : elles étaient destinées au départ à remplacer des disques durs, et donc elles peuvent fonctionner dans différents modes. Soit comme une carte mémoire (mode CF) soit comme un disque dur (mode TrueIDE). Avec un adaptateur basique (ou une carte qui ne supporte que le mode CF) dans un iPod, un problème se pose : l’iPod passe en mode CF… ce qui bloque le FireWire (je vais revenir sur ça). C’est un peu le contraire de l’iPod mini : les disques durs MicroDrive intégrés dans les iPod ne prennent en charge que le mode TrueIDE, pour mepêcher un petit malin d’acheter un iPod (ou un baladeur quelconque à l’époque) pour récupérer le disque dur et l’utiliser comme carte mémoire.
Deuxièmement, il y a un contrôleur FireWire. Comme le SoC ne gère que l’USB 1.1 (qu’Apple n’a pas utilisé), Apple a ajouté un contrôleur dédié. Et la liaison entre le contrôleur FireWire et le SoC de l’iPod est forcée en mode DMA à cause d’une puce, la SN74CBTD16211. C’est expliqué en détail dans son second post Reddit, mais c’est donc une seconde limite importante : si vous mettez une carte dans l’iPod, elle doit être capable de fonctionner en mode TrueIDE, mais aussi en mode DMA. Le premier point est courant, pas forcément le second.
Petite explication rapide. En IDE (PATA), on peut transférer en mode PIO (Programmed input–output) ou en mode DMA (Direct Memory Access). Le premier est ancien et très dépendant du processeur : chaque transfert nécessite que le CPU effectue la tâche. Le mode DMA permet d’accélérer les choses, en permettant de dire un truc du genre « transfère 32 bits d’un coup, merci ». Les vieilles cartes sont uniquement PIO (ça reste assez rare), mais une carte raisonnablement moderne (de plusieurs gigagoctets) est DMA. Le problème, c’est que certains adaptateurs IDE vers CompactFlash, qui permettent de connecter une carte CompactFlash à la place d’un disque dur, forcent le mode PIO (ou ne prennent pas en charge le mode DMA, mais c’est la même chose).
On récapitule : il faut une carte capable de fonctionner en mode TrueIDE et compatible DMA, mais aussi un adaptateur capable de fonctionner en mode DMA. C’est tout ? Pas vraiment. Parce qu’il y a deux subtilités de plus.
La première est classique si vous avez déjà tenté de mettre une carte CompactFlash dans un ordinateur : elle doit être en fixed mode. C’est assez simple ici : une valeur indique au système d’exploitation si la carte est amovible ou fixée dans la machine. Les cartes grand public sont généralement amovibles, parce qu’elles passent d’un appareil photo à un lecteur. Les cartes industrielles (comme chez Transcend) sont par contre fixed. Certains systèmes demandent obligatoirement du fixed (ou désactivent certaines fonctions si ce n’est pas le cas). En pratique, on peut modifier la valeur du bit avec des utilitaires pour les vieilles cartes Sandisk, et reprogrammer celles à base de SM2236.
Jusque là, c’est encore dénichable. Une carte CompactFlash ou un SSD IDE (souvent basé sur une électronique de carte CompactFlash) qui est compatible TrueIDE, compatible DMA et en mode fixed, ça existe. Le SSD de 16 Go de mon iPod est d’ailleurs dans le cas. Mais il y a un problème supplémentaire, qui explique que mon iPod écrit à 300 ko/s pendant la synchronisation.
Il vient du contrôleur TSB43AA82 de chez Texas Instruments : il force le mode PIO quand il détecte une carte CompactFlash, même si elle est en TrueIDE avec le mode fixed. C’est idiot, mais c’est comme ça : si le SSD (ou la carte CompactFlash) s’identifie comme une carte CompactFlash et pas un disque dur, c’est bridé. Sur le papier, ça ne devrait pas être un énorme problème, le mode PIO-3 permet 11 Mo/s. Mais c’est là que c’est compliqué et bloquant : le contrôleur ne peut pas accéder directement au stockage et doit passer par la RAM du SoC, qui est de seulement 1 Mo. Il y a bien techniquement 32 Mo, mais cette mémoire sert pour la lecture et les données sur ce qui est écouté (pour éviter les coupures, notamment). Avec seulement 1 Mo, un mode PIO et un passage du SoC au contrôleur FireWire, en gros, c’est lent. Si on synchronise des données, il faut que le contrôleur FireWire mette les données envoyées par l’ordinateur en RAM, puis que le SoC de l’iPod copie les données sur le disque et enfin que la RAM soit libérée pour un autre bloc. Et c’est lent, très lent. Quand on doit écrire sur le volume dans ce cas, il faut 2 à 3 secondes par bloc de 1 Mo, soit à peu près 300 ko/s seulement lors de la synchronisation.
Il n’y a pas réellement de solutions, en l’état. Les deux qui sont envisageables sont de modifier les réglages du contrôleur TSB43AA82 (ce qui semble compliqué) ou de trouver un SSD IDE qui ne s’identifie pas comme une carte CompactFlash mais comme un disque dur. Mais de ce que je sais, la majorité des modèles 1,8 pouce intègre des composants de CompactFlash… Donc si vous avez (comme moi) un iPod de première ou seconde génération avec de la mémoire flash, vous êtes condamnés à synchroniser bien plus lentement qu’avec le disque dur d’origine.
Enfin, c’est un problème qui ne se pose pas avec les versions suivantes des iPod : les SoC employés prennent en charge le FireWire directement (ou l’USB). Donc n’importe quelle carte CompactFlash doit fonctionner comme un disque dur avec un adaptateur.






Bonjour Pierre,
Je suis étonné que vous arriviez à le synchroniser avec Sequoia. Apple a discrètement supprimé la synchro avec les iPod FireWire avec macOS 15.4.1 et l’iPod ne peut plus se connecter avec le Mac « The device could not be found ». Sur Reddit le problème est connu et il n’y a aucune solution … à part passer par un PC.
https://www.reddit.com/r/ipod/comments/1jsp61j/macos_sequoia_154_older_ipods/
Je vais vérifier, la capture a été faite rapidement sans tester avec la dernière version (la dernière fois que j’aavais essayé, ça fonctionnait)