BeagleBoard-X15 eSATA on modularized kernel

After some months of putting it on the back burner, I finally managed to
get the BeagleBoard X15 booting with rootfs on eSATA using Debian's
modularized kernel, with u-boot-omap 2016.09+dfsg1-1 and
linux-image-4.8.0-rc8-armmp-lpae 4.8~rc8-1~exp1.

The eSATA port appears to to be powered off of USB, and for some reason
only works when compiled in. I haven't tried with an externally powered
eSATA device.

The workaround seems to be calling "usb start" from u-boot (which reset
the board on older versions of mainline u-boot).

With linux 4.6, it worked fine with the following compiled as built-ins,
without the workaround:

  CONFIG_OMAP_CONTROL_PHY=y
  CONFIG_TI_PIPE3=y
  CONFIG_OMAP_OCP2SCP=y

Ideally this would work regardless of being compiled as a module or a
built-in, or initializing usb from u-boot... I'm not sure if the issue
is in u-boot or linux. But at least this is a useable workaround for
now.

live well,
  vagrant

Keeping Linux-omap in CC as well on this thread.

Hi Vagrant,

After some months of putting it on the back burner, I finally managed to
get the BeagleBoard X15 booting with rootfs on eSATA using Debian's
modularized kernel, with u-boot-omap 2016.09+dfsg1-1 and
linux-image-4.8.0-rc8-armmp-lpae 4.8~rc8-1~exp1.

The eSATA port appears to to be powered off of USB, and for some reason
only works when compiled in. I haven't tried with an externally powered
eSATA device.

The workaround seems to be calling "usb start" from u-boot (which reset
the board on older versions of mainline u-boot).

With linux 4.6, it worked fine with the following compiled as built-ins,
without the workaround:

  CONFIG_OMAP_CONTROL_PHY=y
  CONFIG_TI_PIPE3=y
  CONFIG_OMAP_OCP2SCP=y

Ideally this would work regardless of being compiled as a module or a
built-in, or initializing usb from u-boot... I'm not sure if the issue
is in u-boot or linux. But at least this is a useable workaround for
now.

Great!! thanks for the update.

I believe the issue is kind of related to both u-boot and kernel due to
Errata i818 SATA PHY Reset Required Following SATA PLL Unlock

u-boot is not powering down SATA as per that recommendation.
As long as SATA_DPLL is not unlocked/powered down at any point i818 won't occur.

But if the TI_PIPE3 and related drivers are not built-in then there is
a small window where the SATA PLL is unlocked and so SATA breaks.
(due to kernel auto-idling unused clocks?)

The right fix would be to make sure SATA is shutdown in u-boot
and workaround for i818 is applied there.

I will take this as an action item for me.

cheers,
-roger