[U-Boot] U-boot Driver Model - MMC - missing uclass implementation?

Simon Glass sjg at chromium.org
Fri Sep 23 17:37:45 CEST 2016


Hi Phllipp,

On 23 September 2016 at 09:30, Philipp Rossak <embed3d at gmail.com> wrote:
> Hi,
>
> I would like to develop an mmc driver for the STM32 boards with the new
> driver model.
>
> I already built up the basic structure and I discovered some strange
> behaviour compared to net or serial drivers:
>
> When I place only the following statement in the driver .c file:
>
> U_BOOT_DRIVER(sdhci_stm32) = {
>     .name        = "stm32_sdhci",
>     .id              = UCLASS_MMC,
>     .ops           = &stm32_mmc_ops,
>     .probe        = stm32_mmc_probe,
> ...
> };
>
> I receive the following Message when i perform the "dm uclass" command in
> u-boot:
>
> Cannot find uclass for id 31: please add the UCLASS_DRIVER() declaration for
> this UCLASS_... id
>
> But when I had a look at the sources, i found some UCLASS_DRIVER()
> declaration in drivers/mmc/mmc-uclass.c for the mmc driver.
>
> The driver is copied from the sandbox_mmc driver. I only renamed the
> functions and added some debug messages.
>
> When i add this statement to my driver:
>
> UCLASS_DRIVER(sdhci_stm32) = {
>     .name        = "stm32_sdhci",
>     .id        = UCLASS_MMC,
> };
>
> And I perform the dm uclass command in u-boot i receive the following:
>
> uclass 31: stm32_sdhci
>
> Do you have any idea what i'm doing wrong / what i missed?
>
> Is there maybe some UCLASS implementation missing or not linked?

Yes I think so.

This sounds like you don't have the uclass compiled in. If you look in
drivers/mmc/Makefile you can see that you need to define
CONFIG_GENERIC_MMC and CONFIG_DM_MMC.

Regards,
Simon


More information about the U-Boot mailing list