[U-Boot] [RESEND PATCH v2 12/13] davinci: omapl138-lcdk: enable driver-model in SPL

Adam Ford
2019-11-08T16:14:31Z

On Fri, Nov 8, 2019 at 9:50 AM Bartosz Golaszewski
<bgolaszewski@baylibre.com> wrote:
>
> pt., 25 paź 2019 o 18:10 Bartosz Golaszewski <brgl@bgdev.pl> napisał(a):
> >
> > czw., 26 wrz 2019 o 01:21 Faiz Abbas <faiz_abbas@ti.com> napisał(a):
> > >
> > > Hi,
> > >
> > > On 29/07/19 12:28 PM, Bartosz Golaszewski wrote:
> > > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > > >
> > > > Enable CONFIG_SPL_DM and enable the driver model for serial by defining
> > > > an appropriate device in the board file for da850-lcdk.
> > > >
> > >
> > > This breaks booting from MMC on omapl138_lcdk. You didn't add a
> > > U_BOOT_DEVICE for the mmc node.
> > >
> > > Thanks,
> > > Faiz
> >
> > Just letting you know I haven't forgotten about this. I finally got
> > some time to work on it this week, but it turned out to be
> > non-trivial, as for some reason the set_cmd mmc callback is not being
> > properly assigned in SPL with driver-model and I couldn't find out why
> > so far. Next week I'm at ELCE, but I'll be back at it on Thursday. I'm
> > not sure if you want to revert the offending patch for now or this can
> > wait for another week?
> >
> > Best regards,
> > Bartosz Golaszewski
>
> I've been working on this some more this week and noticed that in SPL
> for some reason the bind function of the mmc driver is not called
> (despite the driver being probed fine), but so far I've been unable to
> figure out why exactly. This is the reason for the failure as the mmc
> is not properly setup but the mmc core thinks it is and tries using
> it.
>
> I've tried both using a U_BOOT_DEVICE() defined in the board file or
> adding the mmc node to arch/arm/dts/da850-lcdk-u-boot.dtsi.
>
> Adam: you know davinci's SPL pretty well - do you have any suggestions?

I am not sure that I know it well. It's just one of several TI
platforms that I support for Logic PD.

Two thoughts I had: There are aliases setup for various peripherals
but I am not seeing one for mmc0 = &mmc1. I a not sure if it will
help or not but it is different I see.

There is also a function void board_boot_order (u32 *spl_boot_list)
which can force the system to boot from a given device (ie, MMC1).
It's an optional function, but it's a quick and dirty option to try.

What are the jumper settings to boot from SD, I have an lcdk I can
try when I have some time. It's not an official board I can support,
but I can tinker when I'm off the clock.

adam

>
> Bart