From ba4664f4c0704c3b9346ce10275ca337b75e710c Mon Sep 17 00:00:00 2001 From: Richard Zhu Date: Tue, 15 May 2018 15:24:40 +0800 Subject: 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 --- arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts | 6 ++---- arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts | 6 ++---- arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi | 13 ++++++++++--- 3 files changed, 14 insertions(+), 11 deletions(-) (limited to 'arch/arm64') 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>; }; }; -- cgit v1.2.3