[U-Boot] imx7d SPL driver fails to allocate memory.
Rens Dol
rens.dol at opticon.com
Mon Jan 14 14:30:18 UTC 2019
Finally found the issue, It was a ddr configuration issue after all, I
missed one value when copying the settings from our imximage.cfg to the
structures required for 'mx7_dram_cfg(...)'.
Should the register name "offset_lp_con0" in the ddr_phy structure not
be called "lp_con0" as it is called DDR_PHY_LP_CON0 in i.MX7 dual
application processor reference manual?
Regards,
Rens.
On 9-1-2019 18:31, Rens Dol wrote:
> Hi all,
>
> I am trying to get SPL working on a imx7 based board. I need to
> configure the DDR voltage before u-boot can be loaded from NAND. I am
> using the pico-imx7_defconfig as a starting point. It already has SPL
> configured to initialize ddr.
>
> From board_init_f I call spl_early_init() to initialize malloc_simple
> so that I can use the pmic driver to set the DDR voltage and configure
> DDR . So far everything is working as expected, I can write/read from
> DDR.
>
> But this is as far as SPL wants to go.. my guess is that switching
> from malloc_simple in board_init_f() to the full malloc implementation
> is not working.
>
> - I use boundarydevices/imx_usb_loader to load u-boot-nand-spl.imx -
>
> - git.denx.de/u-boot-imx version 2019.01-rc1 -
>
> This what my debug output shows.
>
> U-Boot SPL 2019.01-rc1-dirty (Jan 09 2019 - 16:07:51 +0100)
> spl_early_init
> power_init Set ddr regulator to 1.50V
> -- mALLOc --
> 00000040
> pmic_alloc: new pmic struct: 0x009467b0
> pmic_get: pmic BD71815 -> 0x009467b0
> Bus: 1 PMIC:BD71815 probed!
> i2c_write_data: chip=0x4b, len=0x0
> write_data:
> i2c_read_data: chip=0x4b, len=0x1
> 0x41
> PMIC: BD71815 DEV_ID=0x41
> i2c_write_data: chip=0x4b, len=0x1
> write_data: 0x10
> setup drr controller!
> Testing ram
> >>SPL: board_init_r()
> using memory 0x88300000-0x88400000 for malloc()
> spl_init
> spl_board_init
> Trying to boot from NAND
> spl: nand - using hw ecc
> Trying to load image from CONFIG_SYS_NAND_U_BOOT_OFFS 400000 87800000
> nand_spl_load_image
> mxs_nand_init
> -- mALLOc --
> 00000598
> -- malloc_extend_top -- pagesz = 00001000
> nb = 000005A0
> top = 0091F010
> -- sbrk
> increment = 000005B0 returns = 88300000-- sbrk end
> brk = 88300000
> -- sbrk
> increment = 00000A50 returns = 883005B0-- sbrk end
> top = 88300000
> old_top = 0091F010
> old_top_size = 00000000
> top_size = 00001000
>
> MXS NAND: Failed to allocate private data.
>
> Attached the spl/u-boot.cfg and pico-imx7d.h files.
>
> Here are my questions.
>
> - Has anyone tried this before on a imx7d?
>
> - Do I have conflicting configuration options?
>
> - Do I need to relocate the complete SPL from SRAM to DDR to make this
> work?
>
> - Should malloc be available in spl_board_init()?
>
> By enabling CONFIG_SPL_SYS_MALLOC_SIMPLE it boots a little further,
> but gets stuck in the nand driver after reading the onfi data and
> searching for a bad block table.
>
> Should it be possible to have usb + nand + i2c working using only
> CONFIG_SPL_SYS_MALLOC_SIMPLE?
>
>
> Met vriendelijke groeten
> Kind regards,
>
> Rens Dol
> Software Engineer
> Opticon Sensors Europe B.V.
> Opaallaan 35
> 2132 XV HOOFDDORP
> The Netherlands
> Tel.+31(0)235692720
> rens.dol at opticon.com 1
>
> N�n�r����)em�h�yhiם�w^���
--
Met vriendelijke groeten
Kind regards,
Rens Dol
Software Engineer
Opticon Sensors Europe B.V.
Opaallaan 35
2132 XV HOOFDDORP
The Netherlands
Tel.+31(0)235692720
rens.dol at opticon.com
More information about the U-Boot
mailing list