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

Denys Dmytriyenko denys at ti.com
Wed Oct 28 12:30:13 PDT 2015


On Wed, Oct 28, 2015 at 03:06:04PM -0400, Jacob Stiffler wrote:
> 
> 
> On 10/28/2015 2:21 PM, Denys Dmytriyenko wrote:
> >On Wed, Oct 28, 2015 at 10:36:06AM -0400, Jacob Stiffler wrote:
> >>* 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 +++++++++++++++++++++++++++
> >So, why do you need a generic cmem.dtsi, if you now have machine-specific
> >versions of the same?
> 
> The generic dtsi does not actually add any reserved regions. I just
> thought it would be good to have. If you do not think that it is
> necessary, I can remove it.

If you want to keep it as an example, you might want to add a small comment in 
it saying it is an example and doesn't reserve any regions, which need to be 
added manually for specific device. That way if the wrong dtsi gets copied, it 
should be "easier" to figure out why cmem doesn't work :)


> >>  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
> >>
> >>-- 
> >>_______________________________________________
> >>meta-ti mailing list
> >>meta-ti at yoctoproject.org
> >>https://lists.yoctoproject.org/listinfo/meta-ti
> 


More information about the meta-ti mailing list