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

Tom Rini trini at konsulko.com
Fri Apr 17 23:13:28 CEST 2015


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.

-- 
Tom


More information about the U-Boot mailing list