[U-Boot] [PATCH V5 4/4] edminiv2: add mvsata_ide and cmd_ide support
Albert ARIBAUD
albert.aribaud at free.fr
Wed Aug 4 22:03:37 CEST 2010
Le 04/08/2010 09:23, Albert ARIBAUD a écrit :
> Le 04/08/2010 08:08, Prafulla Wadaskar a écrit :
>> 3. Instead of adding fixed 41/50 usec delay between the writes to
>> Scontrol It would be good if you can check/poll some status bit
>> associated with IDE controller, this will make mvsata driver rock
>> solid on any platform.
>
> I've looked up the marvell kirkwood and orion docs for such a control
> bit but found none. I'll look it up again, however it might help if
> you can find someone inside Marvell who would, and could, provide the
> info.
I think I've found out how it works.
I initially thought the DET field in SControl was a sort of reset line,
and that writing a 1 would put the controller in continuous reset and
writing a 0 to put it out of reset.
But actually, DET is a command field : a write of 1 starts the reset
sequence immediately: the DET field of the SStatus register will go from
0 to 3 (possibly passing through 1).
Then you can set SControl's DET back to 0 so that you can use the port.
Thus the init sequence becomes: write 3 to SControl's IPM and 1 to DET,
read SStatus until its DET field is 3, write 0 to SControl's DET.
However I'll keep a timeout value in the status read loop, because you
can't expect SStatus to become 3: it could stay 0 if no drive is
connected, for instance. If I did not keep a timeout, u-boot would
freeze. :/
Amicalement,
--
Albert.
More information about the U-Boot
mailing list