Die letzte Änderung im CPLD war das die Interrupt Leitung der Platte
invertiert wird. Hintergrund ist, das der Port C Pin auf nur eine Flanke
hin einen Int generieren soll: Das kann man konfigurieren, aber nur
auf die fallende Flanke, darum muss das Original Signal der Platte
invertiert sein.
Für die alten Treiber ändert das gar nichts, und so ist wohl auch
noch der Stand im CVS.
Besser fürs System sollte es aber mit folgenden zwei Anpassungen sein:
1. im ide Treiber eine Funktion hinzufügen:
Code: Alles auswählen
void configure_interrupt()
{
immap_t *immap=(immap_t *)IMAP_ADDR ;
// configure Port C, Pin 15 to create an Int only for High->Low changes
immap->im_ioport.iop_pcint |= 0x0001;
}
Code: Alles auswählen
...
configure_interrupt();
dboxide_register();
}
Dieser war notwendig, weil ja offensichtlich zuviele Interrupts kamen,
(beide Flanken) und so der IDE Treiber damit aber zurecht kam.
Da jetzt nur noch die richtige Anzahl Interrupts kommt, sollte der
Patch nicht mehr notwendig sein.
Die Frage ist dann, ob dann Lost Interrupts auftreten, oder andere
seltsame Effekte, ganz sicher bin ich mir da noch nicht, obwohl das
Interrupt Handling dann ja "Original Linux-Kernel Implementierung" ist
und kein bisschen mit meinem Treiber zu tun hat (ausser der Nummer
des gewünschten Int und der Konfiguration des Pins).
Ciao,
DboxBaer