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

Bartosz Golaszewski
2019-11-08T17:33:34Z

pt., 8 lis 2019 o 17:14 Adam Ford <aford173@gmail.com> napisał(a):
>
> 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.
>

I'm having the same problem even when I'm defining the device using
U_BOOT_DEVICE() in the relevant board file.

> 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.
>

Thanks, I'll take a look at that.

> 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.
>

When looking at the board with the ethernet port in the upper-right
corner the jumpers should be like this:

---^----

You can flash the .ais image onto an SD card with the following command:

dd if=u-boot.ais of=<sdcard> seek=117 bs=512 conv=fsync

Thanks!
Bart