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

Bartosz Golaszewski brgl at bgdev.pl
Wed Nov 13 10:55:16 UTC 2019


śr., 13 lis 2019 o 11:52 Bartosz Golaszewski <brgl at bgdev.pl> napisał(a):
>
> pon., 11 lis 2019 o 13:58 Adam Ford <aford173 at gmail.com> napisał(a):
> >
> > On Fri, Nov 8, 2019 at 11:59 AM Bartosz Golaszewski <brgl at bgdev.pl> wrote:
> > >
> > > pt., 8 lis 2019 o 18:33 Bartosz Golaszewski
> > > <bgolaszewski at baylibre.com> napisał(a):
> > > >
> > > > pt., 8 lis 2019 o 17:14 Adam Ford <aford173 at gmail.com> napisał(a):
> > > > >
> > > > > On Fri, Nov 8, 2019 at 9:50 AM Bartosz Golaszewski
> > > > > <bgolaszewski at baylibre.com> wrote:
> > > > > >
> > > > > > pt., 25 paź 2019 o 18:10 Bartosz Golaszewski <brgl at bgdev.pl> napisał(a):
> > > > > > >
> > > > > > > czw., 26 wrz 2019 o 01:21 Faiz Abbas <faiz_abbas at ti.com> napisał(a):
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > On 29/07/19 12:28 PM, Bartosz Golaszewski wrote:
> > > > > > > > > From: Bartosz Golaszewski <bgolaszewski at 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.
> >
> > Over the weekend, I sent a series of patches.  One of them, [1], was
> > to increase the size of the available RAM before relocation. I believe
> > i doubled the amount from 1k to 2k.
> >
> > Can you see if the ENMOM error still exists?
> >
>
> Hi Adam,
>
> thanks a lot, this helps with memory. I can even boot from mmc if I
> manually call mmc_bind() from probe, but the bind callback is still
> not called even with DM_FLAG_PRE_RELOC added to mmc driver's flags.
>
> I'm still working on it though, must be some minor detail.
>

I noticed that calling mmc_bind() from probe() actually results in
davinci_mmc_bind() being called. Is this expected? Because all the
latter function does is call mmc_bind() again. This doesn't seem right
- should someone else call mmc_bind in SPL maybe?

> Bart
>
> > [1] - https://patchwork.ozlabs.org/patch/1192574/
> >
> > adam
> > >
> > > 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


More information about the U-Boot mailing list