diff options
author | Richard Zhu <hongxing.zhu@nxp.com> | 2018-05-15 15:24:40 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:31:47 +0800 |
commit | ba4664f4c0704c3b9346ce10275ca337b75e710c (patch) | |
tree | edbc1cd8a4df4572b989836861d25fdfb2f71969 /arch/arm64 | |
parent | 70dbc8c14e6d01cf28dd853f562284d2476b79a4 (diff) |
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>
Diffstat (limited to 'arch/arm64')
-rw-r--r-- | arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts | 6 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts | 6 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi | 13 |
3 files changed, 14 insertions, 11 deletions
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts index 0f3254092fb1..20eff2e69062 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts @@ -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"; }; diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts index b206958c81a4..091c4fc98e99 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts @@ -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"; }; diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi index ff63290e1ffa..72d7290f0b41 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi @@ -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>; }; }; |