ti-codecs-omapl138: Fix DMA resource allocation in DSP Server
authorRoger Monk <r-monk@ti.com>
Mon, 1 Mar 2010 18:23:29 +0000 (18:23 +0000)
committerKoen Kooi <koen@openembedded.org>
Mon, 12 Apr 2010 17:43:20 +0000 (19:43 +0200)
   * This patch configures DMAN3 resources to be used by DSP
     * TCCs and PaRams configured to match those marked exclusively
       for DSP usage (and reserved accordingly in ARM linux kernel)
     * 12 TCC allocated
     * 50 PaRams
   * Scratch group sizing adjusted to match max 12 TCC available

Signed-off-by: Roger Monk <r-monk@ti.com>
Signed-off-by: Koen Kooi <k-kooi@ti.com>
recipes/ti/ti-codecs-omapl138/ti-codecs-omapl138-1-00-00-fixDman3Config.patch [new file with mode: 0644]
recipes/ti/ti-codecs-omapl138_1.00.00.bb

diff --git a/recipes/ti/ti-codecs-omapl138/ti-codecs-omapl138-1-00-00-fixDman3Config.patch b/recipes/ti/ti-codecs-omapl138/ti-codecs-omapl138-1-00-00-fixDman3Config.patch
new file mode 100644 (file)
index 0000000..302e48b
--- /dev/null
@@ -0,0 +1,44 @@
+diff -uNr cs1omapl138_1_00_00/packages/ti/sdo/server/cs/codec.cfg cs1omapl138_1_00_00_fix/packages/ti/sdo/server/cs/codec.cfg
+--- cs1omapl138_1_00_00/packages/ti/sdo/server/cs/codec.cfg    2009-12-14 17:31:57.000000000 +0000
++++ cs1omapl138_1_00_00_fix/packages/ti/sdo/server/cs/codec.cfg        2010-03-01 18:09:49.000000000 +0000
+@@ -174,7 +174,7 @@
+ DMAN3.numPaRamGroup[GROUP_0] = 48; // number of PaRAM sets for scratch group 0
+ DMAN3.numPaRamGroup[GROUP_1] = 0; // number of PaRAM sets for scratch group 1
+-DMAN3.numTccGroup[GROUP_0] = 16; // number of TCCs assigned to scratch group 0
++DMAN3.numTccGroup[GROUP_0] = 12; // number of TCCs assigned to scratch group 0
+ DMAN3.numTccGroup[GROUP_1] = 0; // number of TCCs assigned to scratch group 1
+diff -uNr cs1omapl138_1_00_00/packages/ti/sdo/server/cs/server.cfg cs1omapl138_1_00_00_fix/packages/ti/sdo/server/cs/server.cfg
+--- cs1omapl138_1_00_00/packages/ti/sdo/server/cs/server.cfg   2009-12-14 17:31:57.000000000 +0000
++++ cs1omapl138_1_00_00_fix/packages/ti/sdo/server/cs/server.cfg       2010-03-01 18:08:59.000000000 +0000
+@@ -233,16 +233,24 @@
+  *  TCCs to Groups [0] and [1] each. (Assuming both algorithms needed no more
+  *  than 24 channels to run properly.)
+  */
+-DMAN3.paRamBaseIndex     = 80;  // 1st EDMA3 PaRAM set available for DMAN3
++
++/* TODO :: DA850-OMAPL138 PSP Linux Kernel reserves some PaRAMs for DSP usage
++ * - channels 30->50 are exclusive for DSP
++ * - all 8 QDMAs are allocated to DSP
++ */
++DMAN3.paRamBaseIndex     = 30;  // 1st EDMA3 PaRAM set available for DMAN3
+ DMAN3.numQdmaChannels    = 8;   // number of device's QDMA channels to use
+ DMAN3.qdmaChannels       = [0,1,2,3,4,5,6,7]; // choice of QDMA channels to use
+-DMAN3.numPaRamEntries    = 48;  // number of PaRAM sets exclusively used by DMAN
++DMAN3.numPaRamEntries    = 50;  // number of PaRAM sets exclusively used by DMAN
+ /* Please Note: the number of PaRAM sets and number of TCCs for */
+ /* specific scratch groups are set in codeg.cfg */
+-DMAN3.tccAllocationMaskL = 0xffffffff;   // bit mask indicating which TCCs 0..31 to use
+-DMAN3.tccAllocationMaskH = 0;            // assign all TCCs 32..63 for DMAN
++/* TODO :: DA850-OMAPL138 PSP Linux Kernel reserves some TCCs for DSP usage
++ * - 12 TCC channels are exclusive for DSP
++ */
++DMAN3.tccAllocationMaskL = 0xcf003f00;   // bit mask indicating which TCCs 0..31 to use
++DMAN3.tccAllocationMaskH = 0x0;          // OMAPL138 only has 32 TCCs --> 0
+ DMAN3.debug = false;
+ DMAN3.trace = false;
index 66f41cd..b9476aa 100644 (file)
@@ -9,7 +9,7 @@ PV = "1_00_00"
 SRC_URI[l138codecsbin.md5sum] = "64a53cd55bc63d3a6f4db742aff90de9"
 SRC_URI[l138codecsbin.sha256sum] = "4fb1075ad83f6017616410eff35ada7d567f1ee1b5b23624a817e8fc7dda3f8a"
 
-PR = "r3"
+PR = "r4"
 
 require ti-paths.inc
 require ti-staging.inc
@@ -19,7 +19,8 @@ PROVIDES += "ti-codecs-omapl138-server"
 
 S = "${WORKDIR}/OMAP_L138_arm_1_00_00_08/cs1omapl138_${PV}"
 
-SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/sdk/omap_l138/1_00/latest/exports/${BINFILE};name=l138codecsbin"
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/sdk/omap_l138/1_00/latest/exports/${BINFILE};name=l138codecsbin \
+           file://ti-codecs-omapl138-1-00-00-fixDman3Config.patch;patch=1"
 
 BINFILE = "cs1omapl138_${PV}-v2_setup_linux.bin"
 TI_BIN_UNPK_CMDS = "y:Y: qY:workdir"