"Start address" error with DMA memory sections (IMXRT)

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

"Start address" error with DMA memory sections (IMXRT)

Jump to solution
3,598 Views
jackking
Senior Contributor I

Hello,  I am getting an error for the Start Address when trying to generate a bootable image using the Provisioning Tool.

My project uses a section of OCRAM for a noncached DMA buffer location.  

If I remove this section, the Start Address is correct.

How can I use the Provisioning Tool with this DMA buffer section?

Properties_for_MIMXRT1062xxxxA_Project_OS_TEST07.jpg

Properties_for_MIMXRT1062xxxxA_Project_OS_TEST07.jpg

start_addr_error.jpg

1 Solution
3,345 Views
addiyi
NXP Employee
NXP Employee

Hi Jack,

I took a look at the example attached and discovered two possible issues:

1. First one is about XIP_BOOT_HEADER_ENABLE preprocessor defined symbol which is set to 1 and must be set to 0. This version of SPT is not handle XIP_BOOT_HEADER_ENABLE=1;

2. Did you intentional set NonCacheable section as .bss? When NonCacheable section is set as .bss, then there is no relocation of the .data_RAM4 section from flash, because the size of this section is 0. 

.data_RAM4 00000000 20240000 20240000 00030004 2**2

CONTENTS

Once NonCacheable section is placed in .data, relocation data is added and image can be loaded by SPT with no error.

.data_RAM4 00000c80 20240000 60005b64 00020000 2**5
CONTENTS, ALLOC, LOAD, DATA

Adrian

View solution in original post

4 Replies
3,345 Views
addiyi
NXP Employee
NXP Employee

Hi Jack,

It is possible for you to provide an image and a map? Not necessary of your application, but an example so we can reproduce and debug the issue.

Thanks,

Adrian

0 Kudos
3,345 Views
jackking
Senior Contributor I

Sure,  here is a simple example based on hello_world sample.  

I added a DMA memory region and initialized a byte array in the DMA region.

I use an Embedded Artists EVK, so you would need to change the flash driver if you want to build it for the NXP EVK, but I included the Debug .axf file in the zip file.

SPT_test.jpg

0 Kudos
3,346 Views
addiyi
NXP Employee
NXP Employee

Hi Jack,

I took a look at the example attached and discovered two possible issues:

1. First one is about XIP_BOOT_HEADER_ENABLE preprocessor defined symbol which is set to 1 and must be set to 0. This version of SPT is not handle XIP_BOOT_HEADER_ENABLE=1;

2. Did you intentional set NonCacheable section as .bss? When NonCacheable section is set as .bss, then there is no relocation of the .data_RAM4 section from flash, because the size of this section is 0. 

.data_RAM4 00000000 20240000 20240000 00030004 2**2

CONTENTS

Once NonCacheable section is placed in .data, relocation data is added and image can be loaded by SPT with no error.

.data_RAM4 00000c80 20240000 60005b64 00020000 2**5
CONTENTS, ALLOC, LOAD, DATA

Adrian

3,345 Views
jackking
Senior Contributor I

The XIP header was an error, as I created this project just to demonstrate the address error for you, not actually create a bootable image.

The NonCacheable setting is from the default settings in Hello World example.  All I did was change the memory region used. 

After changing it to .data, the address is correct for SPT.  Thanks!

Properties_for_evkmimxrt1060_hello_world.jpg

0 Kudos