[U-Boot] SPL and DM on ZYNQ

Hannes Schmelzer hannes at schmelzer.or.at
Thu Oct 8 09:04:42 CEST 2015



On 07.10.2015 20:01, Jagan Teki wrote:
> On 7 October 2015 at 21:29, Simon Glass <sjg at chromium.org> wrote:
>> Hi,
Hi,
there are some news on this.
>>
>> 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 think these changes still in queue[1] I'm keep sending remainders,
> there is on PR blocks these changes[2]
>
> [1] http://git.denx.de/?p=u-boot/u-boot-dm.git;a=shortlog;h=refs/heads/zynq-working
> [2] https://patchwork.ozlabs.org/patch/517709/
Many thanks for this.
I've now branched from u-boot-dm.git/zynq-working2 and then merged 
u-boot-spi/master into it.

After a few merge conflicts i'am able to build u-boot and boot it from 
SD with working DM support during SPL and QSPI support.
The next step was/is burning this file into the QSPI flash and boot from it.

burning was now problem, but boot ends up with:

U-Boot SPL 2015.10-rc4-00101-gb6dcb3f-dirty (Oct 08 2015 - 08:42:53)
qspi boot
boot device - 8
uclass_find_device_by_seq: 0 0
    - not found
uclass_find_device_by_seq: 1 0
    - not found
Invalid bus 0 (err=-19)
SPI probe failed.
### ERROR ### Please RESET the board ###

maybe there is yet another switch, which needs to be turned on.
Subject of suspicion is currently "support simple-bus driver in SPL". 
But if i compile with this option,
boot ends up with:

U-Boot SPL 2015.10-rc4-00101-gb6dcb3f-dirty (Oct 08 2015 - 09:01:35)
mmc boot
boot device - 1
mmc_init: 0, time 58
spl: mmc boot mode: fs
reading system.dtb
Error: allocating memory
spl_load_image_fat_os: error reading image system.dtb, err - -1
reading u-boot-dtb.img
Error: allocating memory
spl_load_image_fat: error reading image u-boot-dtb.img, err - -1
spl: mmc: no boot mode left to try
### ERROR ### Please RESET the board ###


Any ideas?

many thanks and best regards,
Hannes



More information about the U-Boot mailing list