diff mbox series

[U-Boot] sunxi: SATA link timeout fix

Message ID 59FF151D0200008100047E53@fh-dortmund.de
State Accepted
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series [U-Boot] sunxi: SATA link timeout fix | expand

Commit Message

Werner Böllmann Nov. 5, 2017, 1:41 p.m. UTC
After updating u-boot from v2016.01 to 2017.09 i got a "SATA link 0 timeout." on my Cubietruck board.
I tracked this down to this patch.

http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=9fbb0c3aa49f4604b0342cb527a6bd099f92eaeb.

After adding the "mdelay(500);" line that was lost in the path the error is gone.

Thank you.

Werner

Comments

Jagan Teki Nov. 7, 2017, 12:13 p.m. UTC | #1
On Sun, Nov 5, 2017 at 7:11 PM, Werner Böllmann
<Werner.Boellmann@fh-dortmund.de> wrote:
> After updating u-boot from v2016.01 to 2017.09 i got a "SATA link 0 timeout." on my Cubietruck board.
> I tracked this down to this patch.
>
> http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=9fbb0c3aa49f4604b0342cb527a6bd099f92eaeb.

Look like mdelay missing while moving to board file.

thanks!
Jagan Teki Nov. 8, 2017, 11:32 a.m. UTC | #2
On Tue, Nov 7, 2017 at 5:43 PM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
> On Sun, Nov 5, 2017 at 7:11 PM, Werner Böllmann
> <Werner.Boellmann@fh-dortmund.de> wrote:
>> After updating u-boot from v2016.01 to 2017.09 i got a "SATA link 0 timeout." on my Cubietruck board.
>> I tracked this down to this patch.
>>
>> http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=9fbb0c3aa49f4604b0342cb527a6bd099f92eaeb.
>
> Look like mdelay missing while moving to board file.

Can someone test this?

thanks!
Peter Robinson Nov. 8, 2017, 12:05 p.m. UTC | #3
On Wed, Nov 8, 2017 at 11:32 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
> On Tue, Nov 7, 2017 at 5:43 PM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>> On Sun, Nov 5, 2017 at 7:11 PM, Werner Böllmann
>> <Werner.Boellmann@fh-dortmund.de> wrote:
>>> After updating u-boot from v2016.01 to 2017.09 i got a "SATA link 0 timeout." on my Cubietruck board.
>>> I tracked this down to this patch.
>>>
>>> http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=9fbb0c3aa49f4604b0342cb527a6bd099f92eaeb.
>>
>> Look like mdelay missing while moving to board file.
>
> Can someone test this?

I boot my Cubietruck off a SATA drive without issues with any of those
intervening releases but it's a SSD so there would be no spin up time
compared to spinning rust, I don't have a spare spinning disk to test
it with though.
Jagan Teki Nov. 9, 2017, 9:18 a.m. UTC | #4
On Wed, Nov 8, 2017 at 5:35 PM, Peter Robinson <pbrobinson@gmail.com> wrote:
> On Wed, Nov 8, 2017 at 11:32 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>> On Tue, Nov 7, 2017 at 5:43 PM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>>> On Sun, Nov 5, 2017 at 7:11 PM, Werner Böllmann
>>> <Werner.Boellmann@fh-dortmund.de> wrote:
>>>> After updating u-boot from v2016.01 to 2017.09 i got a "SATA link 0 timeout." on my Cubietruck board.
>>>> I tracked this down to this patch.
>>>>
>>>> http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=9fbb0c3aa49f4604b0342cb527a6bd099f92eaeb.
>>>
>>> Look like mdelay missing while moving to board file.
>>
>> Can someone test this?
>
> I boot my Cubietruck off a SATA drive without issues with any of those
> intervening releases but it's a SSD so there would be no spin up time
> compared to spinning rust, I don't have a spare spinning disk to test
> it with though.

So w/o the mdelay work for you?
Maxime Ripard Nov. 9, 2017, 9:36 a.m. UTC | #5
On Thu, Nov 09, 2017 at 02:48:18PM +0530, Jagan Teki wrote:
> On Wed, Nov 8, 2017 at 5:35 PM, Peter Robinson <pbrobinson@gmail.com> wrote:
> > On Wed, Nov 8, 2017 at 11:32 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
> >> On Tue, Nov 7, 2017 at 5:43 PM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
> >>> On Sun, Nov 5, 2017 at 7:11 PM, Werner Böllmann
> >>> <Werner.Boellmann@fh-dortmund.de> wrote:
> >>>> After updating u-boot from v2016.01 to 2017.09 i got a "SATA link 0 timeout." on my Cubietruck board.
> >>>> I tracked this down to this patch.
> >>>>
> >>>> http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=9fbb0c3aa49f4604b0342cb527a6bd099f92eaeb.
> >>>
> >>> Look like mdelay missing while moving to board file.
> >>
> >> Can someone test this?
> >
> > I boot my Cubietruck off a SATA drive without issues with any of those
> > intervening releases but it's a SSD so there would be no spin up time
> > compared to spinning rust, I don't have a spare spinning disk to test
> > it with though.
> 
> So w/o the mdelay work for you?

I guess the point of this patch was that you need to have the delay,
but the time between the two function calls might cover it, and
apparently in some case doesn't.

So whether it works in one particular case is entirely moot.

Maxime
Jagan Teki Nov. 9, 2017, 11:42 a.m. UTC | #6
On Thu, Nov 9, 2017 at 3:06 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> On Thu, Nov 09, 2017 at 02:48:18PM +0530, Jagan Teki wrote:
>> On Wed, Nov 8, 2017 at 5:35 PM, Peter Robinson <pbrobinson@gmail.com> wrote:
>> > On Wed, Nov 8, 2017 at 11:32 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>> >> On Tue, Nov 7, 2017 at 5:43 PM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>> >>> On Sun, Nov 5, 2017 at 7:11 PM, Werner Böllmann
>> >>> <Werner.Boellmann@fh-dortmund.de> wrote:
>> >>>> After updating u-boot from v2016.01 to 2017.09 i got a "SATA link 0 timeout." on my Cubietruck board.
>> >>>> I tracked this down to this patch.
>> >>>>
>> >>>> http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=9fbb0c3aa49f4604b0342cb527a6bd099f92eaeb.
>> >>>
>> >>> Look like mdelay missing while moving to board file.
>> >>
>> >> Can someone test this?
>> >
>> > I boot my Cubietruck off a SATA drive without issues with any of those
>> > intervening releases but it's a SSD so there would be no spin up time
>> > compared to spinning rust, I don't have a spare spinning disk to test
>> > it with though.
>>
>> So w/o the mdelay work for you?
>
> I guess the point of this patch was that you need to have the delay,
> but the time between the two function calls might cover it, and
> apparently in some case doesn't.
>
> So whether it works in one particular case is entirely moot.

Then, better some more debugging needed in this case.

thanks!
Maxime Ripard Nov. 9, 2017, 12:06 p.m. UTC | #7
On Thu, Nov 09, 2017 at 05:12:08PM +0530, Jagan Teki wrote:
> On Thu, Nov 9, 2017 at 3:06 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
> > On Thu, Nov 09, 2017 at 02:48:18PM +0530, Jagan Teki wrote:
> >> On Wed, Nov 8, 2017 at 5:35 PM, Peter Robinson <pbrobinson@gmail.com> wrote:
> >> > On Wed, Nov 8, 2017 at 11:32 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
> >> >> On Tue, Nov 7, 2017 at 5:43 PM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
> >> >>> On Sun, Nov 5, 2017 at 7:11 PM, Werner Böllmann
> >> >>> <Werner.Boellmann@fh-dortmund.de> wrote:
> >> >>>> After updating u-boot from v2016.01 to 2017.09 i got a "SATA link 0 timeout." on my Cubietruck board.
> >> >>>> I tracked this down to this patch.
> >> >>>>
> >> >>>> http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=9fbb0c3aa49f4604b0342cb527a6bd099f92eaeb.
> >> >>>
> >> >>> Look like mdelay missing while moving to board file.
> >> >>
> >> >> Can someone test this?
> >> >
> >> > I boot my Cubietruck off a SATA drive without issues with any of those
> >> > intervening releases but it's a SSD so there would be no spin up time
> >> > compared to spinning rust, I don't have a spare spinning disk to test
> >> > it with though.
> >>
> >> So w/o the mdelay work for you?
> >
> > I guess the point of this patch was that you need to have the delay,
> > but the time between the two function calls might cover it, and
> > apparently in some case doesn't.
> >
> > So whether it works in one particular case is entirely moot.
> 
> Then, better some more debugging needed in this case.

I'm not sure why that is needed, if we need the delay, we should add
it explicitly, just like this patch does.

Maxime
Jagan Teki Nov. 9, 2017, 12:26 p.m. UTC | #8
On Thu, Nov 9, 2017 at 5:36 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> On Thu, Nov 09, 2017 at 05:12:08PM +0530, Jagan Teki wrote:
>> On Thu, Nov 9, 2017 at 3:06 PM, Maxime Ripard
>> <maxime.ripard@free-electrons.com> wrote:
>> > On Thu, Nov 09, 2017 at 02:48:18PM +0530, Jagan Teki wrote:
>> >> On Wed, Nov 8, 2017 at 5:35 PM, Peter Robinson <pbrobinson@gmail.com> wrote:
>> >> > On Wed, Nov 8, 2017 at 11:32 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>> >> >> On Tue, Nov 7, 2017 at 5:43 PM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>> >> >>> On Sun, Nov 5, 2017 at 7:11 PM, Werner Böllmann
>> >> >>> <Werner.Boellmann@fh-dortmund.de> wrote:
>> >> >>>> After updating u-boot from v2016.01 to 2017.09 i got a "SATA link 0 timeout." on my Cubietruck board.
>> >> >>>> I tracked this down to this patch.
>> >> >>>>
>> >> >>>> http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=9fbb0c3aa49f4604b0342cb527a6bd099f92eaeb.
>> >> >>>
>> >> >>> Look like mdelay missing while moving to board file.
>> >> >>
>> >> >> Can someone test this?
>> >> >
>> >> > I boot my Cubietruck off a SATA drive without issues with any of those
>> >> > intervening releases but it's a SSD so there would be no spin up time
>> >> > compared to spinning rust, I don't have a spare spinning disk to test
>> >> > it with though.
>> >>
>> >> So w/o the mdelay work for you?
>> >
>> > I guess the point of this patch was that you need to have the delay,
>> > but the time between the two function calls might cover it, and
>> > apparently in some case doesn't.
>> >
>> > So whether it works in one particular case is entirely moot.
>>
>> Then, better some more debugging needed in this case.
>
> I'm not sure why that is needed, if we need the delay, we should add
> it explicitly, just like this patch does.

Since it works on particular case, can't we verify non-working area?
adding delay is hard for me but look like this patch needed.

thanks!
Jagan Teki Nov. 10, 2017, 1:55 p.m. UTC | #9
On Thu, Nov 9, 2017 at 5:56 PM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
> On Thu, Nov 9, 2017 at 5:36 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
>> On Thu, Nov 09, 2017 at 05:12:08PM +0530, Jagan Teki wrote:
>>> On Thu, Nov 9, 2017 at 3:06 PM, Maxime Ripard
>>> <maxime.ripard@free-electrons.com> wrote:
>>> > On Thu, Nov 09, 2017 at 02:48:18PM +0530, Jagan Teki wrote:
>>> >> On Wed, Nov 8, 2017 at 5:35 PM, Peter Robinson <pbrobinson@gmail.com> wrote:
>>> >> > On Wed, Nov 8, 2017 at 11:32 AM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>>> >> >> On Tue, Nov 7, 2017 at 5:43 PM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
>>> >> >>> On Sun, Nov 5, 2017 at 7:11 PM, Werner Böllmann
>>> >> >>> <Werner.Boellmann@fh-dortmund.de> wrote:
>>> >> >>>> After updating u-boot from v2016.01 to 2017.09 i got a "SATA link 0 timeout." on my Cubietruck board.
>>> >> >>>> I tracked this down to this patch.
>>> >> >>>>
>>> >> >>>> http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=9fbb0c3aa49f4604b0342cb527a6bd099f92eaeb.
>>> >> >>>
>>> >> >>> Look like mdelay missing while moving to board file.
>>> >> >>
>>> >> >> Can someone test this?
>>> >> >
>>> >> > I boot my Cubietruck off a SATA drive without issues with any of those
>>> >> > intervening releases but it's a SSD so there would be no spin up time
>>> >> > compared to spinning rust, I don't have a spare spinning disk to test
>>> >> > it with though.
>>> >>
>>> >> So w/o the mdelay work for you?
>>> >
>>> > I guess the point of this patch was that you need to have the delay,
>>> > but the time between the two function calls might cover it, and
>>> > apparently in some case doesn't.
>>> >
>>> > So whether it works in one particular case is entirely moot.
>>>
>>> Then, better some more debugging needed in this case.
>>
>> I'm not sure why that is needed, if we need the delay, we should add
>> it explicitly, just like this patch does.
>
> Since it works on particular case, can't we verify non-working area?
> adding delay is hard for me but look like this patch needed.

Updated commit message and Applied on u-boot-sunxi/master
diff mbox series

Patch

diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 70e0143..b38941f 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -216,6 +216,8 @@  int board_init(void)
        satapwr_pin = sunxi_name_to_gpio(CONFIG_SATAPWR);
        gpio_request(satapwr_pin, "satapwr");
        gpio_direction_output(satapwr_pin, 1);
+       /* Give attached sata device time to power-up to avoid link timeouts */
+       mdelay(500);
 #endif
 #ifdef CONFIG_MACPWR
        macpwr_pin = sunxi_name_to_gpio(CONFIG_MACPWR);