Firmware Sun Dual Port IB Adapter X4217A-Z

Derrière la référence X4217A-Z ou SunPN-375-3549-01, se cache une carte Infiniband ConnectX du fabriquant Mellanox. Cette carte est cependant équipée d’un firmware spécifique, customisé par Sun Microsystems.

Le firmware étant certainement trop ancien, la carte n’est pas reconnue par Infiniband-diags sous Proxmox ou Debian Jessie. Sous OmniOS r151024, le système indique lors du démarrage, que le firmware de la carte n’est pas géré par hermon. Il est donc nécessaire de mettre a jour ce firmware…

 

Identifier la carte :

La commande lspci devrait repérer la présence de la carte dans l’appareil :

root@DL580G5-D:~# lspci | grep Mellanox
13:00.0 InfiniBand: Mellanox Technologies MT25418 [ConnectX VPI PCIe 2.0 2.5GT/s - IB DDR / 10GigE] (rev a0)
root@DL580G5-D:~# 

Nous sommes effectivement en présence d’une carte Mellanox Technologies. Le constructeur l’identifie par la référence MT25418. La commande lspci nous permet aussi de savoir quel est le PCI-id attribué à la carte. Une information qui aura son utilité par après…

 

Identifier la version du firmware et le PSID :

L’utilitaire mstflint permet d’identifier, configurer et mettre à jour des équipements Mellanox Technologies de la gamme ConnectX. Il est disponible depuis le gestionnaire de paquets Debian ou en téléchargement depuis le site Internet de Mellanox.

 

Installation de mstflint

Installation de mstflint sous Proxmox 4 ou Debian 8 :

root@DL580G5-D:~# apt-cache search mstflint
mstflint - Mellanox firmware burning application
root@DL580G5-D:~# apt-get install mstflint
[...]

 

mstflint :

La commande mstflint requiert le PCI-id de la carte pour en lire les informations :

root@DL580G5-D:~# mstflint -d 13:00.0 query
Image type:      FS2
FW Version:      2.3.0
Device ID:       25418
Description:     Node             Port1            Port2            Sys image
GUIDs:           0003ba000100aed8 0003ba000100aed9 0003ba000100aeda 0003ba000100aedb 
MACs:                                 0002c900d050     0002c900d051
VSD:             
PSID:            SUN0070000001
root@DL580G5-D:~#

L’identification de la carte par mstflint permet de déterminer la version du Firmware de la carte (2.3.0) et le Parameter-Set IDentification (SUN0070000001).

 

Firmware Mellanox :

Le site de Mellanox propose en téléchargement les firmwares officiels de ses différentes cartes mais précise bien qu’ils ne peuvent pas être utilisés sur les cartes OEM équipés d’un custom Firmware…

 

Firmware Officiel et SUN X4217A-Z :

Les cartes Mellanox ConnectX équipées d’un Custom Firmware ne peuvent pas être flashées avec un firmware Officiel Mellanox…

J’ai malgrès tout voulu essayer… /!\

root@DL580G5-D:~# mstflint -d 13:00.0 -i fw-25408-2_9_1000-MHGH28-XSC_A4-A9.bin b

    Current FW version on flash:  2.3.0
    New FW version:               2.9.1000


-E- PSID mismatch. The PSID on flash (SUN0070000001) differs from the PSID in the given image (MT_04C0140005).
root@DL580G5-D:~#

…Et comme annoncé, ça ne fonctionne pas. Le PSID de la carte SUN ne correspondant pas à celui d’une carte Mellanox, mstflint refuse l’opération. /!\

 

Custom Firmware Table:

Manque de chance, la page OEM firmware du site Mellanox redirige vers le site d’Oracle qui ne semble plus proposer de support pour cette carte. Quand à la page Custom Firmware Table, elle pointe désespérément vers la page principale du site Mellanox… . Après quelques recherches, je suis tombé sur une liste de discutions citant cette page du site Mellanox et proposant de télécharger le fichier ConnectX-rel-2_9_1000.tgz.

 

ConnectX-rel-2_9_1000

L’archive ConnectX-rel-2_9_1000.tgz contient un firmware, nommé fw-25408-rel.mlx, commun à toutes les cartes de la gamme ConnectX ainsi qu’un fichier de configuration spécifique pour chaque modèle de carte Mellanox. Seul le firmware est utile à la création d’un custom firmware.

root@DL580G5-D:~# tar tf ConnectX-rel-2_9_1000.tgz 
ConnectX-rel-2_9_1000/
ConnectX-rel-2_9_1000/MNKH18-XSC_A1.ini
ConnectX-rel-2_9_1000/MHGH19-XTC_A1-A3.ini
ConnectX-rel-2_9_1000/MNPH29B-XTC_A1-A2.ini
ConnectX-rel-2_9_1000/MHGH29-XTC_A1.ini
ConnectX-rel-2_9_1000/MHGH29-XSC_A2-A5.ini
ConnectX-rel-2_9_1000/MHGH28-XTC_A4-A9.ini
ConnectX-rel-2_9_1000/MNEH28-XSC_A2-A3.ini
ConnectX-rel-2_9_1000/MHGH28-XSC_A2-A3.ini
ConnectX-rel-2_9_1000/MHRH19-XTC_A1-A3.ini
ConnectX-rel-2_9_1000/MHEH28-XSC_A3-A8.ini
ConnectX-rel-2_9_1000/MHGH28-XTC_A2-A3.ini
ConnectX-rel-2_9_1000/fw-25408-debug.mlx
ConnectX-rel-2_9_1000/MHGH28-XSC_A4-A9.ini
ConnectX-rel-2_9_1000/MHGH19-XSC_A1-A3.ini
ConnectX-rel-2_9_1000/MNEH29-XTC_A2.ini
ConnectX-rel-2_9_1000/MNKH28-XTC_A2.ini
ConnectX-rel-2_9_1000/MNEH28-XSC_A1.ini
ConnectX-rel-2_9_1000/fw-25408-defaults.ref
ConnectX-rel-2_9_1000/MNEH29-XSC_A1.ini
ConnectX-rel-2_9_1000/MNKH18-XTC_A1.ini
ConnectX-rel-2_9_1000/MHGH29-XSC_A1.ini
ConnectX-rel-2_9_1000/MNKH28-XSC_A1.ini
ConnectX-rel-2_9_1000/MHGH29-XTC_A2-A5.ini
ConnectX-rel-2_9_1000/MNPH28B-XTC_A1-A2.ini
ConnectX-rel-2_9_1000/MNEH29-XTC_A1.ini
ConnectX-rel-2_9_1000/MHEH28-XTC_A3-A8.ini
ConnectX-rel-2_9_1000/MNEH18-XTC_A1.ini
ConnectX-rel-2_9_1000/MHEH28-XTC_A1-A2.ini
ConnectX-rel-2_9_1000/MHQH29-XTC_A2-A5.ini
ConnectX-rel-2_9_1000/MHQH29-XTC_A1.ini
ConnectX-rel-2_9_1000/MNPH28B-XSC_A1.ini
ConnectX-rel-2_9_1000/MHGH28-XSC_A1.ini
ConnectX-rel-2_9_1000/MHGH28-XTR_A1-A2.ini
ConnectX-rel-2_9_1000/MNKH28-XTC_A1.ini
ConnectX-rel-2_9_1000/MHGH28-XTC_A1.ini
ConnectX-rel-2_9_1000/MHEH28-XSC_A1-A2.ini
ConnectX-rel-2_9_1000/MHQH29-XSC_A1-A5.ini
ConnectX-rel-2_9_1000/MNEH28-XTC_A1.ini
ConnectX-rel-2_9_1000/MNPH29B-XSC_A1.ini
ConnectX-rel-2_9_1000/MHQH19-XTC_A1-A4.ini
ConnectX-rel-2_9_1000/MHRH29-XSC_A1-A3.ini
ConnectX-rel-2_9_1000/MHGH18-XTC_A1-A3.ini
ConnectX-rel-2_9_1000/MHRH29-XTC_A1-A3.ini
ConnectX-rel-2_9_1000/fw-25408-rel.mlx
ConnectX-rel-2_9_1000/MNEH28-XTC_A2-A4.ini
ConnectX-rel-2_9_1000/MNKH28-XSC_A2.ini
ConnectX-rel-2_9_1000/MNEH29-XSC_A2-A3.ini
root@DL580G5-D:~#

 

SUN0070000001.ini

Pour disposer d’un fichier de configuration spécifique à la carte X4217A-Z il est nécessaire de l’extraire à l’aide de la commande mstflint :

root@DL580G5-D:~# mstflint -d 13:00.0 dc > SUN0070000001.ini

 

Sauvegarde du firmware :

Il serait plus judicieux de sauvegarder le firmware actuel de la carte en cas de dysfonctionnement… :

root@DL580G5-D:~# mstflint -d 13:00.0 ri Sun-MT25418v2.3.0.img

mlxburn :

L’outil mlxburn permet de créer un firmware personnalisé. Il est téléchargeable depuis la page management tools du site de Mellanox.

Installation de mlxburn :

root@DL580G5-D:~# dpkg -i mft-4.6.0-48-x86_64-deb/DEBS/mft-4.6.0-48.amd64.deb

 

Créer son Custom Firmware :

Les éléments nécessaires sont :

  • Le fichier de configuration spécifique au modèle de carte (SUN0070000001.ini)
  • Le firmware correspondant a la carte (fw-25418-rel.mlx)
  • L’outil mlxburn
root@DL580G5-D:~# mlxburn -wrimage Sun-MT25418v2.9.1.img -fw fw-25408-rel.mlx -conf SUN0070000001.ini
-I- Generating image ...
-I- Image generation completed successfully.

root@DL580G5-D:~# 

Le firmware est enfin prêt, il ne reste plus qu’a flasher la carte…

 

Flasher le Firmware :

L’outil mstflint permet de flasher la carte avec notre Firmware personnalisé :

root@DL580G5-D:~# mstflint -d 13:00.0 -i Sun-MT25418v2.9.1.img b

    Current FW version on flash:  2.3.0
    New FW version:               2.9.1000

Burning FS2 FW image without signatures - OK  
Restoring signature                     - OK
root@DL580G5-D:~# 

 

Conclusion :

La carte est maintenant à jour.

 

Merci aussi à l’entreprise Pio Spartslap pour m’avoir fournit deux cartes SUN X4217A-Z.

Add a Comment