How to upgrade iMX8qxpc0 M4 image without reprogram overall eMMC

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to upgrade iMX8qxpc0 M4 image without reprogram overall eMMC

608 Views
yellow_huang
Contributor II

Hi,

 

Customer request to support CM4 image upgrade without reprogram overall eMMC.

My question is CM4 image is bundled into imx-boot image and programmed from 32KB offset of eMMC. how can I do this without effect other components of imx-boot?

 

Thanks,

0 Kudos
3 Replies

592 Views
yellow_huang
Contributor II

Hi Igor,

 

Look like M4ctrl package(kernel module & application) meet my requirement, which been able to deploy at run-time from A35:

m4ctrl --deploy=./m4_image_c0.bin --core=0

Before try this package, I have some questions:

  • In imx8qxpc0 platform, M4 image have be bundled into imx-boot and boot up by SCU by default. can I still force stop its running and deploy to TCM memory to run again? do I need extra modify imx-boot to meet this behavior?
  • I used M4 SDK_2.8.0_MEK-MIX8QX for M4 develop. it support to generate two flash and ram style image, which one suit for this test?

Thanks,

0 Kudos

605 Views
igorpadykov
NXP Employee
NXP Employee

Hi yellow_huang

 

one can look at below tool

https://source.codeaurora.org/external/imxsupport/m4ctrl/about/

 

Best regards
igor

0 Kudos

573 Views
yellow_huang
Contributor II

Hi Igor,

 

It is OK to use m4ctrl to deploy cm4 image first time. But there is always one ASSERT error in CM4 after trying to deploy second time.

In A35 console, m4ctrl show success after second deploy

```

~# m4ctrl --deploy=/tmp/tbox_cm40.img --core=0

m4ctrl: unrecognized option '--core=0'

Stop cortex M4, core 0

Poweron cortex M4, core 0

```

But in CM4 console, ASSERT message shown after second deploy

```

********* FLEXCAN 1 Interrupt EXAMPLE *********

*********************************************

...

ASSERT ERROR " NULL != s_flexcanHandle[FLEXCAN_GetInstance(ADMA__CAN1)] ": file "/home/.../devices/MIMX8QX6/drivers/fsl_flexcan.c" Line "3698" function name "ADMA_FLEXCAN1_INT_DriverIRQHandler"

```

 

Any idea?

Thanks,

0 Kudos