Boot Cortex-M4 on iMX6-SoloX SABRE-SDB

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

Boot Cortex-M4 on iMX6-SoloX SABRE-SDB

Jump to solution
2,778 Views
mileswang
Contributor II

Hello,

I want to boot cortex-M4 on iMX6-SoloX. From "i.MX 6SoloX Applications Processor Reference Manual", section 13.5 as below:

13.5 Cortex-M4 Boot Requirements

• Cortex-A9 always boots as the primary core.

• Cortex-M4 does not have a boot ROM and at POR is not provided a clock

• Cortex-A9 ROM is responsible for the following:

• Loading and authenticating A9 bootloader and initiating Cortex-M4 firmware as a unified image

• Setting up Cortex-M4 initial exception table in TCRAML

• Launching the Cortex-M4 by enabling its clock

What is TCRAML? What is the boot address of cortex-M4? Do you have document to describe how to boot cortex-M4?

Thanks,

Miles

Labels (1)
0 Kudos
1 Solution
1,580 Views
art
NXP Employee
NXP Employee

Please refer to attached presentation for the example of how the Cortex A9 core starts the M4 one.


Have a great day,
Artur

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

View solution in original post

0 Kudos
5 Replies
1,580 Views
Yuri
NXP Employee
NXP Employee

Hello,

  the following may be useful MX6 SoloX bare metal startup


Have a great day,
Yuri

0 Kudos
1,580 Views
mileswang
Contributor II

Hello,

Why linux hang up when cortex A9 access physical address 0x007f8000?

1. dts file add a line in "reg"

    <0x007f8000 0x4000>

2. Map to virtual address

vectorreg_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);

imx6sx_vectorReg = devm_ioremap_resource(dev, vectorreg_res);

3. Read but hang up happen here.

readl_relaxed(imx6sx_vectorReg)

I confirmed that M4 clock is enabled in CCM_CCGR3 (CCGR3 = fff333ff).

What is wrong?

Thanks,

Miles

0 Kudos
1,581 Views
art
NXP Employee
NXP Employee

Please refer to attached presentation for the example of how the Cortex A9 core starts the M4 one.


Have a great day,
Artur

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

0 Kudos
1,580 Views
armk
Contributor I

Hi Artur,

Using GNU tools I am compile the source provided in the PPT. I am able to generate the .bin file. But hex file which is to be generates as a array in M4_binary[] is not successful. it says,

" /bin/sh: 1: bin2chex: not found "

In makefile I replaced bin2chex with bin2hex but no change the error.

0 Kudos
1,580 Views
robertlehmann
Contributor II

Do you have the source files which are mentioned in the presentation?

0 Kudos