IMX6SX boot M4 from DDR

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

IMX6SX boot M4 from DDR

Jump to solution
1,174 Views
maikemeier
Contributor I

Hey there,

I am using the UDOO Neo board which has an imx6sx. I was able to build and run an application from TCM using the startup code and linker script from CMSIS. Since my application is going to exceed the TCM space I want to use a different memory region. 

According to the device tree there should be 8MB DDR reserved for the M4, starting at 0x84000000.

So I modified the linker script like this: 

MEMORY
{
  m_interrupts          (RX)  : ORIGIN = 0x84000000, LENGTH = 0x00000240
  m_text                (RX)  : ORIGIN = 0x84000240, LENGTH = 0x00007DC0
  m_data                (RW)  : ORIGIN = 0x20000000, LENGTH = 0x00008000
}

From my understanding, I should be able to boot the M4 in u-boot by doing the following: 

fatload mmc 0:1 0x84000000 test_ddr.bin
dcache flush
bootaux 0x84000000‍‍‍

 

Bootaux should take care of copying the stack and pc pointer values. For the TCM memory layout (m_interrupts starting at 0x00000000) this procedure works, so what am I missing for the DDR?

0 Kudos
1 Solution
806 Views
maikemeier
Contributor I

solved it:

The M4 had the wrong reference for the vector table, so it tried to access the SysTick_Handler at the wrong address and went wild there. 

View solution in original post

0 Kudos
3 Replies
807 Views
maikemeier
Contributor I

solved it:

The M4 had the wrong reference for the vector table, so it tried to access the SysTick_Handler at the wrong address and went wild there. 

0 Kudos
806 Views
jealcuna
Contributor I

Could you explain more in detail how you solve the problem. I have the same, I modify the linker file as same as posted for you here. I can flash the firmware but when I tried to debug it starts but then is not working well. It is doing steps but then it can not do more step (other line or function) and just stay in the same line.

I suspect the same with vector table, but I dont know how to fix it.

0 Kudos
806 Views
igorpadykov
NXP Employee
NXP Employee

Hi Maike

please check AN5127 How to Run the MQX™ RTOS on Various RAM Memories for i.MX 6SoloX

http://www.nxp.com/docs/en/application-note/AN5127.pdf 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos