[U-Boot] i.MX6: u-boot,dm-pre-reloc block U-Boot

Simon Glass sjg at chromium.org
Tue May 16 00:17:32 UTC 2017


Hi,

On 13 May 2017 at 10:15, Jagan Teki <jagannadh.teki at gmail.com> wrote:
> Hi All,
>
> On Thu, May 11, 2017 at 1:40 PM, Jagan Teki <jagannadh.teki at gmail.com> wrote:
>> On Thu, May 11, 2017 at 7:39 AM, Lokesh Vutla <lokeshvutla at ti.com> wrote:
>>>
>>>
>>> On 5/11/2017 12:52 AM, Jagan Teki wrote:
>>>> Hi Lokesh,
>>>>
>>>> On Tue, May 9, 2017 at 10:03 PM, Jagan Teki <jagannadh.teki at gmail.com> wrote:
>>>>> On Tue, May 9, 2017 at 8:54 PM, Lokesh Vutla <lokeshvutla at ti.com> wrote:
>>>>>>
>>>>>>
>>>>>> On Tuesday 09 May 2017 08:37 PM, Jagan Teki wrote:
>>>>>>> On Tue, May 9, 2017 at 7:49 PM, Lokesh Vutla <lokeshvutla at ti.com> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tuesday 09 May 2017 04:35 PM, Jagan Teki wrote:
>>>>>>>>> Hi All,
>>>>>>>>>
>>>>>>>>> I'm trying to add SPL_OF_CONTROL for i.MX6UL, with usdhc1 and gpio1
>>>>>>>>> nodes are marking as "u-boot,dm-pre-reloc" like
>>>>>>>>
>>>>>>>> Did you try "u-boot,dm-spl" instead?
>>>>>>>
>>>>>>> Yes, no change.
>>>>>>
>>>>>> Hmm..Ideally this should have taken effect :(
>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> --- a/arch/arm/dts/imx6ul.dtsi
>>>>>>>>> +++ b/arch/arm/dts/imx6ul.dtsi
>>>>>>>>> @@ -129,6 +129,7 @@
>>>>>>>>>         };
>>>>>>>>>
>>>>>>>>>         soc {
>>>>>>>>> +               u-boot,dm-pre-reloc;
>>>>>>>>>                 #address-cells = <1>;
>>>>>>>>>                 #size-cells = <1>;
>>>>>>>>>                 compatible = "simple-bus";
>>>>>>>>> @@ -180,6 +181,7 @@
>>>>>>>>>                 };
>>>>>>>>>
>>>>>>>>>                 aips1: aips-bus at 02000000 {
>>>>>>>>> +                       u-boot,dm-pre-reloc;
>>>>>>>>>                         compatible = "fsl,aips-bus", "simple-bus";
>>>>>>>>>                         #address-cells = <1>;
>>>>>>>>>                         #size-cells = <1>;
>>>>>>>>> @@ -405,6 +407,7 @@
>>>>>>>>>                         };
>>>>>>>>>
>>>>>>>>>                         gpio1: gpio at 0209c000 {
>>>>>>>>> +                               u-boot,dm-pre-reloc;
>>>>>>>>>                                 compatible = "fsl,imx6ul-gpio",
>>>>>>>>> "fsl,imx35-gpio";
>>>>>>>>>                                 reg = <0x0209c000 0x4000>;
>>>>>>>>>                                 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
>>>>>>>>> @@ -724,6 +727,7 @@
>>>>>>>>>                 };
>>>>>>>>>
>>>>>>>>>                 aips2: aips-bus at 02100000 {
>>>>>>>>> +                       u-boot,dm-pre-reloc;
>>>>>>>>>                         compatible = "fsl,aips-bus", "simple-bus";
>>>>>>>>>                         #address-cells = <1>;
>>>>>>>>>                         #size-cells = <1>;
>>>>>>>>> @@ -781,6 +785,7 @@
>>>>>>>>>                         };
>>>>>>>>>
>>>>>>>>>                         usdhc1: usdhc at 02190000 {
>>>>>>>>> +                               u-boot,dm-pre-reloc;
>>>>>>>>>                                 compatible = "fsl,imx6ul-usdhc",
>>>>>>>>> "fsl,imx6sx-usdhc";
>>>>>>>>>                                 reg = <0x02190000 0x4000>;
>>>>>>>>>                                 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
>>>>>>>>>
>>>>>>>>> SPL is loading fine from MMC but block the U-Boot that means we can't
>>>>>>>>> see U-Boot log on console.
>>>>>>>>
>>>>>>>> Any chance you can try enabling early debug? Since enabling pre-reloc is
>>>>>>>> going for a toss, I guess your malloc size is going for a toss. Can you
>>>>>>>> try increasing initial malloc size?
>>>>>>>
>>>>>>> Yes, I've increased malloc CONFIG_SYS_MALLOC_LEN from 16M to upto 128M
>>>>>>> but no change.
>>>>>>
>>>>>> No, try CONFIG_SYS_MALLOC_F_LEN=0x2000.
>>>>>>
>>>>>> Is it possible to check where exactly is it hanged?
>>>>>
>>>>> Yes, it hangs while relocating dram[1] and I also observed the main
>>>>> bus nodes are are 'not found' which I haven't see before and these are
>>>>> marked 'u-boot,dm-spl'
>>>>>
>>>>> uclass_find_device_by_seq: 0 -1
>>>>> uclass_find_device_by_seq: 0 0
>>>>>    - -1 -1 'soc'
>>>>>    - -1 -1 'aips-bus at 02000000'
>>>>>    - -1 -1 'aips-bus at 02100000'
>>>>>    - not found
>>>>
>>>> Any clue, I still investigating. Look like the node seq numbers which
>>>> are marked as "u-boot,dm-spl" in SPL are checking before relocating in
>>>> U-Boot, and they seems not found.
>>>>
>>>> Interestingly I couldn't see any panic or exception, the code ends
>>>> board_f last line.
>>>
>>> Manfred posted a patch[1] stating a similar issue. See if it fixes it?
>>
>> It's not. I think this hanged at relocation assembly relocate_code or
>> relocate_vectors.
>
> Any help on this, this look relocation is not possible in U-Boot with
> 'u-boot,dm-pre-reloc' and incidentally removing property from /soc all
> works fine.

I don't have any idea based on the DM angle. I assume that you have
called spi_init() correctly. That patch does seem useful though.

Regards,
Simon


More information about the U-Boot mailing list