summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 713de8a)
raw | patch | inline | side by side (parent: 713de8a)
author | Hao Zhang <hzhang@ti.com> | |
Mon, 19 Nov 2012 21:17:26 +0000 (16:17 -0500) | ||
committer | Hao Zhang <hzhang@ti.com> | |
Mon, 19 Nov 2012 21:17:26 +0000 (16:17 -0500) |
28 files changed:
diff --git a/post/docs/README.txt b/post/docs/README.txt
index 5351751c43df5409c7bf2980ffb5b391ccad74f3..f40356eaf1eace8b66f51fe5f8ce237275b65e96 100755 (executable)
--- a/post/docs/README.txt
+++ b/post/docs/README.txt
Steps to build POST:
-1. Import the POST CCS project from tools\post\evmc66xxl directory. (in CCSv5, Project->Import Existing CCS/
+1. Import the POST CCS project from tools\post\evmxxxx directory. (in CCSv5, Project->Import Existing CCS/
CCE Eclipse Projects)
2. Be sure the lite version of the Platform Lib is pre-built:
- pdk_C66xx_1_x_x_x\packages\ti\platform\evmc66xxl\platform_lib\lib\debug\ti.platform.evm6670l.lite.lib
- If the lib is not pre-built, refer to Platform Lib User Guide under pdk_C66xx_x_x_x\packages\ti\platform\docs
+ pdk_xxxx_x_x_x_x\packages\ti\platform\evmxxxx\platform_lib\lib\debug\ti.platform.evmxxxx.lite.lib
+ If the lib is not pre-built, refer to Platform Lib User Guide under pdk_xxxx_x_x_x_x\packages\ti\platform\docs
on how to build the platform library.
Note that the lite version of platform lib only contains the functions that are required by the POST, so that
POST can be fit into the EEPROM.
-3. Clean the POST project and re-build the project, after build is completed, post_evm66xxl.out and post_evm66xxl.map
- will be generated under tools\post\evmc66xxl\bin directory.
+3. Clean the POST project and re-build the project, after build is completed, post_evmxxxx.out and post_evmxxxx.map
+ will be generated under tools\post\evmxxxx\bin directory.
Steps to run POST in CCSv5:
1. Be sure to set the boot mode dip switch to no boot/EMIF16 boot mode on the EVM
-2. Load the program tools\post\evmc66xxl\bin\post_evm66xxl.out to CCS.
+2. Load the program tools\post\evmxxxx\bin\post_evmxxxx.out to CCS.
3. Connect the 3-pin RS-232 cable from the EVM to the serial port of the PC, and start Hyper Terminal.
Steps to program POST to EEPROM:
-1. Copy tools\post\evmc66xxl\bin\post_i2crom.bin to tools\writer\eeprom\evmc66xxl\bin directory
+1. Copy tools\post\evmxxxx\bin\post_i2crom.bin to tools\writer\eeprom\evmxxxx\bin directory
-2. Navigate to tools\writer\eeprom\evmc66xxl\bin\ and open eepromwriter_input.txt. Make the following changes:
+2. Navigate to tools\writer\eeprom\evmxxxx\bin\ and open eepromwriter_input.txt. Make the following changes:
- Set the file_name to post_i2crom.bin
- Set the bus_addr to 0x50
- Set start_addr to 0
- Set swap_data to 0
Save and close eepromwriter_input.txt
-3. Refer to tools\writer\eeprom\evmc66xxl\docs\README.txt on how to program the raw binary file to EEPROM
+3. Refer to tools\writer\eeprom\evmxxxx\docs\README.txt on how to program the raw binary file to EEPROM
4. Once the programming is completed successfully, user can set the boot mode to I2C mode with bus address 0x50 and
boot the POST directly from the EEPROM after POR. The boot status and test result can be monitored using the Hyper
Terminal as mentioned in "Steps to run POST in CCSv5".
-Please refer to C6678L/C6670L/C6657L EVM boot mode dip switch settings:
+Please refer to C6678L/C6670L/C6657L/TCI6634K2K EVM boot mode dip switch settings:
http://processors.wiki.ti.com/index.php/TMDXEVM6678L_EVM_Hardware_Setup#Boot_Mode_Dip_Switch_Settings
http://processors.wiki.ti.com/index.php/TMDXEVM6670L_EVM_Hardware_Setup#Boot_Mode_Dip_Switch_Settings
http://processors.wiki.ti.com/index.php/TMDSEVM6657L_EVM_Hardware_Setup#Boot_Mode_Dip_Switch_Settings
+http://processors.wiki.ti.com/index.php/TMDSEVMK2K_EVM_Hardware_Setup#Boot_Mode_Dip_Switch_Settings
and User's Guide for more details:
-http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_User_Guide
\ No newline at end of file
+http://processors.wiki.ti.com/index.php/BIOS_MCSDK_x.0_User_Guide
\ No newline at end of file
diff --git a/post/include/post.h b/post/include/post.h
--- a/post/include/post.h
+++ b/post/include/post.h
* POST version definitions
******************************************************************************/
#define POST_EVM_VERSION_MSG " POST Version "
-#define POST_VERSION "01.00.00.06"
+#define POST_VERSION "01.00.00.07"
/******************************************************************************
* PLL Controller Reset Type Status register
} POST_TEST_ID;
#define POST_MAX_NUM_LED 4 /* Total number of LEDs on the EVM */
+#if (defined(DEVICE_K2K))
+static uint8_t post_led_status[POST_MAX_TEST_NUM][POST_MAX_NUM_LED] =
+{
+ /* LED0: red LED0: green LED2: blue LED2: blue */
+ {POST_LED_OFF, POST_LED_OFF, POST_LED_ON, POST_LED_ON}, /* POST running in progress */
+ {POST_LED_OFF, POST_LED_ON, POST_LED_OFF, POST_LED_OFF}, /* POST done successfully */
+ {POST_LED_ON, POST_LED_OFF, POST_LED_OFF, POST_LED_OFF}, /* POST external memory test failed */
+ {POST_LED_ON, POST_LED_OFF, POST_LED_ON, POST_LED_OFF}, /* POST I2C EEPROM read test failed */
+ {POST_LED_ON, POST_LED_OFF, POST_LED_OFF, POST_LED_ON}, /* POST EMIF16 NAND read test failed */
+ {POST_LED_ON, POST_LED_OFF, POST_LED_ON, POST_LED_ON}, /* POST SPI NOR read test failed */
+ {POST_LED_ON, POST_LED_OFF, POST_LED_BLINK, POST_LED_OFF}, /* POST UART write test failed */
+ {POST_LED_ON, POST_LED_OFF, POST_LED_OFF, POST_LED_BLINK}, /* POST EMAC loopback test failed */
+ {POST_LED_ON, POST_LED_OFF, POST_LED_BLINK, POST_LED_ON}, /* POST PLL initialization failed */
+ {POST_LED_ON, POST_LED_OFF, POST_LED_ON, POST_LED_BLINK}, /* POST NAND initialization failed */
+ {POST_LED_ON, POST_LED_OFF, POST_LED_BLINK, POST_LED_BLINK}, /* POST NOR initialization failed */
+ {POST_LED_BLINK, POST_LED_OFF, POST_LED_OFF, POST_LED_OFF}, /* POST general failure */
+ {POST_LED_BLINK, POST_LED_OFF, POST_LED_ON, POST_LED_OFF} /* POST PA loopback failure */
+};
+#else
static uint8_t post_led_status[POST_MAX_TEST_NUM][POST_MAX_NUM_LED] =
{
{POST_LED_ON, POST_LED_ON, POST_LED_ON, POST_LED_ON}, /* POST running in progress */
{POST_LED_BLINK, POST_LED_BLINK, POST_LED_BLINK, POST_LED_BLINK}, /* POST general failure */
{POST_LED_ON, POST_LED_BLINK, POST_LED_BLINK, POST_LED_BLINK} /* POST PA loopback failure */
};
+#endif
#define POST_STATUS_MAX_NUM_CHAR 25 /* Maximum char length of the POST status string */
static char post_status[POST_MAX_TEST_NUM][POST_STATUS_MAX_NUM_CHAR] =
/******************************************************************************
* NAND test definitions
******************************************************************************/
-#if (defined(_EVMC6657L_))
+#if (defined(EVMC6657L) || defined(DEVICE_K2K))
#define POST_NAND_TEST_DEVICE_ID PLATFORM_DEVID_MT29F1G08ABCHC /* NAND device ID */
#define POST_NAND_TEST_READ_BLOCK_NUM 0 /* NAND read block number */
#define POST_NAND_TEST_READ_PAGE_NUM 0 /* NAND read page number */
diff --git a/post/src/post.c b/post/src/post.c
--- a/post/src/post.c
+++ b/post/src/post.c
#pragma DATA_ALIGN(post_version, 16)
char post_version[] = POST_VERSION;
+#if (defined(DEVICE_K2K))
+/*
+ * Holds the base address of ports.
+ */
+void *cpswPortBaseAddr[4] = {
+ &hCpsw5gfRegs->PORT1_INFO,
+ &hCpsw5gfRegs->PORT2_INFO,
+ &hCpsw5gfRegs->PORT3_INFO,
+ &hCpsw5gfRegs->PORT4_INFO
+};
+#endif
+
/* OSAL functions for Platform Library */
uint8_t *Osal_platformMalloc (uint32_t num_bytes, uint32_t alignment)
{
CSL_SGMII_endRxTxSoftReset (macPortNum);
/* Wait for SGMII Link */
- if (!cpswSimTest)
+ if (!cpswSimTest && ((cpswLpbkMode == CPSW_LOOPBACK_EXTERNAL) || (cpswLpbkMode == CPSW_LOOPBACK_NONE)))
{
do
{
CSL_CPGMAC_SL_enableExtControl (macPortNum);
/* Configure the MAC address for this port */
+#if (defined(DEVICE_K2K))
+ CSL_CPSW_nGF_setPortMACAddress (macPortNum, macAddress);
+#else
CSL_CPSW_3GF_setPortMACAddress (macPortNum, macAddress);
+#endif
/* Configure VLAN ID/CFI/Priority.
*
* For now, we are not using VLANs so just configure them
* to all zeros.
*/
+#if (defined(DEVICE_K2K))
+ CSL_CPSW_nGF_setPortVlanReg (macPortNum, 0, 0, 0);
+#else
CSL_CPSW_3GF_setPortVlanReg (macPortNum, 0, 0, 0);
+#endif
/* Configure the Receive Maximum length on this port,
* i.e., the maximum size the port can receive without
void Init_Switch (uint32_t mtu)
{
+#if (defined(DEVICE_K2K))
+ CSL_CPSW_5GF_PORTSTAT portStatCfg;
+#else
CSL_CPSW_3GF_PORTSTAT portStatCfg;
+#endif
/* Enable the CPPI port, i.e., port 0 that does all
* the data streaming in/out of EMAC.
*/
+#if (defined(DEVICE_K2K))
+ CSL_CPSW_nGF_enablePort0 ();
+ CSL_CPSW_nGF_disableVlanAware ();
+ CSL_CPSW_nGF_setPort0VlanReg (0, 0, 0);
+ CSL_CPSW_nGF_setPort0RxMaxLen (mtu);
+#else
CSL_CPSW_3GF_enablePort0 ();
CSL_CPSW_3GF_disableVlanAware ();
CSL_CPSW_3GF_setPort0VlanReg (0, 0, 0);
CSL_CPSW_3GF_setPort0RxMaxLen (mtu);
+#endif
/* Enable statistics on both the port groups:
*
portStatCfg.p0BStatEnable = 1;
portStatCfg.p1StatEnable = 1;
portStatCfg.p2StatEnable = 1;
+#if (defined(DEVICE_K2K))
+ CSL_CPSW_nGF_setPortStatsEnableReg (&portStatCfg);
+#else
CSL_CPSW_3GF_setPortStatsEnableReg (&portStatCfg);
+#endif
/* Setup the Address Lookup Engine (ALE) Configuration:
* (1) Enable ALE.
* properties for the switch, i.e., which
* ports to send the packets to.
*/
+#if (defined(DEVICE_K2K))
+ CSL_CPSW_nGF_enableAle ();
+ CSL_CPSW_nGF_clearAleTable ();
+
+ CSL_CPSW_nGF_disableAleVlanAware ();
+ CSL_CPSW_nGF_disableAleTxRateLimit ();
+ CSL_CPSW_nGF_setAlePrescaleReg (125000000u/1000u);
+ CSL_CPSW_nGF_setAleUnkownVlanReg (7, 3, 3, 7);
+#else
CSL_CPSW_3GF_enableAle ();
CSL_CPSW_3GF_clearAleTable ();
CSL_CPSW_3GF_disableAleTxRateLimit ();
CSL_CPSW_3GF_setAlePrescaleReg (125000000u/1000u);
CSL_CPSW_3GF_setAleUnkownVlanReg (7, 3, 3, 7);
+#endif
if(cpswLpbkMode != CPSW_LOOPBACK_NONE)
+#if (defined(DEVICE_K2K))
+ CSL_CPSW_nGF_enableAleBypass();
+#else
CSL_CPSW_3GF_enableAleBypass();
+#endif
/* Done with switch configuration */
return;
int Switch_update_addr (uint32_t portNum, uint8_t macAddress[6], Uint16 add)
{
uint32_t i;
+#if (defined(DEVICE_K2K))
+ CSL_CPSW_5GF_ALE_PORTCONTROL alePortControlCfg;
+ CSL_CPSW_5GF_ALE_UNICASTADDR_ENTRY ucastAddrCfg;
+#else
CSL_CPSW_3GF_ALE_PORTCONTROL alePortControlCfg;
CSL_CPSW_3GF_ALE_UNICASTADDR_ENTRY ucastAddrCfg;
-
+#endif
/* Configure the address in "Learning"/"Forward" state */
alePortControlCfg.portState = ALE_PORTSTATE_FORWARD;
alePortControlCfg.mcastLimit = 0;
alePortControlCfg.bcastLimit = 0;
+#if (defined(DEVICE_K2K))
+ CSL_CPSW_nGF_setAlePortControlReg (portNum, &alePortControlCfg);
+#else
CSL_CPSW_3GF_setAlePortControlReg (portNum, &alePortControlCfg);
+#endif
if (cpswLpbkMode != CPSW_LOOPBACK_NONE)
{
* matching received packet must be forwarded to.
*/
/* Get the next free ALE entry to program */
+#if (defined(DEVICE_K2K))
+ for (i = 0; i < CSL_CPSW_5GF_NUMALE_ENTRIES; i++)
+#else
for (i = 0; i < CSL_CPSW_3GF_NUMALE_ENTRIES; i++)
+#endif
{
+#if (defined(DEVICE_K2K))
+ if (CSL_CPSW_nGF_getALEEntryType (i) == ALE_ENTRYTYPE_FREE)
+#else
if (CSL_CPSW_3GF_getALEEntryType (i) == ALE_ENTRYTYPE_FREE)
+#endif
{
/* Found a free entry */
break;
}
}
+#if (defined(DEVICE_K2K))
+ if (i == CSL_CPSW_5GF_NUMALE_ENTRIES)
+#else
if (i == CSL_CPSW_3GF_NUMALE_ENTRIES)
+#endif
{
/* No free ALE entry found. return error. */
return -1;
ucastAddrCfg.portNumber = portNum; // Add the ALE entry for this port
/* Setup the ALE entry for this port's MAC address */
+#if (defined(DEVICE_K2K))
+ CSL_CPSW_nGF_setAleUnicastAddrEntry (i, &ucastAddrCfg);
+#else
CSL_CPSW_3GF_setAleUnicastAddrEntry (i, &ucastAddrCfg);
+#endif
}
}
{
if (cpswSimTest)
{
+#if (!defined(DEVICE_K2K))
/* Unlock the chip configuration registers to allow SGMII SERDES registers to
* be written */
/* Re-lock the chip configuration registers to prevent unintentional writes */
CSL_BootCfgLockKicker();
-
+#endif
}
/* SGMII SERDES Configuration complete. Return. */
1. Be sure to set the boot mode dip switch to no boot/EMIF16 boot mode on the EVM.
-2. Copy the CCS format data file to writer\eeprom\evmc66xxl\bin directory, and rename it to app.dat.
+2. Copy the CCS format data file to writer\eeprom\evmxxxx\bin directory, and rename it to app.dat.
-3. Change the file_name, bus_addr, start_addr and swap_data in writer\eeprom\evmc66xxl\bin\eepromwriter_input.txt if necessary.
+3. Change the file_name, bus_addr, start_addr and swap_data in writer\eeprom\evmxxxx\bin\eepromwriter_input.txt if necessary.
By default the EEPROM writer will load app.dat to DSP memory and write the data to I2C slave
bus address 81 (0x51) at EEPROM device start byte address 0 with data swap disabled (0).
-4. Open CCSv5 and launch the evmc66xx emulator target configuration and connect to core 0.
+4. Open CCSv5 and launch the evmxxxx emulator target configuration and connect to core 0.
-5. Load the program writer\eeprom\evmc66xxl\bin\eepromwriter_evm66xxl.out to CCS, be sure evmc66xxl.gel is used in CCS
+5. Load the program writer\eeprom\evmxxxx\bin\eepromwriter_evmxxxx.out to CCS, be sure evmxxxx.gel is used in CCS
and DDR is intialized.
6. Open the Memory view (in CCSv5, view->Memory Browser), and view the memory address 0x0C000000.
7. Load app.dat to 0x0C000000:
* In CCSv5, right click mouse in memory window, select "load memory".
- * Browse and select writer\eeprom\evmc66xxl\bin\app.dat.
+ * Browse and select writer\eeprom\evmxxxx\bin\app.dat.
* Select the option "Use the file header information to set the start address and size of the memory block to be
loaded" and click "next".
* Change the Start Address to "0x0C000000" if it is not 0x0C000000, and click "finish".
1. Be sure to set the boot mode dip switch to no boot/EMIF16 boot mode on the EVM.
-2. Copy the binary file to writer\eeprom\evmc66xxl\bin directory.
+2. Copy the binary file to writer\eeprom\evmxxxx\bin directory.
-3. Change the file_name, bus_addr, start_addr and swap_data in writer\eeprom\evmc66xxl\bin\eepromwriter_input.txt if necessary.
+3. Change the file_name, bus_addr, start_addr and swap_data in writer\eeprom\evmxxxx\bin\eepromwriter_input.txt if necessary.
Make sure that file_name is set to the name of your binary file.
*By default the EEPROM writer will load app.dat to DSP memory and write the data to I2C slave
bus address 81 (0x51) at EEPROM device start byte address 0 with data swap disabled (0).
-4. Open CCSv5 and launch the evmc66xx emulator target configuration and connect to core 0.
+4. Open CCSv5 and launch the evmxxxx emulator target configuration and connect to core 0.
-5. Load the program writer\eeprom\evmc66xxl\bin\eepromwriter_evm66xxl.out to CCS, be sure evmc66xxl.gel is used in CCS
+5. Load the program writer\eeprom\evmxxxx\bin\eepromwriter_evmxxxx.out to CCS, be sure evmxxxx.gel is used in CCS
and DDR is intialized.
6. Open the Memory view (in CCSv5, view->Memory Browser), and view the memory address 0x0C000000.
Steps to re-build eepromwriter:
1. Uses CCS to build eepromwriter:
- * Import the eepromwriter CCS project from writer\eeprom\evmc66xxl directory (in CCSv5, Project->Import Existing CCS/
+ * Import the eepromwriter CCS project from writer\eeprom\evmxxxx directory (in CCSv5, Project->Import Existing CCS/
CCE Eclipse Projects).
* Clean and build the eepromwriter project.
- * After the project build is completed, eepromwriter_evm66xxl.out and eepromwriter_evm66xxl.map will be generated under
- writer\eeprom\evmc66xxl\bin directory.
+ * After the project build is completed, eepromwriter_evmxxxx.out and eepromwriter_evmxxxx.map will be generated under
+ writer\eeprom\evmxxxx\bin directory.
2. Uses Makefile to build eepromwriter:
NOTE FOR BUILDING ON WINDOWS ENVIRONMENT: For building on windows environment GNU utilities like
Linux bash shell:
export C_DIR=/opt/TI/TI_CGT_C6000_7.2.1/
MSYS bash shell:
- export C_DIR='"C:/Program Files/Texas Instruments/ccsv5/tools/compiler/c6000"'
+ export C_DIR='"C:/ti/ccsv5/tools/compiler/c6000"'
2) Code Generation tool binaries should be in the path e.g.
Linux bash shell:
export PATH=/opt/TI/TI_CGT_C6000_7.2.1/bin:$PATH
MSYS bash shell:
- export PATH=$PATH:/c/Program\ Files/Texas\ Instruments/ccsv5/tools/compiler/c6000/bin/
+ export PATH=$PATH:/c/ti/ccsv5/tools/compiler/c6000/bin/
3) variable PFORM_LIB_DIR should be set the directory of the Platform Library root, e.g.
Linux bash shell:
- export PFORM_LIB_DIR=pdk_C66xx_1_0_0_10/packages/ti/platform
+ export PFORM_LIB_DIR=pdk_xxxx_x_x_x_xx/packages/ti/platform
MSYS bash shell:
- export PFORM_LIB_DIR='"C:/Program Files/Texas Instruments/pdk_C66xx_1_0_0_10/packages/ti/platform"'
+ export PFORM_LIB_DIR='"C:/ti/pdk_xxxx_x_x_x_xx/packages/ti/platform"'
- The makefile for building the eepromwriter is in the directory "tools/writer/eeprom/evmc66xxl"
+ The makefile for building the eepromwriter is in the directory "tools/writer/eeprom/evmxxxx"
Following are the steps to build eepromwriter, e.g.:
- cd tools/writer/eeprom/evmc66xxl
+ cd tools/writer/eeprom/evmxxxx
make DEVICE=<device number>
supported device numbers are
C6678
C6670
C6657
+ TCI6634K2K
-Please refer to BIOS MCSDK 2.0 User's Guide (http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_User_Guide) for more details.
\ No newline at end of file
+Please refer to BIOS MCSDK x.0 User's Guide (http://processors.wiki.ti.com/index.php/BIOS_MCSDK_x.0_User_Guide) for more details.
\ No newline at end of file
diff --git a/writer/eeprom/evmk2k/.ccsproject b/writer/eeprom/evmk2k/.ccsproject
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?ccsproject version="1.0"?>
+
+<projectOptions>
+<deviceVariant value="com.ti.ccstudio.deviceModel.C6000.CustomC6000Device"/>
+<deviceEndianness value="little"/>
+<codegenToolVersion value="7.2.4"/>
+<isElfFormat value="true"/>
+<rts value="rts6600_elf.lib"/>
+<deviceFamily value="C6000"/>
+</projectOptions>
diff --git a/writer/eeprom/evmk2k/.cproject b/writer/eeprom/evmk2k/.cproject
--- /dev/null
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<?fileVersion 4.0.0?>\r
+\r
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">\r
+ <storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">\r
+ <cconfiguration id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513">\r
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513" moduleId="org.eclipse.cdt.core.settings" name="Debug">\r
+ <macros>\r
+ <stringMacro name="TI_MCSDK_WRITER_DIR" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../.."/>\r
+ </macros>\r
+ <externalSettings/>\r
+ <extensions>\r
+ <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>\r
+ <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ </extensions>\r
+ </storageModule>\r
+ <storageModule moduleId="org.eclipse.cdt.core.pathentry"/>\r
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+ <configuration artifactExtension="out" artifactName="../bin/eepromwriter_evmk2k" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C6000.Debug">\r
+ <folderInfo id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513." name="/" resourcePath="">\r
+ <toolChain id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.DebugToolchain.816194325" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.linkerDebug.735622690">\r
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.110306835" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">\r
+ <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=com.ti.ccstudio.deviceModel.C6000.CustomC6000Device"/>\r
+ <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>\r
+ <listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>\r
+ <listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.1.0.01"/>\r
+ <listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=eepromwriter.cmd"/>\r
+ <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>\r
+ <listOptionValue builtIn="false" value="RTSC_PRODUCTS=ti.pdk:1.0.0.05;"/>\r
+ <listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.2129896118" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="7.3.4" valueType="string"/>\r
+ <targetPlatform id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.targetPlatformDebug.785393231" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.targetPlatformDebug"/>\r
+ <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.builderDebug.1350915729" name="GNU Make.Debug" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.builderDebug"/>\r
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.compilerDebug.393865250" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.compilerDebug">\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.SILICON_VERSION.1465604553" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.SILICON_VERSION" value="6600" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEBUGGING_MODEL.2137355864" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.INCLUDE_PATH.545156770" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.INCLUDE_PATH" valueType="includePath">\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/include""/>\r
+ <listOptionValue builtIn="false" value=""${TI_PDK_INSTALL_DIR}/packages/ti/platform""/>\r
+ <listOptionValue builtIn="false" value=""${TI_PDK_INSTALL_DIR}/packages""/>\r
+ <listOptionValue builtIn="false" value=""${PROJECT_ROOT}/../include""/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DISPLAY_ERROR_NUMBER.1589118198" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DIAG_WARNING.1742676436" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DIAG_WARNING" valueType="stringList">\r
+ <listOptionValue builtIn="false" value="225"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.ABI.156065548" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.ABI.eabi" valueType="enumerated"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__C_SRCS.906894566" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__C_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__CPP_SRCS.307605626" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__CPP_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM_SRCS.188796541" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM2_SRCS.872678292" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM2_SRCS"/>\r
+ </tool>\r
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.linkerDebug.735622690" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.linkerDebug">\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.OUTPUT_FILE.415153098" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.OUTPUT_FILE" value=""../bin/eepromwriter_evmk2k.out"" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.MAP_FILE.1200142711" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.MAP_FILE" value=""../bin/eepromwriter_evmk2k.map"" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.LIBRARY.800748471" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.LIBRARY" valueType="libs">\r
+ <listOptionValue builtIn="false" value=""ti.platform.evmk2k.ae66""/>\r
+ <listOptionValue builtIn="false" value=""libc.a""/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.SEARCH_PATH.1700000954" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.SEARCH_PATH" valueType="stringList">\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/lib""/>\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/include""/>\r
+ <listOptionValue builtIn="false" value=""${TI_PDK_INSTALL_DIR}/packages/ti/platform/evmk2k/platform_lib/lib/debug""/>\r
+ </option>\r
+ </tool>\r
+ </toolChain>\r
+ </folderInfo>\r
+ </configuration>\r
+ </storageModule>\r
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>\r
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>\r
+ </cconfiguration>\r
+ </storageModule>\r
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+ <project id="eepromwriter.com.ti.ccstudio.buildDefinitions.C6000.ProjectType.1742876545" name="C6000" projectType="com.ti.ccstudio.buildDefinitions.C6000.ProjectType"/>\r
+ </storageModule>\r
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping">\r
+ <project-mappings>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>\r
+ </project-mappings>\r
+ </storageModule>\r
+ <storageModule moduleId="refreshScope"/>\r
+ <storageModule moduleId="scannerConfiguration"/>\r
+</cproject>\r
diff --git a/writer/eeprom/evmk2k/.project b/writer/eeprom/evmk2k/.project
--- /dev/null
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>eepromwriter_evmk2k</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value>-k</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>${CCS_UTILS_DIR}/bin/gmake</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${BuildDirectory}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+ <value>clean</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.ti.ccstudio.managedbuild.core.ccsNature</nature>
+ <nature>com.ti.ccstudio.core.ccsNature</nature>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+ <linkedResources>
+ <link>
+ <name>README.txt</name>
+ <type>1</type>
+ <locationURI>TI_MCSDK_WRITER_DIR/eeprom/docs/README.txt</locationURI>
+ </link>
+ <link>
+ <name>include</name>
+ <type>2</type>
+ <locationURI>TI_MCSDK_WRITER_DIR/eeprom/include</locationURI>
+ </link>
+ <link>
+ <name>src</name>
+ <type>2</type>
+ <locationURI>TI_MCSDK_WRITER_DIR/eeprom/src</locationURI>
+ </link>
+ </linkedResources>
+ <variableList>
+ <variable>
+ <name>TI_MCSDK_WRITER_DIR</name>
+ <value>$%7BPARENT-2-PROJECT_LOC%7D</value>
+ </variable>
+ </variableList>
+</projectDescription>
diff --git a/writer/eeprom/evmk2k/Makefile b/writer/eeprom/evmk2k/Makefile
--- /dev/null
@@ -0,0 +1,81 @@
+# Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
+
+CC = cl6x
+CLIB_INC = $(C_DIR)/include
+STRIP = strip6x
+PRELINK = prelink6x
+
+HOST_PRFX = C60
+HOST_EXT = 6x
+
+AS = cl6x
+ifeq ($(DEVICE),C6670)
+DEVICE_NUM = 6670
+C_OPTS = -DDEVICE=6670 ## Turbo Nyquist
+C_OPTS += -mv6600
+A_OPTS += -mv6600
+else
+ifeq ($(DEVICE),C6678)
+DEVICE_NUM = 6678
+C_OPTS = -DDEVICE=6678 ## Shannon
+C_OPTS += -mv6600
+A_OPTS += -mv6600
+else
+DEFAULT:
+ @echo "Device '$(DEVICE)' not supported"
+ @exit 1
+endif
+endif
+
+TARGET_NAME = bin/eepromwriter_evm$(DEVICE_NUM)l.out
+
+C_OPTS += -g ## Enable debugging
+C_OPTS += -ss ## interlist C source and optimizer with .asm source
+C_OPTS += -ml3 ## Far memory model
+C_OPTS += -k ## Keep .asm files
+ifeq ($(ENDIAN),big)
+C_OPTS+= -me ## Big Endian
+endif
+C_OPTS += -pds67
+C_OPTS += --abi=elfabi
+ifeq ($(ENDIAN),big)
+A_OPTS += -me
+endif
+A_OPTS += --abi=elfabi
+OUTPUT_FILE_OPTION = --output_file
+LNK_OPTS += -z eepromwriter.cmd -m bin/eepromwriter_evm$(DEVICE_NUM)l.map --dynamic
+LNK_OPTS += -l $(C_DIR)/lib/rts6600_elf.lib
+LNK_OPTS += -l $(PFORM_LIB_DIR)/evmc$(DEVICE_NUM)l/platform_lib/lib/debug/ti.platform.evm$(DEVICE_NUM)l.ae66
+LNK_OPTS += --reread_libs --rom_model
+
+OBJ_DIR = obj
+PFORM_LIB_INC = $(PFORM_LIB_DIR)
+SRCDIR = ../src
+
+SRC_FILES = eepromwriter.c
+
+VPATH = $(SRCDIR)
+INCL = -I $(CLIB_INC) $(patsubst %,-I%,$(VPATH)) -I $(PFORM_LIB_DIR)/../../ -I $(PFORM_LIB_DIR) -I ../include
+
+OBJS = $(patsubst %.c,$(OBJ_DIR)/%.obj,$(filter %.c, $(SRC_FILES)))
+OBJS += $(patsubst %.s,$(OBJ_DIR)/%.obj,$(filter %.s, $(SRC_FILES)))
+
+all: $(TARGET_NAME)
+
+$(TARGET_NAME): $(OBJS) eepromwriter.cmd
+ $(CC) $(C_OPTS) $(OBJS) $(LNK_OPTS) -o $@
+
+$(OBJ_DIR)/%.obj: %.c $(HEADERS) $(OBJ_DIR)/.created
+ $(CC) -c $(C_OPTS) $(INCL) $(DEFINE_TARGET) $< $(OUTPUT_FILE_OPTION) $@
+
+$(OBJ_DIR)/%.obj: %.s $(HEADERS) $(OBJ_DIR)/.created
+ $(CC) -c $(A_OPTS) $(DEFINE_TARGET) $< $(OUTPUT_FILE_OPTION) $@
+
+$(OBJ_DIR)/.created:
+ mkdir -p $(OBJ_DIR)
+ touch $(OBJ_DIR)/.created
+
+clean:
+ -rm -rf $(OBJ_DIR)
+ -rm -rf *.asm
+
diff --git a/writer/eeprom/evmk2k/bin/eepromwriter_input.txt b/writer/eeprom/evmk2k/bin/eepromwriter_input.txt
--- /dev/null
@@ -0,0 +1,8 @@
+file_name = app.dat
+bus_addr = 0x51
+start_addr = 0
+swap_data = 0
+
+
+
+
diff --git a/writer/eeprom/evmk2k/eepromwriter.cmd b/writer/eeprom/evmk2k/eepromwriter.cmd
--- /dev/null
@@ -0,0 +1,77 @@
+/******************************************************************************
+ * Copyright (c) 2011 Texas Instruments Incorporated - http://www.ti.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *****************************************************************************/
+/*
+ * Linker command file
+ *
+ */
+
+-c
+-heap 0x40000
+-stack 0x8000
+
+/* Memory Map 1 - the default */
+MEMORY
+{
+ L1PSRAM (RWX) : org = 0x0E00000, len = 0x7FFF
+ L1DSRAM (RWX) : org = 0x0F00000, len = 0x7FFF
+
+ L2SRAM (RWX) : org = 0x0820000, len = 0xe0000
+ MSMCSRAM (RWX) : org = 0xc000000, len = 0x200000
+ DDR3 (RWX) : org = 0x80000000,len = 0x10000000
+}
+
+SECTIONS
+{
+ .csl_vect > L2SRAM
+ .cppi > L2SRAM
+ .linkram > L2SRAM
+ .mac_buffer > L2SRAM
+ platform_lib > L2SRAM
+ .text > L2SRAM
+ GROUP (NEAR_DP)
+ {
+ .neardata
+ .rodata
+ .bss
+ } load > L2SRAM
+ .stack > L2SRAM
+ .cinit > L2SRAM
+ .cio > L2SRAM
+ .const > L2SRAM
+ .data > L2SRAM
+ .switch > L2SRAM
+ .sysmem > L2SRAM
+ .far > L2SRAM
+ .testMem > L2SRAM
+ .fardata > L2SRAM
+}
diff --git a/writer/eeprom/evmk2k/macros.ini b/writer/eeprom/evmk2k/macros.ini
--- /dev/null
@@ -0,0 +1 @@
+TI_MCSDK_WRITER_DIR="../../../../
index 26460dda18f5b34e48a88456620279be9a353f76..589c61d70e89c3bc71663ba598807cc9cb8aa032 100755 (executable)
1. Be sure to set the boot mode dip switch to no boot/EMIF16 boot mode on the EVM.
-2. Copy the binary file to writer\nand\evmc66xxl\bin directory, and rename it to app.bin.
+2. Copy the binary file to writer\nand\evmxxxx\bin directory, and rename it to app.bin.
-3. Change the file_name and start_addr in writer\nand\evmc66xxl\bin\nandwriter_input.txt if necessary.
+3. Change the file_name and start_addr in writer\nand\evmxxxx\bin\nandwriter_input.txt if necessary.
By default the NAND writer will load app.bin to DSP memory and write the data to NAND device start byte address 16384
(start address of block 1). The start_addr should always be set to the start byte addess of a block.
-4. Open CCSv5 and launch the evmc66xx emulator target configuration and connect to core 0.
+4. Open CCSv5 and launch the evmxxxx emulator target configuration and connect to core 0.
-5. Load the program writer\nand\evmc66xxl\bin\nandwriter_evm66xxl.out to CCS, be sure evmc66xxl.gel is used in CCS
+5. Load the program writer\nand\evmxxxx\bin\nandwriter_evmxxxx.out to CCS, be sure evmxxxx.gel is used in CCS
and DDR is intialized.
6. Open the Memory view (in CCSv5, view->Memory Browser), and view the memory address 0x80000000.
7. Load app.bin to 0x80000000:
* In CCSv5, right click mouse in memory window, select "load memory".
- * Browse and select writer\nand\evmc66xxl\bin\app.bin (raw data format), click "next"
+ * Browse and select writer\nand\evmxxxx\bin\app.bin (raw data format), click "next"
* Set the Start Address to "0x80000000", Type-size to 32-bits, leave swap unchecked, click "finish"
8. After the data file is loaded into the memory, run the program (in CCSv5, press F8), it will start to program the
Steps to re-build nandwriter:
1. Uses CCS to build nandwriter:
- * Import the nandwriter CCS project from writer\nand\evmc66xxl directory (in CCSv5, Project->Import Existing CCS/
+ * Import the nandwriter CCS project from writer\nand\evmxxxx directory (in CCSv5, Project->Import Existing CCS/
CCE Eclipse Projects).
* Clean and build the nandwriter project.
- * After the project build is completed, nandwriter_evm66xxl.out and nandwriter_evm66xxl.map will be generated under
- writer\nand\evmc66xxl\bin directory.
+ * After the project build is completed, nandwriter_evmxxxx.out and nandwriter_evmxxxx.map will be generated under
+ writer\nand\evmxxxx\bin directory.
2. Uses Makefile to build nandwriter:
NOTE FOR BUILDING ON WINDOWS ENVIRONMENT: For building on windows environment GNU utilities like
Linux bash shell:
export C_DIR=/opt/TI/TI_CGT_C6000_7.2.1/
MSYS bash shell:
- export C_DIR='"C:/Program Files/Texas Instruments/ccsv5/tools/compiler/c6000"'
+ export C_DIR='"C:/ti/ccsv5/tools/compiler/c6000"'
2) Code Generation tool binaries should be in the path e.g.
Linux bash shell:
export PATH=/opt/TI/TI_CGT_C6000_7.2.1/bin:$PATH
MSYS bash shell:
- export PATH=$PATH:/c/Program\ Files/Texas\ Instruments/ccsv5/tools/compiler/c6000/bin/
+ export PATH=$PATH:/c/ti/ccsv5/tools/compiler/c6000/bin/
3) variable PFORM_LIB_DIR should be set the directory of the Platform Library root, e.g.
Linux bash shell:
- export PFORM_LIB_DIR=pdk_C66xx_1_0_0_10/packages/ti/platform
+ export PFORM_LIB_DIR=pdk_xxxx_x_x_x_xx/packages/ti/platform
MSYS bash shell:
- export PFORM_LIB_DIR='"C:/Program Files/Texas Instruments/pdk_C66xx_1_0_0_10/packages/ti/platform"'
+ export PFORM_LIB_DIR='"C:/ti/pdk_xxxx_x_x_x_xx/packages/ti/platform"'
- The makefile for building the nandwriter is in the directory "tools/writer/nand/evmc66xxl"
+ The makefile for building the nandwriter is in the directory "tools/writer/nand/evmxxxx"
Following are the steps to build nandwriter, e.g.:
- cd tools/writer/nand/evmc66xxl
+ cd tools/writer/nand/evmxxxx
make DEVICE=<device number>
supported device numbers are
C6678
C6670
C6657
+ TCI6634K2K
-Please refer to BIOS MCSDK 2.0 User's Guide (http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_User_Guide) for more details.
\ No newline at end of file
+Please refer to BIOS MCSDK x.0 User's Guide (http://processors.wiki.ti.com/index.php/BIOS_MCSDK_x.0_User_Guide) for more details.
\ No newline at end of file
diff --git a/writer/nand/evmk2k/.ccsproject b/writer/nand/evmk2k/.ccsproject
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?ccsproject version="1.0"?>
+
+<projectOptions>
+<deviceVariant value="com.ti.ccstudio.deviceModel.C6000.CustomC6000Device"/>
+<deviceEndianness value="little"/>
+<codegenToolVersion value="7.2.4"/>
+<isElfFormat value="true"/>
+<rts value="rts6600_elf.lib"/>
+<deviceFamily value="C6000"/>
+</projectOptions>
diff --git a/writer/nand/evmk2k/.cproject b/writer/nand/evmk2k/.cproject
--- /dev/null
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<?fileVersion 4.0.0?>\r
+\r
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">\r
+ <storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">\r
+ <cconfiguration id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513">\r
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513" moduleId="org.eclipse.cdt.core.settings" name="Debug">\r
+ <macros>\r
+ <stringMacro name="TI_MCSDK_WRITER_DIR" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../.."/>\r
+ </macros>\r
+ <externalSettings/>\r
+ <extensions>\r
+ <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>\r
+ <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ </extensions>\r
+ </storageModule>\r
+ <storageModule moduleId="org.eclipse.cdt.core.pathentry"/>\r
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+ <configuration artifactExtension="out" artifactName="../bin/nandwriter_evmk2k" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C6000.Debug">\r
+ <folderInfo id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513." name="/" resourcePath="">\r
+ <toolChain id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.DebugToolchain.1732522246" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.linkerDebug.2126765740">\r
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.208630920" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">\r
+ <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=com.ti.ccstudio.deviceModel.C6000.CustomC6000Device"/>\r
+ <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>\r
+ <listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>\r
+ <listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.1.0.01"/>\r
+ <listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=nandwriter.cmd"/>\r
+ <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>\r
+ <listOptionValue builtIn="false" value="RTSC_PRODUCTS=ti.pdk:1.0.0.05;"/>\r
+ <listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.763809644" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="7.3.0" valueType="string"/>\r
+ <targetPlatform id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.targetPlatformDebug.1873716008" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.targetPlatformDebug"/>\r
+ <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.builderDebug.1041947209" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.builderDebug"/>\r
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.compilerDebug.647176850" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.compilerDebug">\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.SILICON_VERSION.1541739012" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.SILICON_VERSION" value="6600" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.ABI.660723011" name="Application binary interface (coffabi, eabi) (--abi)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.ABI.eabi" valueType="enumerated"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEBUGGING_MODEL.1301663059" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.INCLUDE_PATH.63137325" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.INCLUDE_PATH" valueType="includePath">\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/include""/>\r
+ <listOptionValue builtIn="false" value=""${TI_PDK_INSTALL_DIR}/packages/ti/platform""/>\r
+ <listOptionValue builtIn="false" value=""${TI_PDK_INSTALL_DIR}/packages""/>\r
+ <listOptionValue builtIn="false" value=""${PROJECT_ROOT}/../include""/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DISPLAY_ERROR_NUMBER.796324379" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DIAG_WARNING.92651581" name="Treat diagnostic <id> as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DIAG_WARNING" valueType="stringList">\r
+ <listOptionValue builtIn="false" value="225"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEFINE.1531642964" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEFINE" valueType="definedSymbols">\r
+ <listOptionValue builtIn="false" value="DEVICE_K2K"/>\r
+ </option>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__C_SRCS.521338958" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__C_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__CPP_SRCS.528440451" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__CPP_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM_SRCS.1445969269" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM2_SRCS.595821906" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM2_SRCS"/>\r
+ </tool>\r
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.linkerDebug.2126765740" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.linkerDebug">\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.OUTPUT_FILE.723624381" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.OUTPUT_FILE" value=""../bin/nandwriter_evmk2k.out"" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.MAP_FILE.1950588010" name="Input and output sections listed into <file> (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.MAP_FILE" value=""../bin/nandwriter_evmk2k.map"" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.LIBRARY.11593492" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.LIBRARY" valueType="libs">\r
+ <listOptionValue builtIn="false" value=""ti.platform.evmk2k.ae66""/>\r
+ <listOptionValue builtIn="false" value=""libc.a""/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.SEARCH_PATH.1092466208" name="Add <dir> to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.SEARCH_PATH" valueType="stringList">\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/lib""/>\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/include""/>\r
+ <listOptionValue builtIn="false" value=""${TI_PDK_INSTALL_DIR}/packages/ti/platform/evmk2k/platform_lib/lib/debug""/>\r
+ </option>\r
+ </tool>\r
+ </toolChain>\r
+ </folderInfo>\r
+ </configuration>\r
+ </storageModule>\r
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>\r
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>\r
+ </cconfiguration>\r
+ </storageModule>\r
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+ <project id="nandwriter.com.ti.ccstudio.buildDefinitions.C6000.ProjectType.1742876545" name="C6000" projectType="com.ti.ccstudio.buildDefinitions.C6000.ProjectType"/>\r
+ </storageModule>\r
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping">\r
+ <project-mappings>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>\r
+ </project-mappings>\r
+ </storageModule>\r
+ <storageModule moduleId="refreshScope"/>\r
+ <storageModule moduleId="scannerConfiguration"/>\r
+</cproject>\r
diff --git a/writer/nand/evmk2k/.project b/writer/nand/evmk2k/.project
--- /dev/null
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>nandwriter_evmk2k</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value>-k</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>${CCS_UTILS_DIR}/bin/gmake</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${BuildDirectory}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+ <value>clean</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.ti.ccstudio.managedbuild.core.ccsNature</nature>
+ <nature>com.ti.ccstudio.core.ccsNature</nature>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+ <linkedResources>
+ <link>
+ <name>README.txt</name>
+ <type>1</type>
+ <locationURI>TI_MCSDK_WRITER_DIR/nand/docs/README.txt</locationURI>
+ </link>
+ <link>
+ <name>include</name>
+ <type>2</type>
+ <locationURI>TI_MCSDK_WRITER_DIR/nand/include</locationURI>
+ </link>
+ <link>
+ <name>src</name>
+ <type>2</type>
+ <locationURI>TI_MCSDK_WRITER_DIR/nand/src</locationURI>
+ </link>
+ </linkedResources>
+ <variableList>
+ <variable>
+ <name>TI_MCSDK_WRITER_DIR</name>
+ <value>$%7BPARENT-2-PROJECT_LOC%7D</value>
+ </variable>
+ </variableList>
+</projectDescription>
diff --git a/writer/nand/evmk2k/Makefile b/writer/nand/evmk2k/Makefile
--- /dev/null
@@ -0,0 +1,81 @@
+# Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
+
+CC = cl6x
+CLIB_INC = $(C_DIR)/include
+STRIP = strip6x
+PRELINK = prelink6x
+
+HOST_PRFX = C60
+HOST_EXT = 6x
+
+AS = cl6x
+ifeq ($(DEVICE),C6670)
+DEVICE_NUM = 6670
+C_OPTS = -DDEVICE=6670 ## Turbo Nyquist
+C_OPTS += -mv6600
+A_OPTS += -mv6600
+else
+ifeq ($(DEVICE),C6678)
+DEVICE_NUM = 6678
+C_OPTS = -DDEVICE=6678 ## Shannon
+C_OPTS += -mv6600
+A_OPTS += -mv6600
+else
+DEFAULT:
+ @echo "Device '$(DEVICE)' not supported"
+ @exit 1
+endif
+endif
+
+TARGET_NAME = bin/nandwriter_evm$(DEVICE_NUM)l.out
+
+C_OPTS += -g ## Enable debugging
+C_OPTS += -ss ## interlist C source and optimizer with .asm source
+C_OPTS += -ml3 ## Far memory model
+C_OPTS += -k ## Keep .asm files
+ifeq ($(ENDIAN),big)
+C_OPTS+= -me ## Big Endian
+endif
+C_OPTS += -pds67
+C_OPTS += --abi=elfabi
+ifeq ($(ENDIAN),big)
+A_OPTS += -me
+endif
+A_OPTS += --abi=elfabi
+OUTPUT_FILE_OPTION = --output_file
+LNK_OPTS += -z nandwriter.cmd -m bin/nandwriter_evm$(DEVICE_NUM)l.map --dynamic
+LNK_OPTS += -l $(C_DIR)/lib/rts6600_elf.lib
+LNK_OPTS += -l $(PFORM_LIB_DIR)/evmc$(DEVICE_NUM)l/platform_lib/lib/debug/ti.platform.evm$(DEVICE_NUM)l.ae66
+LNK_OPTS += --reread_libs --rom_model
+
+OBJ_DIR = obj
+PFORM_LIB_INC = $(PFORM_LIB_DIR)
+SRCDIR = ../src
+
+SRC_FILES = nandwriter.c
+
+VPATH = $(SRCDIR)
+INCL = -I $(CLIB_INC) $(patsubst %,-I%,$(VPATH)) -I $(PFORM_LIB_DIR)/../../ -I $(PFORM_LIB_DIR) -I ../include
+
+OBJS = $(patsubst %.c,$(OBJ_DIR)/%.obj,$(filter %.c, $(SRC_FILES)))
+OBJS += $(patsubst %.s,$(OBJ_DIR)/%.obj,$(filter %.s, $(SRC_FILES)))
+
+all: $(TARGET_NAME)
+
+$(TARGET_NAME): $(OBJS) nandwriter.cmd
+ $(CC) $(C_OPTS) $(OBJS) $(LNK_OPTS) -o $@
+
+$(OBJ_DIR)/%.obj: %.c $(HEADERS) $(OBJ_DIR)/.created
+ $(CC) -c $(C_OPTS) $(INCL) $(DEFINE_TARGET) $< $(OUTPUT_FILE_OPTION) $@
+
+$(OBJ_DIR)/%.obj: %.s $(HEADERS) $(OBJ_DIR)/.created
+ $(CC) -c $(A_OPTS) $(DEFINE_TARGET) $< $(OUTPUT_FILE_OPTION) $@
+
+$(OBJ_DIR)/.created:
+ mkdir -p $(OBJ_DIR)
+ touch $(OBJ_DIR)/.created
+
+clean:
+ -rm -rf $(OBJ_DIR)
+ -rm -rf *.asm
+
diff --git a/writer/nand/evmk2k/bin/nand_writer_input.txt b/writer/nand/evmk2k/bin/nand_writer_input.txt
--- /dev/null
@@ -0,0 +1,5 @@
+file_name = app.bin
+start_addr = 16384
+
+
+
diff --git a/writer/nand/evmk2k/macros.ini b/writer/nand/evmk2k/macros.ini
--- /dev/null
@@ -0,0 +1 @@
+TI_MCSDK_WRITER_DIR="../../../../
diff --git a/writer/nand/evmk2k/nandwriter.cmd b/writer/nand/evmk2k/nandwriter.cmd
--- /dev/null
@@ -0,0 +1,77 @@
+/******************************************************************************
+ * Copyright (c) 2011 Texas Instruments Incorporated - http://www.ti.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *****************************************************************************/
+/*
+ * Linker command file
+ *
+ */
+
+-c
+-heap 0x40000
+-stack 0x8000
+
+/* Memory Map 1 - the default */
+MEMORY
+{
+ L1PSRAM (RWX) : org = 0x0E00000, len = 0x7FFF
+ L1DSRAM (RWX) : org = 0x0F00000, len = 0x7FFF
+
+ L2SRAM (RWX) : org = 0x0820000, len = 0xe0000
+ MSMCSRAM (RWX) : org = 0xc000000, len = 0x200000
+ DDR3 (RWX) : org = 0x80000000,len = 0x10000000
+}
+
+SECTIONS
+{
+ .csl_vect > L2SRAM
+ .cppi > L2SRAM
+ .linkram > L2SRAM
+ .mac_buffer > L2SRAM
+ platform_lib > L2SRAM
+ .text > L2SRAM
+ GROUP (NEAR_DP)
+ {
+ .neardata
+ .rodata
+ .bss
+ } load > L2SRAM
+ .stack > L2SRAM
+ .cinit > L2SRAM
+ .cio > L2SRAM
+ .const > L2SRAM
+ .data > L2SRAM
+ .switch > L2SRAM
+ .sysmem > L2SRAM
+ .far > L2SRAM
+ .testMem > L2SRAM
+ .fardata > L2SRAM
+}
#include "types.h"
/* NAND writer utility version */
-char version[] = "01.00.00.01";
+char version[] = "01.00.00.02";
/* The input file name is hard coded */
char *input_file = "nand_writer_input.txt";
print_platform_errno();
return;
}
-#if !(defined(_EVMC6657L_))
- p_device = platform_device_open(PLATFORM_DEVID_NAND512R3A2D, 0);
-#else
+#if (defined(_EVMC6657L_) || defined(DEVICE_K2K))
p_device = platform_device_open(PLATFORM_DEVID_MT29F1G08ABCHC, 0);
+#else
+ p_device = platform_device_open(PLATFORM_DEVID_NAND512R3A2D, 0);
#endif
if (p_device == NULL)
{
platform_device_close(p_device->handle);
return;
}
-
+
/* Write the flash, verify the results. On read back failure mark
* the block as bad and try rewriting again */
rCount = 0;
index cb90271abaf2ca455e1d3ac1590ad674d7cc7919..8e60595e102ceb259817092b43b19c8436223429 100755 (executable)
1. Be sure to set the boot mode dip switch to no boot/EMIF16 boot mode on the EVM.
-2. Copy the binary file to writer\nor\evmc66xxl\bin directory, and rename it to app.bin.
+2. Copy the binary file to writer\nor\evmxxxx\bin directory, and rename it to app.bin.
-3. Change the file_name and start_addr in writer\nor\evmc66xxl\bin\norwriter_input.txt if necessary.
+3. Change the file_name and start_addr in writer\nor\evmxxxx\bin\norwriter_input.txt if necessary.
By default the NOR writer will load app.bin to DSP memory and write the data to NOR device start byte address 0,
the start_addr should always be set to the start byte addess of a sector.
-4. Open CCSv5 and launch the evmc66xx emulator target configuration and connect to core 0.
+4. Open CCSv5 and launch the evmxxxx emulator target configuration and connect to core 0.
-5. Load the program writer\nor\evmc66xxl\bin\norwriter_evm66xxl.out to CCS, be sure evmc66xxl.gel is used in CCS
+5. Load the program writer\nor\evmxxxx\bin\norwriter_evmxxxx.out to CCS, be sure evmxxxx.gel is used in CCS
and DDR is intialized.
6. Open the Memory view (in CCSv5, view->Memory Browser), and view the memory address 0x80000000.
7. Load app.bin to 0x80000000:
* In CCSv5, right click mouse in memory window, select "load memory".
- * Browse and select writer\nor\evmc66xxl\bin\app.bin (raw data format), click "next"
+ * Browse and select writer\nor\evmxxxx\bin\app.bin (raw data format), click "next"
* Set the Start Address to "0x80000000", Type-size to 32-bits, leave swap unchecked, click "finish"
Steps to re-build norwriter:
1. Uses CCS to build norwriter:
- * Import the norwriter CCS project from writer\nor\evmc66xxl directory (in CCSv5, Project->Import Existing CCS/
+ * Import the norwriter CCS project from writer\nor\evmxxxx directory (in CCSv5, Project->Import Existing CCS/
CCE Eclipse Projects).
* Clean and build the norwriter project.
- * After the project build is completed, norwriter_evm66xxl.out and norwriter_evm66xxl.map will be generated under
- writer\nor\evmc66xxl\bin directory.
+ * After the project build is completed, norwriter_evmxxxx.out and norwriter_evmxxxx.map will be generated under
+ writer\nor\evmxxxx\bin directory.
2. Uses Makefile to build norwriter:
NOTE FOR BUILDING ON WINDOWS ENVIRONMENT: For building on windows environment GNU utilities like
Linux bash shell:
export C_DIR=/opt/TI/TI_CGT_C6000_7.2.1/
MSYS bash shell:
- export C_DIR='"C:/Program Files/Texas Instruments/ccsv5/tools/compiler/c6000"'
+ export C_DIR='"C:/ti/ccsv5/tools/compiler/c6000"'
2) Code Generation tool binaries should be in the path e.g.
Linux bash shell:
export PATH=/opt/TI/TI_CGT_C6000_7.2.1/bin:$PATH
MSYS bash shell:
- export PATH=$PATH:/c/Program\ Files/Texas\ Instruments/ccsv5/tools/compiler/c6000/bin/
+ export PATH=$PATH:/c/ti/ccsv5/tools/compiler/c6000/bin/
3) variable PFORM_LIB_DIR should be set the directory of the Platform Library root, e.g.
Linux bash shell:
- export PFORM_LIB_DIR=pdk_C66xx_1_0_0_10/packages/ti/platform
+ export PFORM_LIB_DIR=pdk_xxxx_x_x_x_xx/packages/ti/platform
MSYS bash shell:
- export PFORM_LIB_DIR='"C:/Program Files/Texas Instruments/pdk_C66xx_1_0_0_10/packages/ti/platform"'
+ export PFORM_LIB_DIR='"C:/Program Files/Texas Instruments/pdk_xxxx_x_x_x_xx/packages/ti/platform"'
- The makefile for building the norwriter is in the directory "tools/writer/nor/evmc66xxl"
+ The makefile for building the norwriter is in the directory "tools/writer/nor/evmxxxx"
Following are the steps to build norwriter, e.g.:
- cd tools/writer/nor/evmc66xxl
+ cd tools/writer/nor/evmxxxx
make DEVICE=<device number>
supported device numbers are
C6678
C6670
C6657
+ TCI6634K2K
-Please refer to BIOS MCSDK 2.0 User's Guide (http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_User_Guide) for more details.
\ No newline at end of file
+Please refer to BIOS MCSDK x.0 User's Guide (http://processors.wiki.ti.com/index.php/BIOS_MCSDK_x.0_User_Guide) for more details.
\ No newline at end of file
diff --git a/writer/nor/evmk2k/.ccsproject b/writer/nor/evmk2k/.ccsproject
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?ccsproject version="1.0"?>
+
+<projectOptions>
+<deviceVariant value="com.ti.ccstudio.deviceModel.C6000.CustomC6000Device"/>
+<deviceEndianness value="little"/>
+<codegenToolVersion value="7.2.4"/>
+<isElfFormat value="true"/>
+<rts value="rts6600_elf.lib"/>
+<deviceFamily value="C6000"/>
+</projectOptions>
diff --git a/writer/nor/evmk2k/.cproject b/writer/nor/evmk2k/.cproject
--- /dev/null
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+ <macros>
+ <stringMacro name="TI_MCSDK_WRITER_DIR" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../.."/>
+ </macros>
+ <externalSettings/>
+ <extensions>
+ <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="out" artifactName="../bin/norwriter_evmk2k" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C6000.Debug">
+ <folderInfo id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1869204513." name="/" resourcePath="">
+ <toolChain id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.DebugToolchain.1146449453" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.linkerDebug.1875260513">
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.699253276" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+ <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=com.ti.ccstudio.deviceModel.C6000.CustomC6000Device"/>
+ <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+ <listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
+ <listOptionValue builtIn="false" value="CCS_MBS_VERSION=5.1.0.01"/>
+ <listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=norwriter.cmd"/>
+ <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+ <listOptionValue builtIn="false" value="RTSC_PRODUCTS=ti.pdk:1.0.0.05;"/>
+ <listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>
+ </option>
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1201128097" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="7.3.0" valueType="string"/>
+ <targetPlatform id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.targetPlatformDebug.907331140" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.targetPlatformDebug"/>
+ <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.builderDebug.719665514" name="GNU Make.Debug" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.builderDebug"/>
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.compilerDebug.2078954424" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.compilerDebug">
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.SILICON_VERSION.1997307567" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.SILICON_VERSION" value="6600" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.ABI.1232791402" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.ABI.eabi" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEBUGGING_MODEL.529119626" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.INCLUDE_PATH.147208571" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.INCLUDE_PATH" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/include""/>
+ <listOptionValue builtIn="false" value=""${TI_PDK_INSTALL_DIR}/packages/ti/platform""/>
+ <listOptionValue builtIn="false" value=""${TI_PDK_INSTALL_DIR}/packages""/>
+ <listOptionValue builtIn="false" value=""${PROJECT_ROOT}/../include""/>
+ </option>
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DISPLAY_ERROR_NUMBER.382596236" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DIAG_WARNING.138406245" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compilerID.DIAG_WARNING" valueType="stringList">
+ <listOptionValue builtIn="false" value="225"/>
+ </option>
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__C_SRCS.1560158014" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__C_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__CPP_SRCS.201934665" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__CPP_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM_SRCS.1458453825" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM_SRCS"/>
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM2_SRCS.43460637" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.compiler.inputType__ASM2_SRCS"/>
+ </tool>
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.linkerDebug.1875260513" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.exe.linkerDebug">
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.OUTPUT_FILE.1231623070" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.OUTPUT_FILE" value=""../bin/norwriter_evmk2k.out"" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.MAP_FILE.1308469520" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.MAP_FILE" value=""../bin/norwriter_evmk2k.map"" valueType="string"/>
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.LIBRARY.1368595909" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.LIBRARY" valueType="libs">
+ <listOptionValue builtIn="false" value=""ti.platform.evmk2k.ae66""/>
+ <listOptionValue builtIn="false" value=""libc.a""/>
+ </option>
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.SEARCH_PATH.1510523292" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.SEARCH_PATH" valueType="stringList">
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/lib""/>
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/include""/>
+ <listOptionValue builtIn="false" value=""${TI_PDK_INSTALL_DIR}/packages/ti/platform/evmk2k/platform_lib/lib/debug""/>
+ </option>
+ </tool>
+ </toolChain>
+ </folderInfo>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="norwriter.com.ti.ccstudio.buildDefinitions.C6000.ProjectType.1742876545" name="C6000" projectType="com.ti.ccstudio.buildDefinitions.C6000.ProjectType"/>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping">
+ <project-mappings>
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>
+ </project-mappings>
+ </storageModule>
+ <storageModule moduleId="refreshScope"/>
+ <storageModule moduleId="scannerConfiguration"/>
+</cproject>
diff --git a/writer/nor/evmk2k/.project b/writer/nor/evmk2k/.project
--- /dev/null
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>norwriter_evmk2k</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value>-k</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>${CCS_UTILS_DIR}/bin/gmake</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${BuildDirectory}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+ <value>clean</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>false</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.ti.ccstudio.managedbuild.core.ccsNature</nature>
+ <nature>com.ti.ccstudio.core.ccsNature</nature>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+ <linkedResources>
+ <link>
+ <name>README.txt</name>
+ <type>1</type>
+ <locationURI>TI_MCSDK_WRITER_DIR/nor/docs/README.txt</locationURI>
+ </link>
+ <link>
+ <name>include</name>
+ <type>2</type>
+ <locationURI>TI_MCSDK_WRITER_DIR/nor/include</locationURI>
+ </link>
+ <link>
+ <name>src</name>
+ <type>2</type>
+ <locationURI>TI_MCSDK_WRITER_DIR/nor/src</locationURI>
+ </link>
+ </linkedResources>
+ <variableList>
+ <variable>
+ <name>TI_MCSDK_WRITER_DIR</name>
+ <value>$%7BPARENT-2-PROJECT_LOC%7D</value>
+ </variable>
+ </variableList>
+</projectDescription>
diff --git a/writer/nor/evmk2k/Makefile b/writer/nor/evmk2k/Makefile
--- /dev/null
@@ -0,0 +1,81 @@
+# Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
+
+CC = cl6x
+CLIB_INC = $(C_DIR)/include
+STRIP = strip6x
+PRELINK = prelink6x
+
+HOST_PRFX = C60
+HOST_EXT = 6x
+
+AS = cl6x
+ifeq ($(DEVICE),C6670)
+DEVICE_NUM = 6670
+C_OPTS = -DDEVICE=6670 ## Turbo Nyquist
+C_OPTS += -mv6600
+A_OPTS += -mv6600
+else
+ifeq ($(DEVICE),C6678)
+DEVICE_NUM = 6678
+C_OPTS = -DDEVICE=6678 ## Shannon
+C_OPTS += -mv6600
+A_OPTS += -mv6600
+else
+DEFAULT:
+ @echo "Device '$(DEVICE)' not supported"
+ @exit 1
+endif
+endif
+
+TARGET_NAME = bin/norwriter_evm$(DEVICE_NUM)l.out
+
+C_OPTS += -g ## Enable debugging
+C_OPTS += -ss ## interlist C source and optimizer with .asm source
+C_OPTS += -ml3 ## Far memory model
+C_OPTS += -k ## Keep .asm files
+ifeq ($(ENDIAN),big)
+C_OPTS+= -me ## Big Endian
+endif
+C_OPTS += -pds67
+C_OPTS += --abi=elfabi
+ifeq ($(ENDIAN),big)
+A_OPTS += -me
+endif
+A_OPTS += --abi=elfabi
+OUTPUT_FILE_OPTION = --output_file
+LNK_OPTS += -z norwriter.cmd -m bin/norwriter_evm$(DEVICE_NUM)l.map --dynamic
+LNK_OPTS += -l $(C_DIR)/lib/rts6600_elf.lib
+LNK_OPTS += -l $(PFORM_LIB_DIR)/evmc$(DEVICE_NUM)l/platform_lib/lib/debug/ti.platform.evm$(DEVICE_NUM)l.ae66
+LNK_OPTS += --reread_libs --rom_model
+
+OBJ_DIR = obj
+PFORM_LIB_INC = $(PFORM_LIB_DIR)
+SRCDIR = ../src
+
+SRC_FILES = norwriter.c
+
+VPATH = $(SRCDIR)
+INCL = -I $(CLIB_INC) $(patsubst %,-I%,$(VPATH)) -I $(PFORM_LIB_DIR)/../../ -I $(PFORM_LIB_DIR) -I ../include
+
+OBJS = $(patsubst %.c,$(OBJ_DIR)/%.obj,$(filter %.c, $(SRC_FILES)))
+OBJS += $(patsubst %.s,$(OBJ_DIR)/%.obj,$(filter %.s, $(SRC_FILES)))
+
+all: $(TARGET_NAME)
+
+$(TARGET_NAME): $(OBJS) norwriter.cmd
+ $(CC) $(C_OPTS) $(OBJS) $(LNK_OPTS) -o $@
+
+$(OBJ_DIR)/%.obj: %.c $(HEADERS) $(OBJ_DIR)/.created
+ $(CC) -c $(C_OPTS) $(INCL) $(DEFINE_TARGET) $< $(OUTPUT_FILE_OPTION) $@
+
+$(OBJ_DIR)/%.obj: %.s $(HEADERS) $(OBJ_DIR)/.created
+ $(CC) -c $(A_OPTS) $(DEFINE_TARGET) $< $(OUTPUT_FILE_OPTION) $@
+
+$(OBJ_DIR)/.created:
+ mkdir -p $(OBJ_DIR)
+ touch $(OBJ_DIR)/.created
+
+clean:
+ -rm -rf $(OBJ_DIR)
+ -rm -rf *.asm
+
diff --git a/writer/nor/evmk2k/bin/nor_writer_input.txt b/writer/nor/evmk2k/bin/nor_writer_input.txt
--- /dev/null
@@ -0,0 +1,5 @@
+file_name = app.bin
+start_addr = 0
+
+
+
diff --git a/writer/nor/evmk2k/macros.ini b/writer/nor/evmk2k/macros.ini
--- /dev/null
@@ -0,0 +1 @@
+TI_MCSDK_WRITER_DIR="../../../../
diff --git a/writer/nor/evmk2k/norwriter.cmd b/writer/nor/evmk2k/norwriter.cmd
--- /dev/null
@@ -0,0 +1,77 @@
+/******************************************************************************
+ * Copyright (c) 2011 Texas Instruments Incorporated - http://www.ti.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *****************************************************************************/
+/*
+ * Linker command file
+ *
+ */
+
+-c
+-heap 0x40000
+-stack 0x8000
+
+/* Memory Map 1 - the default */
+MEMORY
+{
+ L1PSRAM (RWX) : org = 0x0E00000, len = 0x7FFF
+ L1DSRAM (RWX) : org = 0x0F00000, len = 0x7FFF
+
+ L2SRAM (RWX) : org = 0x0820000, len = 0xe0000
+ MSMCSRAM (RWX) : org = 0xc000000, len = 0x200000
+ DDR3 (RWX) : org = 0x80000000,len = 0x10000000
+}
+
+SECTIONS
+{
+ .csl_vect > L2SRAM
+ .cppi > L2SRAM
+ .linkram > L2SRAM
+ .mac_buffer > L2SRAM
+ platform_lib > L2SRAM
+ .text > L2SRAM
+ GROUP (NEAR_DP)
+ {
+ .neardata
+ .rodata
+ .bss
+ } load > L2SRAM
+ .stack > L2SRAM
+ .cinit > L2SRAM
+ .cio > L2SRAM
+ .const > L2SRAM
+ .data > L2SRAM
+ .switch > L2SRAM
+ .sysmem > L2SRAM
+ .far > L2SRAM
+ .testMem > L2SRAM
+ .fardata > L2SRAM
+}