I want to change the Memory Map for DSPLINK,increase the DDR Memory size , and following steps on thant:
1:Update $(DSPLINK)/config/all/CFG_[PLATFORM].c
2:Update $(DSPLINK)/dsp/inc/DspBios/../dsplink-[PLATFORM]-base.tci as per the configuration
3:
Ensure that the MAR configuration in the TCF file for cache matches the new memory map
Memory for linux (52M),0x80000000-0x83400000 |
Memory for CMEM(12M),0x83400000-0x84000000 |
Memory for DSPLINKMEM(1M)0x84000000-0x84100000 |
Memory for RESETCTRL 0x84100000-0x84100080 |
Memory for DDR 0x84100080 -0x90000000 |
there is my table for Memory Map.but the system halted on the runing, the terminal imformation as follows:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Entered PROC_Setup ()
Entered DRV_Initialize ()
drvObj [0x67928]
arg [0x0]
Leaving DRV_Initialize () status [0x8000]
Entered DRV_Invoke ()
drvObj [0x83a70]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
we can know that the system run PROC_Setup () function have some problem.it can't start DSP. for a few days,can't solve this problem.
who can solve this problem? if necessary i can show the configuration file
dsplink-davinci-base.tci as follows
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
utils.importFile("assert.tci");
params = {
clockRate: 594,
catalogName: "ti.catalog.c6000",
deviceName: "DM6446",
};
/* ============================================================================
* Load base TCI file.
* ============================================================================
*/
utils.loadPlatform("ti.platforms.generic", params);
/* ============================================================================
* Enable common BIOS features used by all examples
* ============================================================================
*/
bios.disableRealTimeAnalysis(prog);
bios.enableMemoryHeaps(prog);
bios.disableRtdx(prog);
bios.enableTskManager(prog);
/* ============================================================================
* GBL
* ============================================================================
*/
prog.module("GBL").ENABLEALLTRC = false;
prog.module("GBL").PROCID = 0;
prog.module("GBL").CALLUSERINITFXN = 1;
prog.module("GBL").USERINITFXN = prog.extern("HAL_init");
prog.module("GBL").C64PLUSCONFIGURE = true ;
prog.module("GBL").C64PLUSL2CFG = "32k" ;
prog.module("GBL").C64PLUSL1DCFG = "32k" ;
prog.module("GBL").C64PLUSMAR128to159 = 0x0000FFF0 ;
/* ============================================================================
* MEM
* ============================================================================
*/
prog.module("MEM").STACKSIZE = 0x1000 ;
/* ============================================================================
* MEM : DSPLINKMEM
* ============================================================================
*/
var DSPLINKMEM = prog.module("MEM").create("DSPLINKMEM");
DSPLINKMEM.base = 0x84000000;
DSPLINKMEM.len = 0x00100000;
DSPLINKMEM.createHeap = false;
DSPLINKMEM.comment = "DSPLINKMEM";
/* ============================================================================
* MEM : RESET_VECTOR
* ============================================================================
*/
var RESET_VECTOR = prog.module("MEM").create("RESET_VECTOR");
RESET_VECTOR.base = 0x84100000;
RESET_VECTOR.len = 0x00000080;
RESET_VECTOR.space = "code/data";
RESET_VECTOR.createHeap = false;
RESET_VECTOR.comment = "RESET_VECTOR";
/* ============================================================================
* MEM : DDR
* ============================================================================
*/
var DDR = prog.module("MEM").create("DDR");
DDR.base = 0x84100080;
DDR.len = 0xBEFFF80;
DDR.space = "code/data";
DDR.createHeap = true;
DDR.heapSize = 0x700000;
DDR.comment = "DDR";
/* ============================================================================
* MEM : IRAM
* ============================================================================
*/
var IRAM = prog.module("MEM").instance("IRAM");
IRAM.len = 0x8000 ;
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CFG_Davinci.txt as follows:
[DRIVER]
NAME | S | DSP/BIOS LINK # Driver name
COMPONENTS | N | 2 # Configuration being used
QUEUELENGTH | N | 16 # Queue length for the CHNL driver
NUMDSPS | N | 1 # Number of DSPs in the system
NUMMEMTABLES | N | 1 # Number of memory tables
NUMIPSTABLE | N | 1 # Number of IPS tables
NUMPOOLS | N | 1 # Number of POOLs
NUMDATATABLES | N | 1 # Number of data tables
MAXMSGQS | N | 130 # Maximum MSGQs that can be opened
NUMMQTS | N | 1 # Number of MQTs
PROBERTCID | N | 3 # Real Time Clock ID for PROBE
PROBEINTID | N | 33 # Interrupt ID for PROBE
LOG_OBJECT | A | trace # Log object for logging
[/DRIVER]
[GPP]
NAME | S | ARM9 # Name of the GPP
[/GPP]
[DSP0]
NAME | S | Gem # Name of the DSP
ARCHITECTURE | E | DspArch_C64x # DSP architecture
INTERFACE | A | DAVINCI_Interface # DSP interface table
LOADER | A | COFF_Interface # Loader interface table
LOADSYMBOLS | B | FALSE # Load symbols from DSP executable
AUTOSTART | B | FALSE # Autostart the DSP (Not supported)
DOPOWERCTRL | B | FALSE # Link does the Power Ctrl of DSP.
EXECUTABLE | S | DEFAULT.OUT # Executable for autostart
RESUMEADDR | H | 0x84100020 # Resume address
RESETVECTOR | H | 0x84100000 # Reset Vector for the DSP
RESETCODESIZE | H | 0x80 # Size of code at DSP Reset Vector
MADUSIZE | N | 1 # DSP Minimum Addressable Data Unit
ENDIAN | N | 3 # DSP Endianism
MEMENTRIES | N | 5 # Number of entries in memory table
MEMTABLEID | N | 0 # ID of the memory table used
LINKDRVID | N | 0 # ID of the link driver used
NUMDATADRV | N | 1 # Number of data drivers supported
DATATABLEID | N | 0 # ID of the data driver table
MQTID | N | 0 # ID of the MQT
LOG_OBJECT | A | trace # Log object for logging
[/DSP0]
[MEMTABLE0]
[0]
ENTRY | N | 0 # Entry number
ABBR | S | DSPLINKMEM # Abbreviation of the table name
ADDRDSPVIRTUAL | H | 0x84000000 # DSP virtual address
ADDRPHYSICAL | H | 0x84000000 # Physical address
SIZE | H | 0x00100000 # Size of the memory region
MAPINGPP | B | TRUE # Map in GPP address space?
[/0]
[1]
ENTRY | N | 1 # Entry number
ABBR | S | RESETCTRL # Abbreviation of the table name
ADDRDSPVIRTUAL | H | 0x84100000 # DSP virtual address
ADDRPHYSICAL | H | 0x84100000 # Physical address
SIZE | H | 0x00000080 # Size of the memory region
MAPINGPP | B | TRUE # Map in GPP address space?
[/1]
[2]
ENTRY | N | 2 # Entry number
ABBR | S | DDR # Abbreviation of the table name
ADDRDSPVIRTUAL | H | 0x84100080 # DSP virtual address
ADDRPHYSICAL | H | 0x84100080 # Physical address
SIZE | H | 0x0BEFFF80 # Size of the memory region
MAPINGPP | B | TRUE # Map in GPP address space?
[/2]
[3]
ENTRY | N | 3 # Entry number
ABBR | S | DSPIRAM # Abbreviation of the table name
ADDRDSPVIRTUAL | H | 0x11800000 # DSP virtual address
ADDRPHYSICAL | H | 0x11800000 # Physical address
SIZE | H | 0x10000 # Size of the memory region
MAPINGPP | B | TRUE # Map in GPP address space?
[/3]
[4]
ENTRY | N | 4 # Entry number
ABBR | S | DSPL1DRAM # Abbreviation of the table name
ADDRDSPVIRTUAL | H | 0x11F04000 # DSP virtual address
ADDRPHYSICAL | H | 0x11F04000 # Physical address
SIZE | H | 0xC000 # Size of the memory region
MAPINGPP | B | TRUE # Map in GPP address space?
[/4]
[/MEMTABLE0]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
where have problem?how to change it? help me thanks......is my job