summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Zhu <hongxing.zhu@nxp.com>2018-04-25 10:42:40 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:31:42 +0800
commit5c3c491f39b3db5840f1d48e46ec265945a36f72 (patch)
tree4401459bc9650f539cd9142482350fda58f32daa
parentb3fdd7e1120b5c8b5104dd8fd0b8bef295861cc9 (diff)
MLK-18239 ARM64: dts: imx8qxp: change the rpmsg reserved memory region
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 0x8000_0000 ~ 0x83FF_FFFF A core + Linux Kernel(64M) 0x8400_0000 ~ 0x85FF_FFFF VPU encoder boot(32M) 0x8600_0000 ~ 0x87FF_FFFF VPU decoder boot(32M) 0x8800_0000 ~ 0x8FFF_FFFF M4 + RTOS(128M) 0x9000_0000 ~ 0x903F_FFFF RPMSG Vring(4M) 0x9040_0000 ~ 0x913F_FFFF VPU decoder rpc(16M) 0x9140_0000 ~ 0x923F_FFFF VPU encoder rpc(16M) 0x9240_0000 ~ 0x943F_FFFF DSP(32M) 0x9440_0000 ~ 0xDFFF_FFFF(MAX) CMA(1212M)(MAX) Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
-rwxr-xr-xarch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts3
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-imx8qxp.dtsi44
2 files changed, 26 insertions, 21 deletions
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts
index 28098ead4828..40884340bdd8 100755
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts
@@ -833,10 +833,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";
};
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qxp.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qxp.dtsi
index 7d9bc6c91e80..e9268d710088 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qxp.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qxp.dtsi
@@ -69,38 +69,44 @@
#size-cells = <2>;
ranges;
- dsp_reserved: dsp@0x8e000000 {
+ /*
+ * reserved-memory layout
+ * 0x8800_0000 ~ 0x8FFF_FFFF is reserved for M4
+ * Shouldn't be used at A core and Linux side.
+ *
+ */
+ decoder_boot: decoder_boot@0x84000000 {
+ no-map;
+ reg = <0 0x84000000 0 0x2000000>;
+ };
+ encoder_boot: encoder_boot@0x86000000 {
+ no-map;
+ reg = <0 0x86000000 0 0x2000000>;
+ };
+ rpmsg_reserved: rpmsg@0x90000000 {
+ no-map;
+ reg = <0 0x90000000 0 0x400000>;
+ };
+ decoder_rpc: decoder_rpc@0x90400000 {
no-map;
- reg = <0 0x8e000000 0 0x1ffffff>;
+ reg = <0 0x90400000 0 0x1000000>;
};
- decoder_boot: decoder_boot@0x88000000 {
+ encoder_rpc: encoder_rpc@0x91400000 {
no-map;
- reg = <0 0x88000000 0 0x2000000>;
+ reg = <0 0x91400000 0 0x1000000>;
};
- encoder_boot: encoder_boot@0x8A000000 {
+ dsp_reserved: dsp@0x92400000 {
no-map;
- reg = <0 0x8A000000 0 0x2000000>;
+ reg = <0 0x92400000 0 0x2000000>;
};
/* 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 {
- no-map;
- reg = <0 0xb8000000 0 0x400000>;
- };
- decoder_rpc: decoder_rpc@0xB9000000 {
- no-map;
- reg = <0 0xB9000000 0 0x1000000>;
- };
- encoder_rpc: encoder_rpc@0xBA000000 {
- no-map;
- reg = <0 0xBA000000 0 0x1000000>;
- };
};
gic: interrupt-controller@51a00000 {