This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

c6455 connection problem which changes require in gel file?

Other Parts Discussed in Thread: TMS320C6455

GEL: Error while executing OnReset(0): memory map prevented write to target memory at 0x78000008.
GEL: Error while executing OnTargetConnect(): memory map prevented read of target memory at 0xA0000004

i am not using cpld in my board. i am using CCS 3.3.  I HAVE DONE BELOW CHANGES IN GEL FILE. RIGHT NOW I AM NOT USING EXTERNAL FLASH MEMORY.

/*--------------------------------------------------------------*/
/* DSK6455.gel                                                  */
/* Version 3.30                                                 */
/*                                                              */
/* This GEL file is designed to be used in conjunction with     */
/* CCS 3.3 and the TMS320C6455 based DSK.                       */
/*                                                              */
/*--------------------------------------------------------------*/

/*--------------------------------------------------------------*/
/* StartUp()                                                    */
/* This function is called each time CCS is started.            */
/* Customize this function to perform desired initialization.   */
/*--------------------------------------------------------------*/
StartUp()
{
    setup_memory_map();
}

#define PERLOCK        0x02AC0004    // Peripheral Lock Register
#define PERCFG0     0x02AA0408    // Peripheral Configuration register
#define PERSTAT0    0x000C8004    // Peripheral Status 0
#define PERSTAT1     0x02AC0000    // Peripheral Status 1
#define PERCFG1        0x02AC002F    // Peripheral configuration 1

#define DEVSTAT        0x02E08054  // Device Status Register

/*--------------------------------------------------------------*/
/* OnTargetConnect()                                            */
/* This function is called by CCS when you do Debug->Connect on */
/* CCS 3.X.                                                     */
/*--------------------------------------------------------------*/
OnTargetConnect()
{
    /*------------------------------------------------------*/
    /* GEL_Reset() is used to deal with the worst case      */
    /* senario of unknown target state.  If for some reason */
    /* a reset is not desired upon target connection,       */
    /* GEL_Reset() may be removed and replaced with         */
    /* something "less brutal" like a cache initialization  */
    /* function.                                            */
    /*------------------------------------------------------*/
   GEL_Reset();

    init_PLL();
    init_emif();

    GEL_TextOut("GEL StartUp Complete.\n");
}

/*--------------------------------------------------------------*/
/* OnReset()                                                    */
/* This function is called by CCS when you do Debug->Resest.    */
/* The goal is to put the C6x into a known good state with      */
/* respect to cache, edma and interrupts.                       */
/*--------------------------------------------------------------*/
OnReset( int nErrorCode )
{

    init_emif();
    
}

/*--------------------------------------------------------------*/
/* OnPreFileLoaded()                                            */
/* This function is called automatically when the 'Load Program'*/
/* Menu item is selected.                                       */
/*--------------------------------------------------------------*/
OnPreFileLoaded()
{
    /*------------------------------------------------------*/
    /* GEL_Reset() is used to deal with the worst case      */
    /* senario of unknown target state.  If for some reason */
    /* a reset is not desired upon target connection,       */
    /* GEL_Reset() may be removed and replaced with         */
    /* something "less brutal" like a cache initialization  */
    /* function.                                            */
    /*------------------------------------------------------*/
 
    GEL_Reset();

    flush_cache();
    IER = 0;
    IFR = 0;
    init_emif();

}

/*--------------------------------------------------------------*/
/* OnRestart()                                                  */
/* This function is called by CCS when you do Debug->Restart.   */
/* The goal is to put the C6x into a known good state with      */
/* respect to cache, edma and interrupts.                       */
/* Failure to do this can cause problems when you restart and   */
/* run your application code multiple times.  This is different */
/* then OnPreFileLoaded() which will do a GEL_Reset() to get the*/
/* C6x into a known good state.                                 */
/*--------------------------------------------------------------*/
OnRestart( int nErrorCode )
{
    /*------------------------------------------------------*/
    /* Turn off L2 for DDR.  The app should               */
    /* manage these for coherency in the application.       */
    /*------------------------------------------------------*/
    GEL_TextOut("Turn off cache segment\n");
   
    GEL_MemoryFill(0x01848380, 0, 0x10, 0x0);

    /*------------------------------------------------------*/
    /* Disable EDMA events and interrupts and clear any     */
    /* pending events.                                      */
    /*------------------------------------------------------*/
    GEL_TextOut("Disable EDMA events\n");
    *(int*)0x02A0105C = 0xFFFFFFFF; // IERH (disable high interrupts)
    *(int*)0x02A0102C = 0xFFFFFFFF; // EERH (disable high events)
    *(int*)0x02A01074 = 0xFFFFFFFF; // ICRH (clear high interrupts)
    *(int*)0x02A0100C = 0xFFFFFFFF; // ICRH (clear high events)

    *(int*)0x02A01058 = 0xFFFFFFFF; // IER  (disable low interrupts)
    *(int*)0x02A01028 = 0xFFFFFFFF; // EER  (disable low events)
    *(int*)0x02A01070 = 0xFFFFFFFF; // ICR  (clear low interrupts)
    *(int*)0x02A01008 = 0xFFFFFFFF; // ICRH (clear low events)

    /* Disable other interrupts */
    IER = 0;
    IFR = 0;

}

/*--------------------------------------------------------------*/
/* setup_memory_map()                                           */
/* Memory map setup                                             */
/*--------------------------------------------------------------*/
setup_memory_map()
{
    GEL_TextOut("setup_memory_map start\n");
    GEL_MapOn();
    GEL_MapReset();

    /* On-chip memory map */
       GEL_MapAdd(0x00000000, 0, 0x00100000, 0, 0); /* Reserved           */
    GEL_MapAdd(0x00100000, 0, 0x00008000, 1, 1);   /* Internal ROM      */
       GEL_MapAdd(0x00800000, 0, 0x00200000, 1, 1);   /* L2 SRAM        */    
    GEL_MapAdd(0x00E00000, 0, 0x00008000, 1, 1);   /* L1P SRAM            */    
    GEL_MapAdd(0x00F00000, 0, 0x00008000, 1, 1);   /* L1D SRAM          */    
    GEL_MapAdd(0x01800000, 0, 0x00010000, 1, 1);   /* INT CTL REGS      */
    GEL_MapAdd(0x01810000, 0, 0x00010000, 1, 1);   /* Power-down Control*/
    GEL_MapAdd(0x01820000, 0, 0x00010000, 1, 1);   /* EMC REGS       */
    GEL_MapAdd(0x01840000, 0, 0x00020000, 1, 1);   /* L1/L2 control     */
    GEL_MapAdd(0x01BC0000, 0, 0x00040000, 1, 1);   /* Emulation         */
//    GEL_MapAdd(0x02880000, 0, 0x00000080, 1, 1);   /* HPI Control       */
//    GEL_MapAdd(0x028C0000, 0, 0x00000100, 1, 1);   /* McBSP0            */
//    GEL_MapAdd(0x02900000, 0, 0x00000100, 1, 1);   /* McBSP1            */
    GEL_MapAdd(0x02940000, 0, 0x00000040, 1, 1);   /* Timer0            */
    GEL_MapAdd(0x02980000, 0, 0x00000040, 1, 1);   /* Timer1            */
    GEL_MapAdd(0x029A0000, 0, 0x00000200, 1, 1);   /* PLL Controller 1  */
    GEL_MapAdd(0x029C0000, 0, 0x00000200, 1, 1);   /* PLL Controller 2  */
    GEL_MapAdd(0x02A00000, 0, 0x00008000, 1, 1);   /* EDMA3 -TPCC       */
    GEL_MapAdd(0x02A20000, 0, 0x00008000, 1, 1);   /* EDMA3 -TPTC0      */
    GEL_MapAdd(0x02A28000, 0, 0x00008000, 1, 1);   /* EDMA3 -TPTC1      */
    GEL_MapAdd(0x02A30000, 0, 0x00008000, 1, 1);   /* EDMA3 -TPTC2      */
    GEL_MapAdd(0x02A38000, 0, 0x00008000, 1, 1);   /* EDMA3 -TPTC3      */
    GEL_MapAdd(0x02A80000, 0, 0x00000500, 1, 1);   /* Chip level registers */
    GEL_MapAdd(0x02AC0000, 0, 0x00020000, 1, 1);   /* Power saver       */
    GEL_MapAdd(0x02B00000, 0, 0x00000100, 1, 1);   /* GPIO              */
    GEL_MapAdd(0x02B04000, 0, 0x00000080, 1, 1);   /* I2C               */
 //    GEL_MapAdd(0x02B40000, 0, 0x00000200, 1, 1);   /* Utopia            */
  //    GEL_MapAdd(0x02B80000, 0, 0x00020000, 1, 1);   /* VCP2              */
//    GEL_MapAdd(0x02BA0000, 0, 0x00020000, 1, 1);   /* TCP2              */
//    GEL_MapAdd(0x02C00000, 0, 0x00000400, 1, 1);   /* PCI               */
  GEL_MapAdd(0x02C80000, 0, 0x00001000, 1, 1);   /* EMAC CTL REGS     */
    GEL_MapAdd(0x02C81000, 0, 0x00000800, 1, 1);   /* EMAC Control Module */
    GEL_MapAdd(0x02C81800, 0, 0x00000800, 1, 1);   /* MDIO REGS         */
    GEL_MapAdd(0x02C82000, 0, 0x00040000, 1, 1);   /* ECTL RAM          */
    GEL_MapAdd(0x02D00000, 0, 0x00040000, 1, 1);   /* RapidIO Control   */
    GEL_MapAdd(0x02E00000, 0, 0x00004000, 1, 1);   /* RapidIO CPPI RAM  */

    GEL_MapAdd( 0x70000000, 0, 0x08000000, 1, 1 );  /* EMIF A Control   */
      //GEL_MapAdd( 0x78000000, 0, 0x08000000, 1, 1 );  /* EMIF B Control   */
//    GEL_MapAdd( 0xA0000000, 0, 0x10000000, 1, 1 );  /* EMIFA CE2 - CPLD */
    GEL_MapAdd( 0xB0000000, 0, 0x10000000, 1, 1 );  /* EMIFA CE3 - Flash*/
    GEL_MapAdd( 0xC0000000, 0, 0x10000000, 1, 1 );  /* EMIFA CE4 - DC   */
    GEL_MapAdd( 0xD0000000, 0, 0x10000000, 1, 1 );  /* EMIFA CE5 - DC   */
    GEL_MapAdd( 0xE0000000, 0, 0x10000000, 1, 1 );  /* DDR     0        */
    GEL_TextOut("setup_memory_map complete\n");
}

/*--------------------------------------------------------------*/
/* clear_memory_map()                                           */
/* Memory map disable                                           */
/*--------------------------------------------------------------*/
clear_memory_map()
{
    GEL_TextOut("clear_memory_map start\n");
    GEL_MapOff();
    GEL_TextOut("clear_memory_map complete\n");
}

/*--------------------------------------------------------------*/
/* CPLD DEFINITIONS                                             */
/*--------------------------------------------------------------*/
//#define CPLD_STAT         0xA0000000
//#define CPLD_DC         0xA00001
    #define CPLD_REV          0xA0000004
//#define CPLD_MISC         0xA0000006

    #define Get_Board_Rev     ((*(char *)CPLD_REV) & 0x07)
#define Get_Cpld_Rev      ((*(char *)CPLD_REV>>4) & 0x0F)
//#define Get_Switches      ((*(char *)CPLD_STAT>>4) & 0x0F)

/*--------------------------------------------------------------*/
/* init_PLL()                                                   */
/* PLL initialization                                           */
/*--------------------------------------------------------------*/
#define PLLCTL_1    0x029A0100    // PLL1 control register
#define PLLM_1        0x029A0110    // PLL1 multiplier control register
#define PREDIV_1    0x029A0114    // PLL1 pre-divider control register
#define PLLCMD_1    0x029A0138    // PLL1 controller command register
#define PLLSTAT_1    0x029A013C    // PLL1 controller status register
#define DCHANGE_1    0x029A0144    // PLL1 PLLDIV ratio change status register
#define SYSTAT_1    0x029A0150    // PLL1 SYSCLK status register
#define PLLDIV4_1    0x029A0160    // PLL1 controller divider 4 register
#define PLLDIV5_1    0x029A0164    // PLL1 controller divider 5 register

#define PLLDIV1_2    0x029C0118    // PLL2 controller divider 1 register
#define PLLCMD_2    0x029C0138    // PLL2 controller command register
#define PLLSTAT_2    0x029C013C    // PLL2 controller status register
#define DCHANGE_2    0x029C0144    // PLL2 PLLDIV ratio change status register
#define SYSTAT_2    0x029C0150    // PLL2 SYSCLK status register

init_PLL()
{
    int i;

    int PLLM_val =    20;
    int PREDIV_val =  1;
    int PLLDIV4_val = 8;
    int PLLDIV5_val = 4;

    if (Get_Board_Rev == 0)
        PLLM_val = 25; // Old Rev, 40MHz CLKIN x 25 = 1GHz
    if (Get_Board_Rev == 1)
        PLLM_val = 20; // Old Rev, 50MHz CLKIN x 20 = 1GHz
    if (Get_Board_Rev >= 2)
        PLLM_val = 24; // Old Rev, 50MHz CLKIN x 24 = 1.2GHz
    
    if (PLLM_val > 0 && PLLM_val < 32)
    {
        if ( (PREDIV_val > 0) && (PREDIV_val < 33) )
        {
            /* In PLLCTL, write PLLENSRC = 0 (enable PLLEN bit).*/
            *(int *)PLLCTL_1 &= ~(0x00000020);
            /* In PLLCTL, write PLLEN = 0 (bypass mode).*/
            *(int *)PLLCTL_1 &= ~(0x00000001);
            /* Wait 4 cycles of the slowest of PLLOUT or reference clock source (CLKIN).*/
            for (i=0 ; i<100 ; i++);
            /*In PLLCTL, write PLLRST = 1 (PLL is reset).*/
            *(int *)PLLCTL_1 |= 0x00000008;
            /*If necessary, program PREDIV and PLLM.*/
            *(int *)PLLM_1 = PLLM_val - 1;
            *(int *)PREDIV_1 = (PREDIV_val - 1) | 0x8000;    /* set PLLDIV0 */
            
            /*If necessary, program PLLDIV1n. Note that you must apply the GO operation
                to change these dividers to new ratios.*/

                /* Check that the GOSTAT bit in PLLSTAT is cleared to show that no GO
                    operation is currently in progress.*/
                while( (*(int *)PLLSTAT_1) & 0x00000001);


                /* Program the RATIO field in PLLDIVn to the desired new divide-down rate.
                    If the RATIO field changed, the PLL controller will flag the change
                    in the corresponding bit of DCHANGE.*/
                *(int *)PLLDIV4_1 = (PLLDIV4_val - 1) | 0x8000;    /* set PLLDIV4 */
                *(int *)PLLDIV5_1 = (PLLDIV5_val - 1) | 0x8000;    /* set PLLDIV5 */

                /* Set the GOSET bit in PLLCMD to initiate the GO operation to change
                    the divide values and align the SYSCLKs as programmed.*/
                *(int *)PLLCMD_1 |= 0x00000001;

                /* Read the GOSTAT bit in PLLSTAT to make sure the bit returns to 0
                    to indicate that the GO operation has completed.*/
                while( (*(int *)PLLSTAT_1) & 0x00000001);

            /* Wait for PLL to properly reset.(128 CLKIN1 cycles).*/
            for (i=0 ; i<1000 ; i++);

            /* In PLLCTL, write PLLRST = 0 to bring PLL out of reset.*/
            *(int *)PLLCTL_1 &= ~(0x00000008);

            /* Wait for PLL to lock (2000 CLKIN1 cycles). */
            for (i=0 ; i<4000 ; i++);

            /* In PLLCTL, write PLLEN = 1 to enable PLL mode. */
            *(int *)PLLCTL_1 |= (0x00000001);

            GEL_TextOut("PLL1 has been configured.\n");
        }
        else
        {
            GEL_TextOut("Pre-divider value must be between 1 and 32.\n","Output",2);
        }
    }
    else
    {
        GEL_TextOut("Multiplier value must be between 1 and 32.\n","Output",2);
    }
}

/*--------------------------------------------------------------*/
/* init_emif()                                                  */
/* Emif initialization                                          */
/*--------------------------------------------------------------*/

#define EMIFA_BASE_ADDR (0x70000000)

#define EMIFA_MIDR     (*(int*)(EMIFA_BASE_ADDR + 0x00000000))
#define EMIFA_STAT     (*(int*)(EMIFA_BASE_ADDR + 0x00000004))
#define EMIFA_BPRIO    (*(int*)(EMIFA_BASE_ADDR + 0x00000020))
#define EMIFA_CE2CFG   (*(int*)(EMIFA_BASE_ADDR + 0x00000080))
#define EMIFA_CE3CFG   (*(int*)(EMIFA_BASE_ADDR + 0x00000084))
#define EMIFA_CE4CFG   (*(int*)(EMIFA_BASE_ADDR + 0x00000088))
#define EMIFA_CE5CFG   (*(int*)(EMIFA_BASE_ADDR + 0x0000008C))
#define EMIFA_AWCC     (*(int*)(EMIFA_BASE_ADDR + 0x000000A0))

#define DDR_BASE_ADDR (0x78000000)

#define DDR_MIDR     (*(int*)(DDR_BASE_ADDR + 0x00000000))
#define DDR_SDCFG    (*(int*)(DDR_BASE_ADDR + 0x00000008))
#define DDR_SDRFC    (*(int*)(DDR_BASE_ADDR + 0x0000000C))
#define DDR_SDTIM1   (*(int*)(DDR_BASE_ADDR + 0x00000010))
#define DDR_SDRIM2   (*(int*)(DDR_BASE_ADDR + 0x00000014))
#define DDR_DDRPHYC  (*(int*)(DDR_BASE_ADDR + 0x000000E4))

init_emif()
{
    
    /* Enable the async EMIF and the DDR2 Memory Controller */

    *(int *)PERCFG1 = 0x00000003;

    /* Configure async EMIF */
       EMIFA_CE2CFG = 0x00240120; /* 8-bit async, 10 cycle read/write strobe */
    EMIFA_CE3CFG = 0x00240120; /* 8-bit async, 10 cycle read/write strobe */   
    EMIFA_CE4CFG = 0x00240122; /* 32-bit async, 10 cycle read/write strobe */
    EMIFA_CE5CFG = 0x00240122; /* 32-bit async, 10 cycle read/write strobe */
    EMIFA_BPRIO  = 0x000000FE; /* Enable priority based starvation control SPRU971A sec. 7.2 */

    /* Configure DDR for 500MHz operation (sequence is order dependent) */
       DDR_SDCFG    = 0x00D38822; /* Unlock boot + timing, CAS4, 4 banks, 10 bit column */
    DDR_SDRFC    = 0x000007A2; /* Refresh */
    DDR_SDTIM1   = 0x3EDB4B91; /* Timing 1 */
    DDR_SDRIM2   = 0x00A2C722; /* Timing 2 */
    DDR_DDRPHYC  = 0x00000005; /* PHY read latency for CAS 4 is 4 + 2 - 1 */
    DDR_SDCFG    = 0x00538822; /* Lock, CAS4, 4 banks, 10 bit column, lock timing */
    

}
/*--------------------------------------------------------------*/
/* init_cpld()                                                  */
/* CPLD Initialization                                          */
/*--------------------------------------------------------------*/
init_cpld()
{
    *(char*)CPLD_STAT = 0;
    *(char*)CPLD_DC   = 0;
    *(char*)CPLD_MISC = 0;
}

/*--------------------------------------------------------------*/
/* flush_cache()                                                */
/* Flush L1 & L2 cache                                          */
/*--------------------------------------------------------------*/
flush_cache()
{
//    GEL_TextOut("flush cache start\n");
    /* Invalidate L1I and L1D */
    *(int*)0x01840000 = (*(int*)0x01840000 | 0x00000300);

    /* Clean L2 */
    *(int*)0x01845004 = 0x1;
//    GEL_TextOut("flush cache complete\n");
}

/*--------------------------------------------------------------*/
/* DSK6455 MENU                                                 */
/*--------------------------------------------------------------*/
menuitem "DSK6455 Functions";

hotmenu Reset()
{
        GEL_TextOut("hotemenu reset start\n");
    GEL_Reset( );
}

hotmenu InitPLL()
{
    GEL_TextOut("hotemenu initpll start\n");
    init_PLL();
}

hotmenu InitEmif()
{
    GEL_TextOut("hotemenu initemif start\n");
    init_emif();
}

//hotmenu InitCpld()
//{
//    init_cpld();
//}

/*--------------------------------------------------------------*/
/* RESET MENU                                                   */
/*--------------------------------------------------------------*/
menuitem "Resets";

hotmenu ClearBreakPts_Reset_EMIFset()
{
    GEL_TextOut("hotemenu ClearBreakPts_Reset_EMIFset start\n");
    GEL_BreakPtReset();
    GEL_Reset();
    init_emif();
}

hotmenu FlushCache()
{
    GEL_TextOut("hotemenu FlushCache start\n");
       flush_cache();
}

/*--------------------------------------------------------------*/
/* MEMORY MAP MENU                                              */
/*--------------------------------------------------------------*/
menuitem "Memory Map";

hotmenu SetMemoryMap()
{
    GEL_TextOut("hotemenu setmemory map start\n");
    setup_memory_map();
}

hotmenu ClearMemoryMap()
{
   GEL_TextOut("hotemenu clearmemory map start\n");
    clear_memory_map();
}

/*--------------------------------------------------------------*/
/* LED_cycle()                                                  */
/*--------------------------------------------------------------*/
/*LED_cycle()
{
    #define LED0_on     *(char*)CPLD_STAT = 0x01
    #define LED1_on     *(char*)CPLD_STAT = 0x02
    #define LED2_on     *(char*)CPLD_STAT = 0x04
    #define LED3_on     *(char*)CPLD_STAT = 0x08
    #define LEDs_off    *(char*)CPLD_STAT = 0x00

    LED3_on;
    LED2_on;
    LED1_on;
    LED2_on;
    LED3_on;
    LEDs_off;
}*/

/*--------------------------------------------------------------*/
/* Check DSK MENU                                               */
/*--------------------------------------------------------------*/
menuitem "Check DSK";
hotmenu QuickTest()
{
GEL_TextOut("hotemenu quicktest start\n");
  // LED_cycle();
  // LED_cycle();
  // LED_cycle();
  GEL_TextOut(" Board Revision: %d \n\n","DSKOutput", 1, 1,Get_Board_Rev);

}

PLEASE HELP TO CORRECT ERROR.

  • Are you getting any problem while you uncomment the CPLD memory location in gel file ?
    Can you please uncomment the following lines of code in gel file and try ?

    GEL_MapAdd( 0x78000000, 0, 0x08000000, 1, 1 ); /* EMIF B Control */
    GEL_MapAdd( 0xA0000000, 0, 0x10000000, 1, 1 ); /* EMIFA CE2 - CPLD */
  • Trouble Writing Memory Block at 0x2ac002f on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 69 Error Code: -1060 Error Class: 0x00000002

    1 other operation(s) were automatically canceled as a result

    Trouble Writing Memory Block at 0x70000080 on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Writing Memory Block at 0x70000084 on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Writing Memory Block at 0x70000088 on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Writing Memory Block at 0x7000008c on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Writing Memory Block at 0x70000020 on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Writing Memory Block at 0x78000008 on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Writing Memory Block at 0x7800000c on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Writing Memory Block at 0x78000010 on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Writing Memory Block at 0x78000014 on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Writing Memory Block at 0x780000e4 on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Writing Memory Block at 0x78000008 on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 70 Error Code: -1060 Error Class: 0x00000002

    Trouble Reading Memory Block at 0x2a00004 on Page 0 of Length 0x4: Error 0x00000002/-1060 Error during: Memory,  An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR.  This will disconnect each  target from the emulator.  The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.   Sequence ID: 69 Error Code: -1060 Error Class: 0x00000002

    4 other operation(s) were automatically canceled as a result

     THIS ERRORS ARE COMING.

    THIS IS HARDWARE ISSUE OR GEL FILE ISSUE?

  • Hi nerav desai,
    Are you using custom board or TI EVM board ?
    If its custom, did you modify the gel file for DDR timing registers etc., ?

    Did you try the "Test connection" in CCS with your emulator ?
  • sir,

    i am using custom board .

    no sir i didn't . i don't know how to change gel and i which portion i have to change .

    i have test my connection using sdconfig and there is no error in sdconfig. so please guide me to solve this error .

  • Hi Nirav,

    If you are using the cutom board, I would recommend you to first have a look at the user guide of the gel file and understand how to make changes required for your custom board.

    www.ti.com/.../spraa74a.pdf

    For emulation related and target configurations, please refer to 

     And also, if you have TI released C6455 EVM, , I would recommend you to first try the appropriate gel file and try to establish the connection using the target configuration file and CCS. This will help you understand the flow of gel file, emulators used and the target configuration settings etc . Then you can make changes in gel file for your cutom board.

     

     

  • In addition to Shankari's suggestion, you may have to modify the DDR timing register in gel file.

    /* Configure DDR for 500MHz operation (sequence is order dependent) */
    DDR_SDCFG = 0x00D38822; /* Unlock boot + timing, CAS4, 4 banks, 10 bit column */
    DDR_SDRFC = 0x000007A2; /* Refresh */
    DDR_SDTIM1 = 0x3EDB4B91; /* Timing 1 */
    DDR_SDRIM2 = 0x00A2C722; /* Timing 2 */
    DDR_DDRPHYC = 0x00000005; /* PHY read latency for CAS 4 is 4 + 2 - 1 */
    DDR_SDCFG = 0x00538822; /* Lock, CAS4, 4 banks, 10 bit column, lock timing */

    Please check your DDR data sheet and change the timings of DDR.

    Can you please do "Test connection" in CCS IDE with your custom board & emulator ?
  • OK SIR

    AND HAPPY CHRISTMAS... :)