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

Jacob Stiffler j-stiffler at ti.com
Tue May 19 10:23:06 PDT 2015



On 5/18/2015 3:13 PM, Denys Dmytriyenko wrote:
> 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
>

This should be called before do_create_srcipk(). But I suppose it should 
not be assumed that do_create_srcipk() will be run for a general kernel 
recipe.

Should do_setup_cmem() be a postfunc of do_configure()? For example:

do_configure[postfuncs] += "do_setup_cmem"

>>>> +    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