[Kos-dev] [ATA] Alternate Status Register -> IRQ ?

kos-dev@enix.org kos-dev@enix.org
04 Feb 2002 12:15:30 +0100


"Christophe" <hlide@club-internet.fr> writes:

> Il n'existe pas de bit nIEN dans l'Alternate Status Register. En fait=
, c'est
> le Device Control Register. Pourquoi ? parce que quand tu lis sur ce =
port,
> tu lis un registre et quand tu =E9cris sur ce m=EAme port tu =E9cris =
sur un autre
> registre du contr=F4leur ATA. J'ergote peut-=EAtre, mais il ne faudra=
it pas
> semer le doute en m=E9langeant les noms de registre sous pr=E9texte q=
u'ils se
> partagent la m=EAme adresse de port. Donc appelle-le ATA-DC ou comme =
tu veux
> et =E9vite de reprendre ATA-ASTAT quand tu =E9cris dans ce port.

Oui effectivement. Me suis un peu gour=E9 dans le nommage, d=E9sol=E9 :)

> N'importe comment, le fait de mettre =E0 1 ce bit dans le registre De=
vice
> Control (ATA-DC) arr=EAte la g=E9n=E9ration des IRQ pour la suite des=
 commandes
> envoy=E9es, pas pour l'IRQ en cours.

Oui, forcement.

> Argh ! qu'est ce que c'est que ce truc, on NE peut JAMAIS =E9crire da=
ns le
> registre Alternate Status !? =E9crire dans un registre de status, c'e=
st
> impossible avec le contr=F4leur ATA et =E7a n'a pas de sens. Et puis =
utilise des
> noms standards, car je n'y comprends rien =E0 tes ATA_A_IDS et autre.=
 Ces noms
> sont standards et tu les trouves dans les docs ATA/ATAPI.

Okay, okay ... Je vais essayer de faire un peu mieux, sorry, c'est du
alpha de chez alpha :)

> -Attendre que le registre Alternate Status nous signale que le contr=
=F4leur
> est =E0 nouveau pr=EAt.
> -Lire au moins une fois le registre Status, au cas o=F9 la ligne INTR=
Q serait
> encore active.
> -Mettre le bit nIEN =E0 1 dans le registre Device Control.
> -Activer le device souhait=E9 dans le registre Drive Head.
> -Attendre que le registre Status nous signale que le contr=F4leur est=
 =E0
> nouveau pr=EAt.
> -Ex=E9cuter ta commande dans le registre Command.

Bon, bin j'va tenter un truc dans le genre !

Ciao

Thomas
--=20
PETAZZONI Thomas - thomas.petazzoni@enix.org - UIN : 34937744
(Perso)      http://www.enix.org/~thomas/
(KOS)        http://kos.enix.org/=20
(Club LinUT) http://club-linut.enix.org