1
0
mirror of https://git.yoctoproject.org/meta-ti synced 2026-05-09 04:50:45 +00:00

linux: cmem.inc: Implement way to configure more complex CMEM config

* 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@ti.com>
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
This commit is contained in:
Jacob Stiffler
2015-10-29 18:06:06 +00:00
committed by Denys Dmytriyenko
parent c960677116
commit 1010d17019
4 changed files with 110 additions and 21 deletions
+2 -7
View File
@@ -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|'`
+28 -14
View File
@@ -1,24 +1,38 @@
/*
* This is a placeholder for CMEM reserved memory declarations. This
* is simply an example and does not actually reserve any memory for
* CMEM.
*
* The commented sections below provide an example for how to provide
* a reserved memory region for CMEM to use as a buffer pool.
*/
/ {
reserved-memory {
cmem_block_mem_0: cmem_block_mem@__CMEM_BASE__ {
reg = <0x__CMEM_BASE__ 0x__CMEM_SIZE__>;
no-map;
status = "okay";
};
};
/*
reserved-memory {
cmem_block_mem_0: cmem_block_mem@a0000000 {
reg = <0x0 0xa0000000 0x0 0x0a000000>;
no-map;
status = "okay";
};
};
*/
cmem {
compatible = "ti,cmem";
#address-cells = <1>;
#size-cells = <0>;
cmem {
compatible = "ti,cmem";
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
#pool-size-cells = <2>;
status = "disabled";
/*
status = "okay";
cmem_block_0: cmem_block@0 {
reg = <0>;
memory-region = <&cmem_block_mem_0>;
cmem-buf-pools = <1 0x__CMEM_SIZE__>;
cmem-buf-pools = <1 0x0 0x0a000000>;
};
*/
};
};
@@ -0,0 +1,26 @@
/ {
reserved-memory {
cmem_block_mem_0: cmem_block_mem@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@0 {
reg = <0>;
memory-region = <&cmem_block_mem_0>;
cmem-buf-pools = <1 0x0 0x0a000000>;
};
};
};
@@ -0,0 +1,54 @@
/ {
reserved-memory {
mpm_block_mem_0: mpm_block_mem@820000000 {
reg = <0x00000008 0x20000000 0x00000000 0x02000000>;
no-map;
status = "okay";
};
cmem_block_mem_0: cmem_block_mem@829000000 {
reg = <0x00000008 0x29000000 0x00000000 0x57000000>;
no-map;
status = "okay";
};
cmem_block_mem_1: cmem_block_mem@00c100000 {
reg = <0x00000000 0x0c100000 0x00000000 0x00480000>;
no-map;
status = "okay";
};
cmem_block_mem_2: cmem_block_mem@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@0 {
reg = <0>;
memory-region = <&cmem_block_mem_0>;
cmem-buf-pools = <1 0x00000000 0x57000000>;
};
cmem_block_1: cmem_block@1 {
reg = <1>;
memory-region = <&cmem_block_mem_1>;
};
cmem_block_2: cmem_block@2 {
reg = <2>;
memory-region = <&cmem_block_mem_2>;
};
};
};