1
0
Fork 0

MLK-18320 ARM64: dts: imx8qm: align the reserved ddr memory

In order to enlarge the CMA easily, change the rpmsg
reserved memory region from 0xb800_0000 to 0x9000_0000.
And refine the layout of the reserved memory.
- RPMSG buffers are allocated from CMA dynamically, and have to
be accessed by M4 side. But M4 can only access the 1.5Gbytes
DDR memory from 0x8000_0000. So, the finial reserved memory
layout is just like the one below.

Thus, the largest size of the DDR memory left for CMA, is about
1212Mbytes in theory, since 32Mbytes alignment is required by
CMA allocation.

reserved-memory layout
0x8800_0000 ~ 0x8FFF_FFFF            M4 + RTOS(128M)
0x9000_0000 ~ 0x903F_FFFF            RPMSG Vring(4M)
0x9440_0000 ~ 0xDFFF_FFFF(MAX)       CMA(1212M)(MAX)

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
pull/10/head
Richard Zhu 2018-05-15 15:24:40 +08:00 committed by Jason Liu
parent 0cf37ed960
commit c2c819d44f
3 changed files with 14 additions and 11 deletions

View File

@ -1021,10 +1021,9 @@
&rpmsg{
/*
* 64K for one rpmsg instance:
* --0xb8000000~0xb800ffff: pingpong
*/
vdev-nums = <1>;
reg = <0x0 0xb8000000 0x0 0x10000>;
reg = <0x0 0x90000000 0x0 0x10000>;
status = "okay";
};
@ -1035,10 +1034,9 @@
&rpmsg1{
/*
* 64K for one rpmsg instance:
* --0xb8100000~0xb810ffff: pingpong
*/
vdev-nums = <1>;
reg = <0x0 0xb8100000 0x0 0x10000>;
reg = <0x0 0x90100000 0x0 0x10000>;
status = "okay";
};

View File

@ -1000,10 +1000,9 @@
&rpmsg{
/*
* 64K for one rpmsg instance:
* --0xb8000000~0xb800ffff: pingpong
*/
vdev-nums = <1>;
reg = <0x0 0xb8000000 0x0 0x10000>;
reg = <0x0 0x90000000 0x0 0x10000>;
status = "okay";
};
@ -1014,10 +1013,9 @@
&rpmsg1{
/*
* 64K for one rpmsg instance:
* --0xb8100000~0xb810ffff: pingpong
*/
vdev-nums = <1>;
reg = <0x0 0xb8100000 0x0 0x10000>;
reg = <0x0 0x90100000 0x0 0x10000>;
status = "okay";
};

View File

@ -74,18 +74,25 @@
#size-cells = <2>;
ranges;
/*
* reserved-memory layout
* 0x8800_0000 ~ 0x8FFF_FFFF is reserved for M4
* Shouldn't be used at A core and Linux side.
*
*/
/* global autoconfigured region for contiguous allocations */
linux,cma {
compatible = "shared-dma-pool";
reusable;
size = <0 0x28000000>;
alloc-ranges = <0 0x90000000 0 0x28000000>;
alloc-ranges = <0 0x96000000 0 0x28000000>;
linux,cma-default;
};
rpmsg_reserved: rpmsg@0xb8000000 {
rpmsg_reserved: rpmsg@0x90000000 {
no-map;
reg = <0 0xb8000000 0 0x400000>;
reg = <0 0x90000000 0 0x400000>;
};
};