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

Bartosz Golaszewski
2019-11-08T17:59:12Z

pt., 8 lis 2019 o 18:33 Bartosz Golaszewski
<bgolaszewski@baylibre.com> napisał(a):
>
> 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.

It's still the same, no matter what order I specify here.

One thing that bothers me is: if I manually call mmc_bind() from probe
instead of the bind() callback, it fails with ENOMEM on memory
allocation when creating the block device. I'm wondering if it has
something to do with the simple malloc we're using now.

Bart

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