[Kos-dev] [ATA] Alternate Status Register -> IRQ ?
kos-dev@enix.org
kos-dev@enix.org
04 Feb 2002 10:05:20 +0100
salut,
ca commence a marcher de mieux en mieux. mais j'ai encore un
soucis. lorsque l'IRQ 14 est activee, est que je met le bit nIEN a 1
dans le Alternate Status Register, et bien je me choppe une
IRQ. Est-ce normal ?
Comment faire pour ne pas me chopper une IRQ ? J'ai essaye de mask
l'IRQ avant puis de la demasker apres l'ecriture, mais elle arrive
juste au moment ou je demaske (normal).
Comment faire ?
voici le bout de code
printk("Trying primary\n");
init_ide(0x1F0);
printk("Trying secondary\n");
init_ide(0x170);
register_irq_handler(14, ide_handler);
/* select drive */
printk("Selecting drive\n");
outb(ATA_D_IBM | device, 0x1F0 + ATA_DRIVE);
usleep(1);
printk("Writing status\n");
outb(ATA_A_IDS | ATA_A_4BIT, 0x1F0 + ATA_ALTPORT);
usleep(1);
==> ICI BLING IRQ 14 :( <==
printk("Status for drive is : 0x%x\n", inb(0x1F0 + ATA_STATUS));
printk("Sencind cmd\n");
outb(ATA_C_ATA_IDENTIFY, 0x1F0 + ATA_CMD);
Est-ce normal ? Avez-vous une solution ?
Thomas
--
PETAZZONI Thomas - thomas.petazzoni@enix.org - UIN : 34937744
(Perso) http://www.enix.org/~thomas/
(KOS) http://kos.enix.org/
(Club LinUT) http://club-linut.enix.org