im8qxp on mek B0 and m4 firmware running from ddr


im8qxp on mek B0 and m4 firmware running from ddr

1,434 次查看
Contributor III

Hi all,

i need to run a m4 application.bin from 0x88000000 (ddr)

From yocto, i created a imx-boot bbappend to use my "application.bin" and i selected the target flash_linux_m4_ddr, btw, board is not booting, console blank.

Boards boot with flash_linux_m4 target and sampel app rinning from internal M4 sram area.

If any help, thanks !

0 项奖励
10 回复数

1,353 次查看
Contributor V


Best Regards,
Joseph Zhou Jianhui / Senior Embedded Software Engineer, Singapore
0 项奖励

1,407 次查看
Contributor III


i am working on both B0 and C0, always using  flash_linux_m4_ddr  

At now, on B0, cannot see application at 0x88000000 running. I am supposing scm fw is properly initializing ddr. Also since u-boot will run later. But once prepared the container with ddr appliciation, system does not boot.

0 项奖励

1,414 次查看
NXP Employee
NXP Employee

Which option you are using  for imx-mkinge?   

0 项奖励

1,420 次查看
Contributor III

Any help on this ?

From mkimage_imx8, -d dcd option is not supported for B0. Does it mean i cannot run M4 app from ddr from the initial flash.bin ?

0 项奖励

1,405 次查看
NXP Employee
NXP Employee

Please check the seco firmware is for B0.

0 项奖励

1,398 次查看
Contributor III

Hello ByiongSun


i am not back working on b0


seco fw is correct : mx8qxb0-ahab-container.img

If i use target flash_linux_m4_ddr with an m4 application built for ddr (0x88000000) ststem resets continuosly, no chars on both m4 / linux console.

If i remove ddr m4 image, system hangs, no charts on console.

If i roll back to flash_linux_m4 target, all works.




0 项奖励

1,387 次查看
NXP Employee
NXP Employee

You can use binary demo image imx-boot-imx8qxpmek-sd.bin-flash_linux_m4 m4 run test.

0 项奖励

1,364 次查看
Contributor III

Hi BiyongSun,

well, i rebuilt scm fw with monitor enable (always using flash_linux_m4_ddr target),
and a simple m4 app built to run at 0x88000000.

As said, boards resets but now i can see why:



Hello from SCU (Build 5222, Commit bc122ee1, May 27 2021 16:21:58)

SCFW: DDR frequency = 1200000000
board_system_config(0, 1)
board_set_voltage(A35, 1100, 0)
Start PMIC init
Finished PMIC init

board_set_power_mode(A35, 0, 0, 3)
ROM boot time = 212060 usec
Boot time = 51032 usec
Banner = 8 usec
Init = 10342 usec
Config = 2722 usec
DDR = 10730 usec
SConfig = 5259 usec
Prep = 15064 usec

*** Debug Monitor ***

>$ ipc_err: bad size (0)
ipc_err: bad size (0)

.. reset here






1,329 次查看
Contributor III



I may be totally wrong, otherwise, please confirm my assumption.

m4 app cannot be run from initial container from ddr @ 0x88000000 (no bootaux, but using flash_linux_m4_ddr) for b0 revision, only app built for tcm seems able to run.


For the following reasons:

- scfw shows BOARD_CPU_RESET_MEM_ERR produced from m4
- m4 app seems to run in parallel to scfw, so probably starts when ddr is still not initialized
- same m4 app works from u-boot bootaux @0x88000000 (ddr properly initialized before)

- C0 revision uses DCD run from ROM bootloader, so ddr4 init at ROM stage allows m4 app to run properly from lpddr4.

Are the above assumptions correct ?


0 项奖励

1,303 次查看
Contributor III


finally i can close this thread.

Non working app on B0 from ddr was due to wrong m4 app compilation flags.

SDK demo apps are using the correct flags.

I can have m4 app working now from both TCM or DDR, on both B0 and C0.

0 项奖励