MCSDK 3.0: add eeprom/flash writers for evmk2k device
authorHao Zhang <hzhang@ti.com>
Mon, 19 Nov 2012 21:17:26 +0000 (16:17 -0500)
committerHao Zhang <hzhang@ti.com>
Mon, 19 Nov 2012 21:17:26 +0000 (16:17 -0500)
28 files changed:
post/docs/README.txt
post/include/post.h [changed mode: 0644->0755]
post/src/post.c [changed mode: 0644->0755]
writer/eeprom/docs/README.txt [changed mode: 0644->0755]
writer/eeprom/evmk2k/.ccsproject [new file with mode: 0755]
writer/eeprom/evmk2k/.cproject [new file with mode: 0755]
writer/eeprom/evmk2k/.project [new file with mode: 0755]
writer/eeprom/evmk2k/Makefile [new file with mode: 0755]
writer/eeprom/evmk2k/bin/eepromwriter_input.txt [new file with mode: 0755]
writer/eeprom/evmk2k/eepromwriter.cmd [new file with mode: 0755]
writer/eeprom/evmk2k/macros.ini [new file with mode: 0755]
writer/nand/docs/README.txt
writer/nand/evmk2k/.ccsproject [new file with mode: 0755]
writer/nand/evmk2k/.cproject [new file with mode: 0755]
writer/nand/evmk2k/.project [new file with mode: 0755]
writer/nand/evmk2k/Makefile [new file with mode: 0755]
writer/nand/evmk2k/bin/nand_writer_input.txt [new file with mode: 0755]
writer/nand/evmk2k/macros.ini [new file with mode: 0755]
writer/nand/evmk2k/nandwriter.cmd [new file with mode: 0755]
writer/nand/src/nandwriter.c [changed mode: 0644->0755]
writer/nor/docs/README.txt
writer/nor/evmk2k/.ccsproject [new file with mode: 0755]
writer/nor/evmk2k/.cproject [new file with mode: 0755]
writer/nor/evmk2k/.project [new file with mode: 0755]
writer/nor/evmk2k/Makefile [new file with mode: 0755]
writer/nor/evmk2k/bin/nor_writer_input.txt [new file with mode: 0755]
writer/nor/evmk2k/macros.ini [new file with mode: 0755]
writer/nor/evmk2k/norwriter.cmd [new file with mode: 0755]

index 5351751c43df5409c7bf2980ffb5b391ccad74f3..f40356eaf1eace8b66f51fe5f8ce237275b65e96 100755 (executable)
@@ -5,26 +5,26 @@ It performs board specific tests, such as external memory test, NAND/NOR/EEPROM
 
 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.
 
@@ -36,25 +36,26 @@ Steps to run POST in CCSv5:
 
 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
old mode 100644 (file)
new mode 100755 (executable)
index 8863ecb..49338b0
@@ -35,7 +35,7 @@
  * 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
@@ -88,6 +88,25 @@ typedef enum
 } 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 */
@@ -104,6 +123,7 @@ static uint8_t post_led_status[POST_MAX_TEST_NUM][POST_MAX_NUM_LED] =
     {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] =
@@ -139,7 +159,7 @@ 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 */
old mode 100644 (file)
new mode 100755 (executable)
index 417e7df..fed4b59
 #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)
 {
@@ -462,7 +474,7 @@ int32_t Init_sgmii (uint32_t macPortNum)
         CSL_SGMII_endRxTxSoftReset (macPortNum);
 
            /* Wait for SGMII Link */
-        if (!cpswSimTest)
+        if (!cpswSimTest && ((cpswLpbkMode == CPSW_LOOPBACK_EXTERNAL) || (cpswLpbkMode == CPSW_LOOPBACK_NONE)))
         {
                do
                {
@@ -504,14 +516,22 @@ int Init_MAC (uint32_t macPortNum, uint8_t macAddress[6], uint32_t mtu)
     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
@@ -528,15 +548,26 @@ int Init_MAC (uint32_t macPortNum, uint8_t macAddress[6], uint32_t mtu)
 
 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:
      *
@@ -547,7 +578,11 @@ void Init_Switch (uint32_t mtu)
     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.
@@ -559,6 +594,15 @@ void Init_Switch (uint32_t mtu)
      *          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 ();
 
@@ -566,9 +610,14 @@ void Init_Switch (uint32_t mtu)
     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;
@@ -577,9 +626,13 @@ void Init_Switch (uint32_t mtu)
 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;
@@ -589,7 +642,11 @@ int Switch_update_addr (uint32_t portNum, uint8_t macAddress[6], Uint16 add)
     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)
     {
@@ -599,15 +656,27 @@ int Switch_update_addr (uint32_t portNum, uint8_t macAddress[6], Uint16 add)
         * 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;
@@ -622,7 +691,11 @@ int Switch_update_addr (uint32_t portNum, uint8_t macAddress[6], Uint16 add)
             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
         }
     }
 
@@ -634,6 +707,7 @@ int32_t Init_SGMII_SERDES(void)
 {
     if (cpswSimTest)
     {
+#if (!defined(DEVICE_K2K))
 
            /* Unlock the chip configuration registers to allow SGMII SERDES registers to
            * be written */
@@ -647,7 +721,7 @@ int32_t Init_SGMII_SERDES(void)
 
            /* Re-lock the chip configuration registers to prevent unintentional writes */
            CSL_BootCfgLockKicker();
-
+#endif
     }
 
        /* SGMII SERDES Configuration complete. Return. */
old mode 100644 (file)
new mode 100755 (executable)
index b97e0f9..f748777
@@ -6,22 +6,22 @@ Steps to program the EEPROM with a CCS format data file (.out or .dat):
 
 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".
@@ -36,17 +36,17 @@ Steps to program the EEPROM with a binary file (.bin):
 
 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.
@@ -71,11 +71,11 @@ Steps to program the EEPROM with a binary file (.bin):
 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
@@ -86,25 +86,26 @@ Steps to re-build eepromwriter:
        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
new file mode 100755 (executable)
index 0000000..e82706d
--- /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
new file mode 100755 (executable)
index 0000000..4198884
--- /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="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${TI_PDK_INSTALL_DIR}/packages/ti/platform&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${TI_PDK_INSTALL_DIR}/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../include&quot;"/>\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="&quot;../bin/eepromwriter_evmk2k.out&quot;" 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="&quot;../bin/eepromwriter_evmk2k.map&quot;" 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="&quot;ti.platform.evmk2k.ae66&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>\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="&quot;${CG_TOOL_ROOT}/lib&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${TI_PDK_INSTALL_DIR}/packages/ti/platform/evmk2k/platform_lib/lib/debug&quot;"/>\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
new file mode 100755 (executable)
index 0000000..ecf3218
--- /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
new file mode 100755 (executable)
index 0000000..17a9b88
--- /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
new file mode 100755 (executable)
index 0000000..76b3dd9
--- /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
new file mode 100755 (executable)
index 0000000..cab1993
--- /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
new file mode 100755 (executable)
index 0000000..bf99c93
--- /dev/null
@@ -0,0 +1 @@
+TI_MCSDK_WRITER_DIR="../../../../
index 26460dda18f5b34e48a88456620279be9a353f76..589c61d70e89c3bc71663ba598807cc9cb8aa032 100755 (executable)
@@ -6,22 +6,22 @@ Steps to program the NAND:
 
 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 
@@ -34,11 +34,11 @@ Steps to program the NAND:
 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
@@ -49,25 +49,26 @@ Steps to re-build nandwriter:
        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
new file mode 100755 (executable)
index 0000000..e82706d
--- /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
new file mode 100755 (executable)
index 0000000..2be2a1d
--- /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="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${TI_PDK_INSTALL_DIR}/packages/ti/platform&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${TI_PDK_INSTALL_DIR}/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../include&quot;"/>\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 &lt;id&gt; 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="&quot;../bin/nandwriter_evmk2k.out&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.MAP_FILE.1950588010" name="Input and output sections listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.MAP_FILE" value="&quot;../bin/nandwriter_evmk2k.map&quot;" 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="&quot;ti.platform.evmk2k.ae66&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.3.linkerID.SEARCH_PATH.1092466208" name="Add &lt;dir&gt; 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="&quot;${CG_TOOL_ROOT}/lib&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${TI_PDK_INSTALL_DIR}/packages/ti/platform/evmk2k/platform_lib/lib/debug&quot;"/>\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
new file mode 100755 (executable)
index 0000000..d51af5a
--- /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
new file mode 100755 (executable)
index 0000000..e58718d
--- /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
new file mode 100755 (executable)
index 0000000..009e6a1
--- /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
new file mode 100755 (executable)
index 0000000..bf99c93
--- /dev/null
@@ -0,0 +1 @@
+TI_MCSDK_WRITER_DIR="../../../../
diff --git a/writer/nand/evmk2k/nandwriter.cmd b/writer/nand/evmk2k/nandwriter.cmd
new file mode 100755 (executable)
index 0000000..cab1993
--- /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
+}
old mode 100644 (file)
new mode 100755 (executable)
index 83da160..24a852c
@@ -47,7 +47,7 @@
 #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";
@@ -550,10 +550,10 @@ void main ()
         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) 
     {
@@ -607,7 +607,7 @@ void main ()
         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)
@@ -6,22 +6,22 @@ Steps to program the NOR:
 
 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"
 
 
@@ -35,11 +35,11 @@ Steps to program the NOR:
 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
@@ -50,25 +50,26 @@ Steps to re-build norwriter:
        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
new file mode 100755 (executable)
index 0000000..e82706d
--- /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
new file mode 100755 (executable)
index 0000000..77a2db9
--- /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="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${TI_PDK_INSTALL_DIR}/packages/ti/platform&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${TI_PDK_INSTALL_DIR}/packages&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${PROJECT_ROOT}/../include&quot;"/>
+                                                               </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="&quot;../bin/norwriter_evmk2k.out&quot;" 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="&quot;../bin/norwriter_evmk2k.map&quot;" 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="&quot;ti.platform.evmk2k.ae66&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>
+                                                               </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="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${TI_PDK_INSTALL_DIR}/packages/ti/platform/evmk2k/platform_lib/lib/debug&quot;"/>
+                                                               </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
new file mode 100755 (executable)
index 0000000..da0eca7
--- /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
new file mode 100755 (executable)
index 0000000..095fd31
--- /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
new file mode 100755 (executable)
index 0000000..5f52b88
--- /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
new file mode 100755 (executable)
index 0000000..bf99c93
--- /dev/null
@@ -0,0 +1 @@
+TI_MCSDK_WRITER_DIR="../../../../
diff --git a/writer/nor/evmk2k/norwriter.cmd b/writer/nor/evmk2k/norwriter.cmd
new file mode 100755 (executable)
index 0000000..cab1993
--- /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
+}