[meta-ti] [PATCH] linux: cmem.inc: Implement way to configure more complex CMEM config

Jacob Stiffler j-stiffler at ti.com
Wed Oct 28 07:36:06 PDT 2015


* Supply the entire cmem.dtsi per machine
  - Disabled by default
  - Currently only supported for dra7xx and k2hk-evm
* Enable by setting RESERVE_CMEM = "1"

Signed-off-by: Jacob Stiffler <j-stiffler at ti.com>
---
 recipes-kernel/linux/cmem.inc                 |  9 +----
 recipes-kernel/linux/files/cmem.dtsi          | 16 +-------
 recipes-kernel/linux/files/dra7xx/cmem.dtsi   | 26 +++++++++++++
 recipes-kernel/linux/files/k2hk-evm/cmem.dtsi | 54 +++++++++++++++++++++++++++
 4 files changed, 84 insertions(+), 21 deletions(-)
 create mode 100644 recipes-kernel/linux/files/dra7xx/cmem.dtsi
 create mode 100644 recipes-kernel/linux/files/k2hk-evm/cmem.dtsi

diff --git a/recipes-kernel/linux/cmem.inc b/recipes-kernel/linux/cmem.inc
index 742f3c8..fc0bf48 100644
--- a/recipes-kernel/linux/cmem.inc
+++ b/recipes-kernel/linux/cmem.inc
@@ -1,17 +1,12 @@
 SRC_URI += "file://cmem.dtsi"
 
-CMEM_BASE ?= ""
-CMEM_SIZE ?= ""
+RESERVE_CMEM ?= "0"
 
 do_setup_cmem() {
-    if [ ! -z "${CMEM_BASE}" ]
+    if [ "${RESERVE_CMEM}" == "1" ]
     then
         cp ${WORKDIR}/cmem.dtsi ${S}/arch/arm/boot/dts/${MACHINE}-cmem.dtsi
 
-        sed -i -e "s|__CMEM_BASE__|${CMEM_BASE}|g" \
-               -e "s|__CMEM_SIZE__|${CMEM_SIZE}|g" \
-               ${S}/arch/arm/boot/dts/${MACHINE}-cmem.dtsi
-
         for dtb in ${KERNEL_DEVICETREE}
         do
             dts=`echo $dtb | sed -e 's|dtb$|dts|'`
diff --git a/recipes-kernel/linux/files/cmem.dtsi b/recipes-kernel/linux/files/cmem.dtsi
index 6b1da99..8c62b06 100644
--- a/recipes-kernel/linux/files/cmem.dtsi
+++ b/recipes-kernel/linux/files/cmem.dtsi
@@ -1,24 +1,12 @@
 / {
-        reserved-memory {
-                cmem_block_mem_0: cmem_block_mem at __CMEM_BASE__ {
-                        reg = <0x__CMEM_BASE__ 0x__CMEM_SIZE__>;
-                        no-map;
-                        status = "okay";
-                };
-        };
-
         cmem {
                 compatible = "ti,cmem";
                 #address-cells = <1>;
                 #size-cells = <0>;
 
-                status = "okay";
+		#pool-size-cells = <1>;
 
-                cmem_block_0: cmem_block at 0 {
-                        reg = <0>;
-                        memory-region = <&cmem_block_mem_0>;
-                        cmem-buf-pools = <1 0x__CMEM_SIZE__>;
-                };
+                status = "disabled";
         };
 
 };
diff --git a/recipes-kernel/linux/files/dra7xx/cmem.dtsi b/recipes-kernel/linux/files/dra7xx/cmem.dtsi
new file mode 100644
index 0000000..d91faf9
--- /dev/null
+++ b/recipes-kernel/linux/files/dra7xx/cmem.dtsi
@@ -0,0 +1,26 @@
+/ {
+        reserved-memory {
+                cmem_block_mem_0: cmem_block_mem at a0000000 {
+                        reg = <0x0 0xa0000000 0x0 0x0a000000>;
+                        no-map;
+                        status = "okay";
+                };
+        };
+
+        cmem {
+                compatible = "ti,cmem";
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+		#pool-size-cells = <2>;
+
+                status = "okay";
+
+                cmem_block_0: cmem_block at 0 {
+                        reg = <0>;
+                        memory-region = <&cmem_block_mem_0>;
+                        cmem-buf-pools = <1 0x0 0x0a000000>;
+                };
+        };
+
+};
diff --git a/recipes-kernel/linux/files/k2hk-evm/cmem.dtsi b/recipes-kernel/linux/files/k2hk-evm/cmem.dtsi
new file mode 100644
index 0000000..7e897ab
--- /dev/null
+++ b/recipes-kernel/linux/files/k2hk-evm/cmem.dtsi
@@ -0,0 +1,54 @@
+/ {
+        reserved-memory {
+                mpm_block_mem_0: mpm_block_mem at 820000000 {
+                        reg = <0x00000008 0x20000000 0x00000000 0x02000000>;
+                        no-map;
+                        status = "okay";
+                };
+
+                cmem_block_mem_0: cmem_block_mem at 829000000 {
+                        reg = <0x00000008 0x29000000 0x00000000 0x57000000>;
+                        no-map;
+                        status = "okay";
+                };
+
+                cmem_block_mem_1: cmem_block_mem at 00c100000 {
+                        reg = <0x00000000 0x0c100000 0x00000000 0x00480000>;
+                        no-map;
+                        status = "okay";
+                };
+
+                cmem_block_mem_2: cmem_block_mem at 822000000 {
+                        reg = <0x00000008 0x22000000 0x00000000 0x07000000>;
+                        no-map;
+                        status = "okay";
+                };
+        };
+
+        cmem {
+                compatible = "ti,cmem";
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+		#pool-size-cells = <2>;
+
+                status = "okay";
+
+                cmem_block_0: cmem_block at 0 {
+                        reg = <0>;
+                        memory-region = <&cmem_block_mem_0>;
+                        cmem-buf-pools = <1 0x00000000 0x57000000>;
+                };
+
+                cmem_block_1: cmem_block at 1 {
+                        reg = <1>;
+                        memory-region = <&cmem_block_mem_1>;
+                };
+
+                cmem_block_2: cmem_block at 2 {
+                        reg = <2>;
+                        memory-region = <&cmem_block_mem_2>;
+                };
+        };
+
+};
-- 
1.9.1



More information about the meta-ti mailing list