iMX7D internal ram memory map

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

iMX7D internal ram memory map

Jump to solution
1,425 Views
dry
Senior Contributor I

This is a user problem reading + understanding manual:  

ocrammap.jpg

The figure says 224 is free  (  = 128(EPDC) + 64(128 - 64res) + 32(PXP) ), and "see note".

In note:  "The entire OCRAM region can be used freely post boot. ... "


So can the entire OCRAM 288KB be used freely post boot, or only 224?   (I can't say why I can't understand the doc ... ).


And if the 64KB is still reserved, what is it reserved for  .. (is it secret :smileyhappy:) ?

Tags (3)
1 Solution
1,201 Views
Yuri
NXP Employee
NXP Employee

Hello,

 

 The entire OCRAM 288KB be used freely post boot.

 

Have a great day,

Yuri

 

------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer

button. Thank you!

View solution in original post

3 Replies
1,202 Views
Yuri
NXP Employee
NXP Employee

Hello,

 

 The entire OCRAM 288KB be used freely post boot.

 

Have a great day,

Yuri

 

------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer

button. Thank you!

1,019 Views
ivan_nikolaenko
Contributor I

Hello Yuri!

Do I understand correctly, that I can't use adresses 0x00900000-0x0090ffff for storing my Cortex-M4 firmware because this range is reserved by Linux kernel and is used by it during boot process?

As I see from FreeRTOS linker scripts - they all use 0x00910000 as a start address. I tried to edit default linker script to use first 0x00900000 and then 0x00901000 adresses as a start address along with disabling corresponding ocram entries in the devicetree, but I see that my M4 firmware stops working right after kernel starts booting.

I use imx-5.4.47 kernel
My modifications:
imx7d.dtsi:

 

		ocram: sram@901000 {
			compatible = "mmio-sram";
			reg = <0x901000 0x1f000>;
			clocks = <&clks IMX7D_OCRAM_CLK>;
+           status = "disabled";
		};

 

my devicetree:

 

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		m4_reserved: m4@0x00901000 {
			no-map;
			reg = <0x00901000 0x1f000>;
		};
	};

 

 
Did I miss something?
Thanks in advance.

0 Kudos
1,201 Views
dry
Senior Contributor I

Thanks Yuri !

0 Kudos