ARMADA espressobin SATA drive detection failure
Pali Rohár
pali at kernel.org
Sat Aug 13 02:32:14 PDT 2022
On Saturday 13 August 2022 01:35:35 Shinichiro Kawasaki wrote:
> On Aug 13, 2022 / 03:03, Pali Rohár wrote:
> > On Saturday 13 August 2022 01:00:34 Shinichiro Kawasaki wrote:
> > > On Aug 13, 2022 / 02:15, Pali Rohár wrote:
> > > > On Saturday 13 August 2022 00:02:37 Shinichiro Kawasaki wrote:
> > > > > On Aug 12, 2022 / 15:55, Pali Rohár wrote:
> > > > > > On Friday 12 August 2022 14:44:07 Pali Rohár wrote:
> > > > >
> > > > > [...]
> > > > >
> > > > > > > Probably this is SSD disk specific. I will try to prepare some kernel
> > > > > > > changes to test if it changes something.
> > > > > >
> > > > > > Could you please try following change and provide full dmesg log?
> > > > > > First I need to know if issue is in SATA power on code or somewhere else.
> > > > >
> > > > > My pleasure. I applied the patch to the kernel v5.18.16 and booted it from the
> > > > > latest U-Boot. Here I attach console output taken from the mox-imager command.
> > > > > It has all kernel messages as well as U-Boot console log. I find the message
> > > > > from added dev_err():
> > > > >
> > > > > mvebu-a3700-comphy d0018300.phy: OK mvebu_a3700_comphy_sata_power_on() call
> > > > >
> > > > > --
> > > > > Shin'ichiro Kawasaki
> > > >
> > > > Ok, so SATA does not work even when starting with original SMC
> > > > implementation.
> > > >
> > > > Could you please try another test change?
> > > >
> > > > @@ -1102,6 +1142,9 @@ static int mvebu_a3700_comphy_reset(struct phy *phy)
> > > > struct mvebu_a3700_comphy_lane *lane = phy_get_drvdata(phy);
> > > > u16 mask, data;
> > > >
> > > > + dev_err(lane->dev, "IGNORING mvebu_a3700_comphy_reset() call\n");
> > > > + return;
> > > > +
> > > > dev_dbg(lane->dev, "resetting lane %d\n", lane->id);
> > > >
> > > > /* COMPHY reset for internal logic */
> > >
> > > Yes, I've applied the hunk above on top of the previous debug patch (I modified
> > > 'return' to 'return 0' to avoid a compile error). I attach the console log.
> >
> > Ou, right.
> >
> > > With this change,
> > >
> > > - The added message "IGNORING mvebu_a3700_comphy_reset() call" was printed
> > > three times.
> > > - The "ata1: SATA link down (SStatus 100 SControl 300)" message disappeared.
> > > - My SSD was detected as /dev/sda.
> >
> > Perfect!
> >
> > Could you now test only that last small change for
> > mvebu_a3700_comphy_reset() without previous changes?
> > To verify that issue is in mvebu_a3700_comphy_reset() function.
>
> Sure, I've tried the mvebu_a3700_comphy_reset() change only and got same result:
> "IGNORING mvebu_a3700_comphy_reset() call" was printed, and my SSD was detected
> as /dev/sda. FYI, I attach the console log again.
Ok, thanks for testing. It looks like that reset code has some issues.
Could you please test this change?
@@ -1393,7 +1436,8 @@ static int mvebu_a3700_comphy_probe(struct platform_device *pdev)
* To avoid relying on the bootloader/firmware configuration,
* power off all comphys.
*/
- mvebu_a3700_comphy_reset(phy);
+// mvebu_a3700_comphy_reset(phy);
+ mvebu_a3700_comphy_power_off(phy);
lane->needs_reset = false;
}
It should replace reset code by power off at beginning / probe time.
More information about the linux-phy
mailing list