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

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



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.

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