[U-Boot] Are non-default configurations expected to work? Re: usb: dwc2: does not compile in 2016-rc3 when updating from -rc1.

Marek Vasut marex at denx.de
Sun Jan 10 21:18:40 CET 2016


On Sunday, January 10, 2016 at 09:11:46 PM, Tom Rini wrote:
> On Sun, Jan 10, 2016 at 08:40:06PM +0100, Marek Vasut wrote:
> > On Sunday, January 10, 2016 at 08:28:24 PM, Tom Rini wrote:
> > > On Sun, Jan 10, 2016 at 08:18:39PM +0100, Marek Vasut wrote:
> > > > On Sunday, January 10, 2016 at 08:16:55 PM, Tom Rini wrote:
> > > > > On Sun, Jan 10, 2016 at 08:06:59PM +0100, Marek Vasut wrote:
> > > > > > On Sunday, January 10, 2016 at 08:04:06 PM, Tom Rini wrote:
> > > > > > > On Sun, Jan 10, 2016 at 07:39:29PM +0100, Pavel Machek wrote:
> > > > > > > > > > > Pristine u-boot 2016.01-rc4 compiles fine for CV SoCDK.
> > > > > > > > > > > Can you please test mainline _before_ reporting issues
> > > > > > > > > > > ?
> > > > > > > > > > 
> > > > > > > > > > Can you please test mainline before complaining?
> > > > > > > > > 
> > > > > > > > > Yes I _did_ test mainline AND booted it on the actual
> > > > > > > > > board. The USB does work (if you disable dcache, which is
> > > > > > > > > unrelated bug). It would be very nice if you did the same
> > > > > > > > > thing before you start yelling on the list that there is a
> > > > > > > > > bug.
> > > > > > > > > 
> > > > > > > > > The config you use and the one produced by make
> > > > > > > > > socfpga_cyclone5_defconfig differ. Use the mainline one,
> > > > > > > > > otherwise you will observe possible problems.
> > > > > > > > 
> > > > > > > > Of course they differ. That's why they are called
> > > > > > > > configuration _options_.
> > > > > > > 
> > > > > > > True.
> > > > > > > 
> > > > > > > > > > With d77a092dd3619ca747fb8290ae8f255e9799aaa6 and
> > > > > > > > > > attached .config, I get the failure. No, CONFIG_DM_USB
> > > > > > > > > > is not set in the config, which is probably the problem.
> > > > > > > > > 
> > > > > > > > > Again, the problem does not happen if you use mainline
> > > > > > > > > config. If you enable random options, you might run into
> > > > > > > > > random problems.
> > > > > > > > > 
> > > > > > > > > > Maybe socfpga should select DM_USB or depend on it?
> > > > > > > > > 
> > > > > > > > > u-boot$ git grep DM_USB configs/socfpga_*
> > > > > > > > > configs/socfpga_arria5_defconfig:CONFIG_DM_USB=y
> > > > > > > > > configs/socfpga_cyclone5_defconfig:CONFIG_DM_USB=y
> > > > > > > > > configs/socfpga_de0_nano_soc_defconfig:CONFIG_DM_USB=y
> > > > > > > > > configs/socfpga_mcvevk_defconfig:CONFIG_DM_USB=y
> > > > > > > > > configs/socfpga_sockit_defconfig:CONFIG_DM_USB=y
> > > > > > > > > configs/socfpga_socrates_defconfig:CONFIG_DM_USB=y
> > > > > > > > > 
> > > > > > > > > So your config is broken or outdated, please update your
> > > > > > > > > config.
> > > > > > > > 
> > > > > > > > No. Mainline is broken. Yes, it happens to work with
> > > > > > > > defconfig. But it should work with any configuration user
> > > > > > > > can select.
> > > > > > > 
> > > > > > > So, here's the problem.  Disabling CONFIG_DM_USB is not a long
> > > > > > > term solution.
> > > > > > 
> > > > > > CONFIG_DM_USB is enabled though.
> > > > > > 
> > > > > > > If there's a problem when CONFIG_DM_USB is not set, it should
> > > > > > > be diagnosed and fixed, especially since we might have a mirror
> > > > > > > of the issue inside the DM code, or it might be a more core
> > > > > > > problem and we simply luck out in the DM case.
> > > > > > 
> > > > > > The problem is if you have CONFIG_USB enabled, but _without_
> > > > > > CONFIG_DM_USB. In that case, the DWC2 driver expects you to
> > > > > > define a macro which specifies the base address of the USB
> > > > > > controller. Otherwise the driver picks this info from the OF.
> > > > > > 
> > > > > > I believe there is no problem with this, the driver covers both
> > > > > > DM and non-DM operation this way.
> > > > > 
> > > > > That's it?  Yes, we should have the missing define added and a lack
> > > > > of it is a bug we should fix.
> > > > 
> > > > Wrong, the macro was intently removed from all the socfpga config
> > > > files because: a) do not want to hardcode any addresses on socfpga,
> > > > they should come from DT b) we do want to support multiple
> > > > controllers and that is not possible without
> > > > 
> > > >    CONFIG_DM_USB
> > > > 
> > > > CONFIG_DM_USB is a hard requirement on SoCFPGA.
> > > 
> > > Then with your SoCFPGA hat on, you need to fix the Kconfig so invalid
> > > combinations can't happen.
> > 
> > Invalid configurations do not happen in mainline, everything is compile
> > tested. In case someone wants to bulletproof the config, patches are
> > welcome. I am not certain what should select CONFIG_DM_USB, Simon might
> > help here.
> 
> No.  That's not how it works.  And Kconfig isn't some esoteric thing no
> one has heard of outside of U-Boot.  One of the big points about
> switching to Kconfig is that finally, really, people can customize their
> build without editing header files and getting bit by poorly or not at
> all documented interdependencies.

I agree with this.


More information about the U-Boot mailing list