Re: [résolu] passage noyau 2.4.31-> 2.6.12 triggered-leved IRQ ?
Salut,
C. Mourad Jaber a écrit :
J'ai trouvé la réponse en reconfigurant le BIOS de la machine qui
faisait l'initiation de son bus PCI en "edge" et en lui forçant le
"level", mon noyau 2.6.12 retrouve ses petits...
Ce qui est normal. Les lignes d'IRQ des slots PCI doivent être actives
sur niveau ("level").
Si quelqu'un connait le fonctionnement des bus PCI, je suis prenneur
d'un petit cours...
En fait le bus PCI en lui-même ne s'occupe pas du tout des
interruptions. Il prévoit 4 lignes d'interruption INTA, B, C et D par
slot, c'est tout. Dans l'architecture PC, un aiguillage programmable
(IRQ steering) permet de router les lignes d'IRQ des slots vers les
entrées du bon vieux contrôleur d'interruption, le même qu'en ISA avec
ses 16 entrées dont une grande partie sont réservées. 4 lignes fois 5
slots, ça fait 20, soit beaucoup plus que le nombre d'entrées
disponibles du contrôleur d'interruptions. Donc plusieurs lignes sont
routées sur la même IRQ, et dès qu'il y a un peu trop de périphériques
PCI ayant besoin d'une ou plusieurs IRQ, des IRQ doivent être partagées
entre deux périphériques ou plus. Le résultat est un OU logique entre
les différentes sources. Et pour partager, il est préférable d'avoir des
IRQ sur niveau plutôt que sur front. Les IRQ du bus ISA étaient sur
front, et il est bien connu qu'il ne fallait pas les partager sous peine
de gros ennuis.
Reply to: