Ajout EEPROM carte réseau ISA pour RPL
Mon vieux PC 486 est équipé d'une carte réseau ISA compatible NE2000. Le contrôleur Ethernet 10Mb/s installé est le Realtek RTL8019AS (Datasheet), et on peut dire qu'il en a équipé une paquet de cartes clones ce chip. Sans compter les suivants 8029, 8139, etc...
La plupart de ces cartes, pour les moins low-cost d'entre-elles, disposent d'un support DIP (Dual Inline Package) vide pour y installer une BROM, abréviation de Boot-ROM. La Boot-ROM est une vulgaire EPROM (certains modèles peuvent supporter des EEPROM). Une mémoire morte programmable qui contient un programme permettant à l'ordinateur de booter sur le réseau en récupérant le système d'exploitation via un serveur (en Ethernet). Et ce sans avoir besoin de démarrer sur le disque dur local du PC. Elle n'est pas installée par défaut car le prix de vente de la carte en serait pas mal augmenté. Alors que cette fonction n'a pas vraiment d'utilité chez un particulier au premier abord mais plutôt en entreprise. Ceux qui sont intéressés par cette fonctionnalité de chargement par réseau à distance se doivent d'ajouter l'option (et donc la Boot-ROM) eux-mêmes. En général les revendeurs vendaient à part la fameuse puce pré-programmée, il suffisait donc pour l'administrateur ou l'utilisateur de placer la puce fournie dans le support de la carte et le tour est joué, sans avoir besoin d'outillage spécifique.
Évidemment, trouver ce genre de puce de nos jours... mais bonne nouvelle, on peut se la fabriquer soit même. Une EPROM (Erasable Programmable Read Only Memory) est une mémoire programmable électriquement, nous aurons donc besoin d'un programmateur. Voici le mien un Willem PCB5.0 :
Mais l'effacement d'une EPROM ne peut se faire électriquement. Seuls les EEPROM et autres puces Flash peuvent le faire. Une EPROM requiert une exposition aux ultra-violets pour pouvoir être effacée. Elles sont faciles à reconnaître car elles ont une petite fenêtre sur le dessus.
J'ai eu l'occasion d'en récupérer certaines avant de mettre des appareils en recyclage à la déchetterie. Seulement pour pouvoir s'en servir à nouveau, pour les reprogrammer, il faut d'abord les effacer. Pour cela il existe des petites boites spéciales dont c'est justement la fonction. J'en ai commandé une récemment sur eBay pour une dizaine d'euros. A ce qu'il parait cela marche aussi en plein soleil pendant quelques heures.
On place le ou les EPROM à effacer dans le tiroir, on branche et on active le minuteur pour 10-15 minutes environ. Dedans il y a un vulgaire néon, on pourrait se fabriquer ce genre de boite soi-même mais compte tenu du prix... Il est à noter que les UV peuvent être dangereuses, il ne faut pas faire n'importe quoi comme ouvrir la trappe du néon pour regarder le fonctionnement.
Les EPROMs ont des capacités de stockage différentes, généralement de 1Ko à 64Ko. D'après son datasheet le RTL8019 supporte des EEPROM de 16, 32 et 64Ko. Les références des EPROMs commencent par 27 ou 27C suivi de la capacité en kbits (et non pas en octets, donc il faut diviser par 8). Ainsi le RTL8019 supporte des 27C128, 27C256 et 27C512. Plus la capacité de l'EPROM est grande, plus le nombre d'adresses physiques de stockage est grand, plus le nombre de bits d'adressage est grand et plus la puce possède de broches (Parallel EPROM).
Ensuite il faut aller récupérer le programme à flasher, chouette Realtek propose déjà ce qu'il faut sur son site Internet :
Dans l'archive, le fichier à programmer RBOOT.ROM existe en triple exemplaire, correspondant à la taille des EPROM qu'il est possible d'installer (16, 32 et 64Ko).
J'ai du rallonger les timings par défaut dans le logiciel Willem de tWP (Write Pulse) et tWC (Write Cycle). Sinon la puce est mal programmée (et donc repassage aux UV pour recommencer), c'est au moment de la vérification que le logiciel me rapportait un mismatch sur des emplacements aléatoires et ce sur trois 27C256 différentes. Ainsi la puce est plus lente à programmer, on prend le temps mais au moins le travail est bien fait. Toujours faire une vérification par comparaison derrière. Image tirée du net :
Une fois la puce effacée et programmée, reste à la mettre sur la carte. On place un petit morceau de chatterton opaque dessus pour protéger le die de la lumière.
Vient ensuite le moment de configurer la carte pour "activer" la fonction Boot-ROM, pour cela je vais utiliser l'utilitaire de configuration RSET8019.exe puisque je suis en mode "Jumperless".
It works ! La carte réseau affiche un menu avec des méthodes de lancement au boot, y compris le choix 0 pour démarrer sur le disque dur local.
Il est à noter que la carte ne gère que le protocole RPL (Remote Initial Program Load) que je ne connais pas encore. Il s'agit d'un protocole plus ancien et rudimentaire que le PXE d'Intel que je connais mieux puisque plus facile à mettre en place via IPCOP et son DHCP pointant vers un TFTP. Plus d'infos.
Bon voilà au moins c'est installé, je verrais à savoir comment exploiter cela logiciellement plus tard...
En savoir plus sur les PROM/EPROM/EEPROM :
La plupart de ces cartes, pour les moins low-cost d'entre-elles, disposent d'un support DIP (Dual Inline Package) vide pour y installer une BROM, abréviation de Boot-ROM. La Boot-ROM est une vulgaire EPROM (certains modèles peuvent supporter des EEPROM). Une mémoire morte programmable qui contient un programme permettant à l'ordinateur de booter sur le réseau en récupérant le système d'exploitation via un serveur (en Ethernet). Et ce sans avoir besoin de démarrer sur le disque dur local du PC. Elle n'est pas installée par défaut car le prix de vente de la carte en serait pas mal augmenté. Alors que cette fonction n'a pas vraiment d'utilité chez un particulier au premier abord mais plutôt en entreprise. Ceux qui sont intéressés par cette fonctionnalité de chargement par réseau à distance se doivent d'ajouter l'option (et donc la Boot-ROM) eux-mêmes. En général les revendeurs vendaient à part la fameuse puce pré-programmée, il suffisait donc pour l'administrateur ou l'utilisateur de placer la puce fournie dans le support de la carte et le tour est joué, sans avoir besoin d'outillage spécifique.
Évidemment, trouver ce genre de puce de nos jours... mais bonne nouvelle, on peut se la fabriquer soit même. Une EPROM (Erasable Programmable Read Only Memory) est une mémoire programmable électriquement, nous aurons donc besoin d'un programmateur. Voici le mien un Willem PCB5.0 :
Mais l'effacement d'une EPROM ne peut se faire électriquement. Seuls les EEPROM et autres puces Flash peuvent le faire. Une EPROM requiert une exposition aux ultra-violets pour pouvoir être effacée. Elles sont faciles à reconnaître car elles ont une petite fenêtre sur le dessus.
J'ai eu l'occasion d'en récupérer certaines avant de mettre des appareils en recyclage à la déchetterie. Seulement pour pouvoir s'en servir à nouveau, pour les reprogrammer, il faut d'abord les effacer. Pour cela il existe des petites boites spéciales dont c'est justement la fonction. J'en ai commandé une récemment sur eBay pour une dizaine d'euros. A ce qu'il parait cela marche aussi en plein soleil pendant quelques heures.
On place le ou les EPROM à effacer dans le tiroir, on branche et on active le minuteur pour 10-15 minutes environ. Dedans il y a un vulgaire néon, on pourrait se fabriquer ce genre de boite soi-même mais compte tenu du prix... Il est à noter que les UV peuvent être dangereuses, il ne faut pas faire n'importe quoi comme ouvrir la trappe du néon pour regarder le fonctionnement.
Les EPROMs ont des capacités de stockage différentes, généralement de 1Ko à 64Ko. D'après son datasheet le RTL8019 supporte des EEPROM de 16, 32 et 64Ko. Les références des EPROMs commencent par 27 ou 27C suivi de la capacité en kbits (et non pas en octets, donc il faut diviser par 8). Ainsi le RTL8019 supporte des 27C128, 27C256 et 27C512. Plus la capacité de l'EPROM est grande, plus le nombre d'adresses physiques de stockage est grand, plus le nombre de bits d'adressage est grand et plus la puce possède de broches (Parallel EPROM).
Ensuite il faut aller récupérer le programme à flasher, chouette Realtek propose déjà ce qu'il faut sur son site Internet :
Dans l'archive, le fichier à programmer RBOOT.ROM existe en triple exemplaire, correspondant à la taille des EPROM qu'il est possible d'installer (16, 32 et 64Ko).
J'ai du rallonger les timings par défaut dans le logiciel Willem de tWP (Write Pulse) et tWC (Write Cycle). Sinon la puce est mal programmée (et donc repassage aux UV pour recommencer), c'est au moment de la vérification que le logiciel me rapportait un mismatch sur des emplacements aléatoires et ce sur trois 27C256 différentes. Ainsi la puce est plus lente à programmer, on prend le temps mais au moins le travail est bien fait. Toujours faire une vérification par comparaison derrière. Image tirée du net :
Une fois la puce effacée et programmée, reste à la mettre sur la carte. On place un petit morceau de chatterton opaque dessus pour protéger le die de la lumière.
Vient ensuite le moment de configurer la carte pour "activer" la fonction Boot-ROM, pour cela je vais utiliser l'utilitaire de configuration RSET8019.exe puisque je suis en mode "Jumperless".
It works ! La carte réseau affiche un menu avec des méthodes de lancement au boot, y compris le choix 0 pour démarrer sur le disque dur local.
Il est à noter que la carte ne gère que le protocole RPL (Remote Initial Program Load) que je ne connais pas encore. Il s'agit d'un protocole plus ancien et rudimentaire que le PXE d'Intel que je connais mieux puisque plus facile à mettre en place via IPCOP et son DHCP pointant vers un TFTP. Plus d'infos.
Bon voilà au moins c'est installé, je verrais à savoir comment exploiter cela logiciellement plus tard...
En savoir plus sur les PROM/EPROM/EEPROM :