NAND BOOT imx537

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

NAND BOOT imx537

594 次查看
Noel_V
Contributor III

Hi all,

I've been searching  some weeks now why an IMX537 often (but not always)... fails to boot from NAND.

I tought it was hardware related BUT, today, I finally ended up into the bootloader ivt-tables and code...

For some reason .. there is some code that seems to fail SOMETIMES (30% if works to boot from nand, 70% it fails)

    cmp r7, #0xF8000000
    bls return_sdp

When I do remove the above lines from the UBOOT-code .. I'm always able to boot the imx537 form nand.

Anyone out there that can confirm / explain why register (r0 , that is copied to r7) contains bad data when booting from nand (CPU revision 0x21).

Regards Noel

<< CODE - SNIP >>

/* Here starts the plugin code */
plugin_start:
    /* Save the return address and the function arguments */
    push {r0-r6, lr}
    /* We should distinguish USB recovery mode(SDP mode) and internal boot mode.
    If ROM runs in SDP mode, then it needn't load boot code from storage media.
    If ROM runs in SDP mode, then r0 must be 0x00
    If ROM runs in internal boot mode, then r0 should be larger than IRAM base address. */
    mov r7, r0

... some code removed....

    adr r0, DDR_DEST_ADDR
    adr r1, COPY_SIZE
    adr r2, BOOT_DATA
before_calling_rom___pu_irom_hwcnfg_setup:

    /* We should distinguish USB recovery mode(SDP mode) and internal boot mode.
    If ROM runs in SDP mode, then it needn't load boot code from storage media.
    If ROM runs in SDP mode, then r0 must be 0x00
    If ROM runs in internal boot mode, then r0 should be larger than IRAM base address. */

    cmp r7, #0xF8000000
    bls return_sdp

标记 (2)
0 项奖励
1 回复

457 次查看
VladanJovanovic
NXP Employee
NXP Employee

Hi,

do you configure boot mode using GPIO pins or via fuses? If it's via GPIOs, it may be some of them are floating or are driven externally to wrong value at boot time, which causes confusion to boot code.

br,

Vladan

0 项奖励