Comment faire une vraie rescan du bus PCIe
J'ai un FPGA (Comme la plupart des gens poser cette question) qui est configuré après mon noyau Linux ne la première bus PCIe analyse et le dénombrement. Comme vous pouvez le deviner, le FPGA met en œuvre un PCIe point de terminaison.
Je voudrais avoir le PCIe de base re-énumérer l'ENSEMBLE du bus PCIe, de sorte que mon FPGA s'affichera alors et je peux charger mon module de pilote. Je voudrais également la possibilité de basculer le FPGA de la charge pour une configuration différente. Par cela, je veux dire que je voudrais être en mesure de:
- Boot Linux
- Configurer le FPGA
- Énumérer d'extrémité PCIe module de charge et de
- Supprimer d'extrémité PCIe
- Re-configurer le FPGA
- Ré-énumérer d'extrémité PCIe
Tous sans avoir à redémarrer Linux
Voici les solutions qui ont été proposées ailleurs, mais ne résolvent pas le problème.
echo 1 > /sys/bus/pci/rescan
Cela semble fonctionner (seulement parfois) et il ne fonctionne pas si je veux hotswap le FPGA de la charge après qu'il a d'abord été dénombrés.
Ici est assez invasif de la méthode (que je n'ai pas testé) que quelqu'un a proposé d'ailleurs. https://community.freescale.com/thread/305355
Pouvez le branchement à chaud/puissance de la gestion des installations de PCIe être utilisé pour faire ce travail? Si oui est-il de bonnes ressources pour savoir comment utiliser le système Hotplug avec PCIe? (LDD n'est pas tout à fait le couvrir de façon suffisamment approfondie)
source d'informationauteur whh4000
Vous devez vous connecter pour publier un commentaire.
Ré-énumérer les bus PCIe/arbre via
echo 1 > /sys/bus/pci/rescan
est la bonne solution. Nous sommes à l'utiliser de la même manière que vous l'avez décrit.Nous utilisons
echo 1 > $pcidevice/remove
pour déconnecter le pilote de l'appareil et de le détacher de l'appareil de l'arbre. Le pilote (xillybus) n'est pas déchargé, juste déconnecté.Une meilleure solution est de réanalyser seulement le nœud où votre FPGA est attaché. Cela réduit l'impact pour le système.
Cette technique est utilisée dans le RC3E FPGA cloud.
Du Médecin
Ici est de savoir comment réinitialiser le Vegas avant même qu'une réinitialisation de windows. Ceci est basé sur l'ID de Fournisseur.
La sortie de que mettre dans votre
/etc/rc.local
pour réinitialiser votre Vegas après le démarrage similaire à la devcon redémarrer le script.