NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
DA8xx Algorithm Selection
Contents
Introduction[edit]
- This page talks about how to add/delete decoders and IP algorithms from project. You can select decoders and ASPs that you want to use.
- There are two examples, Y13 and I14. Y13 mainly describes how to deleted ASP and decoders while I14 describes how to add IP packages.
- Are you interested in development and integration of your custom ASPs? Please see ASP Development Kit
How to integrate IP packages in the SDK?[edit]
- In this section, I14 is used for base release.
- At first, you need some license agreement both TI and IP vender. Then TI can release IP package.
- Extract IP package to the work area (
T:\
) which is described in Creation of work area. Below packages are used in this examplepa_da8xx_yymmdd_ddp2.zip
pa_da8xx_yymmdd_dtshd2.zip
pa_da8xx_yymmdd_neo.zip
pa_da8xx_yymmdd_pl2x.zip
pa_da8xx_yymmdd_thd2.zip
Edit CCS4 project[edit]
- Add link of the library that you want to add to the project. Project-> Link Files to Active Project. The IP libraries are in
T:\pa\build\c674x\release
andT:\pa\i\d800k001\pa\build\c674x\release
if you extract packages correctly.
Editing T:\pa\cust\vender\c999\d1\i14\patchs.c[edit]
1.Add header files that you want to add. To add, you also have to add the path of these headers. This is needed for build. In following example, mtx, an ASP, and SNG, a decoder are added.
/* Headers for decoder */ ... #include <dtshd.h> //Added #include <dtshd_tii.h> //Added #include <thd.h> //Added #include <thd_tii.h> //Added #include <ddp.h> //Added #include <ddp_tij.h> //Added ... /* Headers for ASP */ ... #include <pl2x.h> //Added #include <pl2x_tii.h> //Added #include <neo6.h> //Added #include <neo6_tii.h> //Added ...
2.Add decoders that you want to add to "const PAF_ASP_LinkInit decLinkInitI14[]". This table defines the decoders which PA/F will call.
const PAF_ASP_LinkInit decLinkInitI14[] =
{
PAF_ASP_LINKINITPARAMS (STD, DWRPCM, TII, &IDWRPCM_PARAMS),
PAF_ASP_LINKINIT (STD, DTSHD, TII), //Added
PAF_ASP_LINKINIT (STD, THD, TII), //Added
PAF_ASP_LINKINITPARAMS (STD, DDP, TIJ, &IDDP_PARAMS_SDRAM), //Added
PAF_ASP_LINKNONE,
};
3.Add ASPs that you want to add to "const PAF_ASP_LinkInit aspLinkInitAllI14[]", "const PAF_ASP_LinkInit aspLinkInitStdI14[]" and "const PAF_ASP_LinkInit aspLinkInitCusI14[]". This table defines modules that PA/F will call.
const PAF_ASP_LinkInit aspLinkInitAllI14[] = { #ifdef AE0 PAF_ASP_LINKINIT(CUS,AE,MDS), #endif #ifdef AE_1 PAF_ASP_LINKINITPARAMS(CUS,AE,TII,&IAE_PARAMS_DIRECT), #endif #ifdef AE_2 PAF_ASP_LINKINITPARAMS(CUS,AE,TII,&IAE_PARAMS_SIMPLE_DMA), #endif #ifdef AE_3 PAF_ASP_LINKINITPARAMS(CUS,AE,TII,&IAE_PARAMS_CONCURRENT_DMA), #endif PAF_ASP_LINKINITPARAMS (STD, SRC, TIH, &ISRC_PARAMS_DS_8CH_HBW), PAF_ASP_LINKINIT (STD, DEM, MDS), #if(PAF_DEVICE) == 0xD8000001 PAF_ASP_LINKINIT (STD, PL2x, TII), //Added PAF_ASP_LINKINITPARAMS (STD, NEO, TII, &INEO_PARAMS), //Added PAF_ASP_LINKINIT (STD, MTX, WAV), PAF_ASP_LINKINITPARAMS (STD, RVB, WAV, &IRVB_PARAMS_PSDELAY), PAF_ASP_LINKINIT (STD, DM, TII), PAF_ASP_LINKINITPARAMS (STD, GEQ, TII, &IGEQ_PARAMS_EQX_16CHN_UNICOEF), PAF_ASP_LINKINITPARAMS (STD, LOU, TII, &IGEQ_PARAMS_LOU), PAF_ASP_LINKINITPARAMS(STD,BM,MDS,&IBM_PARAMS), #ifdef BASS PAF_ASP_LINKINIT(STD,BASS,TIJ), #endif /* BASS */ PAF_ASP_LINKINIT (STD, ML, MDS), #endif /* (PAF_DEVICE) == 0xD8000001 */ PAF_ASP_LINKNONE, }; ... const PAF_ASP_LinkInit aspLinkInitStdI14[] = { PAF_ASP_LINKINITPARAMS (STD, SRC, TIH, &ISRC_PARAMS_DS_8CH_HBW), PAF_ASP_LINKINIT (STD, DEM, MDS), #if(PAF_DEVICE) == 0xD8000001 PAF_ASP_LINKINIT (STD, PL2x, TII), //Added PAF_ASP_LINKINITPARAMS (STD, NEO, TII, &INEO_PARAMS), //Added PAF_ASP_LINKINIT (STD, MTX, WAV), PAF_ASP_LINKINITPARAMS (STD, RVB, WAV, &IRVB_PARAMS_PSDELAY), PAF_ASP_LINKINIT (STD, DM, TII), PAF_ASP_LINKINITPARAMS (STD, GEQ, TII, &IGEQ_PARAMS_EQX_16CHN_UNICOEF), PAF_ASP_LINKINITPARAMS (STD, LOU, TII, &IGEQ_PARAMS_LOU), PAF_ASP_LINKINITPARAMS(STD,BM,MDS,&IBM_PARAMS), #ifdef BASS PAF_ASP_LINKINIT(STD,BASS,TIJ), #endif /* BASS */ PAF_ASP_LINKINIT (STD, ML, MDS), #endif /* (PAF_DEVICE) == 0xD8000001 */ }; ...
- If you got build error of "Can't open header files", you should add the header search path to
T:\pa\cust\vender\c999\d1\std_incl.opt
- Then, you needs another step for security. Please ask TI how to do it. After you get the IP package.
How to Delete IP modules in the SDK?[edit]
- In this section, Y13 is used for base release.
- Below IP modules are deleted in this example
- DDP
- DTSHD
- DXP
- THD2
- AAC
- NEO
- PL2
- Please refer How to remove THX from Y13 Build for THX
Edit CCS4 project[edit]
- Delete link of the library that you want to add to the project. You can do it by right-clicking the library on Project tree of CCS4 and "Delete",
Editing T:\pa\cust\vender\c999\d1\y13\patches.c[edit]
1.Delete header files that you want to delete.
/* Headers for decoder */ #include <sng.h> #include <sng_mds.h> #include <pcm.h> #include <pcm_mds.h> //#include <dtshd.h> //Deleted //#include <dtshd_tii.h> //Deleted //#include <thd.h> //Deleted //#include <thd_tii.h> //Deleted //#include <dxp.h> //Deleted //#include <dxp_tii.h> //Deleted //#include <ddp.h> //Deleted //#include <ddp_tij.h> //Deleted //#include <aac.h> //Deleted //#include <aac_tii.h> //Deleted ... /* Headers for ASP */ ... //#include <pl2x.h> //Deleted //#include <pl2x_tii.h> //Deleted //#include <neo6.h> //Deleted //#include <neo6_tii.h> //Deleted ...
2.Delete decoders that you want to delete from "const PAF_ASP_LinkInit decLinkInitY13[]". This table defines the decoders which PA/F will call.
const PAF_ASP_LinkInit decLinkInitY13[] =
{
PAF_ASP_LINKINITPARAMS (STD, DWRPCM, TII, &IDWRPCM_PARAMS),
#if(PAF_DEVICE) == 0xD8000001
//PAF_ASP_LINKINITPARAMS (STD, DWRAAC, TII, &IDWRAAC_PARAMS), //Deleted
//PAF_ASP_LINKINIT (STD, DTSHD, TII), //Deleted
//PAF_ASP_LINKINIT (STD, DXP, TII), //Deleted
//PAF_ASP_LINKINIT (STD, THD, TII), //Deleted
//PAF_ASP_LINKINITPARAMS (STD, DDP, TIJ, &IDDP_PARAMS_SDRAM), //Deleted
PAF_ASP_LINKINIT (STD, SNG, MDS),
#endif /* (PAF_DEVICE) == 0xD8000001 */
};
3.Delete ASPs that you want to delete from"const PAF_ASP_LinkInit aspLinkInitAllY13(_2)[]", "const PAF_ASP_LinkInit aspLinkInitStdY13(_2)[]" and "const PAF_ASP_LinkInit aspLinkInitCusY13(_2)[]". This table defines modules that PA/F will call.
/* This is for primary stream. For secondary stream, please edit aspLinkInitAllY13_2[] */ const PAF_ASP_LinkInit aspLinkInitAllY13[] = { ... //PAF_ASP_LINKINIT (STD, PL2x, TII), //Deleted //PAF_ASP_LINKINITPARAMS (STD, NEO, TII, &INEO_PARAMS), //Deleted ... PAF_ASP_LINKNONE, }; ... /* This is for primary stream. For secondary stream, please edit aspLinkInitStdY13_2[] */ const PAF_ASP_LinkInit aspLinkInitStdY13[] = { ... //PAF_ASP_LINKINIT (STD, PL2x, TII), //Deleted //PAF_ASP_LINKINITPARAMS (STD, NEO, TII, &INEO_PARAMS), //Deleted ... PAF_ASP_LINKNONE, }; ...
Note[edit]
- Modules in
aspLinkInitCusI14
/aspLinkInitCusY13(_2)
andaspLinkInitStdI14
/aspLinkInitStdY13(_2)
must be added toaspLinkInitAllI14
/aspLinkInitAllY13(_2)
- If you don't use writeDECASPGearControlStd or writeDECASPGearControlCus You don't need to add modules to
aspLinkInitStdY13[]
andaspLinkInitCusY13[]
except ASS. Secondary streamaspLinkInitXXXY13_2[]
is almost the same manner but ASS is not needed.
const PAF_ASP_LinkInit aspLinkInitStdY13[] = { PAF_ASP_LINKINIT(STD,ASS,TII), PAF_ASP_LINKNONE, }; const PAF_ASP_LinkInit aspLinkInitCusY13[] = { PAF_ASP_LINKINIT(STD,ASS,TII), PAF_ASP_LINKNONE, };
Whats the difference between PAF_ASP_LINKINIT and PAF_ASP_LINKINITPARAMS?[edit]
- PAF_ASP_LINKINIT used defalt parameters named IASP_PARAMS_ASP . If you want to used optional parameter set, you can use PAF_ASP_LINKINITPARAMS
How to initialize each modules?[edit]
- For system and STD modules and you will use as is, we recommend to set in atboot.
- For CUS modules and customized modules, make IASP_PARAMS_ASP and use it with PAF_ASP_LINKINITPARAMS is good
Is there any recommend setting for typical use?[edit]
- Note that these are not match all case.
- writeIBUnknownTimeoutN(2048)(for legacy)
- writeIBUnknownTimeoutN(2048*2)(if DXP is needed)
- writeIBZeroRunTriggerN(0x7fffffff) (please see paf-auto.pdf)
- writeIBZeroRunRestartN(0x7fffffff) (please see paf-auto.pdf)
- writePCMRamp(0) (if you don't need ramp)
- writeVOLRampTimeN(0) (if you don't need ramp)