[U-Boot] rk3288: broken boot

Jagan Teki jagannadh.teki at gmail.com
Wed Feb 14 10:47:24 UTC 2018


On Wed, Feb 14, 2018 at 5:38 AM, Dr. Philipp Tomsich
<philipp.tomsich at theobroma-systems.com> wrote:
> Jagan,
>
>> On 13 Feb 2018, at 13:20, Jagan Teki <jagannadh.teki at gmail.com> wrote:
>>
>> On Tue, Feb 13, 2018 at 5:29 PM, Dr. Philipp Tomsich
>> <philipp.tomsich at theobroma-systems.com> wrote:
>>> I verified the build for evb-rk3288_defconfig and everything looks fine:
>>>
>>> spl/u-boot-spl.bin:     file format binary
>>>
>>>
>>> Disassembly of section .data:
>>>
>>> 00000000 <.data>:
>>>       0:       eaffffff        b       0x4     <— this is the extra branch inserted (to be overwritten by mkimage)
>>>       4:       ea000016        b       0x64
>>
>> I saw this on SPL, but I'm using TPL where I'm using mkimage to tp binary
>>
>>>        ...
>>>      20:       ea00000f        b       0x64
>>>      24:       e59ff014        ldr     pc, [pc, #20]   ; 0x40
>>>      28:       e59ff014        ldr     pc, [pc, #20]   ; 0x44
>>>      2c:       e59ff014        ldr     pc, [pc, #20]   ; 0x48
>>>      30:       e59ff014        ldr     pc, [pc, #20]   ; 0x4c
>>>      34:       e59ff014        ldr     pc, [pc, #20]   ; 0x50
>>>      38:       e59ff014        ldr     pc, [pc, #20]   ; 0x54
>>>      3c:       e59ff014        ldr     pc, [pc, #20]   ; 0x58
>>
>> I can see the difference of size by 8 bytes with spl/u-boot-spl-dtb.bin
>>
>> with tparams->header_size = RK_SPL_HDR_START + 4; (working scenario)
>> $ ls -l spl/u-boot-spl-dtb.bin
>> -rw-r--r-- 1 root root 37571
>>
>> normal build have
>> $ ls -l spl/u-boot-spl-dtb.bin
>> -rw-r--r-- 1 root root 37563
>
> In order to find the issue, I’d recommend to look at both the ELF file
> and the binary for your TPL stage. Disassembling the binary will show
> whether the extra branch is indeed added as the first instruction and
> if the second instruction is a branch to the reset entry-point.

This is what I found with mkimage tpl, the extra 0xeaffffff branch
inserted start with 0x820 in case of working, but branch insertion did
4 bytes prior to 0x820 [1]

https://paste.ubuntu.com/p/BbZrvJhqJD/


More information about the U-Boot mailing list