Contrôleur de disque basé sur FPGA pour Apple II

Les cartes contrôleurs de disque pour Apple II sont connues pour leur diversité et leur rareté, nombreuses d’entre elles étant chères et difficiles à trouver.

La question qui se pose alors pour les collectionneurs rétro est la suivante : une solution basée sur FPGA (Field Programmable Gate Array) pourrait-elle sauver la mise ? La réponse est affirmative !

La majorité des contrôleurs de disque existants connectent le même bus 8 bits à la même interface de disque 19 broches, rendant ainsi possible de créer une carte clone universelle. Celle-ci pourrait se connecter à presque tous les lecteurs de disque Apple II ou un Floppy Emu.

Un Projet Qui Prend Racine

Le projet, presque achevé depuis août, a été lancé en juillet après un regain d’intérêt pour le contrôleur de disque Liron, suite à une mise à jour du firmware du Floppy Emu permettant son support.

Jusqu’à présent, seuls les propriétaires de la carte Liron pouvaient bénéficier de l’émulation d’un disque Smartport de 32 Mo. Cependant, la carte Liron étant rare, j’ai commencé à plancher sur un clone Liron.

Le schéma complet du Liron a été cartographié, nécessitant quelques jours de travail.

Utiliser Verilog pour reproduire les fonctions des puces 7400 fut une tâche relativement aisée. En revanche, la réimplémentation Verilog de l’IWM (Integrated Wozniak Machine) s’est révélée plus complexe, mais grâce à des outils et spécifications adéquats, le tout a été réalisé avec succès.

La sélection d’un FPGA suffisamment spacieux a permis d’incorporer les fonctionnalités ROM de démarrage, éliminant ainsi le besoin de puces ROM physiques.

Le design final se compose de convertisseurs de niveau 3.3V et d’un FPGA, accompagné de plusieurs connecteurs et composants passifs.

Matériel

Le développement du prototype s’est achevé en juillet, juste avant un voyage à Yellowstone, d’où son nom de code.

Le cœur de la carte prototype est un FPGA Lattice MachXO2, modèle LCMXO2-1200HC. Ce composant de 100 broches dispose de 1280 LUTs pour implémenter la logique, et de 8 KB de RAM en blocs intégrés pour servir de ROM de démarrage ou d’autres fonctions.

Le disque externe se connecte à la carte via un câble en nappe de 20 broches, similaire à ceux trouvés dans un Apple IIc ou sur le Floppy Emu. De plus, pour les autres lecteurs externes, un petit adaptateur convertit un court segment de câble en nappe à un connecteur femelle DB-19.

L’Apple II utilisant un bus 5V, alors que le FPGA fonctionne à 3.3V, nécessite l’utilisation de quatre puces 74LVC245 comme pilotes de bus, tolérants au 5V et validés pour la sortie logique “haute” de l’Apple II.

A titre expérimental, un EEPROM série de 2 MB a également été ajoutée, pouvant potentiellement stocker jusqu’à 14 images de disque de 5,25 pouces, transformant ainsi la carte en un disque virtuel tout-en-un, en plus de servir de contrôleur de disque pour les lecteurs externes.

Statut et Prochaines Étapes

Après une intense période de développement en juillet, le projet a connu un ralentissement.

Bien que les PCB et les pièces soient arrivés, le prototype n’a été assemblé qu’en octobre. Je l’ai inséré dans mon Apple IIe et effectué quelques tests basiques, mais d’autres priorités ont détourné mon attention.

Jusqu’à présent, je peux programmer le FPGA via JTAG et il répond aux adresses et données sur le bus Apple II, mais je n’ai pas encore connecté de lecteur de disque réel.

Il existe un bug sérieux avec la programmation JTAG : lorsque la carte est alimentée par une source externe 5V, tout fonctionne correctement, mais lorsqu’elle est alimentée par le slot de l’Apple IIe, cela échoue avec une erreur de communication.

Plusieurs hypothèses ont été explorées sans succès, laissant ce mystère non résolu.

Les prochaines étapes impliquent de finir le débogage, connecter la carte à de véritables lecteurs de disque et vérifier son bon fonctionnement.

L’idée initiale de commercialiser ce produit reste en suspens, car trouver un équilibre entre hobby et obligation commerciale est primordial pour maintenir le plaisir dans de tels projets.

En résumé, la création d’une carte contrôleur de disque universelle pour Apple II basée sur FPGA est prometteuse, avec de multiples possibilités et fonctionnalités en perspective.

Toutefois, des défis techniques et personnels restent à surmonter avant de pouvoir envisager une mise sur le marché.

Risques de Sécurité Associés aux Projets Basés sur FPGA

L’utilisation croissante des solutions FPGA dans des projets rétro comme ce contrôleur de disque pour Apple II n’est pas exempte de risques en matière de cybersécurité.

En effet, les FPGA sont reprogrammables, ce qui peut potentiellement permettre à un attaquant d’insérer du code malveillant ou d’altérer les fonctions critiques du dispositif.

Un accès non autorisé au JTAG, l’interface de programmation utilisée par ce prototype, pourrait permettre un détournement complet du matériel, allant de la collecte de données personnelles à la réécriture du firmware pour des opérations malveillantes.

Pour une entreprise ou un utilisateur individuel, les impacts peuvent inclure la compromission de données sensibles et des interruptions de service significatives.

Mesures de Sécurité Recommandées

Pour se protéger contre ces risques, il est crucial de mettre en place plusieurs mesures de sécurité robustes.

Premièrement, sécuriser l’accès physique au matériel pour éviter les manipulations non autorisées du JTAG.

Deuxièmement, utiliser une chaîne de confiance pour la programmation du FPGA en s’assurant que les firmwares proviennent de sources vérifiées et cumulant des signatures numériques.

Enfin, rester vigilant quant aux mises à jour de sécurité et appliquer les patchs dès qu’ils sont disponibles pour corriger d’éventuelles vulnérabilités découvertes.

La sensibilisation et la formation des utilisateurs sur les bonnes pratiques de sécurité restent également essentielles pour prévenir la majorité des attaques.