[U-Boot] SPL and DM on ZYNQ

Simon Glass sjg at chromium.org
Wed Oct 7 17:59:14 CEST 2015


Hi,

On 7 October 2015 at 13:50, Hannes Schmelzer <hannes at schmelzer.or.at> wrote:
> hi folks,
>
> i am not very familar with driver model until now and so i've a question.
>
> I'm trying to bring up my Zynq ZC702 evalboard using driver-model during SPL
> stage (because QSPI needs this).
> I simply switched on "Driver Model for SPL" within Kconfig and compiled.
>
> This ends up in:
>
> U-Boot SPL 2015.10-rc4-00050-g996ec1d-dirty (Oct 07 2015 - 13:57:32)
>>>spl:board_init_r()
> using memory 0xffff10c0-0xffff20c0 for malloc()
> spl_init()
> dm_init() failed: -2
> dm_init_and_scan() returned error -2
> ### ERROR ### Please RESET the board ###
>
>
> i had a look into drivers/core/root.c and saw that
>
> device_bind_by_name(NULL, false, &root_info, &DM_ROOT_NON_CONST);
>
> fails.
>
> Any idea why the root-driver cannot be found ?
> Maybe there are some switched need to be switched on too.

Is there any chance that your SPL does not have the linker lists set
up correctly?

See this code in the standard ARM u-boot-spl.lds:

#ifdef CONFIG_SPL_DM
.u_boot_list : {
KEEP(*(SORT(.u_boot_list_*_driver_*)));
KEEP(*(SORT(.u_boot_list_*_uclass_*)));
}
#endif

I don't see it in the zynq one (arch/arm/mach-zynq).

That would cause the uclass driver to be missing.

Regards,
Simon


More information about the U-Boot mailing list