[Kos-dev] ATA & LBA, more informations

kos-dev@enix.org kos-dev@enix.org
13 Feb 2002 19:55:21 +0100


Herv=E9 Poussineau <herve.poussineau@cgey.com> writes:

> J'ai bien vu, et je sais pas pq il marche pas...

Tu veux pas le tester ?

> >Mais sinon tu fais un reset avant chaque lecture ?
> Non je ne crois pas (je suis pas s=FBr, je suis au boulot et j'ai pas=
 le code
> =E0 c=F4t=E9 de moi...)

Tu peux me confirmer ca ?

> Et si tu passes outre cette erreur, en envoyant quand m=EAme l'ordre =
de
> lecture, est-ce que tu re=E7ois autre chose que des 0 ?

Avant je passais outre les erreurs, puisque que je ne regardais pas du
tout l'etat du bit 0 dans le status register.

Et la lecture se passait sans probleme. Sauf que quelque soit le
secteur que je demande, 0 ou autre chose, il me retournait toujours le
contenu du secteur 0 (avec la table des partitions et tout ca).

Et ce meme si je fais un Identify Drive entre les deux lectures. C'est
a dire qu'a la premiere lecture il me charge le contenu du secteur 0
(puisque je demande le secteur 0). Ensuite le buffer du controlleur
est recharge avec d'autres infos provenant de la commande Idenfity
Drive. Enfin je lis le secteur 64, et le buffer du controlleur
contient encore les donnees du secteur 0.

En verifiant le bit 0 du status register, je me suis apercu que meme
pour le secteur 0 je choppais l'erreur IDNF...

D'autre part, j'ai remarque que si je ne faisais pas de reset avant la
lecture et bien le bit 0 (ERROR) du status register est a 1 avant meme
que je commence a lancer la commande. Ceci dit, peut etre est-ce du a
une mauvaise reinitialisation du controlleur apres les bricolages
qu'il subit pendant la phase de detection...

Bref, je sais vraiment plus quoi faire pour cette histoire. Si qqun
pouvait m'aider ca serait vraiment trop genial !

Le code est dans le CVS, et pour tester le probleme, il suffit de
decommenter une partie du code de get_partition_table, qui apres la
lecture du secteur 0, fait un identify drive, puis une lecture du
secteur 64...

Voila, merci bcp

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