diff options
| author | Jacob Stiffler <j-stiffler@ti.com> | 2015-10-29 18:06:06 +0000 |
|---|---|---|
| committer | Denys Dmytriyenko <denys@ti.com> | 2015-10-29 15:39:56 -0400 |
| commit | 1010d17019ba97d96edfab9f416818cd1b070ee5 (patch) | |
| tree | f874538f94f800e3e99a9a30013e4a6bc964d828 /recipes-kernel | |
| parent | c96067711695a7327ad362eb82af0625002a6a55 (diff) | |
| download | meta-ti-1010d17019ba97d96edfab9f416818cd1b070ee5.tar.gz | |
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>
Diffstat (limited to 'recipes-kernel')
| -rw-r--r-- | recipes-kernel/linux/cmem.inc | 9 | ||||
| -rw-r--r-- | recipes-kernel/linux/files/cmem.dtsi | 42 | ||||
| -rw-r--r-- | recipes-kernel/linux/files/dra7xx/cmem.dtsi | 26 | ||||
| -rw-r--r-- | recipes-kernel/linux/files/k2hk-evm/cmem.dtsi | 54 |
4 files changed, 110 insertions, 21 deletions
diff --git a/recipes-kernel/linux/cmem.inc b/recipes-kernel/linux/cmem.inc index 742f3c80..fc0bf48d 100644 --- a/recipes-kernel/linux/cmem.inc +++ b/recipes-kernel/linux/cmem.inc | |||
| @@ -1,17 +1,12 @@ | |||
| 1 | SRC_URI += "file://cmem.dtsi" | 1 | SRC_URI += "file://cmem.dtsi" |
| 2 | 2 | ||
| 3 | CMEM_BASE ?= "" | 3 | RESERVE_CMEM ?= "0" |
| 4 | CMEM_SIZE ?= "" | ||
| 5 | 4 | ||
| 6 | do_setup_cmem() { | 5 | do_setup_cmem() { |
| 7 | if [ ! -z "${CMEM_BASE}" ] | 6 | if [ "${RESERVE_CMEM}" == "1" ] |
| 8 | then | 7 | then |
| 9 | cp ${WORKDIR}/cmem.dtsi ${S}/arch/arm/boot/dts/${MACHINE}-cmem.dtsi | 8 | cp ${WORKDIR}/cmem.dtsi ${S}/arch/arm/boot/dts/${MACHINE}-cmem.dtsi |
| 10 | 9 | ||
| 11 | sed -i -e "s|__CMEM_BASE__|${CMEM_BASE}|g" \ | ||
| 12 | -e "s|__CMEM_SIZE__|${CMEM_SIZE}|g" \ | ||
| 13 | ${S}/arch/arm/boot/dts/${MACHINE}-cmem.dtsi | ||
| 14 | |||
| 15 | for dtb in ${KERNEL_DEVICETREE} | 10 | for dtb in ${KERNEL_DEVICETREE} |
| 16 | do | 11 | do |
| 17 | dts=`echo $dtb | sed -e 's|dtb$|dts|'` | 12 | 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 6b1da990..23119861 100644 --- a/recipes-kernel/linux/files/cmem.dtsi +++ b/recipes-kernel/linux/files/cmem.dtsi | |||
| @@ -1,24 +1,38 @@ | |||
| 1 | /* | ||
| 2 | * This is a placeholder for CMEM reserved memory declarations. This | ||
| 3 | * is simply an example and does not actually reserve any memory for | ||
| 4 | * CMEM. | ||
| 5 | * | ||
| 6 | * The commented sections below provide an example for how to provide | ||
| 7 | * a reserved memory region for CMEM to use as a buffer pool. | ||
| 8 | */ | ||
| 1 | / { | 9 | / { |
| 2 | reserved-memory { | 10 | /* |
| 3 | cmem_block_mem_0: cmem_block_mem@__CMEM_BASE__ { | 11 | reserved-memory { |
| 4 | reg = <0x__CMEM_BASE__ 0x__CMEM_SIZE__>; | 12 | cmem_block_mem_0: cmem_block_mem@a0000000 { |
| 5 | no-map; | 13 | reg = <0x0 0xa0000000 0x0 0x0a000000>; |
| 6 | status = "okay"; | 14 | no-map; |
| 7 | }; | 15 | status = "okay"; |
| 8 | }; | 16 | }; |
| 17 | }; | ||
| 18 | */ | ||
| 9 | 19 | ||
| 10 | cmem { | 20 | cmem { |
| 11 | compatible = "ti,cmem"; | 21 | compatible = "ti,cmem"; |
| 12 | #address-cells = <1>; | 22 | #address-cells = <1>; |
| 13 | #size-cells = <0>; | 23 | #size-cells = <0>; |
| 14 | 24 | ||
| 15 | status = "okay"; | 25 | #pool-size-cells = <2>; |
| 26 | |||
| 27 | status = "disabled"; | ||
| 28 | /* | ||
| 29 | status = "okay"; | ||
| 16 | 30 | ||
| 17 | cmem_block_0: cmem_block@0 { | 31 | cmem_block_0: cmem_block@0 { |
| 18 | reg = <0>; | 32 | reg = <0>; |
| 19 | memory-region = <&cmem_block_mem_0>; | 33 | memory-region = <&cmem_block_mem_0>; |
| 20 | cmem-buf-pools = <1 0x__CMEM_SIZE__>; | 34 | cmem-buf-pools = <1 0x0 0x0a000000>; |
| 21 | }; | 35 | }; |
| 36 | */ | ||
| 22 | }; | 37 | }; |
| 23 | |||
| 24 | }; | 38 | }; |
diff --git a/recipes-kernel/linux/files/dra7xx/cmem.dtsi b/recipes-kernel/linux/files/dra7xx/cmem.dtsi new file mode 100644 index 00000000..d91faf9c --- /dev/null +++ b/recipes-kernel/linux/files/dra7xx/cmem.dtsi | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | / { | ||
| 2 | reserved-memory { | ||
| 3 | cmem_block_mem_0: cmem_block_mem@a0000000 { | ||
| 4 | reg = <0x0 0xa0000000 0x0 0x0a000000>; | ||
| 5 | no-map; | ||
| 6 | status = "okay"; | ||
| 7 | }; | ||
| 8 | }; | ||
| 9 | |||
| 10 | cmem { | ||
| 11 | compatible = "ti,cmem"; | ||
| 12 | #address-cells = <1>; | ||
| 13 | #size-cells = <0>; | ||
| 14 | |||
| 15 | #pool-size-cells = <2>; | ||
| 16 | |||
| 17 | status = "okay"; | ||
| 18 | |||
| 19 | cmem_block_0: cmem_block@0 { | ||
| 20 | reg = <0>; | ||
| 21 | memory-region = <&cmem_block_mem_0>; | ||
| 22 | cmem-buf-pools = <1 0x0 0x0a000000>; | ||
| 23 | }; | ||
| 24 | }; | ||
| 25 | |||
| 26 | }; | ||
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 00000000..7e897abc --- /dev/null +++ b/recipes-kernel/linux/files/k2hk-evm/cmem.dtsi | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | / { | ||
| 2 | reserved-memory { | ||
| 3 | mpm_block_mem_0: mpm_block_mem@820000000 { | ||
| 4 | reg = <0x00000008 0x20000000 0x00000000 0x02000000>; | ||
| 5 | no-map; | ||
| 6 | status = "okay"; | ||
| 7 | }; | ||
| 8 | |||
| 9 | cmem_block_mem_0: cmem_block_mem@829000000 { | ||
| 10 | reg = <0x00000008 0x29000000 0x00000000 0x57000000>; | ||
| 11 | no-map; | ||
| 12 | status = "okay"; | ||
| 13 | }; | ||
| 14 | |||
| 15 | cmem_block_mem_1: cmem_block_mem@00c100000 { | ||
| 16 | reg = <0x00000000 0x0c100000 0x00000000 0x00480000>; | ||
| 17 | no-map; | ||
| 18 | status = "okay"; | ||
| 19 | }; | ||
| 20 | |||
| 21 | cmem_block_mem_2: cmem_block_mem@822000000 { | ||
| 22 | reg = <0x00000008 0x22000000 0x00000000 0x07000000>; | ||
| 23 | no-map; | ||
| 24 | status = "okay"; | ||
| 25 | }; | ||
| 26 | }; | ||
| 27 | |||
| 28 | cmem { | ||
| 29 | compatible = "ti,cmem"; | ||
| 30 | #address-cells = <1>; | ||
| 31 | #size-cells = <0>; | ||
| 32 | |||
| 33 | #pool-size-cells = <2>; | ||
| 34 | |||
| 35 | status = "okay"; | ||
| 36 | |||
| 37 | cmem_block_0: cmem_block@0 { | ||
| 38 | reg = <0>; | ||
| 39 | memory-region = <&cmem_block_mem_0>; | ||
| 40 | cmem-buf-pools = <1 0x00000000 0x57000000>; | ||
| 41 | }; | ||
| 42 | |||
| 43 | cmem_block_1: cmem_block@1 { | ||
| 44 | reg = <1>; | ||
| 45 | memory-region = <&cmem_block_mem_1>; | ||
| 46 | }; | ||
| 47 | |||
| 48 | cmem_block_2: cmem_block@2 { | ||
| 49 | reg = <2>; | ||
| 50 | memory-region = <&cmem_block_mem_2>; | ||
| 51 | }; | ||
| 52 | }; | ||
| 53 | |||
| 54 | }; | ||
