Hi Tao,
The customer saw SATA_P0CMD= 7Fh by using memtool.
Please look at the attached file.
These files show the two waveforms of TXP of i.MX6 SATA at when i.MX6 is powered-up.
One is measured on bad board and another is measured on OK board.
For the OK board;(linkOK.TIF)
We can see something changed on the waveform at 600mS after the start. And they saw the messages(console log) which indicate speed negotiation succeeded.
> ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> ata1.00: ATA-8: HGST HTS545050A7E680, GR2OA230, max UDMA/133
> ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32)
> ata1.00: configured for UDMA/133
For the bad board;(linkdown.TIF)
The waveform keeps same pattern from the start. And they cannot find the similar messages on log as above. After Linux boot up, they saw SATA_P0CMD register is 7Fh(default value).
From the above they believe that OOB signaling cannot complete and OOB signaling keeps on forever. I think that the SATA initialization does not complete.
Is it possible for the OOB signaling not to complete and to keep on?
If so, I think SATA initialization should be done manually by using SDK sample program.
Could you tell me your opinion?
BR,
Miyamoto