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
[email protected] 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
[email protected]

_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to