[U-Boot] Please pull u-boot-dm.git [take 2]

Simon Glass sjg at chromium.org
Fri Apr 17 23:18:33 CEST 2015


Hi Tom,

On 17 April 2015 at 15:13, Tom Rini <trini at konsulko.com> wrote:
>
> On Fri, Apr 17, 2015 at 09:39:50PM +0200, Hans de Goede wrote:
> > Hi,
> >
> > On 17-04-15 21:28, Hans de Goede wrote:
> > >Hi,
> > >
> > >On 17-04-15 19:53, Tom Rini wrote:
> > >>On Fri, Apr 17, 2015 at 10:54:21AM -0600, Simon Glass wrote:
> > >>>Hi Tom,
> > >>>
> > >>>On 17 April 2015 at 10:46, Tom Rini <trini at konsulko.com> wrote:
> > >>>>On Fri, Apr 17, 2015 at 10:30:36AM -0600, Simon Glass wrote:
> > >>>>>Hi Tom,
> > >>>>>
> > >>>>>On 17 April 2015 at 10:27, Tom Rini <trini at konsulko.com> wrote:
> > >>>>>>
> > >>>>>>On Thu, Apr 16, 2015 at 09:15:26PM -0600, Simon Glass wrote:
> > >>>>>>
> > >>>>>>>Hi Tom,
> > >>>>>>>
> > >>>>>>>As mentioned I reverted this patch as it conflicted with the dm tree
> > >>>>>>>and I suspect it might be buggy:
> > >>>>>>>
> > >>>>>>>cd749658 usb_storage : scan all interfaces to find a storage device
> > >>>>>>>
> > >>>>>>>Assuming this is OK and applies successfully I will rebase and resend
> > >>>>>>>this patch, then reply with some comments I have on the patch.
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>The following changes since commit 4564faeafbf11feb839e2e3f927be2f1a919ba96:
> > >>>>>>>
> > >>>>>>>   ti: dwc3: Enable clocks in enable_basic_clocks() in hw_data.c
> > >>>>>>>(2015-04-16 15:08:36 -0400)
> > >>>>>>>
> > >>>>>>>are available in the git repository at:
> > >>>>>>>
> > >>>>>>>   http://git.denx.de/u-boot-dm.git
> > >>>>>>>
> > >>>>>>>for you to fetch changes up to 2e6263093b3a5c2d2c586afaedfd346d6628f784:
> > >>>>>>>
> > >>>>>>>   sandbox: exynos: Move CONFIG_SOUND_SANDBOX to Kconfig (2015-04-16
> > >>>>>>>20:47:57 -0600)
> > >>>>>>
> > >>>>>>With this PR, am335x_boneblack (which has DM enabled) no longer
> > >>>>>>functions.  I'm running a bisect now, but heads up.
> > >>>>>
> > >>>>>OK, I'll wait for your bisect - also what is the console output when it breaks?
> > >>>>
> > >>>>OK, disregard Beaglebone Black error, that was me (need to remember that
> > >>>>eMMC boot only works off of am335x_boneblack_config).  But,
> > >>>>A20-OLinuXino-Lime2_defconfig is broken by this.  The error log:
> > >>>>Command(A20 OLinuXino Lime2 console)> on
> > >>>>(user:trini) Power turned on
> > >>>>
> > >>>>U-Boot SPL 2015.04-00342-g2e62630 (Apr 17 2015 - 12:40:45)
> > >>>>DRAM: 1024 MiB
> > >>>>CPU: 912000000Hz, AXI/AHB/APB: 3/2/2
> > >>>>
> > >>>>
> > >>>>U-Boot 2015.04-00342-g2e62630 (Apr 17 2015 - 12:40:45) Allwinner Technology
> > >>>>
> > >>>>CPU:   Allwinner A20 (SUN7I)
> > >>>>I2C:   ready
> > >>>>DRAM:  1 GiB
> > >>>>MMC:   SUNXI SD/MMC: 0
> > >>>>*** Warning - bad CRC, using default environment
> > >>>>
> > >>>>In:    serial
> > >>>>Out:   serial
> > >>>>Err:   serial
> > >>>>SCSI:  SUNXI SCSI INIT
> > >>>>SATA link 0 timeout.
> > >>>>AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
> > >>>>flags: ncq stag pm led clo only pmp pio slum part ccc apst
> > >>>>Net:   dwmac.1c50000
> > >>>>starting USB...
> > >>>>USB0:   USB EHCI 1.00
> > >>>>scanning bus 0 for devices...
> > >>>>U-Boot SPL 2015.04-00342-g2e62630 (Apr 17 2015 - 12:40:45)
> > >>>>DRAM: 1024 MiB
> > >>>>CPU: 912000000Hz, AXI/AHB/APB: 3/2/2
> > >>>>MMC Device 0 not found
> > >>>>spl: mmc device not found!!
> > >>>>### ERROR ### Please RESET the board ###
> > >>>>
> > >>>>And good:
> > >>>>Command(A20 OLinuXino Lime2 console)> on
> > >>>>(user:trini) Power turned on
> > >>>>
> > >>>>U-Boot SPL 2015.04-00121-g4564fae (Apr 17 2015 - 12:42:40)
> > >>>>DRAM: 1024 MiB
> > >>>>CPU: 912000000Hz, AXI/AHB/APB: 3/2/2
> > >>>>
> > >>>>
> > >>>>U-Boot 2015.04-00121-g4564fae (Apr 17 2015 - 12:42:40) Allwinner Technology
> > >>>>
> > >>>>CPU:   Allwinner A20 (SUN7I)
> > >>>>I2C:   ready
> > >>>>DRAM:  1 GiB
> > >>>>MMC:   SUNXI SD/MMC: 0
> > >>>>*** Warning - bad CRC, using default environment
> > >>>>
> > >>>>In:    serial
> > >>>>Out:   serial
> > >>>>Err:   serial
> > >>>>SCSI:  SUNXI SCSI INIT
> > >>>>SATA link 0 timeout.
> > >>>>AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
> > >>>>flags: ncq stag pm led clo only pmp pio slum part ccc apst
> > >>>>Net:   dwmac.1c50000
> > >>>>starting USB...
> > >>>>USB0:   USB EHCI 1.00
> > >>>>scanning bus 0 for devices... 1 USB Device(s) found
> > >>>>USB1:   USB EHCI 1.00
> > >>>>scanning bus 1 for devices... 1 USB Device(s) found
> > >>>>        scanning usb for storage devices... 0 Storage Device(s) found
> > >>>>Hit any key to stop autoboot:  0
> > >>>>sunxi#
> > >>>>
> > >>>>So... we cause a reset during USB scan and then fail to boot a second
> > >>>>time?
> > >>>
> > >>>Thanks for testing this.
> > >>>
> > >>>I'm not sure if I have a Lime (I might do, will need to look). I was
> > >>>testing sunxi on a pcduino3 but USB does not work on that for reasons
> > >>>I was looking into (it just says lowlevel init failure due to moving
> > >>>to driver model for GPIO).
> > >>>
> > >>>I will take a look. In the meantime, which commit breaks this? I could
> > >>>perhaps issue a pull for commits up to that point to reduce the load.
> > >>
> > >>I haven't had a chance to bisect yet but I will in a few hours.
> > >
> > >No need to, I've just completed a bisect, it points to:
> > >
> > >5bca5a6303f3526ab2cf9c0a62cd26c16e0d5c2f is the first bad commit
> > >commit 5bca5a6303f3526ab2cf9c0a62cd26c16e0d5c2f
> > >Author: Simon Glass <sjg at chromium.org>
> > >Date:   Wed Mar 25 12:22:27 2015 -0600
> > >
> > >     dm: usb: Drop the EHCI weak functions
> > >
> > >     These are a pain with driver model because we might have different EHCI
> > >     drivers which want to implement them differently. Now that they use
> > >     consistent function signatures, we can in good conscience move them to
> > >     a struct.
> > >
> > >     Signed-off-by: Simon Glass <sjg at chromium.org>
> > >     Reviewed-by: Marek Vasut <marex at denx.de>
> > >
> > >I'm going to first spend some time with my family now, I may look into
> > >this later tonight, or otherwise this weekend. I'll be sure to check mail
> > >first to avoid double work, so feel free to fix the problem while I'm
> > >relaxing :)
> >
> > Ok, so I could not help myself and took a quick look at the patch causing the
> > issue, this fixes the reset on usb scan problem:
> >
> > diff --git a/drivers/usb/host/ehci-sunxi.c b/drivers/usb/host/ehci-sunxi.c
> > index eda9f69..a847ac5 100644
> > --- a/drivers/usb/host/ehci-sunxi.c
> > +++ b/drivers/usb/host/ehci-sunxi.c
> > @@ -34,6 +34,8 @@ int ehci_hcd_init(int index, enum usb_init_type init, struct ehci_hccr **hccr,
> >               (uint32_t)*hccr, (uint32_t)*hcor,
> >               (uint32_t)HC_LENGTH(ehci_readl(&(*hccr)->cr_capbase)));
> >
> > + ehci_set_controller_priv(index, NULL, NULL);
> > +
> >         return 0;
> >  }
> >
> > And should probably be squashed into the original patch to avoid bisect
> > problems.
> >
> > But with this in place, all is still not well wrt non devicetree usb,
> > usb keyboard support does not work, "usb tree" says:
> >
> > USB device tree:
> >   1  Hub (480 Mb/s, 0mA)
> >   |  u-boot EHCI Host Controller
> >   |
> >   +-2  Hub (480 Mb/s, 100mA)
> >     |
> >     +-3  Hub (12 Mb/s, 100mA)
> >       |
> >       | -1  See Interface (12 Mb/s, 0mA)
> >       |
> >
> > Note the -1 as device number for the "See Interface" device.
> >
> > This particular usb setup used to work fine.
> >
> > I guess this is another issue to git bisect, no idea when I'll get around
> > to that.
>
> So, another bisect.  The problem commit is:
> commit 5bbc627e33a9b3666438e03d560d06ab3de28f6f
> Author: Simon Glass <sjg at chromium.org>
> Date:   Wed Mar 25 12:22:06 2015 -0600
>
>     dm: usb: Split out more code from usb_new_device()
>
>     Move the code that sets up the device with a new address into its own
>     function, usb_prepare_device().
>
>     Signed-off-by: Simon Glass <sjg at chromium.org>
>     Reviewed-by: Marek Vasut <marex at denx.de>
>
> Prior to this commit on a non-DM board (my A20 Lime2) a USB keyboard
> being inserted causes:
> scanning bus 1 for devices... cannot reset port 1!?
> 1 USB Device(s) found
> And then at the end, USB is "running" and I can usb tree.  Afterwards,
> same message about reset but then No USB Device found.

This seems related to the other problem I fixed (reported by Stephen),
and I wonder if with the conflicts I have messed something up. I did
have to adjust the code. Anyway I should be able to dig into this one
later today.

Gosh it will be good to get this all resolved...

Regards,
Simon


More information about the U-Boot mailing list