Autor: Frédéric Data: A: guilde Assumpte: Masquage ressources PCI dans le noyau linux
Bonjour,
Au boulot, on utilise une carte VME (proc PPC) sur laquelle on cross-compile un python embarqué
pour piloter nos instruments.
On a depuis peu une nouvelle carte qui est une version améliorée de l'ancienne, à part le
bridge PCI-VME qui permet maintenant un adressage VME A32:D32, alors qu'on ne pouvait faire que
du A24:D16 avec l'ancien.
Le problème c'est que ce nouveau bridge a plus de ressources PCI (5 contre 1), et que ces
ressources sont plus gourmandes en taille. Si gourmandes que, avec le jeu d'alignement en
mémoire (masquage bête), ça ne tient plus dans l'espace adressable PCI !
Du coup, lors du boot, le noyau linux n'arrive pas à tout allouer, et ça fout la merde.
Le plus beau c'est que 2 des ressources sont en fait la même chose que 2 autres, juste pour
supporter le mode SWAP du bridge (c'est lui qui peut se charger de permutter les datas sur le
bus VME, plutôt que de le faire dans la librairie), mais ce mode SWAP n'est de toute façon pas
exploitable sur les processeurs PPC !!!
On est en train de chercher comment désactiver ça dans le bios de la carte, mais dès qu'on
essaye de mettre la BAR correspondante à 0, la carte plante instantanément.
Du coup, on cherche le(s) fichier(s) à patcher dans le noyau pour masquer ces ressources lors
de l'énumération... Si quelqu'un sait où ça se trouve, ça nous aiderait, car on a le nez dans
le cambouis du sous-système PCI de linux depuis quelques jours seulement, et c'est pas de la
tarte pour comprendre toutes les galipettes qui y sont faites !