[meta-ti] [PATCH 1/2] linux/cmem.inc: Support reserving memory for CMEM.

Denys Dmytriyenko denys at ti.com
Mon May 18 12:13:17 PDT 2015


On Mon, May 18, 2015 at 03:03:18PM -0400, Jacob Stiffler wrote:
> 
> 
> On 5/18/2015 2:11 PM, Denys Dmytriyenko wrote:
> >On Mon, May 18, 2015 at 08:20:58AM -0400, Jacob Stiffler wrote:
> >>To reserve contiguous memory for CMEM:
> >>* include the "recipes-kernel/linux/cmem.inc"
> >>* Set CMEM_BASE and CMEM_SIZE to the physical memory address and size,
> >>   respectively, to reserve for CMEM.
> >>
> >>Currently limited to reserving a single memory region used to create
> >>a single buffer pool of a single buffer.
> >Looks good. 2 comments below.
> >
> >
> >>Signed-off-by: Jacob Stiffler <j-stiffler at ti.com>
> >>---
> >>  recipes-kernel/linux/cmem.inc        |   22 ++++++++++++++++++++++
> >>  recipes-kernel/linux/linux/cmem.dtsi |   24 ++++++++++++++++++++++++
> >>  2 files changed, 46 insertions(+)
> >>  create mode 100644 recipes-kernel/linux/cmem.inc
> >>  create mode 100644 recipes-kernel/linux/linux/cmem.dtsi
> >>
> >>diff --git a/recipes-kernel/linux/cmem.inc b/recipes-kernel/linux/cmem.inc
> >>new file mode 100644
> >>index 0000000..207bdc6
> >>--- /dev/null
> >>+++ b/recipes-kernel/linux/cmem.inc
> >>@@ -0,0 +1,22 @@
> >>+FILESEXTRAPATHS_append := ":${THISDIR}/linux"
> >Move the file into standard "files" directory and drop above line.
> >
> 
> Ok.
> 
> >>+SRC_URI += "file://cmem.dtsi"
> >>+
> >>+CMEM_BASE ?= ""
> >>+CMEM_SIZE ?= ""
> >>+
> >>+do_compileconfigs_prepend() {
> >Should this be do_configure_append() instead? It would probably be safer, as
> >do_compileconfigs() is specific to multi-kernel.inc and some kernel recipes
> >may not include it...
> >
> 
> I had noticed that do_configure() gets invoked multiple times.
> 
> I'll try it as a do_configure_append() and make sure it will work.

Ah, you are right. Then you'd need to call this function uniquely like 
do_setup_cmem() and then addtask it after do_patch before do_configure. It 
looks like it should be safe to do it even before do_configure. It would be 
nice to do it after do_configure, but it needs to be before do_compile and 
also do_compileconfigs, while the latter one is only defined by multi-kernel


> >>+    if [ ! -z "${CMEM_BASE}" ]
> >>+    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 dts in ${KERNEL_DEVICETREE}
> >>+        do
> >>+            echo "#include \"${MACHINE}-cmem.dtsi\"" >> ${S}/arch/arm/boot/dts/${dts%.dtb}.dts
> >>+        done
> >>+    fi
> >>+}
> >>diff --git a/recipes-kernel/linux/linux/cmem.dtsi b/recipes-kernel/linux/linux/cmem.dtsi
> >>new file mode 100644
> >>index 0000000..6b1da99
> >>--- /dev/null
> >>+++ b/recipes-kernel/linux/linux/cmem.dtsi
> >>@@ -0,0 +1,24 @@
> >>+/ {
> >>+        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";
> >>+
> >>+                cmem_block_0: cmem_block at 0 {
> >>+                        reg = <0>;
> >>+                        memory-region = <&cmem_block_mem_0>;
> >>+                        cmem-buf-pools = <1 0x__CMEM_SIZE__>;
> >>+                };
> >>+        };
> >>+
> >>+};
> >>-- 
> >>1.7.9.5
> >>
> >>-- 
> >>_______________________________________________
> >>meta-ti mailing list
> >>meta-ti at yoctoproject.org
> >>https://lists.yoctoproject.org/listinfo/meta-ti
> 


More information about the meta-ti mailing list