[U-Boot] usb start crashing on arndale
armdev
armdev.ftm at gmail.com
Sat Apr 5 14:50:11 CEST 2014
Dear batao / Inderpal,
ping works only a few times after a number of usb reset / start attempts.
We are using linux 3.13 (exynos_defconfig) and rootfs linaro saucy server.
Upon linux boot there is only lo in ifconfig.
lsusb results in -99 error, similar to the on reported by batao in
https://bugs.launchpad.net/linaro-stable-kernel/+bug/1301727
Can you suggest anything which we can try / test at our end to solve the ethernet issue with uboot/linux
Best Regards,
On 12-Mar-2014, at 11:59 am, armdev <armdev.ftm at gmail.com> wrote:
> Dear Inderpal,
>
> Thanks for helping us, we were able to test ethernet over usb.
> It breaks often but it works with the return -1 patch.
> The following error is observed most of the time
> EHCI timed out on TD - token=0x8008d80
>
> -Regards
> armdev team
>
> On 12-Mar-2014, at 9:48 am, Inderpal Singh <inderpal.singh at linaro.org> wrote:
>
>> Hi,
>>
>>
>> On 11 March 2014 20:25, armdev <armdev.ftm at gmail.com> wrote:
>> Adding Inderpal singh and Trini. Please help
>>
>> On 11-Mar-2014, at 12:27 pm, armdev <armdev.ftm at gmail.com> wrote:
>>
>> > Hi,
>> >
>> > We have recently started working on arndale and running u-boot head on it. Seems like it is crashing on our setup with a data abort on usb start. Can anyone please confirm and suggest a fix / solution
>> >
>> > U-Boot 2014.04-rc1-00486-geeb72e6 (Mar 11 2014 - 11:44:32) for ARNDALE
>> >
>> > CPU: Exynos5250 at 1000MHz
>> >
>> > Board: Arndale
>> > I2C: i2c_init: failed to init bus 0 for speed = 100000
>> > ready
>> > DRAM: 2 GiB
>> > trace: copying 00084f98 bytes of early data from 50000000 to beff0000
>> > trace: enabled
>> > WARNING: Caches not enabled
>> > MMC: EXYNOS DWMMC: 0, EXYNOS DWMMC: 1
>> > i2c_init: failed to init bus 0 for speed = 100000
>> > In: serial
>> > Out: serial
>> > Err: serial
>> > Net: Net Initialization Skipped
>> > No ethernet found.
>> > Hit any key to stop autoboot: 0
>> > ARNDALE # usb start
>> > (Re)start USB...
>> > USB0: data abort
>> > pc : [<bef8524c>] lr : [<bef85298>]
>> > sp : beb5f9c0 ip : 00000003 fp : 00000000
>> > r10: 00000000 r9 : beb62ecc r8 : befbcc80
>> > r7 : befbcc84 r6 : 0000ffff r5 : 000000ff r4 : 00000001
>> > r3 : 00000000 r2 : 00000001 r1 : 000000ff r0 : 0000ffff
>> > Flags: nzCv IRQs off FIQs off Mode SVC_32
>> > Resetting CPU ...
>> >
>> >
>>
>> I was able to reproduce the issue and git bisect tells me that it started happening after the commit "8475c86 s5p: gpio: change gpio coding method for s5p gpio".
>>
>> Upon debugging further I figured out that it happens because the function fdtdec_setup_gpio returns success even if there is no gpio defined. Since no error is returned the exynos ehci driver goes ahead to setup the gpio and data abort happens. If I return failure from this function it works well.
>>
>> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
>> index 1fecab3..b1c4e92 100644
>> --- a/lib/fdtdec.c
>> +++ b/lib/fdtdec.c
>> @@ -526,7 +526,7 @@ int fdtdec_setup_gpio(struct fdt_gpio_state *gpio)
>> * optional GPIOs)
>> */
>> if (!fdt_gpio_isvalid(gpio))
>> - return 0;
>> + return -1;
>>
>>
>> I am not sure of the objective to return success if there is no gpio defined.
>> Simon, could you please suggest where do we need to fix it ? the above function or gpio driver ?
>>
>> Thanks,
>> Inder
>>
>>
>>
>> > Thanks and Regards
>> > Armdev at FTM Team
>> >
>>
>>
>
More information about the U-Boot
mailing list