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

Jagan Teki jagannadh.teki at gmail.com
Wed May 17 17:18:55 UTC 2017


Hi Simon,

On Tue, May 16, 2017 at 5:47 AM, Simon Glass <sjg at chromium.org> wrote:
> 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.

Are you referring  this  patch "spl: Add spl_early_init()" ? anyway
I'm on top of master, result is same. Do you think deleting
'u-boot,dm-pre-reloc' from /soc before moving to U-Boot help?

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.


More information about the U-Boot mailing list