Depuis longtemps attendue pour être ensuite abandonnée, car
tuée sur l'hôtel des profits financiers (surtout ceux d'Intel) par ses
créateurs, voici de retour la venue de la pile
FireWire/IEEE1394/Lynx/i.Link_<inserer ici votre
marque> spécialement pour notre OS préféré, le bien nommé
MorphOS!
Voui, voui, voui, vous avez bien lu!
Si vous n'avez pas bien vu encore, j'ai eu 30 ans en
août!
Hein ? C'est quoi le rapport ??
Comme
vous le voyez sur mon billet d'anniv, j'ai eu une caméra vidéo au format DV
(HDV même) et donc avec son petit port 1394...
Ouai c'est cool
mais c'est pas du tout cool
sous Window... la moindre application faisant correctement de la vidéo
est payante, et encore ce sont des usines à gaz!
Guerre de choix s'offre donc à vous que d'avoir un bon vieux Mac (pas le cas
pour moi et cela résous pas le problème du prix, oh non!) ou bien de
pirater emprunter un soft à un ami pour finalement vous dire que
ouai c'est vraiment une merde un casse tête pour travailler
avec.
Bon, bah y a pas trop le choix et comme je le dis régulièrement
on est jamais mieux servis que par soit
même
.
Donc la caméra c'était en août, le bilan pas très joyeux de l'existant
c'était début septembre, le voyage au Canada (histoire de dire que l'achat en
valait le coup) c'était fin septembre, donc le début du projet c'était fin
septembre - début octobre.
Comme tout bon développement qui se commence, j'ai commencé par voir si cela
n'était pas déjà en cours (cf le premier lien du billet). J'ai donc contacté
Sonic qui a en premier tenté un port de la pile Linux (cf toujours le premier
lien, décidément!). Malheureusement au vu du Firewire en 2006, abandonné par
ses pères, il décida qu'il ne valait plus la peine (dixit Sonic, que j'ai eu
par e-mail) de continuer. Fin de l'histoire.
Dommage pour les utilisateurs, cool pour moi (ouai enfin je me donne du taf
de nuit en même temps...) je saute sur l'occasion et commence à réunir la
documentation après avoir vérifié le chipset en place dans mes Peg1 et 2, un
VIA VT6306 (ieee1394a-1995, 3 ports). Ce qui nous donne:
- la norme IEEE1394a-1995, ainsi que son amendement de 2000 (utile pour
certaines explications sur les paquets du type Self-ID et la ROM) ;
- la norme OHCI1394 qui elle est une couche d'abstraction pour les
concepteurs de chipset comme VIA et qui nous facilite les choses pour nous les
concepteurs de drivers ;
- le datasheet du VT6303, utile pour le format des paquets de la couche
PHY.
En même temps que je me prend un gros mal de crâne à lire tout cela en même
temps, je passe un peu de temps sur l'implémentation sous Linux histoire de
voir si j'ai bien compris les docs tordues peu triviales du
Firewire.
Et zou passage au code début octobre en commençant par utiliser les nouveaux
includes du SDK de MorphOS 2.x dont certains fichiers pas encore publiques
quand j'écris ces lignes par ailleurs (lib PCIX pour remplacer openpci par
exemple).
D'ailleurs j'avais jamais attaqué le PCI sur MorphOS, c'est tout de même bien
ce projet 
Nous voilà donc aujourd'hui (début décembre) et qu'en est-il?
Et bien après plus de 2 semaines sur un bug des plus crétin subtile,
inventé par votre crétin de subtile serviteur, je gère complètement
la modification temps-réel de la topologie du bus (connections/déconnections
des devices)et quasiment le mode asynchrone en envoi-réception. Il me reste
à:
- débuger le code de réception des acquittements des requêtes en
transmission ;
- gérer complètement et correctement les paquets de types 'lock' et 'phy'
(toujours en asynchrone) ;
- envoyer des paquets de réponses aux paquets de requêtes reçus ;
- terminer le code de la couche 'device' qui sera vue par l'utilisateur et
par où il pourra les contrôler ;
- coder toute la partie isochrone, le mode le plus intéressant
bien-sûr ;
- faire un petit 1394raw.device pour déjà s'amuser avec.
Vous l'aurez compris (comment ça non ?!) cette pile ne s'occupe que
du transport de données entre les nœuds sur le bus 1394, le contrôle sera donc
laisser au soins de bibliothèques en xxxxxxx.device (genre dv1394.device ou
bien sbp2.device et même avc1394.device).
Si tout cela marche bien j'espère pas moins que sont intégration officielle
dans MorphOS 2.x (3.x?) à l'instar de son homologue USB: Poseidon.
Voilà, voilà pour les nouvelles 
PS: Je me disais bien que j'avais oublié quelque chose d'important: cette
pile n'est pas un port, mais bien un truc développé
sur et pour MorphOS!